1

我正在考虑为我的公司构建一个代码库——保存由员工内部开发并及时用于不同应用程序的库、类等。目的是及时的代码可重用性。我的目标平台仅是 .NET - winForms、WPF、WEB、Silverlight 等。我正在考虑构建一个解决方案,该解决方案将为每种技术保存 2 个项目 - 1 个包含代码,另一个作为该代码的测试站点。处理所有这些不同的技术和代码的最佳解决方案是什么,你怎么看?

4

2 回答 2

4

如果您希望重用代码,则无论最终的 UI 是 WinForms、WPF、Silverlight、WebForms 还是其他任何东西,您都应该确定共性。

例如,如果您有一个计算贷款偿还的类,您不希望每种技术都有一个版本。您只需要一个可以在任何地方使用并传入请求并获得结果的 dll。

您可能还希望确保您的数据访问更加以数据为中心而不是以 UI 为中心,例如,确保只有一个“服务”与数据库表对话,以确保“服务”之上的任何内容都不会受到任何影响。更改表,甚至数据库。

从本质上讲,我的观点是将您的通用代码基于不同的垂直功能切片,而不是基于显示信息的最终 UI。如果您编写好的代码,您应该能够将任何 UI 置于顶部(甚至多个 UI 置于顶部)。

于 2010-09-27T14:25:22.770 回答
4

这可能比您想象的要困难得多。这在很大程度上取决于你在什么样的公司工作,他们做什么样的工作,以及你的抱负范围。

首先,您可能不想创建“框架”。您已经拥有 .NET Framework。也许您想就一组通用的自定义控件达成一致。有很多可供选择。我强烈建议您不要尝试编写自己的一组自定义控件,这些控件将在许多项目中重用。开发一个连贯一致的自定义控件库本身就是一项艰巨的工作,当您尝试将它们移至其他项目时,适用于特定项目的中途措施会惨遭失败。

我见过一家咨询公司(主要为客户定制 .NET 业务应用程序)尝试重用代码,但大多数情况下它并不美观。获取为一个自定义应用程序编写并在其中工作的代码并将其移动到另一个自定义应用程序比听起来要困难得多。通常,那段“通用”代码会对整个应用程序做出假设,或者它依赖于一些特定于应用程序的代码,并且移除这种依赖关系非常困难。

现在,如果您处于每个人都在处理相同类型数据的程序的环境中,您可能可以利用一组通用的数据访问和报告模块,以及一些通用算法。不过这里要小心。任何共享代码都必须具有尽可能少的依赖项。否则,潜在客户(即其他程序员)将更愿意推出自己的产品,而不是“包括世界”。

您说您要构建一个代码库,其中包含“由员工在内部开发并及时用于不同应用程序的库、类等”。对我来说,这意味着您希望在不同的项目之间共享代码,或者至少获取为一个项目编写的代码并在另一个项目中使用它。这是一个值得称赞的目标,但通常很困难。正如我上面所指出的,编写适用于单个项目的代码与编写可被多个项目使用且依赖最少的代码之间存在很大差异。可能,但很难。而且很费时间。

于 2010-09-27T17:11:32.070 回答