用户名:   密码:    忘记密码  注册
我推信息网 > 学习园地 > 正文

初学asp.net 不知道用WebSite还是WebApplication 更好

2009年10月28日
信息简介:初学asp.net 不知道用WebSite还是WebApplication 更好,在网上看了一些文章,知道一些区别,但还是没懂一般用哪个好,初学用那个好,大家知道的说说看

初学asp.net 不知道用WebSite还是WebApplication 更好,在网上看了一些文章,知道一些区别,但还是没懂一般用哪个好,初学用那个好,大家知道的说说看.给我一些建议 
以下是网上复制的一些网友意见: 

 


http://woshiningyuting.blog.163.com/blog/static/8238599200932841154779/ 
VS新建WEB网站与WEB应用程序有何区别 
默认分类   2009-04-28 16:11   阅读44   评论0    
字号: 大大  中中  小小  
"网站"是以文件目录为基本单位管理的,直接把iis设成开发目录就可以运行,是非常适合web开发的一种模式。它没有项目文件 
,不需要编译,方便调试。是vs2005新推出的一种模式。  
"应用程序"是以项目为管理基本单位的。是为了组件化开发等准备的,有项目文件,需要编译发布,适合团队开发使用,但是对 
web的开发模式并不十分适应。主要是为了兼容win的开发方式,是一种遗留模式  
本来2005是没有“应用程序”方式的,发布后发现很多2003的开发者不习惯,于是我们又把它加上了。另外,要是引用很多代码 
的话,“应用程序”方式会快一些。  
VS2005新建项目与新建网站时生成的目录与文件结构也不相同 
web程序同一般的程序有些不一样,vs不必为它们建立工程(project)文件,所以也可以称为无工程开发(projectless  
development),目的是可以保证站点的目录清晰,不乱,有助于web程序最后的配置,可以完全将整个的目录简单的拷贝即可, 
因为没有多余的文件。同时,无工程开发可以方便团队开发,因为各自的开发文件不需要同步。在vs中同样还有基于工程的web开 
发,可以称为web工程(web projects),实际是这是以前的开发模式,存在的目的,一是可能需要迁移以前开发的web工程到 
vs2005下,二是有时需要在一个站点中包括多个工程,三是web工程可以灵活的处理站点的资源文件,比如大量的图片,在开发时 
,可以不包含到工程中,四是如果使用MSBuild工具,则必须使用工程文件 
原vs.net2005  中没有web应用程序项目。只有新建网站的功能。SP1中增加了web应用程序的功能。此功能推出,满足了众多VS.NET2003开发网站的朋友们。 
vs2005的“网站”项目中。其实也有一些优点。原来的vs2003和VS2005SP1中的WEB应用程序.是将整个网站应用程序编译成一个DLL。而网站项目中是对每个aspx生成的代码文件,单独编译。特殊目录App_Code中代码文件才编译成单独一个程序集。这种设计。可以单独生成一个页和该页程序集。上传的时候,可以只更新此页。 
但这个“网站”项目,编译速度慢,类型检查不彻底。两个不同的ASPX可以生成相同的两个名称的类。发布的时候,也很慢,会删除所有原始发布目录中的所有文件,且复制所有新的文件。并且中间还有停顿,需要用户主动按覆盖文件的按钮才能发布。  
而在SP1中的WEB应用程序中,编译和发布速度中,明显变快,发布的时候一开始就可以设置是否覆盖。原来的网站要升级过来,需要生成一个设计类代码页。有了此文件,编译的时候,编译器就不用再分析ASPX页面了。明显加快了编译速度。且只生成一个程序集。执行的速度页快了。

 

http://topic.csdn.net/u/20070507/20/76053a00-9eec-45b1-b566-d3bbc3609854.html

楼主发表于:2007-05-07 20:36:30
WebApplication和WebSite有什么区别?我该选择哪个? 
请说说理由??
#1楼 得分:0回复于:2007-05-07 20:41:05
WebApplication是类似于vs2003的那种方式,所有程序文件会编辑成一个dll. 个人喜欢WebApplication的方式.

#2楼 得分:0回复于:2007-05-07 20:41:15
使用和不使用IIS #3楼 得分:0回复于:2007-05-07 23:10:43
项目超过1个网页都应该用WebApplication。 编译速度比WebSite的快得多得多。

#4楼 得分:0回复于:2007-05-08 01:15:19
我们选择Web Site基于以下几个需要: 1. 如果做过稍微复杂一点的网站就会发现,网站上传时每一个dll不应该很巨大。 2. 混合VB.Net、c#等多种语言来开发aspx、ascx、asmx很重要。 3. 发布网站时或者去除“允许更新此预编译站点”选项,或者根本不编译(通过页面的 CompilationMode属性设置),但是不允许仅仅部分编译。 4. 临时更新网站时往往仅仅上传3、4个文件就足够了。 5. 不在开发机器上安装iis,新建网站时选择“文件系统”方式,避免无关的调试、iis目录设置方面许多错误。

#5楼 得分:0回复于:2007-05-08 01:17:10
我没有发现关于编译速度的差异。我想这相当于用高射炮打10只蚊子和11只蚊子,差别不大。

#6楼 得分:0回复于:2007-05-08 11:05:54
我有感觉到在编译速度上差别比较大。

#7楼 得分:0回复于:2007-05-08 12:09:35
什么也不用说了,除非是特别小的网站,否则就是WebApplication,好处很多

#8楼 得分:0回复于:2007-05-08 13:32:44
个人觉得WebApplication好用一点

#9楼 得分:0回复于:2007-05-08 13:36:07
WebApplication

#10楼 得分:0回复于:2007-05-08 13:59:48
我使用 WebApplication 。在vs2005还有 WebApplication 功能之前我都没有使用vs2005。 WebApplication 的优点:
编译成一个dll,便于管理,bin目录下的文件不会太多,什么东东多了就不好管理了。 WebApplication 缺点:
修改.aspx.cs这类的文件后必须编译,才能看到修改后的结果。
Web Site 的优点: 在编写的时候,不管修改哪里的代码都不用编译,直接就可以看到修改后的结果。
(说明:先按照“文件系统”方式建立网站,然后再建立IIS。然后使用浏览器浏览网站。) Web Site 缺点: 你可以给文件建立文件夹来区分不同类的文件(.aspx、.asmx,等),但是发布后bin里面就全乱了,根本就没有文件夹的形式,所有的dll全放在一起了,而且名称还不能自己定义,奇不是很乱?
共同点: 其实不管使用哪种方法都可以使用 “文件系统” 的方式来建立。建立的时候不用设置IIS。 建立好了之后可以在建立一个IIS站点,指向网站的文件夹。 这样既可以使用IIS的方式访问,又可以使用“运行”(vs2005自带的那个)的方式来访问。是没有冲突的。 所以很纳闷 1234 为什么要禁用 IIS,没有冲突的。
============================= > > 
1. 如果做过稍微复杂一点的网站就会发现,网站上传时每一个dll不应该很巨大。 DLL过大往往是由于冗余代码过多造成的,比如采用了三层的方式,增加了很多不必要的代码。
没有提炼(抽象)公用的函数,比如使用分页控件就可以节省很多的代码。
> > 2. 混合VB.Net、c#等多种语言来开发aspx、ascx、asmx很重要。 使用控件(其他的DLL)也可以解决多语言共存的问题。
> > 3. 发布网站时或者去除“允许更新此预编译站点”选项,或者根本不编译(通过页面的 CompilationMode属性设置),但是不允许仅仅部分编译。
> > 4. 临时更新网站时往往仅仅上传3、4个文件就足够了。 那要是不临时更新呢?还有你能记住时改了那些页面吗? > > 5. 不在开发机器上安装iis,新建网站时选择“文件系统”方式,避免无关的调试、iis目录设置方面许多错误。

#11楼 得分:0回复于:2007-05-08 18:41:27
理想和现实总是不一样的。例如你可以说把所有界面都在其它工程里作成自定义控件,但是实际情况下还是有很多在aspx、ascx、asmx里边写代码。我所说的“dll”会很大的时候,并没有考虑app_code下有多少行代码,根本没有计算这些,就已经很大了。 如果是写小程序不知道。例如“Ajax Control Toolkit”的demo代码,编译完了是多少M? 那只是20个左右什么也看不了的小demo程序,其dll就已经不小了。 显然,我想允许一点点差异,允许有的人写用户控件而不是自定义控件,允许的用户控件使用vb.net,有的使用c#。有些管理方法是可以严格一点的,有些,例如用自定义控件来废掉aspx和ascx开发,则不是稍微大一点的项目组中实际应该做的。 至于说“临时更新3、4格文件”的问题,同样地,这是值得做的事。更新了一个ascx或者asmx,当然仅仅上传与之相关的文件,别的代码不需要更新到服务器。实际上,即使整站文件上传,也需要使用专业的网站上传才能保证网站本地镜像统计信息正确更新。 开发时不装iis是为了避免那些“我的机器无法调试了,我的网站目录拷贝后无法启动了”之类的叫唤。开发机器上不安装iis不是为了减少冲突,而是为了让机器干净。

#12楼 得分:0回复于:2007-05-08 18:48:05
“Ajax Control Toolkit”的demo代码编译完了,如果合并为一个dll,大概将近 2M 吧。而实际上,这个demo并不是什么真正的应用系统,只是演示20个左右控件而已,与应用相比可以说其页面代码量连十分之一都不足。 如果能够每一次更新上传200K,就不会去选择上传10M。

#13楼 得分:0回复于:2007-05-09 07:03:29
> > Ajax Control Toolkit”的demo代码编译完了,如果合并为一个dll,大概将近 2M 吧 不知道是什么意思? 就我的 网站 来说我是这么设置的:(分成了多个DLL文件) 1、DataAccessLayer.dll 数据访问的方法(还有几个常用的函数),类似于SQLHelp 。这是一个通用的DLL,任何项目都引用相同的文件。36K. 2、JYKControls.dll 常用控件。这里面有我自己写的几个自定义服务器控件,比如分页控件了什么的。大约9个,各有各的功能。132K。 3、UserInfo.dll 用户验证,用户登录这一类的。20K。 4、网站页面的DLL。就是.aspx.cs编译成的LL。根据网页的多少和里面的代码量来定,一般不会超过100K。现在是70K。(我是把所谓的业务逻辑也都写在了 .aspx.cs里面了) 5、后台管理的DLL。其实我是建立两个项目的,一个是网站的页面,一个是网站的后台管理。着里的DLL就是专门做后台管理的。140K。由于后台管理接近于“通用”所以这个DLL的大小基本就是固定的,网站在大也就是这么大了。 6、配置文件,后台通用了就需要一个配置文件来配置,轮文件的大小呢,这个也应该算上。这个文件就是最大的了。
都加在一起也不过1M。1、2、3和5是固定的,基本传一次就可以了。4的变动是最大的,但是它的体积一般也超不过100K。 所以我很难理解 “大概将近 2M 吧” 这是怎么来的? “就不会去选择上传10M” 这个项目也太大了呀。
ps: 上面所说的网站的体积是根据 http://www.sbxq88.com/ 这个网站来说的,这个不算大站,但是也不是太小吧。

#14楼 得分:0回复于:2007-05-09 08:26:44
> > 都加在一起也不过1M 算错了,加起来不超过 500K。

#15楼 得分:0回复于:2007-05-09 09:36:34
还在用2003

#16楼 得分:0回复于:2007-05-09 09:49:24
xue xi

#17楼 得分:0回复于:2007-05-09 11:35:03

#18楼 得分:0回复于:2007-05-09 11:46:59
个人比较喜欢WebSite,其中还有一个优点就是很好做开发移植,如果你有2台机子做开发,白天公司开发,晚上回家开发,那么WebSite只需要拷文件夹,然后打开网站既可。 而且不装WebApp是因为,SP1装起来太慢了,我睡了好几觉。。。而且总觉得打了SP,像穿补丁,郁闷。。。呵呵,最后一句纯属娱乐

#19楼 得分:0回复于:2007-05-09 15:26:52
肯定要选择webapplication了,迁移比较容易 不用配置站点

 


http://www.xue5.com/itedu/200802/108216.html
net实例:VS2005 VS2008新建网站和新建项目里选Web应用程序区别
[ 来源:.net实例 | 作者:.net实例 | 时间:2008-2-22 | 去论坛] 
 
WebApplication编程模型的优点:
●网站编译速度快,使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。
●生成的程序集
WebSite:生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集
WebApplication:可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息
●可以将网站拆分成多个项目以方便管理
●可以从项目中和源代码管理中排除一个文件
●支持VSTS的Team Build方便每日构建
●更强大的代码检查功能,并且检查策略受源代码控制
●可以对编译前后进行自己规定的处理
●对App_GlobalResources 的Resource强类支持(网上说的,还没有了解过)
●直接升级使用VS2003构建的大型系统

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

两种编程模型的互相转换:
VS2005 SP1内置了转换程序,可以非常方便的从WebSite转换到WebApplication
只需要复制文件,右键执行“转换为Web应用程序”即可。
未查到有专门的反向转换工具,但比较后发现如果转换也非常简单。
删除所有*.designer.cs
将*.aspx、*.ascx、*.master页面文件中的 Codebehind="FileList.aspx.cs" 批量替换成 CodeFile="FileList.aspx.cs"

上面的是抄的,我比较了下还有。
直接建立网站,没有命名空间,有几个特殊文件夹如App_code文件夹不能直接在网站项目里建立,但可以手动添加然后包含到项目里面来。 

要使用WebApplication程序 我们需要安装 Visual Studio 2005 Team Suite CHS 补丁这样才能把网站项目转换成为Web应用程序.

资料来源:学网(www.xue5.com),原文地址:http://www.xue5.com/itedu/200802/108216.html

(阅览次数:7715次)【关闭
上一条: #关于.Net程序调试中《编辑与继续》功能的探讨
下一条: 360安全卫士 导致IIS 目前访问网站的用户过多 超出最大连接数
你认为此条信息得分为:
100% 0% 0% 0% 0%
很好 一般 不行
验证字符:
网友昵称: (Ctrl+Enter)
发表评论:
以下评论只代表网友个人观点,不代表我单位观点
暂时为空!
网站首页 -  政策法规 -  联系我们 -  免责申明 -  时尚一族 -  友情链接 -  关于我们 -  设为首页 -  加入收藏
版权所有:我推信息网 关键字:我推信息网 wotui 我推荐 我推
域 名:www.wotui.net 联系QQ (08:30-22:00在线): 邮 箱:yahali@sina.com
中华人民共和国电信与信息服务业务经营许可证

 

 

 

 

公共信息安全网络监察

经营性网站备案信息

不良信息举报中心 中国文明网络传播