1

我想知道您在以下情况下的最终表现是什么行业标准或建议。

我正在创建多个在不同日期发布的 Silverlight 项目。所有这些项目都使用各种共享代码(通用 dll)。这些共享代码将用于客户端或服务器端。我的问题是,如果共享代码发生更改,您是否会重新编译所有受影响的项目并仅在您更改使用共享组件的实际代码时发布或重新编译?

现在,在客户端,我们在每个 silverlight 项目中创建一个程序集引用文件夹,并将最新的所需 dll 放入其中。通过这样做,它在 XAP 本身中具有所有必需的文件,并且不会与其他项目冲突,并且可以正常工作。使用这种方法,我不会仅仅因为公共 dll 更改而重建任何其他客户端代码。如果多个项目需要共同的 dll 更改,则在所有受影响的项目中删除最新副本并构建它们并分发它们。

另一方面,服务器端(使用 EF 的域服务),所有服务代码都位于网站的 bin 文件夹下。因此,如果我要更改一个通用 dll,那么我不仅需要发布最新的通用 dll 以使当前项目工作,而且还需要重新编译所有其他服务以使用新的 dll。

想知道您的意见和建议。谢谢

4

2 回答 2

0

有两种可能的方法:

  • 将公共代码添加到解决方案并具有项目参考
  • 获取构建过程以构建到文件夹并从那里引用

我更喜欢第一个选项。我总是使用最新的代码进行构建和调试,而不必担心过时的引用。我过去使用过第二种方法,它很混乱,并且可能会浪费您团队的时间来调试不存在的错误(引用旧版本)。事实上,我记得 Visual Studio 有时在可用时不会获得更高版本。

于 2011-04-01T15:48:08.907 回答
0

Silverlight 项目的另一种选择是使用 MEF 动态下载包含公共库的 XAP 文件。然后,如果公共库发生更改,您可以发布更新的“CommonLibraries.xap”,您的 Silverlight 客户端可以独立于 Silverlight 应用程序的其余部分进行刷新。

您可以对使用这些通用库的其他项目采用相同的方法。应用程序可以动态加载公共库,从而可以独立刷新公共库。

如果可能,请考虑通过 WCF 服务使用“公共库”代码。

于 2011-04-01T16:27:24.393 回答