0

我有许多网站和基于 Web 的应用程序在专用 Web 服务器上运行。同一个盒子目前也运行数据库(这不太可能改变。)

我注意到我在不同项目中遇到的需求经常相互重复。所以,虽然我很安静,但我正在尝试重新规划各个站点的架构。

理想情况下,我想将重复的功能(登录、一些用户报告、错误报告等)提取到一个核心库中,这让我开始思考。

如果我制作了一个核心程序集,并将其添加到每个网站的 bin 中,那么它将与应用程序配置文件中的任何数据库进行通信。但是当事情发生变化时,这让我对版本控制/维护感到头疼。

我可以将这个核心库放在 GAC 中,这意味着我需要注册/取消注册它,但所有应用程序都可以根据需要包含和使用它。

或者我可以看到的第三种方法是使用 WCF Web 服务并向我的应用程序添加另一个内部层,在那里他们将核心工作移交给一组单独的 Web 服务。这样做的好处是,如果/当我们扩展时,所有接口都可以保留为一组 web 服务,让我的应用程序只进行 http 或 tcp 调用,而不必担心移动 bin 文件或 gac'ed 程序集。

基本上我在这里看看是否有人对这两种方法有任何想法/评论/批评,因为我不想开始走一条路然后不得不重新走另一条路,因为墨菲法规定它会出错就像我们有一项重要工作一样:)

4

1 回答 1

0

我建议根据需要使用该库作为参考(因此它位于应用程序的 bin 中)。

如果您需要对其中一份报告稍作改动怎么办?进行更改后,您是否计划对所有现有应用程序进行回归测试?
保留 dll 的不同副本允许您在必要时对其进行升级。
确保您可以找出哪个应用程序正在运行哪个版本的 dll。

从维护的角度来看,您并不总是希望更改有效的方法。
“会出错的,就会出错”,所以要限制可能出错的区域。

于 2012-09-07T11:20:28.573 回答