2010-09-27 123 views
1

我正在考虑为我的公司建立一个代码库,以便持有由员工在内部开发并在不同应用程序中及时使用的图书馆,班级等。目的是及时编码可重用性。我定位的平台只有.NET - winForms,WPF,WEB,Silverlight等。 我正在考虑构建一个解决方案,该解决方案为每个技术提供2个项目 - 其中包含代码,另一个作为该代码的测试站点。处理所有这些不同技术和代码的最佳解决方案是什么?您如何看待?公司代码库

回答

4

这可能比您想象的要困难得多。这在很大程度上取决于你在哪种公司工作,他们从事什么样的工作,以及你的雄心壮志。

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

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

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

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

4

如果您在代码重用之后,无论最终的UI是WinForms,WPF,Silverlight,WebForms还是其他任何东西,您都应该识别共同性。

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

您可能还希望确保您的数据访问更加以数据为中心而不是以用户界面为中心,例如,确保只有一个“服务”与数据库表交谈,以确保没有超出“服务”受到表格甚至数据库的任何更改的影响。

本质上,我的观点是将您的通用代码基于不同的垂直切片功能,而不是将其基于显示信息的最终用户界面。如果你编写了很好的代码,你应该可以把任何UI放在顶层(甚至是顶层的多个UI)。

+0

+1很好回答!!! – 2010-09-27 14:37:37