公司代码库

时间:2010-09-27 14:08:18

标签: .net base

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

2 个答案:

答案 0 :(得分:4)

如果您在重复使用代码之后,无论最终用户界面是WinForms,WPF,Silverlight,WebForms还是其他任何内容,都应该确定共性。

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

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

基本上,我的观点是将您的公共代码建立在不同的垂直功能片上,而不是基于显示信息的最终UI。如果您编写好的代码,您应该能够将任何UI放在顶部(甚至顶部的多个UI)。

答案 1 :(得分:4)

这可能比你想象的要困难得多。这在很大程度上取决于你所从事的公司类型,他们从事的工作类型以及你的抱负范围。

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

我见过一家咨询公司(主要为客户提供自定义.NET业务应用程序)尝试重用代码,而且大多数情况并不漂亮。使用为一个自定义应用程序编写并在其中工作的代码并将其移动到另一个自定义应用程序比听起来更困难。通常,“一般”代码片段对整个应用程序做出假设,或者它依赖于某些特定于应用程序的代码并且删除该依赖性非常困难。

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

你说你想建立一个代码库,其中包含“内部员工开发的库,类等,并在不同的应用程序中及时使用”。对我来说,这表示你想在不同的项目之间共享代码,或者至少采用为一个项目编写的代码并在另一个项目中使用它。这是一个值得称赞的目标,但往往很难。正如我在上面所指出的,编写适用于单个项目的代码与编写可以由具有最少依赖性的多个项目使用的代码之间存在很大差异。可能,但很难。而且耗时。