MVCScaffoding 和 EntityFramework Migration 在asp.net MVC中的应用(一)

我们遇到的一些问题

开发过程中如何管理数据库的变更?

1. 开发过程中,当开发人员A因开发需要,对数据库做了一次变更(比如,增加了N个字段),这时候开发人员B拿到代码就抓瞎了。我们以前的解决办法有:

1). 将数据库初始状态作为基线版本,每位程序员将每次变更保存为带版本号SQL文本,以跟踪每次变更。但程序员对于SQL脚本的掌握程度不一,导致脚本质量差别巨大,并且很容易遗漏一些内容(比如,主外键关系);

2). 使用共用的开发数据库,所有变更提交给DBA,这种模式的主要压力在于管理。我不建议在开发环境中多人共用一个数据库,大部分程序员直接与数据库对话,而不会找到DBA。而公用的开发数据库,某些变更(如删除了一个字段)可以导致全线瘫痪;

2. 很多时候,前端架构已经固定,但每次添加的列表、添加、编辑视图却是默认的内容。是否可以自定义asp.net MVC项目中添加的Views模板?

3. 大部分时候,使用ASP.Net MVC主要工作就是去完成CRUD的代码。而这些代码的大部分内容都是一个模子里印出来的,每次复制粘贴?这样把很多注释、自定义代码都复制了过来,太不靠谱了。

4. 当使用Code First进行开发时,有没有一种比较快捷的方式来创建Model?

相关工具和环境

1. NuGet:http://nuget.org/

 

2. 将开发环境修改为英语。因为MVCScaffolding/T4Scaffolding当前的一个Bug,在获取单复数时,取用了当前UI的语言。PluralizationService默认只支持英文

http://mvcscaffolding.codeplex.com/SourceControl/changeset/view/31fa7ea49b52#T4Scaffolding%2fCmdlets%2fGetPluralizedWordCmdlet.cs

        public GetPluralizedWordCmdlet() : base(null, null, null)
        {
            Culture = Thread.CurrentThread.CurrentUICulture.Name;
        }
 

创建MVC项目并安装工具

1. 创建MVC项目

image

2. 安装Entity Framework,MVCScaffolding,以及Model Scaffolding for MVC等

打开Package Manage Console(Tools - Library Package Manager – Package Manager Console)

image

Install-Package EntityFramework

(如果需要指定版本,可以使用-Version参数)

Install-Package MVCScaffolding
Install-Package ModelScaffolding

 

相关网站:

MVC 3.0:http://www.asp.net/mvc

MVCScaffolding:http://mvcscaffolding.codeplex.com/

http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/

ModelScaffolding:http://modelscaffolding.codeplex.com/

EntityFramework:http://www.asp.net/entity-framework

posted @ 2012-04-12 14:24  龙江  阅读(339)  评论(0编辑  收藏  举报