ASP.NET MVC + ADO.NET EF 项目实战(二):设计过程与设计工具
工欲善其事,必先利其器。好的工具能夠成倍提升工作效率。ASP.NET MVC和ADO.NET EF也是因為其工具出色而受到歡迎。例如:
- MVC所提供的View模板工具;
- MVC所提供的View切換、向導工具;
- ADO.NET EF提供的模型設計工具;
- ADO.NET EF提供的數據庫模型導入工具。
本文僅僅討論項目實戰中的設計工具。
需求設計工具
本文所指的需求設計是指將需求規格說明書(SRS)展開為詳細設計說明書(PDS)的過程。Visual Studio即使是TeamSuit版本也沒有提供需求設計工具。對于架構師而言,這的確是一個遺憾。導致這一遺憾的主要原因并不在Microsoft,而是業界沒有統一的需求設計標準。需求設計有三個范疇:
- 需求歸納和抽象:產生需求任務、需求序列和需求限制
- 需求映射:模塊及功能分割、模塊與任務對應
- 用例展開:產生具體用例
對于系統總體來說,需求設計是細化;對于模塊設計來說,需求設計是抽象;對于開發工作項來說,需求設計是大綱。如果你是一名電影導演,把一個電影文學劇本變成一個分鏡頭劇本的過程就是需求設計。
最常用的需求設計方法 就是石川圖法,俗稱魚骨圖法。一語道破天機,最好的需求設計工具就是思維導圖,也稱為頭腦風暴。
我見過的最好的思維導圖工具就是Mindjet MindManager。最新的版本是8.0。
數據庫設計工具
有了PDS,就可以進行數據庫設計了。如果你理解的數據庫設計就是建表、建字段、建存貯過程,那你就太草率了,就不能算是合格的設計人員。數據庫設計是基于Entity Ralationship的,除了Table、Column這些主要的數據庫對象外,必須將每一個編碼映射到業務細節。你的設計成果,必須令每一個閱讀者都可以快速地了解每一個規則的細節。數據庫設計成果是設計業務層的基礎。聰明的業務設計人員會把一個ER圖置于手邊,隨時查閱。
如果你用MS SQL Server可以直接在SQL Server Management Studio中進行設計,當然,這樣設計的缺陷是直接產生了初始數據庫而不是文檔化的Schema,無法保存復雜的業務信息。在你需要重復利用數據庫設計成果的時候,不得不繞一些彎子,例如,你不得不面對類似ADO.NET EF從數據庫導入模型這樣的困擾。所以,我的建議還是去選擇一個適合自己的數據庫設計工具。
我見過的最好的數據庫設計工具仍然是Power Designer。最新的版本是15.0。對細節的不斷追求,令用戶感受到PD的體貼入微。
當然,ER設計工具的鼻祖ER Studio也是一個非常好的選擇,ER Studio最新的版本是8.0,是最新版本的RAD Studio 2010的標準數據庫設計工具配置。當然,用起來也非常方便,并支持各種UML文檔格式的導入導出。
此外,有很多免費的ER設計工具,都提供了數據庫概念模型與物理模型的可視化設計,并且不限定目標數據庫平臺。
XML設計工具
XML在系統設計中的作用越來越廣。十年來,我所有經歷的項目都無法回避對XML的需要。適當的XML文檔不僅填補了語言功能的不足,使系統實施時足夠靈活,而且對于處理非扁平數據結構極為方便。特別是當前的數據庫系統大都支持XML數據處理,廣泛使用XML可以極大地簡化業務邏輯。例如處理業務規則配置(如權限),XML相比Attribute更自由靈活。
可選的XML工具非常多,常用的有三個:Visual Studio本身:Visual Studio本身就有比較強的XML設計功能,但不支持XPath一直以來對我來說都是一個困惑;Altova XMLSpy和Stylus Studio:都是非常專業的XML工具,可惜用起來略顯笨重。以下是我個人對以上三個工具特性的簡單評價。
| 特性 | Visual Studio | Stylus Studio | Altova XMLSpy |
| 編輯功能 | +++ | ++ | +++ |
| 命名空間支持 | +++ | +++ | +- |
| Schema設計 | + | ++ | ++ |
| 智能感知 | +++ | ++ | +++ |
| XPath支持 | - | +++ | ++ |
| XSLT支持 | + | +++ | ++ |
| 外觀 | +++ | ++ | ++ |
當然,不容置疑的是,Visual Studio是最方便的。
轉載于:https://www.cnblogs.com/Barton131420/archive/2009/09/29/1576471.html
總結
以上是生活随笔為你收集整理的ASP.NET MVC + ADO.NET EF 项目实战(二):设计过程与设计工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人工鱼群算法解决TSP问题
- 下一篇: Binding是WPF的核心,WPF的常