ASP.Net-从VisualStudio2003过渡到VisualStudio2010

ASP.Net-从VisualStudio2003过渡到VisualStudio2010,asp.net,visual-studio-2010,visual-studio-2003,Asp.net,Visual Studio 2010,Visual Studio 2003,我们正在将ASP.Net开发从VisualStudio2003和.NET1.1切换到VisualStudio2010和.NET3.5。到目前为止,我们成功地迁移了后端代码,并且在与ASP.Net前端代码进行了一些斗争之后也成功地迁移了后端代码。虽然后端代码的工作恢复正常,但由于以下问题,ASP.Net前端代码的工作受到了极大的阻碍: VisualStudio2010WebDesigner经常崩溃(例如,在使用“撤消”功能之后)——我们习惯于VisualStudio2003WebDesigner

我们正在将ASP.Net开发从VisualStudio2003和.NET1.1切换到VisualStudio2010和.NET3.5。到目前为止,我们成功地迁移了后端代码,并且在与ASP.Net前端代码进行了一些斗争之后也成功地迁移了后端代码。虽然后端代码的工作恢复正常,但由于以下问题,ASP.Net前端代码的工作受到了极大的阻碍:

  • VisualStudio2010WebDesigner经常崩溃(例如,在使用“撤消”功能之后)——我们习惯于VisualStudio2003WebDesigner在处理大型Web表单时出现的稳定性问题,但是新的Web设计器即使在处理琐碎的Web表单时也经常崩溃。有什么东西可以使它稳定吗?ServicePack 1没有带来任何帮助

  • 在web设计器中将新控件添加到web窗体时,新控件的声明将永远不会自动传播到迁移的web窗体中的代码隐藏页。从头创建的新web表单似乎可以正常工作。迁移后的web表单保留旧的文件结构(aspx、aspx.cs和aspx.resx),而新的web表单获得新的文件结构(aspx、aspx.cs和aspx.designer.cs。手动重新创建所有现有的web表单以获得新的文件结构将是一项非常痛苦的操作。是否有办法使旧的控件声明传播也能在Visual Studio 2010中正常工作,从而在文件工作后编写代码

  • (目前我们最大的问题):在设计web表单时,我们基本上使用ms_positioning=“GridLayout”将文本框、标签、按钮等放在一个div中。我们为div中的每个控件定义绝对坐标。这在Visual Studio 2010中似乎无法正常工作。经过大量的努力,我们可以继续使用这种方法,但向web表单添加新按钮或文本框意味着现在需要大量的努力。如果不太注意,甚至可能导致css类被覆盖s文件(Web设计师有时决定不在aspx文件中写入坐标,而是在css文件中写入坐标).我最近读到,使用绝对坐标在网页上定位内容是一种非常糟糕且不受欢迎的方法。我倾向于相信在新的Visual Studio中这样做是多么可怕。但是,快速创建类似web表单的winforms的正确方法是什么?(使用快速,我指的是简单的拖放点按方式设计内容)

提前感谢您的帮助

致意
Erich Horak

我看不到快速、拖放的方法。GridLayout之类的东西不受欢迎;从长远来看,手动移植表单、在运行时清理标记并使用表单的代码视图而不是设计视图要容易得多。这也是编写干净、独立的CSS而不是内联样式的机会

在1.1之后,您不需要在代码隐藏中声明表单元素-新的分部类消除了这种需要。因此,这只是另一件不同的事情。我现在实际上正在从事一个类似的项目;我利用了新的主类,这意味着无论如何都会有很大的变化

我真诚的建议是接受现实,继续前进:)

我在这里问了一个类似的问题:


我将尝试逐一解决这个问题:

设计师

不幸的是,Visual Studio 2010中的新设计师一直受到问题的困扰。2010年,该编辑器使用WPF进行了彻底的改进,本应使其速度更快,但迄今为止似乎不如以前的编辑器。有一些改进,但如果我有选择权,我会坚持使用旧编辑器,至少直到l新的问题已经解决了。这可能不是什么安慰,但你不是唯一感到痛苦的人

添加控件/新页面文件结构

同样,这是另一种迁移会带来痛苦的情况。如果我提出一种方法,我会将标记复制粘贴到新创建的表单中(创建于2010年).designer.cs文件应该注册控件。您可能会在事件处理程序映射方面遇到问题,但希望它不会妨碍designer.cs文件注册控件。我知道这是一个痛苦的前景,但您必须记住,您正在升级多个版本

设计师视图和绝对定位

在迁移系统时,您可能希望将默认视图设置为源代码视图,以便将HTML粘贴到页面上。您可以通过转到
Tools>Options>HTML Designer>General
。老实说,在我看来,设计器非常脆弱,应该避免使用。它生成的HTML非常可怕

使用绝对坐标来定位页面上的元素肯定是一种不推荐的方法,但如果您现在的目标是让迁移工作正常进行,那么现在就不用担心了。最终,重构HTML和CSS以使用更现代的技术是一个好主意,但如果当前的代码库与浏览器兼容,那么先别管了

一开始看起来可能不是这样,但如果你可以离开设计器使用源代码视图,你不会后悔。一开始确实需要一点时间,但从长远来看,控制标记最终会为你节省大量时间。如果允许设计器在整个系统中肆意运行,它会把事情搞砸。通过使用源代码视图,您可以完全控制正在发生的一切,这将成为一个巨大的优势。通过利用母版页等新功能,您可以在源代码视图中的移动速度与在1.1的设计器视图中的移动速度一样快。我自己在1.1中开始使用设计器视图,但在切换到源代码视图后,我再也看不到我又问了一遍,你真的用其他方式提高了生产力

我希望我能给你一个“永远做这个”