博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【翻译】7个ASP.NET MVC最佳实践
阅读量:5150 次
发布时间:2019-06-13

本文共 2455 字,大约阅读时间需要 8 分钟。

翻译自:

ASP.NET MVC是一个轻量级的、高度可测试的展示框架。

问题:如何从ASP.NET MVC3迁移到ASP.NET MVC4?

1、在web.config文件定位下面文本:     System.Web.Mvc, Version=3.0.0.0     System.Web.WebPages, Version=1.0.0.0     System.Web.Helpers, Version=1.0.0.0     System.Web.WebPages.Razor, Version=1.0.0.02、将上面的文本用下面的文本替换:     System.Web.Mvc, Version=4.0.0.0     System.Web.WebPages, Version=2.0.0.0     System.Web.Helpers, Version=2.0.0.0,     System.Web.WebPages.Razor, Version=2.0.0.0,3、删除所有项目中对ASP.NET MVC 3程序集的引用:     System.Web.Mvc (v3.0.0.0)     System.Web.WebPages (v1.0.0.0)     System.Web.Razor (v1.0.0.0)     System.Web.WebPages.Deployment (v1.0.0.0)     System.Web.WebPages.Razor (v1.0.0.0)4、添加对ASP.NET MVC 4程序集的引用:     System.Web.Mvc (v4.0.0.0)     System.Web.WebPages (v2.0.0.0)      System.Web.Razor (v2.0.0.0)     System.Web.WebPages.Deployment (v2.0.0.0)     System.Web.WebPages.Razor (v2.0.0.0)

以下是我们在开发ASP.NET MVC应用时常用的7个最佳实践。

1、缓存数据

     我们可以通过缓存不常变化的数据来改善应用的性能。这将节省服务端与客户端间的带宽(带宽就是钱)。但是注意不要缓存敏感数据,不要缓存需要验证的数据,不要缓存用户私人信息,也不宜缓存经常动态变化的数据。比如下面:

public class HomeController: Controller{   [OutputCache(Duration=3600, VaryByParam="none"]   public ActionResult Index()   {      ...   }}

 

2、将数据访问逻辑从控制器中解耦

     这个最主要的就是体现职责分离原则。ASP.NET MVC控制器决不应该包含数据访问逻辑。ASP.NET MVC中的控制器的职责只是根据用户请求选择合适的视图返回给用户。我们应该利用Repository Pattern实现从控制器中分离数据访问逻辑。我们或许需要在运行时注入合适的Repository。比如下面的一个例子(.NET中常见,Java中我基本没见过,我自己写的一个例子):

public class HomeController: Controller{   public IRepository BookRepository {      return BookRepository.Instance();   }   ...}

 

3、使用Master视图模型

     在ASP.NET应用中,我们经常需要使用Master Pages。每个页面都继承Master Page以获得一致的外观和共同的功能(如工具栏)。我们可以使用下面的代码来设定Master视图模型:

public class ViewModelBase{   public ViewModeBase()   {      ...   }}
 

4、为视图指定强类型模型(Strongly Typed Model)

 

5、使用Data Annotation进行服务端代码数据验证

我们可以使用System.ComponentModel.DataAnnotations程序集的功能来验证服务端代码,只需要添加必需的属性,如下:

public class Employee{   [Required(ErrorMessage="Employee name must not be empty")]   public string Name { get;set; }}
 

6、利用模型绑定

     比如有如下代码:

[AcceptVerbs(HttpVerbs.Post)]public ActionResult Create(){    Employee employee = new Employee();    employee.Name = Request.Form["Name"];        // ...        return View();}

   可以利用模型绑定,改写成下面的代码:

public ActionResult Create(FormCollection values){    Employee employee = new Employee();    employee.Name = values["Name"];                      // ...                return View();}

 

7、使用缓存框架

    比如Microsoft的Velocity以及开源框架Memcache

转载于:https://www.cnblogs.com/feichexia/archive/2012/12/29/ASPDoNET_7_Best_Practices.html

你可能感兴趣的文章