如何拆分应用程序,以便多个开发人员可以一起处理它?

时间:2013-08-03 16:10:33

标签: c# asp.net-mvc vb.net visual-studio-2010

背景

有很多关于如何使用MVVM / MVP来分离图层的好资源,以便设计人员和编码人员可以单独工作。这不是一个PRISM问题,但我也检查了几个Prism教程(包括this由Microsoft'Mike Taulty提供的超过4小时的优秀系列,还有更多)

这些教程/书籍/视频介绍了内部工作原理,例如如何跨视图模型传递消息,如何模块化应用程序,最佳安全实践等。

但是,没有人谈论如何实际* 逻辑划分 *应用程序(WPF或ASP.Net MVC),以便多人可以使用它。 < / p>

问题

您通常如何为您的开发团队分配职责?

假设您使用高级UML工具,一旦高级图准备好但没有编写代码,您如何确保

1-在UI上工作的开发人员将知道并能够访问类库开发人员写的类库函数吗?

2-由两个不同的开发人员为两个不同的目的编写的两个库将互操作吗?

我希望我不会在这里混淆。问题只是一些好的经验法则。因为两个人在一个解决方案中处理两个项目(WPF / Silverlight或ASP.Net MVC)将采用两种不同的方式,一个人编写的方法/类/函数如何与其他人一起工作?

谢谢

3 个答案:

答案 0 :(得分:2)

  

然而,没有人谈论如何实际*逻辑划分*应用程序(WPF或ASP.Net MVC),以便多人可以使用它。

您实际上不需要划分应用程序以便多人可以使用它:您还可以使用Team Foundation Server。还有一个免费版本可供5位或更少用户使用。

Tutorial: Getting Started with TFS in VS2010

答案 1 :(得分:1)

根据我对您的问题的理解,您希望项目中有一个基础架构,具有不同技能的人员可以单独工作。如果我是对的,“领域驱动设计”将是您可以选择的最佳基础设施。

域驱动设计(DDD)是一种通过将实现连接到不断发展的模型来开发满足复杂需求的软件的方法。域驱动设计的前提如下:

  1. 将项目的主要重点放在核心域和域逻辑上。

  2. 基于域模型的复杂设计。

  3. 启动技术专家和领域专家之间的创造性协作,以迭代方式优化解决特定领域问题的概念模型。

  4. 这个词是埃里克埃文斯在他的同名书中创造的。

    有一个很棒的项目可以帮助您:Microsoft Spain - Domain Oriented N-Layered .NET 4.0 Sample App基于易于理解的简单场景,并且有详细记录。

    项目中非常仔细地讨论了模块化,分层等概念,我相信这些概念可以满足您的期望。

    显然,您需要一个源控件,如Team Foundation Server或其他替代方案,以控制多个开发人员对源代码的更改。

答案 2 :(得分:0)

  

两个人在两个项目上工作(WPF / Silverlight或   ASP.Net MVC)在一个解决方案中将采取两种不同的方式,如何做到   由一个人编写的方法/类/函数与其他人一起编写?

您需要维护一些公共功能的公共库。这两位开发人员需要每两到三周进行一次代码审查。所以他们可以找到自己的不同并相互学习。