工欲善其事,必先利其器。好的工具能够成倍提升工作效率。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 项目实战(二):设计过程与设计工具相关推荐

  1. ASP.NET Core 技术内幕与项目实战读后感

    前几天拿到了杨中科老师的新书<ASP.NET Core 技术内幕与项目实战>,迫不及待的"两"口气读完了.用一句话来总结,这是一本写给.NET开发者的非常实用的接地气的 ...

  2. Asp.net MVC 仿照博客园的简单网站首页 列表设计

    本来我打算采用ajax提交请求,异步的请求获取数据,但是我发现如果这样的话就会拖慢开发的进度,拖长时间.所以在这篇博客中仿照首页的列表设计其实和左侧列表网站分类采用了同样的方式,通过局部视图的方式呈现 ...

  3. Taro多端开发实现原理与项目实战(二)

    Taro多端开发实现原理与项目实战(二) 多端电商平台项目概述及开发准备 学习了前面的基础知识和进阶后是否跃跃欲试?我们准备了一个电商平台的项目来和大家一起实践使用 Taro 开发电商平台. 项目概述 ...

  4. flutter 项目实战二 网络请求

    本项目借用 逛丢 网站的部分数据,仅作为 flutter 开发学习之用. 逛丢官方网址:https://guangdiu.com/ flutter windows开发环境设置 flutter 项目实战 ...

  5. c语言期中项目实战二—简易扫雷,思路分析加代码详细注释

    c语言期中项目实战二-简易扫雷,思路分析+代码详细注释 游戏介绍 项目步骤 模块化编程 设置菜单 设置棋盘 打印棋盘 布置雷 排查雷 总结及总代码和详细注释 游戏介绍 扫雷这个经典游戏,直到现在仍有很 ...

  6. 看一下基于ASP.NET MVC的开源社区项目Orchard

    昨天介绍了基于ASP.NET MVC的框架Catharsis,今天给大家介绍的是基于ASP.NET MVC的一个开源社区项目Orchard,本篇主要介绍一下Orchard是什么,如何下载安装以及安装过 ...

  7. ASP.NET MVC 入门2、项目的目录结构与核心的DLL

    我们新建一个ASP.NET MVC的Web Application后,默认的情况下,项目的目录结构如下: App_Data :这个目录跟我们一般的ASP.NET website是一样的,用于存放数据. ...

  8. YbSoftwareFactory 代码生成插件【九】:基于JQuery、WebApi的ASP.NET MVC插件的代码生成项目主要技术解析...

    YbSoftwareFactory目前已可快速生成ASP.NET  WebForm.MVC.WinForm和WPF的解决方案源代码,所生成的源代码可直接在VS中打开并运行.终端用户还可自行二次开发自己 ...

  9. 学习 ASP.NET MVC (第二回)实战篇

    上篇简单的了解了ASP.NET MVC的基本概念和基本流程,接下来的几篇将通过简单的实例,来看看如何通过ASP.NET MVC创建应用程序.Demo很简单也很基础,高手绕过.   闲话少说,直接进入正 ...

最新文章

  1. 5G、物联网、人工智能和机器学习将成为2021年最重要的技术
  2. 《深入理解计算机网络》读书笔记一
  3. Linux如何在任务栏显示时间,在MFC[转载]在MFC状态栏显示时间 状态栏显示时间
  4. 吐血大奉献,打造cnblogs最新最火辣的css3模板(IE9以下请勿入内) -- 第一版
  5. Python合并字典的七种方式!
  6. VTK:InfoVis之KMeansClustering
  7. 报错:out cannot be resolved【已解决】
  8. 1.2编程基础之变量定义、赋值及转换 10 Hello, World 的大小
  9. android 加载layout,Android自定义View加载视图之LoadingLayout
  10. webstorm的下载以及React环境搭建
  11. thinkphp 接收小程序json数组
  12. PDO 学习与使用 ( 二 ) PDO 数据提取 和 预处理语句
  13. R包的安装以及安装失败的解决
  14. 基于 Spring Boot 的停车场管理系统
  15. 建筑企业“出租脚手架”究竟如何缴纳增值税
  16. 橄榄核雕:始知真放在精微
  17. 局域网有几台电脑频繁断网_电脑经常自动断网掉线分析
  18. CSS实现“大于号”或“小于号”箭头
  19. c# 时间格式化为英文_C#中如何将日期中的月份转化成英文
  20. WIN10与XP共享连接打印机

热门文章

  1. angular安装记录
  2. Python3 字典
  3. Spring-boot(一)
  4. 也许你需要点实用的-Web前端笔试题
  5. 第二阶段冲刺站立会议09
  6. 【转】 Pro Android学习笔记(二九):用户界面和控制(17):include和merge
  7. 用cookie实现叶卡的记忆功能
  8. 【原】两个时间相加的运算符重载实现
  9. matlab 矩阵jocobi迭代_第6章 解线性方程组的迭代法(基于MATLAB)
  10. 微信小程序的userInfoReadyCallback理解