【转】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(网站)相关推荐

  1. 在Tomcat中部署Java Web应用程序几种方式

    在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署.在下文中$CATALINA_HOME指的是Tomcat根目录.  一.静态部署       静态部署指的是我们在服务器启动之 ...

  2. 使用Eclipse在Amazon Ec2中部署Java Web应用程序的完整指南

    嗨,读者们, 今天,我将向您展示如何使用Eclipse IDE在Amazon EC2中部署简单的Java Web应用程序. 在我们开始之前,我们需要一些必需的东西, Eclipse Java EE I ...

  3. 【转】Tomcat中部署java web应用程序

    http://www.blogjava.net/jiafang83/archive/2009/06/02/279644.html 转载: 今天给大家介绍怎样在Tomcat5.5.9中部署Java We ...

  4. 在ASP.NET中使用Office Web Components (OWC)创建统计图

    图形和图表是Web上数据表现的很好的形式,在ASP.NET,可以使用Office Web Components (OWC)来创建统计图.Office Web Component (OWC)是包含在Mi ...

  5. 在ASP.NET Core 2.2 Web应用程序项目中自定义Bootstrap

    .NET Core 2的默认Web应用程序模板 介绍 Visual Studio 2017中.NET Core 2.2的默认Web应用程序模板包含Bootstrap的默认实现,其在"wwwr ...

  6. 新建项目ASP.NET Web 应用程序和新建网站的区别

    web应用程序Default.aspx显示有两个原有文件及Default.aspx.cs和Default.aspx.designer.cs:Web网站Default.aspx显示有一个原有文件Defa ...

  7. ASP .NET Core Web MVC系列教程:使用ASP .NET Core创建MVC Web应用程序

    本系列教程翻译自微软官方教程,官方教程地址:Get started with ASP.NET Core MVC | Microsoft Docs 本系列教程介绍了构建MVC Web应用程序的基础知识. ...

  8. 使用Maven,Jetty和Tomcat在嵌入式容器中运行Java Web应用程序

    在开发Java Web应用程序时,从"真实"环境中获得快速反馈非常实用. 在本文中,我将探讨如何在嵌入式容器Jetty或Tomcat中运行带有Maven的Java Web应用程序. ...

  9. java osgi web开发_在Tomcat中使用Java Web应用程序的OSGi软件包

    我试图从Java Web应用程序调用OSGi包的方法.两者都应该在Tomcat 7上运行. 我已经写了一个正常的Java应用程序,它调用OSGi软件包中的方法,如本站所述:http://drupal. ...

最新文章

  1. python异常机制
  2. python matplotlib 简单用法
  3. 【疯狂积累CSS】2:利用@media screen实现网页布局的自适应
  4. Android 进程常驻(使用第三方MarsDaemon)(虽然不可用,但是还是保留下。)
  5. oracle where order by,ORACLE SQL WHERE和ORDER BY
  6. CodeForces 7D Palindrome Degree 字符串hash
  7. Oracle中通过substr和instr实现截取指定字符之间的字符串:
  8. Mipmap纹理技术简介
  9. Revit二次开发 - C#程序员的佳好选择
  10. 2022年五一建模比赛A题#五一建模
  11. python与乐高ev3结合_乐高Ev3嵌入式系统(Python)的图像识别
  12. 联想叶明:“双态IT”不能一刀切理解
  13. 交会定点(前方交会、测边交会、后方交会)程序C++代码
  14. Latex设置每段前的空格数
  15. windows10 插入耳机无弹出,无声音,提示扬声器、耳机未插入
  16. 如何创建java project
  17. html 怎么转换,将 HTML 转换成任意你想要的形式!
  18. 新月已冉冉升起.ALOKEX永续合约统领市场已成定局
  19. 荣联科技:专注技术与行业深度融合,赋能行业数字化转型
  20. sql 汉字按照首字母排序

热门文章

  1. 节点+Executor+Core+Task+Partition+RDD+job+DAG+stage+action算子之间的数量关系+两种并行度的区别
  2. no module named social_django
  3. AuthFailed at /social-auth/complete/facebook/
  4. 浏览器的headers
  5. pandas中的DataFrame转化为dict
  6. wine运行bat文件
  7. 安装sqoop以后,hive中的info信息无法禁止的问题解决
  8. Clion this file does not belong to any project target问题解决方案
  9. 最简洁的y460显卡切换安装方式
  10. 2019阿里应届内推编程题