VS 2008的"转换为网站"是什么意思?
我已经将MS Visual Studio应用程序从VS 2003升级到了VS 2008(针对.NET 2.0)。作为转换过程的一部分,向导说我需要采取其他步骤,即通过右键单击将项目转换为网站,等等……
我没有按照指示进行操作,Web应用程序似乎运行正常。
我的问题是,我是否应该担心将其推向生产系统?这到底是怎么回事?
解决方案
回答
ASP.NET中有两种类型的Web应用程序:网站和Web应用程序项目。此处讨论了两者之间的区别:
网站和Visual Studio 2005中的Web应用程序之间的区别
转换为网站允许我们将Web应用程序项目转换为网站。
Visual Studio 2003使用Web应用程序项目样式,但最初VS2005仅支持网站。 VS2005 SP1带回了Web应用程序。
如果我们不想将项目转换为网站,请在使用VS2005的情况下应用SP1. VS2008可以支持。
回答
"转换为网站"会将所有控件声明从主页类移动到辅助文件(yourpage.aspx.designer.cs)。
它通过使用局部类来实现。也就是说,页面使用相同的类,但是分为两个单独的文件。
这使VS2k5(和VS2k8)设计器可以为页面生成代码,而无需将生成的代码细面条转储到主类文件中。
我们无需执行此步骤即可构建项目,但是如果我们继续维护该项目,则也将需要它。
编辑:
嗨,MSDN支持我:
转换代码以使用部分类模型
- 确保代码编译没有错误。
- 在解决方案资源管理器中,右键单击项目名称,然后单击"转换为Web应用程序"。此命令遍历项目中的每个页面和用户控件。它将所有控件声明移至.designer.cs或者designer.vb文件。它还将事件处理程序声明添加到.aspx和.ascx文件中的服务器控件标记中。
- 该过程完成后,检查"任务列表"窗口以查看是否报告了任何转换错误。
- 如果任务列表显示错误,请在解决方案资源管理器中右键单击相关页面,然后选择"查看代码"和"查看代码生成文件"以检查代码并解决问题。
- 重新编译项目,以确保其编译没有错误。
回答
There are two types of web applications in ASP.NET: The Web Site and Web Application Project. Convert to Website allows you to convert a Web Application Project to a Web Site.
据我所记得,"转换为网站"不执行此操作,Web应用程序项目是具有常规\ bin等的常规应用程序结构。
相反,WebSite项目基于用于类的App_Code目录和用于数据的App_Date目录的概念,常规ASPX文件可以在任何地方使用。这样做的目的是避免在部署之前必须预先编译到DLL中,这在某些共享托管情况下会更容易。
我不知道会在这些类型之间重新构造项目的任何向导,但是我可能错了。
回答
我们可能唯一想念的就是我们是否要备份2003项目(以防万一)。没什么大不了的。
退房:
将Visual Studio .NET 2003 Web项目转换为Visual Studio Web应用程序项目
Visual Studio转换向导
回答
Convert to Website moves all of your control declarations from the main page class to a secondary file (yourpage.aspx.designer.cs).
我为什么要这样做?每个页面都有一个.js .css .vb .aspx文件,这很糟糕。我是否真的需要将.vb拆分成另外两个文件,以便可以隐藏声明? page.designer.aspx.vb.h有人吗?