从零开始创建一个 ASP.NET 网站的最佳流程是什么?

5
我正在从头重建我们设计不佳的Web应用程序,并希望通过TDD来“做正确的事情”,作为一种学习项目。从一开始就如何“做正确的事情”需要哪些工具,流程和资源?我将独自担任架构师和开发人员,备有业务分析师和业务所有者进行可用性测试和用例。
编辑: 目前我们使用SourceSafe进行源代码控制,是否有技术上的原因要尝试让我们切换到Subversion?
编辑#2: 看起来大家的共识是: Cruise Control.NET Subversion(如果我想停止使用SourceSafe) ASP.NET MVC NUnit进行单元测试 Resharper
11个回答

5
如果你想在开发过程中高度重视单元测试,我强烈推荐你查看 ASP.NET的MVC框架。听起来这正是你所需要的。
如果你的团队要扩大规模,我还建议使用CruiseControl.NET进行持续集成(这一点非常重要)。
当我在小团队工作时,Subversion是我最喜欢的源代码控制系统。使用Tortoise SVN实现Windows资源管理器集成。

2

针对您的源代码控制问题的回答...

从头重新设计一个应用程序可能是一个耗时的项目,如果您还没有确定要使用哪种源代码控制工具并且没有设置经验,那么不要浪费时间去更改它。

Visual SourceSafe可以胜任工作,特别是在一个人的努力下,而且它已经安装好了,所以可以直接使用。


1

我们使用的是Visual Studio 2008、Resharper 4.1、Subversion作为源代码控制工具、Cruise Control作为自动化构建工具以及内置单元测试工具进行所有自动化测试,同时使用Linq2Sql进行映射。你可以更换任何东西,但VS(显然)和resharper(太酷了)不能更换,但你可以轻松地使用其他源代码控制工具、映射器或单元测试工具。


1

以下是一些工具,可以使工作更加轻松和安全(在谷歌上搜索名称将会出现相关页面):

Subversion - 源代码控制
NUnit - 测试框架
CruiseControl.Net - 自动化构建


1

Visual Source Safe有严格的锁定策略,因此一次只能有一个人在文件上工作...而CVS或Subversion允许多个用户同时在同一文件上工作。


所以,如果我独自工作,这不是什么大问题,但当我雇用一个新的开发人员在我下面/与我一起工作时,情况就会变得复杂了,对吧? - Ryan Skarin
有很多大型团队使用SourceSafe。如果您的团队成员在系统的不同组件上工作,很少重叠,那么这不会是太大的问题。您可以一直使用它,直到出现问题,然后再进行切换。我个人更喜欢SVN。 - JasonS
在SourceSafe中有一个选项叫做“允许多个检出”。 - Goran Peroš

1

这里提出的所有建议都很好,但并没有什么万能的解决方案。您需要考虑应用程序的规模、用户数量、部署方式等因素,以做出架构、流程、工具集和其他决策。例如,TDD是一种好的方法论,但不是唯一的“正确做事”的方法论。另一个例子,CruiseControl非常棒,但在单个开发者项目中,可能过于复杂。

无论您选择什么方法,保持一致是我最好的建议 - 如果您选择了TDD,请坚持使用TDD。


我知道并不存在所谓的“灵丹妙药”,我在这里寻求的是他人对过去成功经验的建议。我打算采纳这些宝贵意见,进行大量研究和设计,为我自己和项目制定最佳策略。 - Ryan Skarin
另外一个,CruiseControl非常棒,但在单个开发者项目中,它可能有些过度。我不介意有些过度,因为我期望我的团队在未来会成长,并且我想持续使用这些工具,而不仅仅是“完成工作并继续前进”。 - Ryan Skarin

1

我们像你一样重新编写了我们的网站,使用了C#和MVC。这很棒。我们使用微软的SourceSafe来控制我们的代码,它非常好用。由于你是唯一的开发者,这将取决于你喜欢什么。

微软的SourceSafe允许我们创建一个分支,我们可以在源代码控制下工作,并且可以轻松地在两者之间切换。(我并没有太多使用Subversion的经验,所以无法对其进行评论。)

我们使用NUnit来测试/模拟我们的代码。它非常容易模拟出来。我们创建了一个类来保存和读取对象。

保存函数: Stream stream = File.Open(simplePath, FileMode.OpenOrCreate); BinaryFormatter bwriter = new BinaryFormatter(); bwriter.Serialize(stream, actual);

读取函数: Stream stream = File.Open(simplePath, FileMode.Open, FileAccess.Read, FileShare.Read); BinaryFormatter bwriter = new BinaryFormatter(); object returnObject = bwriter.Deserialize(stream);

我们使用NUnit来模拟XML和SQL。

祝你好运!


1

如果你要从VSS背景开始设置一个全新的Subversion和持续集成实例,这两个免费的软件包可能会为你节省数天(或数周)的时间:

  • Visual SVN Server 设置了所有需要的Subversion服务器,包括Windows AD认证和管理员GUI。免费,你可以考虑支持他们出色的VisualSVN VS插件,以便在Visual Studio中进行源代码控制集成。或者,可以看看AnkhSVN

  • TeamCity 来自JetBrains(ReSharper的制造商,作为一种极好的工具而被提及)的持续集成软件包(CruiseControl.NET的替代品),专业版免费(最多20个用户和3个构建服务器)。

这两个软件包是最容易安装的软件之一,甚至比VSS本身还要简单 :-)

使用SVN可能需要一些调整;但是,无论你选择哪个客户端(AnkSVN、VisualSVN、TortoiseSVN或某些组合),都有出色的文档,你会没问题的。

此外,你知道在哪里可以找到那些渴望回答你问题并愿意以声望作为交换的人们。;-)

1

看看 TypeMockRhino Mocks。当你在单元测试 Web 应用程序时,模拟可以节省你很多时间和痛苦。


0

如果你刚开始入门,我建议尽可能少更改(特别是你是唯一的开发人员),因此继续使用Sourcesafe。在你的情况下它完全没有问题。

后来,你可以考虑Microsoft Team System,或者选择其他第三方工具。

个人而言,我不喜欢Subversion,但我承认它在行业内是一种流行的工具。

至于TDD特定的软件,我无法提供任何建议。你有喜欢的UML工具或任何你正在使用的形式化方法吗?


现在我们没有正式的方法,这是问题的一部分。在我到来之前,这里非常强调“让它工作”。编写大部分应用程序的开发人员已经离开公司了,看他设计这个应用程序的方式让我感到不适。 - Ryan Skarin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接