1 MVC 概述以及 ASP. NET MVC
1. 1 MVC 概述
MVC 最早是在 1979 年由现挪威奥斯陆大学教授 Trygve Reenskaug 提出的,并应用于当时广泛使用的程序设计语言 Smalltalk 中,其主要目的就在于简化软件开发的复杂度,以一种概念简单却又权责分明的架构来撰写更模块化,可维护性更高的程序代码.因此,MVC 并不是一种程序语言,而是开发时所使用的一种"框架"( 架构) .MVC 框架中使软件开发分为三个主要单元: Model( 模型) 、View( 视图) 、Controller( 控制器) ,其定义和之间的关系如图 1:
1. 2 ASP. NET MVC
在 MVC 中有一个非常重要的概念"关注分离点"( Separation Of Concerns) ,就是指你在项目开发时可以只关注当前的对象,不用担心受到同项目中其它对象的干扰.微软长久以来致力于发展开发工具,希望能降低开发上的负担,因此基于 MVC 这种优秀的软件开发架构微软推出了 ASP. NETMVC,并且从第一版以来 ASP. NET MVC 就以微软公众授权开放源代码,同时 ASP. NET MVC 最大的优势就是可以通过 Visual Studio 这个庞大的开发平台来进行项目开发,而且 ASP. NET MVC 拥有非常清楚的关注分离点架构.所以,ASP. NET MVC 既拥有 MVC 优秀的架构又可以使用 Visual Studio 来建立、调试、维护开发项目,这使得对 Visual Studio 比较熟悉的人可以更容易分析和掌握 ASP. NETMVC 的核心技术.
2 ASP. NET MVC 中的数据处理
一个开发应用程序的项目中,数据的处理是最基础也是最核心的内容,ASP. NET MVC 也不例外.
首先我们要明确的一点是在 ASP. NET MVC 中,Model 负责所有与数据有关的工作,例如: 新增、删除、更改、查询等,同时 Model 的独立性非常高,所以它可以更好的专注于如何有效地提供数据访问机制、数据格式验证、商业逻辑验证等工作.
其次,当我们创建好数据模型,初次运行应用程序项目后 ASP. NET MVC 将会自动在对应的 APP_Data 目录下产生一组默认的数据库文档( * . mdf 或* . ldf) ,文档的命名规则为 aspnet - 项目名称 -日期时间. mdf,而整个项目的数据处理就是对这些数据文档的处理.
3 如何在 ASP. NET MVC 下开发数据层
微软的开发工具一向功能强大,这可以极大地降低项目开发上的负担,但在开发过程中却造成了开发人员过度依赖开发工具,反而降低了对数据库原理、网络原理、面向对象程序设计等基础知识的学习欲望.所以,充分掌握 ASP. NET MVC 下的数据库构成方式和技术特点并且能够适当调整 ASP.
NET MVC 自动生成的项目框架才能最终得到符合开发者需求的软件.
由于 ASP. NET MVC 还是基于面向对象的程序设计,因此在 Model 层上最好采用 ORM( ObjectRelational Mapping) 信息访问技术来开发.ORM 可以将结构化的关系型数据库映射成面向对象模型,在 ASP. NET MVC 中的具体体现也就是 Entity Framework.在选择采用了 Entity Framework 还是其它 ORM 开发技术后,根据项目的不同情况我们可以使用以下三种不同的数据库开发模式来进行数据库的开发:
1) 数据库优先开发模式数据库优先开发就是先进行数据库设计,以数据库里定义的数据结构为主体和依据来进行应用程序的开发.
2) 模型优先开发模式模型优先开发模式是指在 ORM 架构中先创建对象模型,应用程序的开发则依据这些对象模型,当要访问数据库时( 在 ASP. NET MVC 中) 通过 Entity Framework 数据提供者的协助就可以自动生成对应的 SQL 语句并创建完整的数据库.
3) 程序代码优先开发模式( Code first)这是一种比较新颖的开发模式,它是让开发人员直接根据项目需求先写出相关的类和属性代码也就是应用程序所需要用到的数据模型,然后通过 ORM 框架的管理再转换为实体模型.这种方法可以避免因为开发人员对数据库操作不熟悉而导致开发效率降低.
在当前较新版本的 Visual Studio 开发环境中 ASP. NET MVC 和 Entity Framework 都已经升级到第五版本,它们尤其强化了程序代码优先的开发模式.如图 3 所示,这是一段创建留言板用户信息数据模型的代码,当代码正确运行后这段程序将会在数据库中创建一个名为 UserInfo 的表格,这就和在数据库开发平台下创建数据表是一样的.当所有项目当中的要用到的数据模型都创建完毕,实际也就意味着我们已经完成了项目数据库的建立.
4 ASP. NET MVC 下的 Code first 数据库开发后的数据迁移问题
在使用 Code first 生成数据库后当数据库发生更改时,运行程序就会出现数据已更改的问题,这时可以删除数据库重新生成解决但是之前的数据就无法保留,为了保留之前的数据库数据,我们需要使用到 Code first 数据迁移.
首先,如果需要更改数据结构,必须是先更改 Model 类,然后使用 Code firs 数据迁移,如果直接先更改了数据库则使用数据迁移会报错.
其次,如果在项目中我们只是引用的 EF5. 0( Entity Framework5) 就不能达到直接安装 EF5 的效果同样无法完成数据迁移,这时我们就需要先安装 EF5. 0 执行此命令"Install - Package EntityFrame-work - Version 5. 0. 0"安装 EF5. 0,安装后 Model 类下会出现 packages. config( 如图 4) .现在我们就可以正常地开始操作数据迁移了.首先执行命令: Enable - MigrationsContextTypeName MovieDBContext开启 Code First 迁移.
5 结语
虽然通过使用 ASP. NET MVC 可以自动完成项目的大部分工作,极大地降低开发人员的工作负担,但对于整个 ASP. NET MVC 中最关键的一个部分 Model 来说,如果我们没有清晰的认识它是如何在 ASP. NET MVC 中运作的,不能很好地对它进行规划,我们也就没有办法做出一个好的 ASP. NETMVC 项目.
参考文献:
[1]李 园,陈世平. MVC 设计模式在 ASP. NET 平台中的应用[J]. 计算机工程与设计,2009,13: 3180 ~3184.
[2]蒋金楠. ASP. NET MVC4 框架揭秘[M]. 北京: 电子工业出版社,2013.
[3]甄 镭. NET 与设计模式[M]. 北京: 电子工业出版被,2005.
[4]黎永良,禚杜武. MVC 设计模式的改进与应用[J]. 计算机工程,2005,31( 9) : 96 ~98.
[5]赵增敏,吴 洁,唐惠康. 基于 Code First 模式的 ASP. NET MVC 应用开发[J]. 制造业自动化,2012,34( 6) : 154 ~156.
[6]孙高毅. 基于. NET 的 ASP. NET MVC 框架研究[D]. 长沙: 中南大学,2009.
[7]吴亚军. 试析 ASP. NET 的 MVC 开发模式 [J]. 电脑编程技巧与维护,2011( 14) : 77 ~78.
[8]陈晓丹,郑 毅. ASP. NET 开发环境下的 WebForm 与 MVC 设计模式[J]. 武汉工程职业技术学院学报,2009,( 06) .doi: 10. 3969 / j. issn. 1671 - 3524. 2009. 02. 011.
易大学服务平台采用ASP.NET框架技术来实现, 通过多层体系结构使系统开发更加有条理, 并有助于后期的扩展和维护。而且, 前端的模块化设计让大学生使用该平台更加方便, 并易于寻找到所需的学习资源, 从而增加平台的易用性。实际测试表明, 该平台能够真正有效地...
图书漂流是指漂友将自己不再阅读的书贴上特定的标签放到公园长椅、火车站候车室、广场等公共场所,供他人阅读,阅读之后,拾取人按照标签指示,再以同样的方式将书投放到公共场所中,如此接力下去。...
引言随着企业的发展,人才需求与日俱增,为加快人才队伍建设,引导员工多渠道成才,各单位都规划了多渠道人才培养成长路径,建立了多通道人才发展体系,提供每年各级各通道人才申报机会.由于各类通道的申报及考核的业绩材料涉及专业管理、建章立制、创新...
0引言20世纪80年代,全国高校就纷纷开始建设校园网络,现在各高校初步实现了网上办公、网上管理、网上教学、网上服务的教学模式。同时,国家教育部对于大学生体质测试提出明确要求,要求各高校对在校大学生能进行大学生体质测试并且实现在线查询。结合...
1前言随生活水平的不断提高,人们对旅游的意识也在不断增强,而目前,旅行社组织游客的主要方式为组团旅游,其特点是旅游路线固定,时间段固定。对旅行社业务进行支持的计算机软件系统也都停留在这方面的管理上。利用网络平台提供给用户自由行的旅游服务是...
Web应用是目前Internet上应用最广泛的信息服务,Web服务已经影响到广告、新闻、电子商务等各个服务领域。ASP和ASP.NET都是应用于web开发领域的开发平台。ASP(ActiveServerPages)是微软公司推出的一种取代CGI(CommonGatewayInterface)的技术。但是,随着We...
一、引言随着互联网在各行各业的逐步深入,目前互联网思维已经深入到社会生产的各个化解,成为了一种先进的生产力,促进者社会经济不断发展.为社会生产力的改革、发展提供了非常广阔的平台。绝大多数企业都建立了自己的网络营销平台,使用动态网站技术来建...
21世纪是信息化、网络化的时代,网络不仅开阔了人们的视野,也方便了人的生活。在网站和网络技术飞速发展、网络普及的今天,人们早已习惯了从网上查询新闻,查看自己感兴趣的话题。随着物质生活的日益丰富,人们在精神生活方面的要求也逐渐提高,再加上一年...
ASP.NET自2000年发布以来,以代码高效、开发简单、管理简便、语言支持新颖、程序结构清晰等优势倍受系统开发者所青睐,其相关技术被广泛应用于各行各业管理系统中。作为一种独立于浏览器的编程模型,ASP.NET为B/S模式下的网络应用软件开发提供了平...
根据项目开发所需的关键技术进行分析, 包括随机账号及二维码生成、投票统计及打印、自适应终端等, 解决特定场景下使用投票系统的需求。...