所以我刚刚开始了一家新公司,其99%的代码都是用经典的ASP编写的(大部分编写得很糟糕),他们雇用我的部分原因是因为我曾在ASP和ASP.NET中工作过。过去。 ASP.NET体验是VB.NET,但我在大学时曾使用过C#,但我之所以喜欢它,只是因为我过去曾经使用过很多PHP,当我没有关注时,我只是开始输入C语法并拥有在ASP中有很多场合我只是出于习惯而在半冒号中结束行,并且必须返回并删除它。
但是我离题了,基本上我只是没有我需要的知识来做出最好的决定已经记录了一些关键过程我想要的建议:
编辑:接受建议并制作此社区维基
答案 0 :(得分:2)
哇。这里有很多问题:
版本控制 - 查看Subversion和Git。它们代表两种版本控制,你可能比另一种更喜欢。 Git对于开源项目是免费的。
本地开发环境 - 我建议在Visual Studio中使用内置的Web服务器。您可以右键单击解决方案资源管理器中的页面,然后说“在浏览器中查看”。然后它将在那里编译它并打开本地Web服务器的实例。
推动改变 - 我不会在这里提供建议。比我聪明的人肯定会这样做。
IDE - 是的,只需坚持使用当前版本的Visual Studio。如果您没有任何活动(付费)项目,我认为VS2010是一个好主意,因为它支持asp.net的最新即将推出的功能,当您学习它们时,它可能会向公众发布
其他任何东西 - 值得(从工作角度来看)进出WebForms是值得的。但我强烈建议学习ASp.Net MVC(如果没有其他原因,“它更有趣”)。
在阅读了Mark Redman的回答后,它为我引发了一些问题。我会建议(正如他所做)调查某种ORM。我使用SubSonic并且非常喜欢它。那里有很多选择。
那是我的2美分。
答案 1 :(得分:2)
版本控制:
绝对看看SubVersion,它是免费的,我们使用名为Assembla(www.assembla.com)的付费托管服务,但您可以在网络上安装服务器。最受欢迎的客户名为TortoiseSVN(http://tortoisesvn.tigris.org/),也是免费的。 您还可以查看集成到VS IDE中的VisualSVN(http://www.visualsvn.com/),它们的站点还有一个方便的SVN服务器安装。
本地开发环境
VS中的本地IIS或内置VS网络服务器都很好,我认为它真的很受欢迎。打开一个网站(基于文件系统)而不是基于IIS似乎对我们很有效。
推行更改
ASP非常基于页面开发,不需要编译,将文件复制到测试或生产站点非常容易。根据您编译/发布asp.net网站的方式,您需要考虑如何编译库代码并发布您的Web应用程序/网站。
我建议首先使用SVN提交更改并更新测试/生产站点。
<强> IDE:强>
我建议您更新到VS2010的最新Beta版本并使用它。
其他任何事情:
考虑推出,你是否在上线前更换所有东西?
考虑采用现有框架,使用ORM或Business Objects框架,甚至可能使用代码生成。看看CodeSmith,它有各种与之相关的ORM /业务对象框架。 (这些将使用.net框架中的各种技术和技术,您需要学习)
查看网站的基本结构:
考虑asp.net WebForms(应用程序)或MVC(网站)[是的,这是对差异的一个非常基本的分析]
网站成员资格和权限:查看MembershipProvider,RoleProvider并构建自己的。
文件系统:考虑上传文件的方式和位置。
将UI分离为可重复使用的UserControls。
HTH,祝你好运,你有很多事要做......
答案 2 :(得分:2)
我将在这里专注于版本控制和项目跟踪。 ASP.Net的开发环境已有详细记录。
退房: Apache HTTP服务器:http://httpd.apache.org/ 颠覆:http://subversion.apache.org/ Tortoise SVN:http://tortoisesvn.tigris.org/ Trac:http://trac.edgewall.org/
答案 3 :(得分:1)
要考虑的一件事基本上是从经典ASP到ASP.NET,与从COBOL到ASP.NET一样。一切都基本上需要完全重写(特别是正如你所说的原始代码库中的开发实践很差)
版本控制:绝对使用它,还有Team Foundation Server,如果你可以说服公司购买你的MSDN订阅价值TFS包含在5个或更少的用户无需额外费用
推送更改:我目前正在使用Web部署项目(不确定它们是否与VS2010兼容),TFS也是一个构建服务器我只是没有时间设置责任那。如果你充分利用TFS,我还建议你研究一下Jetbrains的TeamCity或CruiseControl等的持续集成(CI)工具。
本地开发环境:获取Jetbrains's Resharper!这是在.NET中开发软件的最重要的工具,仅次于Visual Studio本身!
其他任何事情:了解泛型和lambdas /表达树都是.NET中正确软件开发不可或缺的一部分,而且都是中等到极其复杂的主题(IMO)。
答案 4 :(得分:0)
版本控制:我在这里看到很多SVN的推荐,但......它已经过时了。使用GIT或Mercurial。它们合并算法更加健壮。由于它们是分布式的,因此速度更快,更安全。它们更灵活 - 您可以构建一个适合您公司的工作流模型,而基本上只有一种使用SVN的方法。
推送更改:在进行版本控制之后,接下来要做的是使连续集成服务器反复检出存储库并执行自动构建。您可以立即获得有关错误的人和地点的信息。您可以根据需要进行此构建:执行静态代码分析,单元测试,部署。您可以进行多个构建 - 一个是自动构建项目并将其部署到测试环境中。另一个,手动触发,将部署为live。我与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可能有帮助。