ASP.NET MVC设计之美

时间:2022-10-04 08:40:15

ASP.NET MVC设计之美

摘 要:随着国内电商平台的发展,网站的需求变得越来越大,开发网站的技术虽然很多,但真正主流的不过只有几种,而 MVC便是很好的一种选择。 MVC它是微软的一个web开发框架,融合了敏捷开发的思想与技术和平台的精华部分,正是设计网站的最好方式之一。本文将介绍 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框架,比如 Web Forms和PHP,视图本身不会被直接访问,浏览器不能直接指向一个视图并渲染它。相反,视图总是被控制器渲染,因为控制器为它提供了要渲染的数据。目前为止控制器操作只是简单的调用了return View()来进行渲染,还不需要指定视图的文件名。可以这么做,是因为它们利用了 MVC框架的一些隐式约定,这些约定定义了视图选择逻辑。记住之前在控制器所说的“约定大于配置”在这里依然适用。这是 MVC相对于Form的进步之处,也是它的特色。

Razor视图引擎是 MVC 3中新扩展的内容,并且他是默认视图引擎,Razor为视图提供一种精简的语法,最大限度地减少了语法和额外的字符。这样就有效地减少了语法障碍,并且在视图标记语言中也没有新的语法规则。Razor的设计理念是简单直观的,对于大多数应用,我们不必关心语法,只需要在插入代码时,输入HTML和@符号。

1.3 模型(Models)

模型是一个比较抽象的概念,主要是利用模型对象来构建 MVC应用程序,可以使用C#语言编写模型定义类,然后根据指定的模型类型使用基架生成应用程序的其他部分。这便是模型最常用也是最基础的一种存在。

在MVC中,控制器是C#类,通常派生于System.Web.MVC.Controller,开发者自己创建的每一个控制器通常都是从这个Controller派生而来的,派生而来的类中的每一个public方法都称为一个动作方法,它通过 路由系统与一个可配置的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)

表现层用于用户接口的展示,以及用业务层的类和对象来“驱动”这些接口。在中,该层包括aspx页面、用户控制、服务器控制以及某些与安全相关的类和对象。

3.2 业务层(Business Tier)

业务层用于访问数据层,从数据层取数据、修改数据以及删除数据,并将结果返回给表现层。在中,该层包括使用SqlClient或OleDb从SQL Server或Access数据库取数据、更新数据及删除数据,并把取得的数据放到DataReader或DataSet中返回给表现层。返回的数据也许只有一个整形数字,比如一个表的行记录数目,但这也要用数据层的数据进行计算。

3.3 数据层(Data Tier)

数据层是数据库或者数据源。在.NET中,通常它是一个SQL Server或Access数据库,但不仅限于此两种形式,它还可能是Oracle,mySQL,但 MVC最好就是用SQL Server。

参考文献:

[1] Adam Freeman(美).精通 MVC4[M].李萍,徐燕萍,林逸,译.人民邮电出版社,2014.

[2] Jon Galloway,Brad Wilson,K.Scott Allen,David Matson(美) . MVC 5高级编程[M].孙元帅,译.清华大学出版社,2015.

作者简介:穆海明(1994―),男,天津人,沈阳理工大学本科在读。

刘盼(1994―),男,山西运城人,沈阳理工大学本科在读。

齐斌(1994―),男,辽宁盘锦人,沈阳理工大学本科在读。

上一篇:一起人员跌落井道事故的反思 下一篇:合肥市浮白公路过路桁架桥结构安全验算