首页 > 代码库 > Web应用程序和Web网站

Web应用程序和Web网站

     在牛腩接近尾声调试代码时,有时调试半天也调不出个什么效果,无奈之举,先和源码对比一下,发现我的web层中每个网页下面多个aspx.designer.cs 文件(设计器文件),网上说有这个文件说明你这个项目是web应用程序而不是WEB网站,而普通的WEB网站是aspx(网页信息)+cs(后台代码)的。这是什么情况?我都快哭了,难不成从开始我建立的项目就是错的,又回头看视频中最开始建立项目的阶段,后来证明我的假设是对的,疑问又来了,可是我的绝大部分功能也都可以实现的啊,那他们两个究竟有什么不同,相互之间能不能转换?原来原来他们都是设计asp网页的,web项目有两种,一种webapplication生成aspx.designer.cs 文件文件,一种website是不生成designer.cs的

一、不同:

1、前者在添加aspx窗体时会有一个默认的命名空间,而web网站Web网站在引用后出现一个bin文件夹那里存放dll

2前者有重新生成和发布两项;Web网站只有一个发布网站。

3、前者可以作为类库被引用;Web网站则不可以作为类库被引用。

4前者可以添加ASP.Net文件夹中不包括bin、App_Code;Web网站可以添加ASP.Net文件夹包括bin、App_Code。

5前者序添加网页后页面文件中默认codeBehind,而网站中则是coddfile


      至此我中间遇到的疑惑都消除了,为什么我的网页下面多了designer.cs文件,为什么我的cs代码中有命名空间,页面文件中是codebehind



二、各自优点:

1、网站:

    动态编译该页面,马上可以看到效果,不用编译整个站点(主要优势);可以使错误的部分和使用的部分不相干扰(可以要求只有编译通过才能签入);可以每个页面生成一个程序集(不会采用这种方式);可以把一个目录当做一个Web应用来处理,直接复制文件就可以发布,不需要项目文件;可以把页面也编译到程序集中

2、应用程序:

    编译和发布速度中,明显变快,发布的时候一开始就可以设置是否覆盖。原来的网站要升级过来,需要生成一个设计类代码页。有了此文件,编译的时候,编译器就不用再分析aspx页面了。明显加快了编译速度。且只生成一个程序集。执行的速度页快了 。

参考:web应用程序与web网站区别,aspx.designer.cs文件

三、相互转化

1、网站转化为应用程序:

VS2005SP1内置了转换程序,可以非常方便的从WebSite转换到WebApplication,只需要复制文件,右键执行“转换为Web应用程序”即可。

2、应用程序转化为网站:

      删除所有*.designer.cs,将*.aspx、*.ascx、*.master页面文件中的Codebehind="FileList.aspx.cs" 批量替换CodeFile="FileList.aspx.cs"即可。

      最后就是大网站比较适合用WebApplication项目,小网站比较适合用WebSite项目。

    感受:现在只能理解到这里,总之这次的不认真换来了不少的收获,算是歪打正着吧,学习中抱着一种不将就的态度。

Web应用程序和Web网站