view与controller命名
如果某层需要扩展可以增加一个例如dao
一:分离view和controller
把view与controller分离到两个不同的项目中,层次更清晰
这点很简单只需要新建一个类库,添加System.Web.Mvc.dll的引用就可以建立Controller了,
然后就可以把默认项目中的controller删除了,引用一个新建的类库,Controller就可以正常使用了
注意:由于controller被单独放到了一层 ,使用request,session这些需要引用Ssytem.Web这个DLL
二:在建立service,dao添加引用就可以了,主要是使用unity依赖注入controler与分层配置的方法
1:使用unity依赖注入controler
http://www.cnblogs.com/ldp615/archive/2011/08/16/asp-net-mvc-3-unity-dependency-resolver.html
http://blog.csdn.net/aojiancc2/article/details/21557157
http://blog.csdn.net/aojiancc2/article/details/21543219
2:分层配置unity
每一层都有单独unity的映射配置文件
需要解决两个问题
a:如何读取不同层的unity配置信息
http://blog.csdn.net/aojiancc2/article/details/21618299
b:将每层读取到的信息放入到unity里
IUnityContainer container = new UnityContainer();
//Controller层unity配置文件
UnityConfigurationSection unityController = (UnityConfigurationSection)ConfigurationManager.GetSection("unity");
//Service层unity配置文件
UnityConfigurationSection unityService = ConfigManager.GetSection<UnityConfigurationSection>("unity");
container.LoadConfiguration(unityController, "UnityController");
container.LoadConfiguration(unityService, "UnityService");
三:常见问题
未能加载文件或程序集“Microsoft.Practices.Unity, Version=2.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
这是由于版本不同,右键你的Microsoft.Practices.Unity看属性就知道了
重新引用下就可以了