中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術文檔 > 網絡編程 > Visual Studio DSL 入門(一)
關于字符集和Unicode的相關知識 回到列表 Net設計模式實例之適配器模式
 Visual Studio DSL 入門(一)

作者:孤獨俠客 時間: 2010-01-26 文檔類型:原創(chuàng) 來自:似水流年

第 1 頁 Visual Studio DSL 入門 [1]
第 2 頁 Visual Studio DSL 入門 [2]

什么是Visual Studio DSL     

Vistual Studio DSL 工具,是微軟針對特定領域開發(fā)而專門設計的.包含在Vistual Studio SDK中(vs 2010中將是單獨安裝),允許開發(fā)人員自行設計專屬的圖形化工具,它內置了模型的相關支持,以及模型與圖形之間的支持,還包括對模型的驗證,規(guī)則,事務的支持,同時還允許開發(fā)人員在結合VS.NET的一些擴展VSX一同使用.比如工具條,菜單等.可以將模型與T4一同使用,從而生成目標代碼.Vs.Net現在的類設計器,分布式系統(tǒng)設計器(Distributed System Designer),LinqToSql設計器,EntityFramework設計器都是基于VS.NET DSL開發(fā)的,VS 2010新增了UML Modeling Project,終于提供了對類圖,時序圖,用例圖等的支持,這也是基于Vs.NET DSL來實現的.

為什么要使用DSL工具

上面介紹了幾種DSL工具,但是我們?yōu)槭裁匆褂盟?它又能給我們帶來什么呢? 很關鍵的一點,DSL和UML不同,是用來解決問題的,而不是描述問題.如果你正在你的工作和解決方案中重復編寫著相同或者相似的代碼,而且這些重復的代碼能夠單獨出來采用生成的方式,那么你就可以考慮結合DSL工具來生成這些代碼. 

可能有人會說,那這和使用現有的這些基于數據庫的代碼生成工具(Codesmith,李天平的codematic等)又有何不同呢?DSL是站在領域專家的高度,而非軟件開發(fā)專家來開始解決問題,如果需要對數據庫進行設計,然后再生成代碼Coding,那么你這個工具只能說是開發(fā)人員的一個輔助工具,只是面對實際開發(fā)人員,而這在大型的軟件系統(tǒng)當中會有些力不從心.

采用DSL的開發(fā)過程定制

  1. 找出問題的固定部分,并把這些固定固定部分放在通用架構或平臺中.通用的部分基本上都是我們根據長期的經驗和積累抽象出來固定的.比如我們使用的Enterprise Library中已經將數據訪問操作,日志操作,驗證緩存等封裝起來提供調用.
  2. 識別可變性和發(fā)現DSL. 找出其中變化的部分,并設計DSL, 通過DSL的表達式或模型提供給問題一個解決方案. 在使用Enterprise Library過程中,你發(fā)現其中大部分的變化的部分其實也相對"固定",他們還是基于你的模型,基于你的實體模型,服務模型,如果把這些元數據抽象出來,通過DSL來實現這些元數據的配置,那么就可以把這些部分直接生成到你的目標解決方案中.

優(yōu)勢 

  1. 大幅度的提高生產率. 生成代碼可比人工復制粘貼快多了。
  2. 使系統(tǒng)的規(guī)范性更強.    每個開發(fā)人員對某一個功能的都會有不同的實現方式,采用DSL設計模型,結合代碼生成能夠使功能的實現相對固定.
  3. 降低了犯錯的機會.
  4. 使非開發(fā)人員,那些顧問和售前,也能夠直接了解模型。使開發(fā)過程提前,甚至顧問的調研需求時,就可以使用工具和客戶溝通,抽象需求,從而提供給二次開發(fā)人員使用.
  5. 能夠在較高的抽象層次對解決方案進行驗證,過早的發(fā)現問題.
  6. 可以基于同一個模型配置不同的技術實現過程.降低技術難度和工作量。比如上次介紹的Sculpture,就可以針對不同的層次,提供不同的技術選擇。針對同一個模型,我們可以選擇使用Entity Framework或者NHibernate。UI層可以選擇Asp.net MVC,Sliverlight,WPF等不同的實現方式.
  7. DSL不局限于生成我們的技術方案,還可以用來生成構建腳本,文檔,計劃等。
  8. 使解決方案進行技術轉移變得相對容易,通過修改生成器或解釋器就可以做到。模型元數據相對固定,使我們的解決方案相對規(guī)范。我們只需要生成不同的代碼就可以了。

當然,這也是有前提的,一是開發(fā)DSL,進行抽象整合需要成本。二是并不是所有的解決方案都適合使用DSL,比如一個門戶網站,可能相對固定的部門很少,可以定制的部分也很少,就不適合使用,如果對不適合使用的強制使用就會陷進定制化陷阱。在設計和開發(fā)時,一定要保留一定的靈活性,因為不可能所有的代碼都能夠生成,你必須提供一定的擴展性,保證能夠對生成的代碼進行擴展。另外就是一定要保證實現的規(guī)范,實現方式太多,會導致你的DSL過于復雜。有些時候你甚至需要舍棄一些實現,舍棄一些需求!昂唵蔚膯栴}的解決應該簡單化,復雜問題的解決應該可能化”(smalltalk的創(chuàng)始人AlianKay).

系列介紹

本系列一開始將通過一個案例簡單的介紹DSL的開發(fā)流程,這個案例來源于DSL Tools Lab,主要介紹DSL的一些簡單開發(fā)方法,其中也包括T4與DSL結合完成代碼生成,DSL工具的部署. 主要是完成一個狀態(tài)機的DSL應用,具體我們會在接下來一一介紹。

對DSL的開發(fā)有過簡單的了解后,我們會對完成一個實際使用的完整的開發(fā)工具的開發(fā)。在這個過程中也會包含介紹DSL設計和開發(fā)過程以及應該注意的問題,當然也會包括DSL以及VSX的一些比較深層次的應用。


點擊放大

參考

Visual Studio DSL 工具特定領域開發(fā)指南   Doamin-Specific Development With Visual Studio DSL Tools

原文:http://www.cnblogs.com/lonely7345/archive/2010/01/24/1655495.html

本文鏈接:http://www.95time.cn/tech/program/2010/7364.asp 

出處:似水流年
責任編輯:bluehearts

上一頁 Visual Studio DSL 入門 [1] 下一頁

◎進入論壇網絡編程版塊參加討論

相關文章
Visual Studio調試中的斷點技巧
Visual Studio 簡介
關鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設計比賽 網頁制作 web標準 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設計大賽開啟
國際體驗設計大會7月將在京舉行
中國國防科技信息中心標志征集
云計算如何讓安全問題可控
云計算是多數企業(yè)唯一擁抱互聯網的機會
阿里行云
云手機年終巨獻,送禮標配299起
阿里巴巴CTO王堅的"云和互聯網觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標
數據同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:2/21個記錄/頁 轉到 頁 共2個記錄

藍色理想版權申明:除部分特別聲明不要轉載,或者授權我站獨家播發(fā)的文章外,大家可以自由轉載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權歸我站和作者共有。

轉載要求:轉載之圖片、文件,鏈接請不要盜鏈到本站,且不準打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設計作品,如需使用,請與原作者聯系,版權歸原作者所有,文章若有侵犯作者版權,請與我們聯系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內容無關的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網上道德,遵守中華人民共和國的各項有關法律法規(guī)
·承擔一切因您的行為而直接或間接導致的民事或刑事法律責任
·本站評論管理人員有權保留或刪除其管轄評論中的任意內容
·您在本站發(fā)表的作品,本站有權在網站內轉載或引用
·參與本評論即表明您已經閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內容
網站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網站UI 設計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設計》
犀利開發(fā)—jQuery內核詳解與實踐
作品集 更多內容

雜⑦雜⑧ Gold NORMANA V2