程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> Visual Studio DSL入門 3 --- 創建一個簡單的DSL模型

Visual Studio DSL入門 3 --- 創建一個簡單的DSL模型

編輯:關於.NET

1. 打開VS.NET ,新建--項目, 點擊其它項目類型--擴展性(Extensibility). 這裡列出來了vs.net擴展類型的項目,包括Addin,VSPackage,Dsl等項目類型,選擇" Domain Specific Lan  guage Designer”,點擊確定 

2.接下來進入DSL創建向導,將會提供四種DSL模型模板提供我們選擇,其實他們只是給我們提供了不同的Sample提供查看,也方便我們更方便的開始.

Class Diagrams 由UML類圖組成,包含類,接口,關系,組合,屬性,操作等.

Component Models組件模型,子組件組成的組件.

Minimal Language只包含一個簡單的空的語言模型

Task Flow創建類似UML狀態圖模型

3. 在這裡我們選擇

Minimal Language,並保持Language Name默認即可,點擊下一步,設計Language的模型文件的後綴名和文件圖標。如果你輸入的後綴名已經被使用,中間的框中會列出搜索到的注冊的後綴名列表。在這裡我們輸入sm作為後綴名,保持使用默認的圖標.

4. 點擊下一步,進入到產品設置,主要設計產品名稱,所屬公司,項目名稱空間.這些信息將會包含在最後生成的項目中,在最後的產品部署中起到作用。在這裡我們不進行更改,可以直接保持默認即可.

5. 下一步進入到簽名設置,在擴展開發中任何需要部署的Package都需要強命名(將會注冊到GAC),可以選擇自動創建一個Key,也可以選擇使用已有的key.

6.我們選擇直接創建強命名key,點擊下一步,這是一個設置總結界面:

我們直接能查看到所有的設置信息,可以通過上一步下一步進行更改,也可直接點擊左側的導航來定位更改,確認無誤後,點擊完成。向導(Wizard)會自動給我們構建項目.我們暫且不管生成的這些項目結構,切換到解決方案資源管理器,點擊上面的最後面的按鈕“轉換所有模板”(Transalte All Template).完成後,點擊Debug運行,就會打開Visual Studio實驗室環境(Experimental hive),也就是上面的

Minimal Language

界面,可以大概操作一下了,相當神奇吧,這就完成了第一個DSL項目的開發.同樣你也可以選擇其它三種模型,效果在上面已經列出來了.

7.  我們再來看一下生成的項目結構,整個解決方案總共有兩以下兩個項目組成(其它有三個,另外就是運行後的Testing項目,稍後介紹).

Dsl: 根據你的模型數據(DslDefinition.dsl文件)生成的有關模型的操作,包括模型關系,序列化,圖形,連接器等

DslPackage:  支撐Dsl能夠在Vs.net裡運行,以及和Vs.net交互的操作,包括菜單,工具條,游覽器等

Dsl項目設置成了針對DslPackage項目的友元程序集(通過AssemblyInfo的 InternalsVisibleTo),DslPackage中可以直接訪問Dsl中的內部成員,DslPackage其實也是根據 DslDefinition.dsl生成的.深入了解這兩個項目的結構是非常有必要的,我們會在隨後的深入過程中介紹。

8.  查看這兩個項目,發現大部分都是由後綴名為tt的文件組成,這就是t4文件(Text Templating Transformation Toolkit),類似於asp,ruby這樣的解釋性語言,讀我們的模型生成cs代碼,可以看到每個tt文件都附屬了一個cs代碼文件.綁定到了每個 t4文件可以右鍵運行自定義工具Run Custom Tool,就會調用

TextTemplatingFileGenerator

解析t4模板文件生成目標代碼,也可以向我們剛才那個點擊上面的按鈕轉換所有的模板文件.

9. 打開Dsl項目中的DslDefinition.dsl文件.(這是通常情況下我們使用的最重要的文件,包括我們的Dsl的所有的模型元素數據,它附屬的DslDefinition.dsl.Diagram是它的圖形顯示文件).

這就是模型設計的主區域,我們來看一下它的組成部分:

1). 工具條,這裡包括模型,關系,圖形. 這個工具條與.Dsl文件關系。

2). 模型元數據. 這些概念的東西我們在下一切會介紹.

3). 圖形展現.  設計模型的展現信息,通過中間的那條線與模型對應起來

4). Dsl Details編輯窗口, 用來編輯Dsl相關的一些信息,比如關系。

5). 解決方案文件夾,注意上面的黃色區域就是”轉換所有模板“按鈕,點擊下面的Dsl Explorer頁簽,切換到Dsl浏覽器.

這裡會列出來當前Dsl文件裡的模型,模型元素Element,圖Shape,類型,連接器Connector,Connection Builders,以通讀對模型浏覽器,工具條,序列化的設置。我們對Dsl的大部分設計都會在這裡完成.

Ok,就到這裡,下次將介紹一些基礎概念.

出處:http://lonely7345.cnblogs.com/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved