VS2005中的WebApplication和WebSite
升级到VS2005后,发现自己新建的网页没有*.Designer.cs文件。
google下发现原来vs2005是分 WebApplication和WebSite 的(晕菜...),而vs2005原本是没有WebApplication的,需要安装过web application project或打sp1补丁。(安装初竟然用EN版去升级CH版@_@.....)
下面是有关资料:
vs2005中的WebApplication和WebSite的比较与转换
WebApplication编程模型的优点:
●网站编译速度快,使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。
●生成的程序集
WebSite:生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集
WebApplication:可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息
●可以将网站拆分成多个项目以方便管理
●可以从项目中和源代码管理中排除一个文件
●支持VSTS的Team Build方便每日构建
●更强大的代码检查功能,并且检查策略受源代码控制
●可以对编译前后进行自己规定的处理
●对App_GlobalResources 的Resource强类支持
●直接升级使用VS2003构建的大型系统
WebSite编程模型的优点:
●动态编译该页面,马上可以看到效果,不用编译整个站点(主要优势)
●同上,可以使错误的部分和使用的部分不相干扰
●可以每个页面生成一个程序集
●可以把一个目录当做一个Web应用来处理,直接复制文件就可以发布,不需要项目文件
●可以把页面也编译到程序集中
两种编程模型的互相转换:
VS2005 SP1内置了转换程序,可以非常方便的从WebSite转换到WebApplication只需要复制文件,右键执行“转换为Web应用程序”即可。
总之,大网站比较适合用WebApplication项目,小网站比较适合用WebSite项目
貌似web application是最初的设计吧,vs2003里就是这样的,只不过微软想抛弃这种用法,但是又没顶住压力又加了回来。
我还是觉得web application比较好,可以看到自动生成的代码。
----------------------------------------------------------------------------
把Visual Studio 2005的"网站项目"转化为"Web应用程序"项目
在Visual Studio 2005中,新建菜单下分了“项目”和“站点”两大类,在Visual Studio 2003里没有区分,如果你要在VS2005创建一个网站应用,那么你只有"ASP.NET网站"模板,这种项目模型和VS2003的项目模型差别很大,比如2003里所有代码编译后放在一个Assembly里,2005里则分开动态编译,命名空间的处理也大不一样
为保持和之前版本的兼容,微软为VS2005提供了一个VS 2005 Web Application Project插件,可以让你的VS2005也拥有2003一样的项目模型,在VS2005的Service Pack 1里已经把该插件直接集成到了VS2005,而且今后会一直成为VS的一部分。如果你没有安装VS SP1,那么你必须安装插件。
由于和SharePoint集成的原因,必须把目前做的Web网站程序做个转换,今天花了点时间做了,以下是转换步骤(VS已经装好插件):
1、创建一个Web应用程序,应用程序名为TestWebApp,新建-〉项目-〉ASP.NET Web 应用程序
2、删除default.aspx和Web.config文件
3、把要转换的网站的文件全部复制到TestWebApp下
4、选择TestWebApp,右键,选择“转换为 Web应用程序”,VS2005会自动转换,帮你生成*.Designer.cs文件,添加CodeBehind属性
我的转换结果:
App_Code下的dataset文件全部给移到了根目录下
aspx的Designer.cs文件没有生成,经查发现可能是因为我使用了嵌套的母板页masterpage,相应的母板页的designer.cs文件也没有生成,进而导致调用VS2005的Designer API时失效,我把母板页改了,把没生成designer.cs的所有文件放在另外一个web应用程序项目重新转换了一遍,再放回来
5、把aspx文件里的codefile属性都删除
6、添加所有文件的命名空间namespace,你可以选择一个class,右键-〉外侧代码来添加命名空间,但不见得快多少
7、把aspx文件里的inherits属性的值的类加上命名空间,和上一步对应
8、然后就是有些代码里需要添加命名空间,编译的时候都会出来
VS2005 SP1下载地址:
VS2005 SP1英文正式版 431M
VS2005 SP1中文正式版 440M
VS2005 SP1号称是M$有史以来最bt的补丁,据说有人装了3个多小时还在收集信息……,为了让大家少走弯路,现总结一下供大家参考。
安装注意事项:
1.安装时间会非常长,如果机器配置不是很高的话需要2个小时,一般的话也需要1个小时左右所以请耐心等待。
2.安装前检查你的c盘是否有大于3G的空余空间,因为安装的时候会释放很多临时文件在c盘,如果不能保证大于3g的话可能会发生异常错误,不过我在安装的时候没有占用3G这么恐怖,不过也起码占用了1G多的空间。
3.如果你以前安装过web application project,在安装vs2005 sp1以前请先把他卸载,不然不能成功安装vs2005 sp1
4.vs2005sp1的补丁包是把你机器上所有单独装过vs2005的版本的补丁都打上,如果机器上装了Visual Web Developer Express和Visual Studio team sutie,那么他就要运行安装补丁两次.
安装步骤:
一.解决数字签名认证的问题
1. 单击 开始单击 运行 , 键入 控件 secpol.msc , 然后单击 确定 。
2. 双击 本地安全策略。
3. 单击 软件限制策略。
注意 如果列出, 没有软件限制右键单击 软件限制策略 , 然后单击 新建策略 。
4. 在 对象类型 , 双击 强制 。
5. 单击 除本地管理员以外的所有用户 , 并单击 确定 。
6. 重新启动计算机。
要点 之后在执行以上步骤, 本地管理员可安装 .msi 软件包或 .msp 包。 通过以下以前步骤之后安装程序包, 重置强制级别。 在步骤 5, 单击 所有用户 代替 除本地管理员以外的所有用户。
二.执行批处理文件来安装
reg export HKLM"Software"Policies"Microsoft"Windows"Installer installer.reg
reg add HKLM"Software"Policies"Microsoft"Windows"Installer /v MaxPatchCacheSize /t REG_DWORD /d 0 /f
net stop msiserver
start /wait VS80sp1-KB926604-X86-CHS.exe
reg delete HKLM"Software"Policies"Microsoft"Windows"Installer /v MaxPatchCacheSize /f
reg import installer.reg
net stop msiserver
del /q installer.reg 2>nul将上面的保存为InstallVS2005SP1.bat,再执行该文件以启动安装补丁,并可禁用缓存。