[翻译]ASP.NET MVC
在今天,MVC(Model-View-Controller)设计模式与测试驱动开发方法(Test-Driven Development 简称TDD)被广泛应用于企业级WEB应用的开发中。MVC设计模式强制我们将应用分解成三个部分:模型(Model)负责业务数据的存储及管理,视图(View)负责呈现数据,并为用户提供与系统交互的界面接口,而控制器(Controller)则负责将用户动作转换成相应的业务数据集合传递给模型,或者将业务数据转换成相应的方式传递给视图。
使用MVC设计模式的一个最大的好处就是它简化了WEB应用开发中的TDD过程,因为它使我们避免了与复杂的图形用户界面(GUIs)交互。TDD需要开发者创建小粒度的单元测试用例,检测出执行失败的用例,编写代码以通过用例检测,最后要重构代码以应对需求变更。
直到2007年末,可用于ASP.NET的MVC框架只有开源框架MonoRail。而从2000年开始,Struts就成为Java平台上用于MVC架构的框架。PHP更是拥有十几种MVC框架。Ruby on Rails平台本身就自带了默认的MVC架构功能,并且其中包含一个"text/unit"库,用以整合单元测试功能。
在VS2002和VS2003中,Visual Studio开发小组仍然没有能为这个IDE提供单元测试功能和重构特性。终于,在VS2005的测试版中,单元测试功能(MSTest)被整合到这个IDE中,并且在VS2005的标准版和更高级版本中,为C#语言添加了重构机制。VS2008专业版及更高版本中也整合了MSTest,但是,在微软发布的VS2008和ASP.NET3.5中并没有提供对MVC的支持。
Tech Brief: Postback Model
前瞻
微软公司ASP.NET小组最新的副组长Scott Guthrie曾预测第一个基于ASP.NET3.5平台的MVC框架将于2007年10月诞生。那时,Guthrie曾承诺在来年的前半年里为ASP.NET提供完整的MVC特性。
紧接着,微软在12月份发布了一份MVC的社区技术预览(community technology preview 简称CTP),它是ASP.NET3.5扩展的一部分。这个扩展将包含ASP.NET动态数据(ASP.NET Dynamic Data),它是一个类似于Rails的脚手架(scaffolding)框架,这个技术使得快速开发基于数据驱动的MVC站点成为可能。基于SQL或基于实体的LINQ将作为模型的数据源。
本月早些时候,微软发布了ASP.NET MVC 预览版2,在这个预览版中,提供了MVC routing,并对测试功能进行了改进。另外,它还提供了VS2008开发环境中第一个支持MVC的模板,而且对动态数据进行了改进。
关键特性
根据Guthrie所讲,ASP.NET MVC框架的一些特性对Web开发人员非常重要,它包括以下几点:
1.NET MVC框架
相关文档:
效果图
Default.aspx页面的内容
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Verify._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www. ......
如有页面Admin,则在其cs文件中写如下代码:
protected void Page_Load(object sender, EventArgs e)
{
Response.AddHeader("Cache-Control", "no-cache");
Response.Expires = -1;
Response.Cache.SetNoStore();
Response.AddHeader("Pragma", "no-cache");
Response ......
Web页面是无状态的, 服务器对每一次请求都认为来自不同用户,因此,变量的状态在连续对同一页面的多次请求之间或在页面跳转时不会被保留。在用ASP.NET 设计开发一个Web系统时, 遇到一个重要的问题是如何保证数据在页面间进行正确、安全和高效地传送,Asp.net 提供了状态管理等多种技术来解决保存和传 ......
部门要做一个网站,我以前用的是php或asp做的,这回想改用asp.net做,主要基于两点考虑,第一:想通过asp.net学习c#及其.net框架。第二:自己又想偷懒,不想从头开始做网站,于是就想用开源的netcms来改改。于是有了我的系列文章。根据我的学习进度我会每天更新,请朋友们关注。 ......
在BS项目中,某个aspx页面需要引用外部脚本文件,通过在页面head节<script language="" src="">方式引用指定的js之后,仍然无效。通过alert方式调试,发现是由于js文件编码与js文件内容不符。由于js文件中包含中文注释,所以需要设置js文件为可识别中文的gb2312编码。其方法在网上也讲述,以下为网摘内容:
&n ......