WebSite和Web Application\网站与Web项目的区别

简要记录下:

1、web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs;1、Web网站Default.aspx显示有一个原有文件Default.aspx.cs。
2、web应用程序有重新生成和发布两项;Web网站只有一个发布网站。
3、web应用程序和一般的winform没有什么区别都有引用的是命名空间等;Web网站在引用后出现一个bin文件夹那里存放dll和pdb文件。
4、web应用程序可以作为类库被引用;Web网站则不可以作为类库被引用。
5、web应用程序可以添加ASP.Net文件夹中不包括bin、App_Code;Web网站可以添加ASP.Net文件夹包括bin、App_Code。
6、web应用程序还可添加组件和类;Web网站则没有。
7、源文件虽然都是Default.aspx.cs但是web应用程序有命名空间,多了一项System.Collections空间引用。

 

摘自《ASP.NET 4权威指南》

在Visual Studio 2010中,除了可以使用创建Web应用程序的方式来构建自己的Web项目之外,还可以通过创建Web网站的方式来构建Web项目。

其中,Web网站的创建方法:打开Visual Studio 2010主窗体,在工具栏里选择“New”|“Web Site”命令,在弹出的New Web Site窗体里可以通过“ASP.NET Web Site”和“Empty Web Site”这两种模板来创建自己的Web网站。

其实,微软早在Visual Studio 2005的时候就提供了新建Web网站的功能,它是完全面向Web开发的。与Web应用程序相比,它们存在如下不同之处:

1. 从整体结构来看

Web应用程序和一般的Winform程序没有什么区别,它们都是按项目进行管理的,只有被项目文件所引用的文件才会在Solution Explorer中出现,而且只有这些文件才会被编译。可以很容易地把一个ASP.NET应用拆分成多个Visual Studio项目,也可以很容易地从项目和源代码管理中排除一个文件。而项目的文件都是按照命名空间来管理的,Web应用程序可以非常方便地引用其他的类库,并且自己本身也可以作为类库被引用,非常适合于项目分模板进行开发。因此,有人认为Web应用程序可能是微软为了让程序员很好地从Winform过渡到Web开发而保留了。

与Web应用程序相比,Web网站采用了全新的开发结构,一个目录结构就是一个Web项目,这个目录下的所有文件,都作为项目的一部分而存在。它抛弃了命名空间的概念,并且Web网站不可以作为类库被引用。

2. 从编译部署看

调试或者运行Web应用程序页面的时候,必须全部编译整个Web项目。编译整个Web项目通常比较快,因为Visual Studio使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。因为所有的类文件被编译成一个应用程序集,当你部署的时候,只需要把这个应用程序集和 .aspx文件、.ascx文件、配置文件以及其他静态内容文件一起部署。这种模型下,.aspx 文件将不被编译,当浏览器访问这个页面的时候,才会被动态编译。

而在Web网站项目中的所有的Code-Behind 类文件和独立类文件都被编译成一个独立的应用程序集,这个应用程序集被放在Bin目录下。因为是一个独立的应用程序集,你能够指定应用程序集的名字、版本、输出位置等信息。在默认情况下,当你运行或调试任何Web页的时候,Visual Studio会完全编译Web网站项目,这么做可以让你看到编译时的所有错误。但是,在开发进程中,完全编译整个站点会是相当慢的。所以推荐你在开发调试中只编译当前页。

根据上面的阐述,可以自行决定选择创建Web项目的方式。如果在开发上有如下需求,建议使用创建Web应用程序的方式来构建自己的Web项目:

  • 希望采用项目的管理方式,需要使用多个项目来构建一个Web应用,即把一个大的ASP.NET项目拆分成多个小项目。
  • 在开发上Web页面或者Web用户控件中需要使用到单独的类,并且希望使用命名空间来进行管理,编译后要控制应用程序集的名字。
  • 如果在开发上有下列需求,建议使用创建Web网站的方式来构建自己的Web项目:
  • 喜欢使用 Single-Page Code 模型来开发网站页面,而不是使用Code-Behind 模型来编写网站页面。
  • 在编写页面时,为了可以快速地看到编写效果,动态编译该页面,马上可以看到效果,不用编译整个站点。
  • 需要每个页面产生一个应用程序集。
  • 希望把一个目录当做一个Web应用来处理,而不需要新建一个项目文件。

转载于:https://www.cnblogs.com/spring_wang/archive/2013/05/05/3061396.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/433584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux(centos7)安装jdk

一、下载jdk1.8压缩包 官网链接如下: jdk官网 用xftp直接传输文件, 把下载好的jdk压缩包上传到Linux的文件夹下去到我们存放软件的文件夹下面,将刚刚下载好的压缩包通过如下命令进行解压: tar -zxvf jdk-8u321-linux-x64.tar.g…

inner join 和join的区别_left join、right join和join ???

点击上方“JAVA”,星标公众号重磅干货,第一时间送达有个困扰 说到SQL,很多人可能用了挺久,但依然有个问题一直困扰着,那就是 left join、 join、 right join和 inner join等等各种 join的区别。网上搜,最常…

黑马程序员顺义校区php_黑马程序员:从PHP零基础到月薪11K为何送锦旗给班主任?...

2016年我在传智播客学习完PHP以后,特意给班主任王智慧老师送了一面锦旗。为什么我会送锦旗,那是因为从她当我们班主任开始,就非常的负责,对我们非常的好,这个可以随便问问班里的同学。而且我能找到高薪工作跟她对我的鼓…

C++中std::tr1::function和bind 组件的使用

在C的TR1中(Technology Report)中包含一个function模板类和bind模板函数&#xff0c;使用它们可以实现类似函数指针的功能&#xff0c;但却却比函数指针更加灵活&#xff0c;特别是函数指向类的非静态成员函数时。可以参考Scott Meyers. <<Effective C (3rd Edition)>…

linux(centos7)安装MySQL

一、删除MariaDB的文件 通过命令查询MariaDB&#xff1a;rpm -pa | grep mariadb 通过命令删除查找到的程序rpm -e 查找到的文件名 如果删除失败&#xff0c;就通过下面的命令强制删除&#xff1a;rpm -e --nodeps 查找到的文件名 二、安装MySQL 1、安装mysql repo源 …

python ddos攻击脚本_python版本DDOS攻击脚本

今天为了休息下&#xff0c;换换脑子&#xff0c;于是就找到了我之前收藏的一篇python的文章&#xff0c;是关于ddos攻击的一个脚本&#xff0c;正好今天有空&#xff0c;就实践下了。 附上源码pyDdos.py:#!/usr/bin/env python import socket import time import threading #P…

设计模式 - Command

意图&#xff1a;将一个请求封装为一个对象&#xff0c;从而使你可用不同的请求对客户进行参数化&#xff1b;对请求排队或记录请求日志&#xff0c;以及支持可撤消的操作。 class Receiver { public:Receiver(){}virtual ~Receiver(){}virtual void Action(){cout<<&quo…

代码中特殊的注释技术——TODO、FIXME和XXX的用处

前言&#xff1a;今天在阅读Qt Creator的源代码时&#xff0c;发现一些注释中有FIXME英文单词&#xff0c;用英文词典居然查不到其意义&#xff01;实际上&#xff0c;在阅读一些开源代码时&#xff0c;我们常会碰到诸如&#xff1a;TODO、FIXME和XXX的单词&#xff0c;它们是…

我有机器人合体成一个大力神_史上最菜大力神(三)——SS加强级高塔

史上最菜大力神&#xff08;三&#xff09;——SS加强级高塔​mp.weixin.qq.com上次开箱废渣和狂暴的时候&#xff0c;误把电影中出现的高塔当作废渣&#xff0c;犯下了一个不大不小的错误&#xff0c;如今真正的高塔终于来了。史上最菜大力神&#xff08;一&#xff09;——SS…

c语言判断闰年_C语言1博客作业06 - D丶千思

1.作业头实验作业输入在一行中按照格式“yyyy/mm/dd”(即“年/月/日”)给出日期。注意&#xff1a;闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。闰年的2月有29天。.1数据处理数据表达&#xff1a;采用整形定义变量Y(year)&#xff0c;M(month)&#x…

新版本idea的run/debug configuration

点击Edit Configuration点击modify options的下拉选项根据需要勾选相应的选项

登录用户Eclipse中SVN访问用户的变更办法

废话就不多说了&#xff0c;开始。。。 有点标题党了&#xff0c;呵呵 其实不止Eclipse成集SVN&#xff0c;全部SVN拜访用户的更变&#xff0c;都可以参照面下的式方 每日一道理 谁说人与人隔着遥远的重洋&#xff0c;谁说心与心设着坚固的堤防&#xff1f;十六岁的鸟儿飞上天空…

无法渲染窗口发黄_基础c4d教程:OC渲染器的立体光照

一、效果图昨天才把C4DR19安装好&#xff0c;之前安装一直在说无法找到系统的什么dll&#xff0c;后面查了好多方法终于弄好了&#xff0c;今天我也是第一次使用OC渲染&#xff0c;所以可能调节就没有那么好&#xff0c;大家一起进步吧&#xff01;二、教程1、首先打开我们的C4…

java8 list 去重_Java8-Stream在集合中的8种应用案例

前言Java8新特性我们使用的应该比较多了&#xff0c;今天这里整理了个人使用最多的8种场景&#xff0c;希望对大家有所帮助。Java Stream在集合中的运用案例遍历遍历也许是我们使用最多的功能了&#xff0c;在Java8之前我们遍历集合通常会采用for循环&#xff0c;迭代器&#x…

springboot——热部署

一、手动启动热部署 在进行 Spring Boot 的 Web 项目开发中&#xff0c;我们经常会遇到源代码文件、 配置文件等的修改&#xff0c;但每次修改后都会重启 Web 服务器才能修改后的文件生效&#xff0c; 这样很耗时&#xff0c;影响开发效率。而热部署就是不需要重启 Web 服务器就…

(转载)ubuntu开启SSH服务

&#xff08;转载&#xff09; http://www.cnblogs.com/xiazh/archive/2010/08/13/1798844.htmlSSH分客户端openssh-client和openssh-server如果你只是想登陆别的机器的SSH只需要安装openssh-client&#xff08;ubuntu有默认安装&#xff0c;如果没有则sudo apt-get install op…

cmake 学习笔记(一)

最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用cmake 作为构建系统... 看来不学习一下cmake是不行了&#xff0c;一点一点来吧&#xff0c;找个最简单的C程序&#xff0c;慢慢复杂化&#xff0c;试试…

c++邮递员投递经过特定点_厉害了斑马鱼,动物实验体天团C位

明明是一条鱼&#xff0c;为什么在保健食品以及药品领域即将成为实验动物C位&#xff1f;越来越多的药品及保健食品企业&#xff0c;都想邀请它们成为座上宾&#xff0c;是时候展示真正的技术了&#xff01;透明就是很厉害斑马鱼从胚胎阶段至未来的成熟阶段&#xff0c;身体中有…

选了combobox里的选项后没激发change事件_备胎测试:来测测你被备胎了没?

很多人在感情里被备胎而不自知&#xff0c;今天就来教大家如何辨别备胎。你知道备胎的最大特征是什么吗&#xff1f;是在面对关系定位时&#xff0c;态度上的模棱两可。想想你身边养备胎的人&#xff0c;如果没有的话&#xff0c;想想电视剧或小说里养备胎的人&#xff0c;想想…

第七章:清楚简洁的英文 --《英语科技写作(文法与修辞原则)》by 方克涛

1. 在英文写作中&#xff0c;最好的方法是效仿英文为母语的写作者。 2. 资深的英文写作者&#xff0c;都喜欢直接而间接的写作方式。在中文写作中&#xff0c;作者有时候会假定读者已经知道主语是谁而将其省略&#xff0c;而英文中主语是必须有的&#xff0c;不能省略。 7.1 句…