【转】asp.net中的WebApplication(web应用程序)和WebSite(网站)
【转】asp.net中的WebApplication(web应用程序)和WebSite(网站)
web application是MS在发布VS2005之后追加的SP1扩展包里的一种新的Web模式,WebApplication编译时忽略了页面中代码的检查,不需要做分析,将这些任务交给了运行时。WebSite的优势在于可以单个页面独自编译,这对大项目而言是一个相当大的优势,二者的直观区别在于,对每一个aspx页面文件,WebApplication在有对应cs文件的同时还拥有designer.cs文件,baidu了一下。
WebApplication编程模型的优点:
●网站编译速度快,使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。
●生成的程序集
WebSite:生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集
WebApplication:可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息
●可以将网站拆分成多个项目以方便管理
●可以从项目中和源代码管理中排除一个文件
●支持VSTS的Team Build方便每日构建
●更强大的代码检查功能,并且检查策略受源代码控制
●可以对编译前后进行自己规定的处理
●对App_GlobalResources 的Resource强类支持
●直接升级使用VS2003构建的大型系统
WebSite编程模型的优点:
●动态编译该页面,马上可以看到效果,不用编译整个站点(主要优势)
●同上,可以使错误的部分和使用的部分不相干扰
●可以每个页面生成一个程序集
●可以把一个目录当做一个Web应用来处理,直接复制文件就可以发布,不需要项目文件
●可以把页面也编译到程序集中
两种编程模型的互相转换:
VS2005 SP1内置了转换程序,可以非常方便的从WebSite转换到WebApplication只需要复制文件,右键执行“转换为Web应用程序”即可。
总之,大网站比较适合用WebApplication项目,小网站比较适合用WebSite项目
下面的表格列出了Web Application 和 Web Site 的重要区别。
情况 |
Web Application Project |
Web Site Project |
工程定义 |
只有在 Web Application的解决方案中引用的文件才是项目的一部分。这些文件也显示在解决方案资源管理器中,并在生成期间进行编译。由于存在项目文件,因此有些方案更加容易实现。例如,可以将一个 ASP.NET 应用程序细分为多个 Visual Studio 项目。还可以轻松地从项目和源代码中排除文件。 |
Web site 使用文档结构管理项目文件。他不包括项目文件,文件夹中的所有文件都是项目的一部分 适用于现存不包含项文件的网站目录。 |
编译和生成输出 |
项目中所有的程序代码文件,和独立的文件都被编译成为一个程序集,保存在bin文件夹中,可以指定程序集的名字、版本、输出位置等信息 |
在Web Site 项目中使用生成命令时,并不会生成程序集 ,而只是对Web Site进行验证 。在运行Web Site的时候,由asp.net的动态编译部署的页面,类源文件。 同时也可以对站点进行预编译以提高性能,在预编译中使用的是和动态编译同样的技术。 Asp.net预编译有2中模式. batch mode (the default) and fixed-names mode. batch mode 中生成一个程序集。fixed mode 每个页面,用户控件都生成独立的程序集。 |
开发 |
在需要运行和调试程序之前需要进行编译整个项目,但是通常Web Application编译速度很快,因为使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。 |
由于使用了动态编译机制,并且编译到不同的程序集,所以访问或者调试特定页面时,不需要编译整个项目编译成功。 生成命令会对整个项目进行验证,但是速度较慢,所以建议在开发和调试的过程中,仅使用编译当前页面。 |
部署 |
由于所以代码文件都生成为一个程序集,所以只需要把程序集和.aspx等页面文件部署到服务器上。 .aspx文件只有在被浏览器访问到的时候才进行编译。 每次更新程序集的时候,相当于替换了所有的页面代码. |
使用发布命令可以把.aspx文件和后台代码文件都编译到程序集中,如果选择了updateable publish option 时,只是对后台代码进行编译 。 默认模式会针对每个文件夹生成一个程序集.固定名称模式,会针对每个页面,控件生成一个程序集 ,不过可能造成存储空间的额外负担。 |
从Visual Studio .NET 2003 升级 |
由于和.net 2003工作原理相同,基本不需要太多的操作。 |
需要使用升级向导,并且需要其他的一些额外操作。 |
转载于:https://www.cnblogs.com/aaa6818162/archive/2009/05/09/1453141.html
【转】asp.net中的WebApplication(web应用程序)和WebSite(网站)相关推荐
- 在Tomcat中部署Java Web应用程序几种方式
在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录. 一.静态部署 静态部署指的是我们在服务器启动之 ...
- 使用Eclipse在Amazon Ec2中部署Java Web应用程序的完整指南
嗨,读者们, 今天,我将向您展示如何使用Eclipse IDE在Amazon EC2中部署简单的Java Web应用程序. 在我们开始之前,我们需要一些必需的东西, Eclipse Java EE I ...
- 【转】Tomcat中部署java web应用程序
http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载: 今天给大家介绍怎样在Tomcat5.5.9中部署Java We ...
- 在ASP.NET中使用Office Web Components (OWC)创建统计图
图形和图表是Web上数据表现的很好的形式,在ASP.NET,可以使用Office Web Components (OWC)来创建统计图.Office Web Component (OWC)是包含在Mi ...
- 在ASP.NET Core 2.2 Web应用程序项目中自定义Bootstrap
.NET Core 2的默认Web应用程序模板 介绍 Visual Studio 2017中.NET Core 2.2的默认Web应用程序模板包含Bootstrap的默认实现,其在"wwwr ...
- 新建项目ASP.NET Web 应用程序和新建网站的区别
web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs:Web网站Default.aspx显示有一个原有文件Defa ...
- ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序
本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...
- 使用Maven,Jetty和Tomcat在嵌入式容器中运行Java Web应用程序
在开发Java Web应用程序时,从"真实"环境中获得快速反馈非常实用. 在本文中,我将探讨如何在嵌入式容器Jetty或Tomcat中运行带有Maven的Java Web应用程序. ...
- java osgi web开发_在Tomcat中使用Java Web应用程序的OSGi软件包
我试图从Java Web应用程序调用OSGi包的方法.两者都应该在Tomcat 7上运行. 我已经写了一个正常的Java应用程序,它调用OSGi软件包中的方法,如本站所述:http://drupal. ...
最新文章
- python异常机制
- python matplotlib 简单用法
- 【疯狂积累CSS】2:利用@media screen实现网页布局的自适应
- Android 进程常驻(使用第三方MarsDaemon)(虽然不可用,但是还是保留下。)
- oracle where order by,ORACLE SQL WHERE和ORDER BY
- CodeForces 7D	 Palindrome Degree 字符串hash
- Oracle中通过substr和instr实现截取指定字符之间的字符串:
- Mipmap纹理技术简介
- Revit二次开发 - C#程序员的佳好选择
- 2022年五一建模比赛A题#五一建模
- python与乐高ev3结合_乐高Ev3嵌入式系统(Python)的图像识别
- 联想叶明:“双态IT”不能一刀切理解
- 交会定点(前方交会、测边交会、后方交会)程序C++代码
- Latex设置每段前的空格数
- windows10 插入耳机无弹出,无声音,提示扬声器、耳机未插入
- 如何创建java project
- html 怎么转换,将 HTML 转换成任意你想要的形式!
- 新月已冉冉升起.ALOKEX永续合约统领市场已成定局
- 荣联科技:专注技术与行业深度融合,赋能行业数字化转型
- sql 汉字按照首字母排序
热门文章
- 节点+Executor+Core+Task+Partition+RDD+job+DAG+stage+action算子之间的数量关系+两种并行度的区别
- no module named social_django
- AuthFailed at /social-auth/complete/facebook/
- 浏览器的headers
- pandas中的DataFrame转化为dict
- wine运行bat文件
- 安装sqoop以后,hive中的info信息无法禁止的问题解决
- Clion this file does not belong to any project target问题解决方案
- 最简洁的y460显卡切换安装方式
- 2019阿里应届内推编程题