穆海明 刘盼 齐斌
摘 要:随着国内电商平台的发展,网站的需求变得越来越大,开发网站的技术虽然很多,但真正主流的不过只有几种,而ASP.NET MVC便是很好的一种选择。ASP.NET MVC它是微软的一个web开发框架,融合了敏捷开发的思想与技术和asp.net平台的精华部分,正是设计网站的最好方式之一。本文将介绍ASP.NET MVC框架的内容,以及如何便捷地开发网站,仅此希望这门技术为IT行业的发展带来巨大进步。
关键词:MVC;控制器;视图;模型;路由;三层架构
1 MVC模式
1.1 控制器(Controller)
MVC模式中的控制器(Controller)主要负责响应用户的输入,并且在响应时修改模型(model)。通过这种方式,MVC模式中的控制器主要关注的是应用程序流、输入数据的处理,以及对相关视图输出数据的提供。从本质上来讲,控制器只是简单的C#类,在控制器中的每一个public方法都称为一个动作方法,即可以用某个URL通过web来调用它,以执行一个动作。MVC约定,把控制器都放在一个名为Controller的文件夹中,这是Visual Studio在建立项目时为用户自动创建的。这项约定虽然不一定要遵循,单遵循着一约定会为开发带来很大的便捷,也就是常说的约定大于配置。
1.2 视图(View)
视图的职责是向用户提供用户界面。当控制器针对被请求的URL执行完合适的逻辑后,就将要显示的内容委托给视图。不像基于文件的Web框架,比如ASP.NET Web Forms和PHP,视图本身不会被直接访问,浏览器不能直接指向一个视图并渲染它。相反,视图总是被控制器渲染,因为控制器为它提供了要渲染的数据。目前为止控制器操作只是简单的调用了return View()来进行渲染,还不需要指定视图的文件名。可以这么做,是因为它们利用了ASP.NET MVC框架的一些隐式约定,这些约定定义了视图选择逻辑。记住之前在控制器所说的“约定大于配置”在这里依然适用。这是ASP.NET MVC相对于Form的进步之处,也是它的特色。
Razor视图引擎是ASP.NET MVC 3中新扩展的内容,并且他是默认视图引擎,Razor为视图提供一种精简的语法,最大限度地减少了语法和额外的字符。这样就有效地减少了语法障碍,并且在视图标记语言中也没有新的语法规则。Razor的设计理念是简单直观的,对于大多数应用,我们不必关心语法,只需要在插入代码时,输入HTML和@符号。
1.3 模型(Models)
模型是一个比较抽象的概念,主要是利用模型对象来构建ASP.NET MVC应用程序,可以使用C#语言编写模型定义类,然后根据指定的模型类型使用基架生成应用程序的其他部分。这便是模型最常用也是最基础的一种存在。
在MVC中,控制器是C#类,通常派生于System.Web.MVC.Controller,开发者自己创建的每一个控制器通常都是从这个Controller派生而来的,派生而来的类中的每一个public方法都称为一个动作方法,它通过ASP.NET 路由系统与一个可配置的URL相关联。当一个请求被发送到与一个动作方法相关联的URL时,便执行控制器类中的语句,以进行域模型上的一些操作,然后选择一个视图来显示给客户端。这就是控制器、模型及视图之间的交互。
2 路由
2.1 URL
URI代表统一资源标识符。URL是标识了一个资源的字符串。从技术角度看,所有URL都是URI。W3C认为“URL是一个正式的概念,但它非常有用:URL是URI的一种类型,它通过表示自身的主要访问机制来标识资源”。换句话说,URI是某种资源的标识符,而URL则为获取该资源提供了具体的信息。
2.2 URL模式
路由系统用一组路由来实现它的功能。这些路由共同组成了应用程序的URL架构(Schema)或方案(Scheme),这种URL架构(或方案)是应用程序能够识别并能对之作出响应的一组URL。不需要手动输入打算支持的各个URL,而是让每一条路由都包含一个URL模式,用它与一个输入URL进行比较。如果该模式与这个URL匹配,那么它(URL模式)便被路由系统用来对这个URL进行处理。
3 三层架构的网站设计
所谓的三层指的是,表现层,业务层和数据层,它的优点是每一层仅用少量的代码实现各层的功能,非常灵活,如果把数据访问代码与业务逻辑层分离,当数据库服务器更改后,你只需要更改数据访问的代码,因为业务逻辑层是不变的。逻辑层和数据层的分离后让你后期的改动变得更加方便,便于开发和后期调试。而且这种架构使得程序员之间可以出现协助工作,这种更高效的开发便是如今的主流,下面具体介绍每层具体的功能。
3.1 表现层(Presentation Layer)
表现层用于用户接口的展示,以及用业务层的类和对象来“驱动”这些接口。在ASP.NET中,该层包括aspx页面、用户控制、服务器控制以及某些与安全相关的类和对象。
3.2 业务层(Business Tier)
业务层用于访问数据层,从数据层取数据、修改数据以及删除数据,并将结果返回给表现层。在ASP.NET中,该层包括使用SqlClient或OleDb从SQL Server或Access数据库取数据、更新数据及删除数据,并把取得的数据放到DataReader或DataSet中返回给表现层。返回的数据也许只有一个整形数字,比如一个表的行记录数目,但这也要用数据层的数据进行计算。
3.3 数据层(Data Tier)
数据层是数据库或者数据源。在.NET中,通常它是一个SQL Server或Access数据库,但不仅限于此两种形式,它还可能是Oracle,mySQL,但ASP.NET MVC最好就是用SQL Server。
参考文献:
[1] Adam Freeman(美).精通ASP.NET MVC4[M].李萍,徐燕萍,林逸,译.人民邮电出版社,2014.
[2] Jon Galloway,Brad Wilson,K.Scott Allen,David Matson(美) . ASP.NET MVC 5高级编程[M].孙元帅,译.清华大学出版社,2015.
作者简介:穆海明(1994—),男,天津人,沈阳理工大学本科在读。
刘盼(1994—),男,山西运城人,沈阳理工大学本科在读。
齐斌(1994—),男,辽宁盘锦人,沈阳理工大学本科在读。