产品解决方案组织

时间:2009-06-11 09:17:42

标签: c# .net visual-studio msbuild agile

我们有一个基础产品,为每个客户提供定制开发,扩展并覆盖基础功能。

我们还有一个基础产品的自定义框架。

我们使用继承的表单覆盖基本功能,并且迄今为止所有表单和类都集中在相同的项目中,即UI,数据,业务......

我们现在需要清理代码库以允许多个客户端项目立即运行基础产品,我正在寻找以下领域的建议:

  1. 组织解决方案以符合上述要求的方法,解决方案中的项目数量非常大,我们希望减少这一点以提高开发人员的工作效率,我们考虑使用Framework DLL引用而不是项目引用< / LI>
  2. 我们缺少任何构建和部署技巧,我们目前有半自动构建和发布过程
  3. 管理版本控制的最佳方式是什么
  4. 任何产品开发的最佳实践

2 个答案:

答案 0 :(得分:1)

我个人坚信高度模块化的架构很适合:核心应用程序应该提供基本/公共服务,所有客户特定的功能都应该作为插件实现(想想MEF)。因此,有几个想法:

  1. 我会为核心应用程序寻找一个解决方案,并为每个客户提供额外的解决方案。
  2. 一步到位是必须的。只需花一些时间编写一些MSBuild脚本:这将得到10倍的回报。
  3. 请参阅APR's Version Numbering获取灵感。
  4. 问题太广了。

答案 1 :(得分:1)

我可以就你的第一个问题和第四个问题给你一个建议:如果我是你,我会选择一个框架DLL解决方案,该解决方案可以轻松管理并由团队进一步开发,并为每个子请求提供不同的解决方案项目。但是,框架解决方案必须得到适当的开发,特别注意一个设计原则:开放/封闭原则[1],因此框架的未来发展不会破坏现有的实现。

[1] http://en.wikipedia.org/wiki/Open/closed_principle