日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
詳解VisualStudio中DSL模型的創(chuàng)建

本文之前我們還介紹過《Visual Studio中的特定領(lǐng)域開發(fā)》,這也是本系列文章中的第一篇。今天要為大家講的是DSL模型的創(chuàng)建,希望對大家有所幫助。

成都創(chuàng)新互聯(lián)公司服務(wù)項(xiàng)目包括銅山網(wǎng)站建設(shè)、銅山網(wǎng)站制作、銅山網(wǎng)頁制作以及銅山網(wǎng)絡(luò)營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術(shù)優(yōu)勢、行業(yè)經(jīng)驗(yàn)、深度合作伙伴關(guān)系等,向廣大中小型企業(yè)、政府機(jī)構(gòu)等提供互聯(lián)網(wǎng)行業(yè)的解決方案,銅山網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟(jì)效益。目前,我們服務(wù)的客戶以成都為中心已經(jīng)輻射到銅山省份的部分城市,未來相信會繼續(xù)擴(kuò)大服務(wù)區(qū)域并繼續(xù)獲得客戶的支持與信任!

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

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

2.接下來進(jìn)入DSL創(chuàng)建向?qū)?將會提供四種DSL模型模板提供我們選擇,其實(shí)他們只是給我們提供了不同的Sample提供查看,也方便我們更方便的開始. Class Diagrams  由UML類圖組成,包含類,接口,關(guān)系,組合,屬性,操作等.

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

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

Task Flow 創(chuàng)建類似UML狀態(tài)圖模型

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

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

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

 6.  我們選擇直接創(chuàng)建強(qiáng)命名key,點(diǎn)擊下一步,這是一個設(shè)置總結(jié)界面:

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

#T#

7.  我們再來看一下生成的項(xiàng)目結(jié)構(gòu),整個解決方案總共有兩以下兩個項(xiàng)目組成(其它有三個,另外就是運(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è)置成了針對DslPackage項(xiàng)目的友元程序集(通過AssemblyInfo的InternalsVisibleTo),DslPackage中可以直接訪問Dsl中的內(nèi)部成員,DslPackage其實(shí)也是根據(jù)DslDefinition.dsl生成的.深入了解這兩個項(xiàng)目的結(jié)構(gòu)是非常有必要的,我們會在隨后的深入過程中介紹。

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

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

這就是模型設(shè)計(jì)的主區(qū)域,我們來看一下它的組成部分:

1). 工具條,這里包括模型,關(guān)系,圖形. 這個工具條與.Dsl文件關(guān)系。

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

3). 圖形展現(xiàn).  設(shè)計(jì)模型的展現(xiàn)信息,通過中間的那條線與模型對應(yīng)起來

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

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

這里會列出來當(dāng)前Dsl文件里的模型,模型元素Element,圖Shape,類型,連接器Connector,Connection Builders,以通讀對模型瀏覽器,工具條,序列化的設(shè)置。我們對Dsl的大部分設(shè)計(jì)都會在這里完成.

Ok,就到這里,下次將介紹一些基礎(chǔ)概念.

鏈接:http://www.cnblogs.com/lonely7345/archive/2010/01/27/1657139.html

【責(zé)任編輯:彭凡 TEL:(010)68476606】


當(dāng)前題目:詳解VisualStudio中DSL模型的創(chuàng)建
網(wǎng)頁URL:http://www.5511xx.com/article/cdopisc.html