使用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 @   GuYoung  阅读(1519)  评论(3编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
点击右上角即可分享
微信分享提示