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多个小型网络服务的数据。