当前位置:编程学习 > C#/ASP.NET >>

WebApplication和WebSite有什么区别?我该选择哪个?

WebApplication和WebSite有什么区别?我该选择哪个? 
请说说理由?? --------------------编程问答-------------------- WebApplication是类似于vs2003的那种方式,所有程序文件会编辑成一个dll.

个人喜欢WebApplication的方式.
--------------------编程问答-------------------- 使用和不使用IIS --------------------编程问答-------------------- 项目超过1个网页都应该用WebApplication。

编译速度比WebSite的快得多得多。 --------------------编程问答-------------------- 我们选择Web Site基于以下几个需要:

1. 如果做过稍微复杂一点的网站就会发现,网站上传时每一个dll不应该很巨大。

2. 混合VB.Net、c#等多种语言来开发aspx、ascx、asmx很重要。

3. 发布网站时或者去除“允许更新此预编译站点”选项,或者根本不编译(通过页面的 CompilationMode属性设置),但是不允许仅仅部分编译。

4. 临时更新网站时往往仅仅上传3、4个文件就足够了。

5. 不在开发机器上安装iis,新建网站时选择“文件系统”方式,避免无关的调试、iis目录设置方面许多错误。 --------------------编程问答-------------------- 我没有发现关于编译速度的差异。我想这相当于用高射炮打10只蚊子和11只蚊子,差别不大。 --------------------编程问答-------------------- 我有感觉到在编译速度上差别比较大。 --------------------编程问答-------------------- 什么也不用说了,除非是特别小的网站,否则就是WebApplication,好处很多 --------------------编程问答-------------------- 个人觉得WebApplication好用一点 --------------------编程问答-------------------- WebApplication --------------------编程问答-------------------- 我使用 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目录设置方面许多错误。

--------------------编程问答-------------------- 理想和现实总是不一样的。例如你可以说把所有界面都在其它工程里作成自定义控件,但是实际情况下还是有很多在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不是为了减少冲突,而是为了让机器干净。 --------------------编程问答-------------------- “Ajax Control Toolkit”的demo代码编译完了,如果合并为一个dll,大概将近 2M 吧。而实际上,这个demo并不是什么真正的应用系统,只是演示20个左右控件而已,与应用相比可以说其页面代码量连十分之一都不足。

如果能够每一次更新上传200K,就不会去选择上传10M。 --------------------编程问答-------------------- >>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/ 这个网站来说的,这个不算大站,但是也不是太小吧。



--------------------编程问答-------------------- >>都加在一起也不过1M 

算错了,加起来不超过 500K。
--------------------编程问答-------------------- 还在用2003 --------------------编程问答-------------------- xue xi --------------------编程问答-------------------- ?? --------------------编程问答-------------------- 个人比较喜欢WebSite,其中还有一个优点就是很好做开发移植,如果你有2台机子做开发,白天公司开发,晚上回家开发,那么WebSite只需要拷文件夹,然后打开网站既可。

而且不装WebApp是因为,SP1装起来太慢了,我睡了好几觉。。。而且总觉得打了SP,像穿补丁,郁闷。。。呵呵,最后一句纯属娱乐 --------------------编程问答-------------------- 肯定要选择webapplication了,迁移比较容易 不用配置站点 --------------------编程问答-------------------- webapplication --------------------编程问答-------------------- 一个b/s ,一个c/s --------------------编程问答-------------------- 看错,当我没说。 --------------------编程问答-------------------- 上面这哥们太幽默了 --------------------编程问答-------------------- WebSite  做练习用 简单 方便  修改了 不用编译  直接就能看到效果~~  大项目用webapplication --------------------编程问答-------------------- 不觉得大项目要用webapplication,website不能用在大项目?
各有优势,个人比较喜欢website方式;webapplication只要有一点更改就要编译一下开发效率低下之极,当有bug产生时webapplication的更新方式也不那么令人愉快。
还是website来的方便、灵活,那里有问题更新哪里。

至于楼上很多人说webapplication运行快,偶认为这是没有根据的,asp.net都是编译执行何来快一些,如sp1234所说快也就那么一点点,可以忽略掉的,真正要让程序跑的快还是要靠编程、服务器性能。

另外webapplication有个很让我讨厌的地方就是,每次添加文件都要自动修改工程文件csproj,导致webapplication.csproj文件越来越大;在做团队开发时,每天都需要在合并webapplication.csproj文件上耗费很长时间。 --------------------编程问答-------------------- 我了个去 !远古时期的老坟都被挖出来了 --------------------编程问答-------------------- --------------------编程问答-------------------- 深入挖掘
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,