ASP.NET MVC 和组件架构
Posted
技术标签:
【中文标题】ASP.NET MVC 和组件架构【英文标题】:ASP.NET MVC & Component Architecture 【发布时间】:2012-11-06 19:21:30 【问题描述】:我想问的问题一直是asked before,但我还想知道2010年以来的问题:
-
如果服务包或 MVC4 改进了故事(尤其是视图)?
是否有一种技巧可以让“以通常方式”从单独的程序集中访问“添加控制器”向导?
是否有一种技巧可以让“以通常方式”从单独程序集中的控制器操作中访问“添加视图”向导?
咆哮 这个咆哮不是我问题的一部分,但我觉得它代表了房间里的白象。
在我链接的上述问题中发现的一个回复表明,单独的 MVC 程序集与 MVC“关注点分离”无关。我觉得这个答案有点像说“未来的 C# 版本将不支持程序集之间的交互,因为这种交互与面向对象的关注点分离无关。”
这两种说法在技术上可能都是正确的,但两种说法都忽略了关注点分离适用于不断增加的范围级别。换句话说,它不仅适用于对象或 MVC 级别,还适用于组件架构级别。
换一种说法,仅仅因为 ASP.NET MVC 在对象(或区域)级别支持“关注点分离”,并不意味着故事已经结束。我希望看到微软通过添加“ASP.NET MVC 组件”模板来简化故事,它允许控制器和视图(都带有工作向导)很容易成为单独程序集的一部分。
也许有人已经做了这样的事情?
【问题讨论】:
【参考方案1】:旁注:包括咆哮在内的任何问题都会被否决,因为它不是很客观。对未来的友好建议:保持问题的客观性。
是的,确实有一些技巧可以让工具在其他程序集中工作。我这里已经详细描述过了:http://blog.gauffin.org/2012/05/griffin-mvccontrib-the-plugin-system/
基本上你需要做到以下几点:
-
编辑类库的.csproj文件,添加以下内容:
<ProjectTypeGuids>E53F8FEA-EAE0-44A6-8774-FFD645390401;fae04ec0-301f-11d3-bf4b-00c04f79efbc
创建一个可以从其他程序集读取视图的VirtualPathProvider
指示 ASP.NET 构建管理器在查找控制器时包含您的类库。
.. 或者直接使用我的开源项目 Griffin.MvcContrib.
【讨论】:
以上是关于ASP.NET MVC 和组件架构的主要内容,如果未能解决你的问题,请参考以下文章