【问题标题】:What is the best process for a new ASP.NET web app from the ground up?全新 ASP.NET Web 应用程序的最佳流程是什么?
【发布时间】:2010-09-10 07:54:32
【问题描述】:

我正在从头开始重新构建我们设计不佳的 Web 应用程序,并希望进入 TDD 并基本上将“做正确的事情”作为一种学习项目。建议使用哪些工具、流程和资源从一开始就“正确”地做这件事?我将作为架构师和开发人员单独工作,并在业务分析师和业务所有者的支持下进行可用性测试和用例。

编辑: 现在我们使用 SourceSafe 进行源代码控制,我是否有任何技术上的理由要尝试让我们切换到颠覆?

编辑#2: 看来共识是: 巡航控制.NET Subversion(如果我想停止使用 SourceSafe) ASP.NET MVC 用于单元测试的 NUnit 锐器

【问题讨论】:

    标签: c# asp.net unit-testing web-applications


    【解决方案1】:

    如果您想在开发过程中将单元测试作为高优先级,我强烈建议您查看MVC for ASP.NET。听起来它非常适合您尝试做的事情。

    我还推荐CruiseControl.NET 进行持续集成(如果您的团队要发展,这很重要)。

    当我在小团队工作时,Subversion 是我最喜欢的源代码控制系统。使用 Tortoise SVN 进行 Windows 资源管理器集成。

    【讨论】:

      【解决方案2】:

      您的源代码管理问题的答案...

      从头开始重新设计应用程序可能是一个耗时的项目,除非您已经确切知道要使用哪一个并且有设置它的经验,否则我不会浪费时间更改源代码控制。

      Visual SourceSafe 可以完成工作,尤其是在 1 人的努力下,并且它已经到位,因此请使用它。

      【讨论】:

        【解决方案3】:

        我们使用 Visual Studio 2008、Resharper 4.1、Subversion 进行源代码控制、Cruise control 进行自动化构建,以及我们所有自动化测试的内置单元测试。和 Linq2Sql 用于或映射。除了 VS(显然)和 resharper(太酷了)之外,您可以换掉任何东西,但您可以轻松地使用另一个源控制、映射器或单元测试工具。

        【讨论】:

          【解决方案4】:

          这里有一些工具可以让工作更轻松、更安全(谷歌搜索名称会显示相关页面):

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

          【讨论】:

            【解决方案5】:

            Visual Source safe 具有严格的锁定策略,因此一次只能一个人处理一个文件....CVS 或 subversion 允许多个用户同时处理同一个文件。

            【讨论】:

            • 所以,如果我一个人工作,这没什么大不了的,但是当我聘请新的开发人员在我手下/与我一起工作时,情况就会如此吧?
            • 有很多大型团队使用 SourceSafe。如果您的团队成员在很少重叠的系统的不同组件上工作,那么问题就不大了。您可能会坚持使用它,直到出现问题,然后再进行切换。我个人的偏好是 SVN。
            • SourceSafe 中有允许多次签出选项
            【解决方案6】:

            这里的所有建议都很好,但没有灵丹妙药。您必须查看您的应用程序有多大、有多少用户、如何部署等,才能做出架构、流程、工具集和其他决策。例如,TDD 是一种很好的方法,但不是“正确地做事”的唯一好方法。另一个,CruiseControl 很棒,但在单个开发者项目中,它可能有点矫枉过正。

            我最好的建议是无论你做什么都要保持一致 - 如果你使用 TDD,如果你明白我的意思,就使用 TDD。

            【讨论】:

            • 我知道没有“灵丹妙药”,我在这里寻找的是其他人对过去对他们有好处的建议。我计划采纳这些很棒的建议,坐下来做大量研究,为我和我的项目设计最佳策略。
            • “另一个,CruiseControl 很棒,但在单个开发人员项目中,它可能有点矫枉过正。”我不介意有点矫枉过正,因为我希望我的团队在未来成长,我希望持续使用这些工具,而不仅仅是“完成工作并继续前进”。
            【解决方案7】:

            我们像您一样重新编写了我们的网站,并且我们使用 C# 和 MVC。这很棒。我们使用 Microsoft 的 SourceSafe 来控制我们的代码,它工作得很好。由于您是唯一的开发人员,这将取决于您喜欢什么。

            Microsoft 的 sourcesafe 允许我们创建一个可以工作的分支,可以保持在源代码控制下,并且我们可以轻松地在两者之间切换。 (我真的没怎么用过subversion,所以无法评论。)

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

            保存功能: 流流 = File.Open(simplePath, FileMode.OpenOrCreate); BinaryFormatter bwriter = new BinaryFormatter(); bwriter.Serialize(流, 实际);

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

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

            祝你好运

            【讨论】:

              【解决方案8】:

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

              • Visual SVN Server 设置颠覆服务器所需的一切,包括 Windows AD 身份验证和管理 GUI。免费,您可以考虑支持他们出色的 VisualSVN VS 插件,以便在 Visual Studio 中进行源代码控制集成。或者,可以查看AnkhSVN

              • TeamCity 来自 JetBrains(ReSharper 的制造商,如前所述的出色工具)的持续集成包(CruiseControl.NET 的替代品),专业版免费(最多 20 个用户和 3 个构建服务器)。

              这两个包是最简单的安装,挑战 VSS 本身:-)

              使用 SVN 可能需要稍作调整;但是对于您选择的任何客户端(AnkSVN、VisualSVN、TortoiseSVN 或某种组合)都有出色的文档,您会没事的。

              此外,您知道在哪里可以找到渴望回答您的任何问题以换取代表的人 ;-)

              【讨论】:

                【解决方案9】:

                查看TypeMockRhino Mocks。当您对 Web 应用程序进行单元测试时,Mocking 可以为您节省大量时间和痛苦。

                【讨论】:

                  【解决方案10】:

                  如果您刚刚开始,那么我会尽可能少地进行更改(尤其是因为您是唯一的开发人员),所以请坚持使用 Sourcesafe。你的情况绝对没有问题。

                  稍后,您可能会关注 MS Team System,或者可能会选择其他 3rd Party 工具。

                  我个人不是 Subversion 的粉丝,但我知道它是整个行业的流行工具。

                  对于特定于 TDD 的软件,我无法提供任何建议。您是否有首选的 UML 工具或您正在使用的任何形式化方法?

                  【讨论】:

                  • 现在我们没有正式的方法,这就是问题的一部分。在我来到这里之前,这是一种非常“让它发挥作用”的理想类型。编写我正在重写的大部分应用程序的开发人员已经不在公司了,看到他如何设计这个应用程序让我感到恶心。
                  【解决方案11】:

                  有一点要提一下:在进行任何更改之前,请 100% 确定您了解程序正在做什么以及它应该做什么。在了解整个情况后,一个“糟糕”的软件往往会变得“没那么糟糕”。

                  Sourcesafe 还可以,尤其是对于一个人来说,但是当团队中的 ppl 越来越多时,锁模型会变得很烦人,但暂时:坚持下去

                  【讨论】:

                  • 哦,我完全理解它应该做什么,以及它现在做什么。当我开始时,我帮助完成了这个项目,并且从那以后一直在维护它。它是用 asp.net 编写的,就好像你还在使用 asp classic。
                  • 这个东西一开始是 15 个用户控件,它们加载在同一页面上,并在用户导航时切换为可见!他还有多个使用相同代码隐藏文件的 aspx 页面,并根据当前使用该文件的页面有选择地调用方法,就像这样的疯狂。
                  猜你喜欢
                  • 1970-01-01
                  • 2018-07-30
                  • 2010-09-30
                  • 2010-09-12
                  • 1970-01-01
                  • 2021-10-28
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多