如何提高.NET生产力?

时间:2010-09-09 01:35:26

标签: .net silverlight

我领导着一个由六名开发人员组成的团队,在过去的一年中,我们已经迁移到Silverlight / WCF / C#/ EF / SQL Server架构进行开发。我们现在使用这种架构部署了5或6个小应用程序,我们目前正在开发一个更大的系统。

我们开发了自己的小解决方案框架,我们将其用作所有新开发人员的模板。生产力非常好。尽管如此,我仍然觉得为更少的资源提供更多功能的压力,我想知道是否还有其他工具应该采用。

我们致力于.NET和Silverlight,但当我读到“Ruby on Rails”声称提高了10倍的生产力时,它让我感到紧张。 .NET有广泛等效的工具/架构/模式吗?什么高级别,使您能够快速部署企业功能?

5 个答案:

答案 0 :(得分:6)

ASP.NET MVC与一些ORM相结合类似于.NET世界中的Ruby / Rails。在过去的几年里,我一直在使用ASP.NET MVC和LINQ to SQL进行敏捷开发,并取得了良好的效果。我将我最大的生产力增益归功于转向测试驱动的开发范例,并在小型,频繁发布的迭代中大量投资基于故事的开发。获得巨大收益,不一定是更快地开发软件,而是在第一次开发合适的软件时 - 导致更少的返工和用于开发的功能的高比率。此外,通过单元测试包围我的代码使我能够以大致相同的速率继续开发,而传统方法中未经测试或未经测试的代码会随着复杂性的增加而导致生产力的显着降低。 ASP.NET MVC比标准Web表单更适合这种开发风格。您可以使用WCF代码实现许多相同级别的可测试性。

答案 1 :(得分:1)

就个人而言,我不知道任何这样的.NET工具。但我想提供一些值得思考的东西。

我建议整体关注您的架构,并确定您的系统是如何“组件化”的。例如,您是否在架构中使用了design patterns?您是否拥有特定的,可重复使用的数据层组件?特定的可重用UI层组件?特定的可重用业务层组件?

虽然这样的架构可能看似理想化,但随着时间的推移,您应该能够构建可重用组件库。然后,构建未来的系统只不过是通过一些最小的定制工作来组装必要的构建块(如果你愿意,可以考虑使用legos)。

有时候(特别是在开始时),你必须编写和/或重构现有的组件来创建你的构建块库,当然,但希望你能从长远来看获益。

也许检查一下您的方法论 - 您的解决方案框架基本上是您的开发方法吗?还是它严格关注架构和设计?也许如果你改变你的建筑和设计方法,你的方法也应该改变,反之亦然。

希望这有帮助。

答案 2 :(得分:1)

清除规范。

TDD(测试驱动开发)与MDD(模型驱动开发)混合

源代码管理(作为SVN和Mercurial)

应用程序分离的错误跟踪器

报告的问题和提交的以下类型。

1负责清理resquest配方噪音的人(例如:3个部门有3个新功能。他们都是每个部门都很关键,但有些人可以等到下一个版本)

这些是帮助我所参与的团队保持正常运转的“工具”。

答案 3 :(得分:1)

  1. 与.NET相比,Ruby on Rails并不热,他们唯一的优势就是他们在.NET之前开始使用ORM(Active-Record)。但是我看到你使用的是EF,因此,你几乎可以相提并论。

  2. 使用持续集成服务器。每当有人向源控件提交任何内容时,这将自动构建。一件好事是创建一个包含所有构建(通过链接)的网页,并让集成服务器更新此网页。在我看来,这是必须。同时让这个网页显示谁检查了什么和什么时候,甚至显示编码器的源代码控制提交描述。这将使您的开发人员诚实。 CruiseControl.NET是我个人最喜欢的(因为它是免费的。)

  3. 使用错误跟踪系统,例如JIRA。对于10支球队来说,这就像20美元一样。你也可以使用bugzilla,这是一个廉价的开源软件。

  4. 使用敏捷开发技术,例如每天15分钟的scrum来弄清楚每个人在做什么,让每个人都在同一条船上。生产力主要是管理/激励的事情,你不希望你的开发人员徘徊并变得懒惰。此外,JIRA有一个很好的小敏捷组件(它被称为'greenhopper'),例如燃尽图等。

  5. 目前WPF / Silverlight最大的设计模式称为MVVM。还有像PRISM,MVVM light和MEF这样的框架来提供架构级模式。虽然从长远来看这些框架的使用有着陡峭的学习曲线,但它们可以帮助你。

答案 4 :(得分:1)

10x ......没有意义,虽然根据每一方所涉及的团队,你可以两种方式获得10倍的差异^ - ^

PS。我不得不说,为了一个真正的+好的答案检查tvanfosson的那个。