随笔分类 - MVCQuick
快速构建ASP.NET MVC3企业应用
摘要: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容器、一个日志管理器、一个安全提供者。
阅读全文
摘要:MVCQuick 0.3.1发布在MVCQuick 0.2.1基础上进一步优化,核心功能没有增加。Features使用NHibernate 3.2实现Repository(ORuM)使用Spring.Net 1.3.2实现Container(IoC)使用Common.Logging 1.2实现Log...
阅读全文
摘要:接NHibernate 3.2实现Repository(ORuM)前文
使用NHibernate-->NHibernate.Linq-->Linq,结合NHibernate和LINQ的优势,使Repository的对象持久化和对象查询两方面兼优,实现了鱼和熊掌兼得。
使用LINQ重构Repository
Repository成效
Repository执行过程分析
阅读全文
摘要:在.NET Framework 3.5中提供了LINQ 支持后,Linq的呼声一度很高,各种LINQ Provider更是满天飞。他能够将数据查询语句集成到编程语言中,以一种统一的方式操作各种数据源,减少数据访问的复杂性。而LINQ本身也提供了很 好的扩展性,使开发人员可以轻松地编写属于自己的LINQ Provider。
在NHibernate 3.0.0 之前版本中并不存在Linq功能,Ayende Rahien贡献者为NHibernate2.1.0GA和NHibernate2.1.2GA版本设计第三方NHiberante.Linq.dll(对应为NHibernate.Linq-1.0.0.GA-bin.zip和NHibernate.Linq-2.1.2-GA-Bin.zip)(目前已经停止了维护),它是基于Criteria API的Linq Provider,主要功能是将简单的Linq表达式转化为Criteria API,由于Criteria API的功能有限,所以存在很多天生的不足(联接和子查询不支持)。如果使用NHibernate2.1.0GA或者NHibernate
阅读全文
摘要:LINQ(Language Integrated Query,语言集成查询),发音 "link",是一组技术的名称。LINQ是 Visual Studio 2008 和 .NET Framework 3.5 版中引入的一项创新功能,它在对象领域和数据领域之间架起了一座桥梁。LINQ 将强大的查询功能扩展到 C# 和 Visual Basic 的语言语法中,并采用标准的、易于学习的查询模式。可以对此技术进行扩展以支持几乎任何类型的数据存储。
传统上,针对数据的查询都是以简单的字符串表示,而没有编译时类型检查或 IntelliSense 支持。 此外,您还必须针对以下各种数据源学习一种不同的查询语言:SQL 数据库、XML 文档、各种 Web 服务等等。 LINQ 使查询成为 C# 和 Visual Basic 中的一流语言构造。 您可以使用语言关键字和熟悉的运算符针对强类型化对象集合编写查询。 下图显示了一个用 C# 语言编写的、不完整的 LINQ 查询,该查询针对 SQL Server 数据库,并具有完全类型检查和 IntelliSense 支持。
阅读全文
摘要:LINQ扩展性
LINQ查询数据源
Linq Provider
Linq Provider实现方法
Linq to Sql Provider
LINQ 提供程序列表
阅读全文
摘要:System.Web.Profile.ProfileProvider类
定义 ASP.NET 为使用自定义配置文件提供程序提供配置文件服务而实现的协定。
继承层次结构:
System.Object
System.Configuration.Provider.ProviderBase
System.Configuration.SettingsProvider
System.Web.Profile.ProfileProvider
System.Web.Profile.SqlProfileProvider
ASP.NET 配置文件提供对用户特定属性的持久性存储和检索。 配置文件属性值和信息按照由 ProfileProvider 实现确定的方式存储在数据源中。 您可以使用 .NET Framework 附带的配置文件提供程序(由派生自 ProfileProvider 抽象类的类表示),也可以通过创建派生自 ProfileProvider 的新类来实现自己的提供程序。
创建自定义配置文件提供程序有两个主要原因:
您
阅读全文
摘要:System.Web.Security.RoleProvider类
定义 ASP.NET 为使用自定义角色提供程序提供角色管理服务而实现的协定。
继承层次结构:
System.Object
System.Configuration.Provider.ProviderBase
System.Web.Security.RoleProvider
System.Web.ClientServices.Providers.ClientRoleProvider
System.Web.Security.AuthorizationStoreRoleProvider
System.Web.Security.SqlRoleProvider
System.Web.Security.WindowsTokenRoleProvider
ASP.NET 角色管理旨在使您可以轻松地将多个不同的角色提供程序用于您的 ASP.NET 应用程序。 您可以使用 .NET Framework 附带的角色提供程序,也可以实现自己的提供程序
阅读全文
摘要:System.Web.Security.MembershipProvider类
定义 ASP.NET 为使用自定义成员资格提供程序提供成员资格服务而实现的协定。
继承层次结构:
System.Object
System.Configuration.Provider.ProviderBase
System.Web.Security.MembershipProvider
System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider
System.Web.ClientServices.Providers.ClientWindowsAuthenticationMembershipProvider
System.Web.Security.ActiveDirectoryMembershipProvider
System.Web.Security.SqlMembershipProvider
ASP.NET 成员资格
阅读全文
摘要:接“ASP.NET Security Provider实现(一)”
为了实现MembershipProvider、RoleProvider、ProfileProvider,需要定义存储相关的实体类和业务逻辑相关的存储类。由于使用了MVCQuick.Framework的存储和IoC容器,实现了业务逻辑与持久化分离。
阅读全文
摘要:ASP.NET Provider
从ASP.NET2.0中,提供了各类的provider,有membership,role,profile等的,可以很方便地实现如角色,用户等管理,甚至不用自己写代码了。这些provider在ASP.NET 4.0、ASP.NET MVC中同样适用。
阅读全文
摘要:log4net
阅读全文
摘要:ASP.NET MVC Filter
action filter作为一个可以应用到controller action(或者是整个controller)上的属性(Attribute),改变action执行的行为。
阅读全文
摘要:Common.Logging
阅读全文
摘要:Common.Logging
Common.Logging是一个通用日志接口,具体实现可采用log4net、EntLib的日志、NLog等。
log4net
log4net是一个第三方开源组件,它设计的主要目的是组合,生成日志信息,同时将配置保存到各种存储介质或者展现平台中,在实际项目中,Log4net 可以保存系统运行情况,可以在系统出现异常时,根据保存的日志信息,查看当时系统的状态。
log4net是Log4j的.NET版本,用C#编写,它与Log4j一样,具有可配置性灵活、线程安全、对日志的级别管理方便等优点。
阅读全文
摘要:Spring.NET
阅读全文
摘要:架构模式IoC
阅读全文
摘要:ControllerFactory
ControllerFactory是基于路由的组件,它选择正确的controller并对其实例化。default factory会查找实现了IController并且以Controller结尾的类,然后通过反射使用无参构造函数进行实例化。
但如果您希望使用依赖注入,就不能再使用default factory,而必须使用支持IoC的controller factory。
使用支持IoC(依赖注入)的controller factory, 优点在于松耦合,可测试性很好。如果在Controller里面想要使用某些Service,要么new出来,要么用单例的形式,如UserService.Instance,这样想对Controller写单元测试都不容易,它和这些Service耦合太紧密,无法将这些Service替换成Stub实现。因此,松耦合是必须的。要实现这个功能,必须让依赖注入框架来创建Controller,才有可能注入依赖并组装对象。MVC里面有一个ControllerFactory的东西,可以使用来达到这个目的。
阅读全文
摘要:IoC(Inversion of Control,控制反转)
IoC别名DI(Dependency Injection,依赖注入)。Spring将IoC和DI看作等同的概念。
IoC是一种架构模式。
IoC其原理是基于OO设计原则的The Hollywood Principle(好莱坞原则):Don't call us, we'll call you(你不用找我们,我们会找你的),就是由容器来控制业务对象之间的依赖关系,而非传统实现中,由代码直接操控,这也就是所谓“控制反转”的概念所在,控制权由应用代码中转到了外部容器,控制权的转移,是所谓反转。控制权的转移带来的好处就是降低了业务对象之间的依赖程度。
Spring.NET
Spring.NET是一个应用程序框架,其目的是协助开发人员创建企业级的.NET应用程序。它提供了很多方面的功能,比如依赖注入、面向方面编程(AOP)、数据访问抽象及ASP.NET扩展等等。Spring.NET以Java版的Spring框架为基础,将Spring.Java的核心概念与思想移植到了.NET平台上。
阅读全文
摘要:NHibernate
阅读全文