天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

Visual Studio DSL 入門 2

     相信如果看過一上篇你已經對vs.NET dsl有了一定的了解,接下來我們就來開始我們的這個系列的入門,Vs.NET Dsl在國內可能使用的人少之又少,不過希望這個系列能夠使看到的人能夠對dsl有一定的了解,使之能夠成為產品方案選型時的一個參考,能夠對閱讀的人有所幫助.

準備環境
    由于vs.NET 2010并未正式發布,所以這一系列基于vs 2008 sp1進行開發,Dsl tools是包含在VSX當中的,所以需要下載 Vistual Stutio.NET SDK 1.1安裝,下載地址為:http://msdn.microsoft.com/zh-cn/vsx/default(en-us).ASPx
    另外代碼生成采用的是T4,為了方便T4的編寫,需要下載T4編輯器http://www.t4editor.NET/,遺憾的是Vs.NET至今還沒有內置T4編輯器,在vs 2010中也不會提供。
需求說明

    我們完成的這個簡單的Demo類似于UML中的狀態圖(Statechart Diagram),  這個狀態機由狀態(states)組成,各狀態由轉移(transitions)鏈接在一起。狀態是對象執行某項活動或等待某個事件時的條件。轉移是兩個狀態之間的關系,它由某個事件觸發,然后執行特定的操作或評估并導致特定的結束狀態。
  狀態(State)的要素:
         名稱:    將一個狀態與其他狀態區分開來的文本字符串;狀態也可能是匿名的,這表示它沒有名稱。 
         分類:    狀態分為初始狀態(initial state)和結束狀態(end state).    
         進入/退出操作:    在進入和退出狀態時所執行的操作。
         內部轉移:        在不使狀態發生變更的情況下進行的轉移。
         子狀態:          狀態的嵌套結構,包括不相連的(依次處于活動狀態的)或并行的(同時處于活動狀態的)子狀態。
         延遲的事件:      未在該狀態中處理但被延遲處理(即列隊等待由另一個狀態中的對象來處理)的一系列事件。 
   轉移(Transitions)的要素: 
        源狀態:            轉移所影響的狀態;如果對象處于源狀態,當對象收到轉移的觸發事件并且滿足警戒條件(如果有)時,就可能會觸發輸出轉移。 
        事件觸發器:       使轉移滿足觸發條件的事件。當處于源狀態的對象收到該事件時(假設已滿足其警戒條件),就可能會觸發轉移。 事件一般都有一個名稱,但是有些轉移沒有事件名稱,稱為自動或隱式轉移.
        警戒條件:         一種布爾表達式。在接收到事件觸發器而觸發轉移時,將對該表達式求值;如果該表達式求值結果為 True,則說明轉移符合觸發條件;如果該表達式求值結果為False,則不觸發轉移。如果沒有其他轉移可以由同一事件來觸發,該事件就將被丟棄。 
        操作:              可執行的、不可分割的計算過程,該計算可能直接作用于擁有狀態機的對象,也可能間接作用于該對象可見的其他對象。
        目標狀態(可選):          在完成轉移后被激活的狀態。
        參數:              轉移可能有參數,這個參數為事件觸發器的事件方法的參數
 
事先弄清楚這段說明是很重要的,因為我們的模型,我們的元數據都來源于需求問題的描述.

計劃
      一個簡單的入門系列計劃大致包含幾下幾步:
      1. 創建一個簡單的DSL模型
      2. 創建我們的元數據模型,包含狀態機(StateMachine),狀態(State),轉移(Transition).可能實際的會對我們需求有些取舍,比如不考慮子狀態等.
      3. 創建相對我們的元數據模型的圖形展現.
      4.規范我們的模型和圖.添加規則(Rule)和驗證(Validation).
      5.在Visual Studio實驗室環境中測試我們的Dsl項目
      6.改善我們的用戶界面.
      7.針對我們限定的元數據針對一個框架創建代碼生成.
      8.創建安裝程序發布Dsl項目安裝包

資源
      1.DSL Tools Lab     http://code.msdn.microsoft.com/DSLToolsLab  系列教程
      2.臺灣微軟Paul的DSL系列視頻教程   http://msdn.microsoft.com/zh-tw/vstudio/cc963628.ASPx
      3.Domain-Specific Development with Visual Studio DSL Tools   目前知道的唯一一本關于專門關于Vs.NET DSL的書,有對應的中文譯本.
      4.VSX的一系列深入進階  http://dotNETeers.NET/blogs/divedeeper/default.ASPx?PageIndex=1

NET技術Visual Studio DSL 入門 2,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲国产AV精品一区二区蜜芽 | CHINA篮球体育飞机2022网站 | 麻生希快播在线 | 久久99re66热这里只有精品 | 国产精品高清视频在线 | 中文字幕亚洲欧美在线视频 | 欧式午夜理伦三级在线观看 | 漂亮妈妈中文字幕版 | 污污内射在线观看一区二区少妇 | 亚洲av欧美在我 | 樱花草在线影视WWW日本动漫 | 午夜婷婷精品午夜无码A片影院 | 国产精品A8198V久久A片 | 欧美亚洲日韩国码在线观看 | 美女张开腿让我了一夜 | 精品无码久久久久久久动漫 | 国产色精品久久人妻无码看片软件 | 亚洲欧美综合视频 | 色青青草原桃花久久综合 | 嫩草影院在线观看网站成人 | 全黄H全肉禁乱公 | qvod快播在线观看 | 国产h视频在线观看网站免费 | 国产精品爽爽久久久久久无码 | 手机在线看片欧美亚洲 | 国内卡一卡二卡三免费网站 | 午夜爱情动作片P | 欧美高清一区二区三 | 国产精品一国产AV麻豆 | 亚洲精品国产高清嫩草影院 | 4k岛国精品午夜高清在线观看 | 日韩一卡二卡三卡四卡免费观在线 | 国产九九熟女在线视频 | 一本色道久久综合亚洲精品 | 麻豆文化传媒一区二区 | 娇妻玩4P被三个男人伺候电影 | 久久综合中文字幕佐佐木希 | 国产成人在线视频免费观看 | 做a爱片的全过程 | 在线免费观看国产 | 洗濯屋H纯肉动漫在线观看 羲义嫁密着中出交尾gvg794 |