一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Visual Studio DSL 入門 3---創(chuàng)建一個(gè)簡(jiǎn)單的DSL模型

     從這節(jié)開(kāi)始我們就開(kāi)始我們的DSL之旅, 首先確保你已經(jīng)安裝了Visual Studio Sdk,并且使用的是Visual Studio 2008.我們先大概創(chuàng)建一個(gè)簡(jiǎn)單的DSL項(xiàng)目,通過(guò)這個(gè)項(xiàng)目來(lái)了解dsl的開(kāi)發(fā)環(huán)境和流程.

1. 打開(kāi)VS.NET ,新建--項(xiàng)目, 點(diǎn)擊其它項(xiàng)目類型--擴(kuò)展性(Extensibility). 這里列出來(lái)了vs.NET擴(kuò)展類型的項(xiàng)目,包括Addin,VSPackage,Dsl等項(xiàng)目類型,選擇"Domain Specific Lan  guage Designer”,點(diǎn)擊確定 
              未命名  
2.接下來(lái)進(jìn)入DSL創(chuàng)建向?qū)?將會(huì)提供四種DSL模型模板提供我們選擇,其實(shí)他們只是給我們提供了不同的Sample提供查看,也方便我們更方便的開(kāi)始.
   Class Diagrams  由UML類圖組成,包含類,接口,關(guān)系,組合,屬性,操作等.
              screenshot

 

Component Models 組件模型,子組件組成的組件.
              screenshot
      Minimal Language    只包含一個(gè)簡(jiǎn)單的空的語(yǔ)言模型
              screenshot
       Task Flow 創(chuàng)建類似UML狀態(tài)圖模型

 

              screenshot

3. 在這里我們選擇Minimal Language,并保持Language Name默認(rèn)即可,點(diǎn)擊下一步,設(shè)計(jì)Language的模型文件的后綴名和文件圖標(biāo)。如果你輸入的后綴名已經(jīng)被使用,中間的框中會(huì)列出搜索到的注冊(cè)的后綴名列表。在這里我們輸入sm作為后綴名,保持使用默認(rèn)的圖標(biāo).
              未命名

4. 點(diǎn)擊下一步,進(jìn)入到產(chǎn)品設(shè)置,主要設(shè)計(jì)產(chǎn)品名稱,所屬公司,項(xiàng)目名稱空間.這些信息將會(huì)包含在最后生成的項(xiàng)目中,在最后的產(chǎn)品部署中起到作用。在這里我們不進(jìn)行更改,可以直接保持默認(rèn)即可.
              screenshot

     5. 下一步進(jìn)入到簽名設(shè)置,在擴(kuò)展開(kāi)發(fā)中任何需要部署的Package都需要強(qiáng)命名(將會(huì)注冊(cè)到GAC),可以選擇自動(dòng)創(chuàng)建一個(gè)Key,也可以選擇使用已有的key.
              screenshot

      6.  我們選擇直接創(chuàng)建強(qiáng)命名key,點(diǎn)擊下一步,這是一個(gè)設(shè)置總結(jié)界面:
              未命名  
   我們直接能查看到所有的設(shè)置信息,可以通過(guò)上一步下一步進(jìn)行更改,也可直接點(diǎn)擊左側(cè)的導(dǎo)航來(lái)定位更改,確認(rèn)無(wú)誤后,點(diǎn)擊完成。向?qū)?Wizard)會(huì)自動(dòng)給我們構(gòu)建項(xiàng)目.我們暫且不管生成的這些項(xiàng)目結(jié)構(gòu),切換到解決方案資源管理器,點(diǎn)擊上面的最后面的按鈕“轉(zhuǎn)換所有模板”(Transalte All Template).完成后,點(diǎn)擊Debug運(yùn)行,就會(huì)打開(kāi)Visual Studio實(shí)驗(yàn)室環(huán)境(Experimental hive),也就是上面的Minimal Language界面,可以大概操作一下了,相當(dāng)神奇吧,這就完成了第一個(gè)DSL項(xiàng)目的開(kāi)發(fā).同樣你也可以選擇其它三種模型,效果在上面已經(jīng)列出來(lái)了.

        7.  我們?cè)賮?lái)看一下生成的項(xiàng)目結(jié)構(gòu),整個(gè)解決方案總共有兩以下兩個(gè)項(xiàng)目組成(其它有三個(gè),另外就是運(yùn)行后的Testing項(xiàng)目,稍后介紹).
Dsl: 根據(jù)你的模型數(shù)據(jù)(DslDefinition.dsl文件)生成的有關(guān)模型的操作,包括模型關(guān)系,序列化,圖形,連接器等
       DslPackage:  支撐Dsl能夠在Vs.NET里運(yùn)行,以及和Vs.NET交互的操作,包括菜單,工具條,游覽器等
       Dsl項(xiàng)目設(shè)置成了針對(duì)DslPackage項(xiàng)目的友元程序集(通過(guò)AssemblyInfo的InternalsVisibleTo),DslPackage中可以直接訪問(wèn)Dsl中的內(nèi)部成員,DslPackage其實(shí)也是根據(jù)DslDefinition.dsl生成的.深入了解這兩個(gè)項(xiàng)目的結(jié)構(gòu)是非常有必要的,我們會(huì)在隨后的深入過(guò)程中介紹。

        8.  查看這兩個(gè)項(xiàng)目,發(fā)現(xiàn)大部分都是由后綴名為tt的文件組成,這就是t4文件(Text Templating Transformation Toolkit),類似于ASP,ruby這樣的解釋性語(yǔ)言,讀我們的模型生成cs代碼,可以看到每個(gè)tt文件都附屬了一個(gè)cs代碼文件.綁定到了每個(gè)t4文件可以右鍵運(yùn)行自定義工具Run Custom Tool,就會(huì)調(diào)用TextTemplatingFileGenerator解析t4模板文件生成目標(biāo)代碼,也可以向我們剛才那個(gè)點(diǎn)擊上面的按鈕轉(zhuǎn)換所有的模板文件.

        9. 打開(kāi)Dsl項(xiàng)目中的DslDefinition.dsl文件.(這是通常情況下我們使用的最重要的文件,包括我們的Dsl的所有的模型元素?cái)?shù)據(jù),它附屬的DslDefinition.dsl.Diagram是它的圖形顯示文件).
                 2010-1-26 18-47-33 

 

               這就是模型設(shè)計(jì)的主區(qū)域,我們來(lái)看一下它的組成部分:
             1). 工具條,這里包括模型,關(guān)系,圖形. 這個(gè)工具條與.Dsl文件關(guān)系。
             2). 模型元數(shù)據(jù). 這些概念的東西我們?cè)谙乱磺袝?huì)介紹.
             3). 圖形展現(xiàn).  設(shè)計(jì)模型的展現(xiàn)信息,通過(guò)中間的那條線與模型對(duì)應(yīng)起來(lái)
             4). Dsl Details編輯窗口, 用來(lái)編輯Dsl相關(guān)的一些信息,比如關(guān)系。
             5). 解決方案文件夾,注意上面的黃色區(qū)域就是”轉(zhuǎn)換所有模板“按鈕,點(diǎn)擊下面的Dsl Explorer頁(yè)簽,切換到Dsl瀏覽器.
                 clip_image002[7] 
      這里會(huì)列出來(lái)當(dāng)前Dsl文件里的模型,模型元素Element,圖Shape,類型,連接器Connector,Connection Builders,以通讀對(duì)模型瀏覽器,工具條,序列化的設(shè)置。我們對(duì)Dsl的大部分設(shè)計(jì)都會(huì)在這里完成.
      Ok,就到這里,下次將介紹一些基礎(chǔ)概念.

NET技術(shù)Visual Studio DSL 入門 3---創(chuàng)建一個(gè)簡(jiǎn)單的DSL模型,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产拍拍1000部ww | 天天色天天综合 | 色黄视频在线观看 | 国产女人天堂 | 91小视频版在线观看www | 国产黄色自拍视频 | 国产在线一区视频 | 精品一区二区三区免费站 | 香蕉免费一区二区三区在线观看 | 在线视频91| 日本一区二区在线免费观看 | 91精品一区二区三区久久久久 | 四虎影视永久免费观看网址 | 精品女同一区二区三区免费站 | 国产精品麻豆一区二区 | 国产三级级在线观看大学生 | 国内精品美女久久久久 | 99在线精品日韩一区免费国产 | 欧美激情 亚洲 | 久久精品美女视频 | 欧美大尺度无遮挡性视频 | 亚洲国产人成在线观看 | 男女一级做a爱过程免费视频 | 久久久久久久成人午夜精品福利 | 免费精品视频在线 | 中文字幕在线有码高清视频 | 91免费国产在线观看 | 国内精品日本久久久久影院 | 日韩精品第1页 | 成人的天堂视频一区二区三区 | 午夜在线日韩免费精品福利 | 一本加勒比hezyo东京re高清 | 亚欧成人乱码一区二区 | 亚洲美女黄视频 | 色狠狠色狠狠综合天天 | 久久99国产亚洲精品 | 黄站视频 | 精品免费久久 | 91在线国产观看 | 色一本| 狠狠做狠狠做综合日日 |