使用MVCQuick.Framework重构MVC Music Store(一)

MusicStore

MVC Music Store是基于最佳ASP.NETMVC入门教程,引导如何使用MVC和Visual Studio进行Web开发。MVC Music Store最新版本基于ASP.NET MVC 3使用Visual Studio 2010开发

MVCQuick.Framework

MVCQuick.一个快速开发ASP.NET MVC应用程序的原创开源框架。其中MVCQuick.Framework包括一个存储库、一个IoC容器、一个日志管理器、一个安全提供者。

实体对象定义:

    public class Album : EntityBase
{
public string Title { get; set; }
public decimal Price { get; set; }
public string AlbumArtUrl { get; set; }
public Genre Genre { get; set; }
public Artist Artist { get; set; }
public IEnumerable<OrderDetail> OrderDetails { get; set; }
}

 

存储:

//全局配置
NHibernateManager.Configuration();
NHibernateManager.AddMapping("MVCQuick",
typeof(EntityBase).Assembly,
typeof(Album).Assembly);
NHibernateManager.UpdateSchema();
ClassicContainer.Register<NHibernateRepository>("NHibernateRepository");


//使用
repository.Save<Cart>(cartItem);
var cartItems =
repository.Query<Cart>()
.Where(x => x.Guid == ShoppingCartId)
.ToList();

 

IoC容器:

ClassicContainer.Register<AccountController>("Account", properties);

日志:

//全局配置
Logger.ConfigureLog4Net(HttpContext.Current.Server.MapPath("~/log"), LogLevel.Info, LogLevel.Info);

//使用
Logger logger = Logger.GetLogger(filterContext.Controller.GetType());
logger.Error(filterContext.Exception);

 

成员提供者:

    <membership  defaultProvider="ClassicMembershipProvider">
<providers>
<clear/>
<add name="ClassicMembershipProvider" type="MVCQuick.Framework.Security.ClassicMembershipProvider"
enablePasswordRetrieval="false" enablePasswordReset="false" requiresUniqueEmail="false"
requiresQuestionAndAnswer="false" minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0" applicationName="MVCQuick" passwordFormat="Hashed" />
</providers>
</membership>

 

重构

1、Model

修改实体类,继承MVCQuick.Framework.EntityBase

使用 MVCQuick.Framework.Repository替换Entity Framework

2、Controller

使用 MVCQuick.Framework.Container将Controller与数据访问对象解藕

3、View

保持原状,修改部分字段

4、Configuration

将默认成员提供者、角色提供者替换为MVCQuick.Framework.Security.ClassicMembershipProvider、MVCQuick.Framework.Security.ClassicRoleProvider

增加日志功能

5、Test

测试运行效果

 

源代码下载:http://mvcquick.codeplex.com/   

 

posted @ 2011-10-24 13:21  GuYoung  阅读(1518)  评论(3编辑  收藏  举报