提问人: 提问时间:2/2/2010 最后编辑:5 revs, 2 users 70%Andrew G. Johnson 更新时间:12/31/2019 访问量:488
引领从经典 ASP 到 ASP.NET 的跳跃,有什么建议吗?
Leading the jump from Classic ASP to ASP.NET, any advice?
问:
我刚开始在一家新公司工作,这家公司99%的代码都是用经典的ASP编写的(其中大部分写得很差),他们雇用我的部分原因是因为我过去曾使用过ASP和 ASP.NET。ASP.NET 体验 VB.NET 但我在大学里使用过 C#,但我更喜欢它,只是因为我过去经常使用 PHP,当我不集中注意力时,我只是开始输入 C 语法,并且在 ASP 中遇到过很多场合,我只是出于习惯而以分号结束行,不得不返回并删除它。
但我跑题了,基本上我只是没有对事情做出最佳决策所需的知识,我已经记下了一些关键过程,我想就此提供建议:
- 版本控制 - 说实话,我从未真正使用过它。就我自己而言,我从来没有那个喧嚣的时刻来推动我使用它,我工作过的商店总是把谨慎抛到九霄云外。想知道你们都认为我应该在服务器端使用什么,并且
本地开发环境 - 可能我会快速谷歌,但我想设置一个本地开发环境,这样我就可以测试东西,而不必先在某个地方通过FTP传输。
实时推送更改 - 我从来没有真正理解将某些内容签入版本控制和实时查看之间的步骤,是否有某种自动化系统可以“嘿,我看到你签入了,让我看看这和实时版本有什么不同并推送受影响的文件”——可能只是缺乏对 vc 的理解: (
- IDE - 立即下载 VS2010 Beta 10,希望它稳定
MVC.NET - 容易取货?我一直讨厌 Web 表单的整个概念,似乎它最终并不适合世界其他地方正在开发的互联网。
其他任何事情 - 就像我说的,我对这个堆栈比较陌生,所以我希望我能尽早得到任何建议,以避免任何“狗屎,我希望我在 3 个月前就知道”的时刻。
答:
哇。这里有很多问题:
版本控制 - 研究 Subversion 和 Git。它们代表两种版本控制,您可能更喜欢其中一种。Git 对开源项目是免费的。
本地开发环境 - 我建议使用 Visual Studio 中的内置 Web 服务器。可以在解决方案资源管理器中右键单击页面,然后说“在浏览器中查看”。然后,它将在那里编译它并打开本地 Web 服务器的实例。
实时推动变革 - 我不打算在这里提供建议。比我聪明的人肯定会这样做。
IDE - 是的,只需坚持使用当前版本的 Visual Studio。如果你没有任何活跃的(付费)项目,我认为VS2010是个好主意,因为它支持 asp.net 即将推出的最新功能,当你学习它们时,它可能会向公众发布。
其他任何事情 - (从工作的角度来看)了解 WebForms 是值得的。但我强烈建议 ASp.Net MVC 学习(如果没有其他原因,除了“它更有趣”)。
读完马克·雷德曼的回答后,它触发了我一些事情。我建议(像他一样)研究某种ORM。我使用SubSonic,真的很喜欢它。但是有很多选择。
这些是我的 2 美分。
评论
Git is free and open source
free for open source
需要考虑的一件事是,从经典 ASP 到 ASP.NET 基本上与从 COBOL 到 ASP.NET 差不多。基本上,一切都需要完全重写(特别是正如您所说,原始代码库中的开发实践很差)
版本控制:一定要使用它,还有 Team Foundation Server,如果您能说服公司购买 MSDN 订阅 TFS 的价值,则 5 个或更少的用户无需额外费用即可使用。
实时推送更改:我目前使用 Web 部署项目(不确定它们是否与 VS2010 兼容),TFS 也是一个构建服务器,我只是没有时间为此设置责任。如果您充分利用 TFS,我还建议您研究持续集成 (CI) 工具,类似于 Jetbrains 的 TeamCity 或 CruiseControl 等。
本地开发环境:获取 Jetbrains 的 Resharper!这是在 .NET 中开发软件最重要的工具,仅次于 Visual Studio 本身!
别的东西:学习泛型和 lambda/表达式树都是 .NET 中正确软件开发不可或缺的一部分,并且都是中等到极其复杂的主题 (IMO)。
版本控制:
当然可以看看 SubVersion,它是免费的,我们使用一个名为 Assembla (www.assembla.com) 的付费托管服务,但您可以在您的网络上安装服务器。最受欢迎的客户端称为 TortoiseSVN (http://tortoisesvn.tigris.org/),它也是免费的。 您还可以查看集成到 VS IDE 中的 VisualSVN (http://www.visualsvn.com/),他们的站点还安装了方便的 SVN 服务器。
本地开发环境
本地 IIS 或 VS 中的内置 VS Web 服务器都很好,我认为这真的取决于偏好。打开一个网站(基于文件系统)而不是基于 IIS 对我们来说似乎很有效。
实时推送更改
ASP 是非常基于逐页的开发,不需要编译,将文件复制到测试或生产站点非常容易。根据您编译/发布 asp.net 站点的方式,您需要考虑如何编译库代码和发布 Web 应用程序/网站。
我建议首先使用 SVN 提交更改并更新测试/生产站点。
集成开发环境:
我建议更新到最新的 VS2010 测试版并使用它。
别的东西:
考虑推出,您是否在上线前更换了所有内容?
考虑采用现有框架,使用 ORM 或业务对象框架,甚至可能使用代码生成。看看 CodeSmith,它有各种与之相关的 ORM/业务对象框架。(这些将使用 .NET Framework 中的各种技术和技术,您需要学习这些技术和技术)
看看网站的基本结构:
考虑 asp.net WebForms(应用程序)或MVC(网站)[是的,这是对差异的非常基本的分析]
站点成员身份和权限:查看 MembershipProvider、RoleProvider 并构建自己的成员身份和权限。
文件系统:考虑上传文件的方式和位置。
将 UI 分离为可重用的 UserControls。
HTH,祝你好运,你有很多事情要做......
评论
在这里,我将重点介绍版本控制和项目跟踪。ASP.Net 的开发环境有据可查。
- 版本控制 - 我将 SVN(版本控制)与 Tortoise SVN(Windows 客户端集成)和 Trac(项目跟踪)一起使用。SVN 和 Trac 都运行在 Apache(Web 服务器)上。
- 实时推送更改 - 从开发计算机将更改提交到 SVN,在测试站点上执行 SVN 更新以从存储库中提取最新更改,运行测试,然后在生产站点上执行 SVN 更新。
- 其他任何内容 - 在此方案中,Apache、Subversion 和 Trac 将运行在不是开发计算机的服务器上,并且希望(但不一定)与运行生产 IIS 的服务器不同。
退房: Apache HTTP 服务器:http://httpd.apache.org/ Subversion:http://subversion.apache.org/ Tortoise SVN:http://tortoisesvn.tigris.org/ Trac:http://trac.edgewall.org/
版本控制:我在这里看到很多SVN的建议,但是......它只是过时了。使用 GIT 或 Mercurial。它们的合并算法更健壮。它们更快、更安全,因为它们是分布式的。它们更灵活 - 您可以构建适合您公司的工作流模型,而基本上只有一种方法可以使用 SVN。
实时推送更改:在进行版本控制后,接下来要做的是使持续集成服务器反复签出存储库并执行自动构建。您可以立即获得谁在何处出错的信息。你可以让这个构建做任何你想要的事情:执行静态代码分析、单元测试、部署。您可以进行多个生成 - 一个是自动生成,用于生成项目并将其部署到测试环境。另一个是手动触发的,它将部署到实时。我与 Hudson、Jenkins、CruiseControl.NET、TeamCity 合作过,我发现 TeamCity 是这四个工具中最人性化的。
本地开发环境:在许多情况下,Althoug IIS Express(Visual Studio内置)是可以的,您必须知道它与“真实”的不同之处。我只建议使用完整的 IIS 7。
IDE:Visual Studio + Resharper + Notepad++ + LINQPad。
其他任何事情:有一些错误跟踪/规划软件。即使像 http://www.trello.com 一样简单,但要使用它。我最喜欢的是 http://www.pivotaltracker.com
在工作流中引入代码审查。http://www.reviewboard.org 可能会有所帮助。
评论