首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> 關於.NET

Visual Studio DSL 入門 2:專案需求分析與開發規劃

     編輯:關於.NET

承接系列首篇,我們正式進入 DSL 入門實戰系列。雖然 VS.NET DSL 在國內應用較少,但希望本系列能為技術選型提供參考,幫助開發者建立領域特定語言的實作視野。

一、開發環境準備

  • 基礎環境:Visual Studio 2008 SP1(系列撰寫時 VS2010 尚未正式發布)
  • VSX SDK:DSL Tools 包含於 Visual Studio SDK 1.1 中
    下載:https://msdn.microsoft.com/zh-cn/vsx/default(en-us).aspx
  • T4 編輯器:輔助 T4 範本編寫,VS 內建不支援 T4 語法高亮
    下載:https://www.t4editor.net/

二、案例需求:簡易狀態機模型

本系列將建構類似 UML 狀態圖 的 DSL,核心概念:

狀態

  • 名稱:區分狀態的字串,可為匿名
  • 分類:初始狀態、結束狀態
  • 進入/退出動作:狀態轉換時觸發的操作
  • 內部轉移:不改變狀態的轉移
  • 子狀態:巢狀結構,支援非連續(循序)或並行(同時)子狀態
  • 延遲事件:未在當前狀態處理,排隊等待其他狀態處理的事件

轉移

  • 來源狀態:轉移發起的狀態
  • 事件觸發器:滿足觸發條件的事件,有名稱者為顯式觸發,無名稱者為自動/隱式轉移
  • 守衛條件:布林運算式,接收事件時求值,True 才觸發轉移
  • 動作:不可分割的計算過程,可直接或間接作用於物件
  • 目標狀態:轉移完成後進入的狀態(可選)
  • 參數:事件觸發器方法的參數

關鍵提醒:模型與中繼資料皆源自需求描述,務必先釐清需求再動手建模。

三、系列開發規劃

  1. 建立簡單 DSL 模型專案
  2. 建構中繼資料模型:StateMachine、State、Transition(簡化:暫不處理子狀態等複雜結構)
  3. 建立對應圖形呈現
  4. 規範模型與圖表:新增規則與驗證
  5. 在 VS 實驗環境測試
  6. 改善使用者介面體驗
  7. 針對特定框架實作程式碼生成
  8. 建立安裝程式部署 DSL 專案

四、參考資源

  • DSL Tools Lab:https://code.msdn.microsoft.com/DSLToolsLab 系列教學
  • 台灣微軟 Paul 的 DSL 影音教學:https://msdn.microsoft.com/zh-tw/vstudio/cc963628.aspx
  • 專書:《Domain-Specific Development with Visual Studio DSL Tools》(有中文譯本)
  • VSX 進階系列:https://dotneteers.net/blogs/divedeeper/default.aspx?PageIndex=1

準備就緒,下一篇將啟動專案建立與基礎模型建構。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved