GAC在mvc站点之间共享代码的替代方案
目前,我们在gac中注册了c#对象,我们用它来输出html / string作为我们Web应用程序的通用菜单。
gac注册对象的好处是我们可以更新gac对象,并且引用它的所有应用程序都可以非常有效地获得更新。 html菜单引用了公共位置的一些js和css资源。
c#对象确实根据服务器/环境等执行某些逻辑。
是否有除GAC对象之外的其他选择来执行类似的function。
我曾考虑从另一个项目/控制器引用一个mvc视图,但是存在延迟问题(即菜单是在页面的其余部分之后呈现的)。 我觉得它作为页面的一部分呈现时效果最好。
其他想法/想法/选项?
我相信您可以使用web.config手动指示每个站点在公共位置查找特定程序集:
http://msdn.microsoft.com/en-us/library/4191fzwb(v=vs.90).aspx
来自文章:
或者,您可以设置“探测”来搜索整个目录中的公共库(也可以从文章中):
在十年内,我从未使用过GAC,虽然我通过TeamCity设置了一个内部NuGet服务器,并且当我的共享库更新时让CI完成所有重建,我不会在这里使用它,我不这么认为。
我的直觉是为这种东西构建一个小的Web服务,并让其他服务器以可扩展的forms(JSON / XML)发送他们的数据/状态,即基于服务器/环境的逻辑所需的数据,并且具有Web服务执行逻辑并发送回模型中的数据以转换为HTML或HTML本身。
添加一些缓存控制头,然后当我想要更改行为时,我会更新Web服务逻辑。
编辑
我记得Martin Fowler在博客中谈到了这种方法。
http://martinfowler.com/articles/microservices.html
所以这就是我几年来的工作方式。 当然我们在DLL中有编程逻辑,但是对于业务逻辑而言,我们将它放在许多小的Web API中,而不是将它放在库中,然后它也可以打开其他语言和mash-up,PowerShell等。
我想我所说的是不同的架构方法可以提供帮助。
顺便说一下,当我在2008年读到的时候,我第一次听说这个,亚马逊的主页收集了来自100多个小型网络服务的数据。