2010-08-11 70 views
3

我已经继承了一个非常糟糕的webforms应用程序,它是各种各样的糟糕的 - 无法测试的数据集和Page_Load事件。面向对象? N层?单元测试?源代码管理?所有学术上的细微差别都造成了这个混乱的团队。C#中的MVC与VB中的Webforms共存。它能发生吗?

它开始作为一个asp经典应用程序的生活,主要移植到VB.NET。管理层否认我的要求是“将整个站点从轨道上撬开”并重新开始。

[插入话语在ASP.NET MVC是如何绝对,肯定,唯一理智的方式来了.NET网站]

我知道我们也许能遗留WebForms和MVC之间的互操作。问题是,我们可以将遗留代码保留在VB中,并用C#构建新的东西吗?我想强制转换到C#,这样团队就不会陷入坏习惯。

是否存在我们可以在此使用的MVC 2区域策略?

回答

0

我很感兴趣的暗示,团队的坏习惯是由VB的使用引起的。任何语言都有很多不良习惯:诀窍不是改变语言,而是学习良好的习惯。

任何人关于这种事情的帖子都将是看法 - 在我看来,你最好教他们在VB中正确编程,而不是让他们学习一种他们可能会遇到的新语言。我见过很棒的,稳定的,可维护的VB代码,我看到了可怕的C#代码。尽量不要将编程语言与碰巧使用它的团队的输出质量联系起来。

(根据记录,我开发在VB和C#,并会一直选择C#给出的选择 - 但并不是因为我觉得我写在C#中更好的代码。)

3

我并不感到惊讶的想法整个重写被击落。总的来说,这是一个延迟和更多错误的秘诀,无论当前项目有多么怪异。

据我所知,这取决于项目的种类。如果现有项目是一个Web应用程序,那么你不能。由于CLR,您可以引用C#中构建的外部库,但是,您将无法将C#代码直接烧入项目中。这一直都是可以接受的。

如果现有的项目是一个网站项目,那么我不得不说,你可以。但是,除非绝对需要这样做,否则你不应该乐意这样做。这只是要求难以维护的项目,并且本质上要求您在web.config中进行大量管理。我强烈建议不要这样做。

网站参考:http://timheuer.com/blog/archive/2007/02/28/14002.aspx

我想你应该能够与来自谷歌搜索在较早的海报提到一起把这个方法。尽管如此,它需要一些工作。

此外,编码实践几乎完全不相关的语言,从我的经验主要是web窗体和一个小MVC,都有他们的时间和地点。我会考虑制定一系列必须遵循的做法,并使用代码审查加以实施。您编写的任何新代码都将保持清洁和紧密,同时您还可以更新旧代码以使用标准。