惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
LangChain Blog
博客园 - 司徒正美
美团技术团队
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
T
Troy Hunt's Blog
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
Engineering at Meta
Engineering at Meta
Cisco Talos Blog
Cisco Talos Blog
T
Tor Project blog
B
Blog
NISL@THU
NISL@THU
月光博客
月光博客
博客园 - 【当耐特】
AWS News Blog
AWS News Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
腾讯CDC
L
Lohrmann on Cybersecurity
The Cloudflare Blog
L
LINUX DO - 最新话题
S
Security @ Cisco Blogs
S
Secure Thoughts
Spread Privacy
Spread Privacy
有赞技术团队
有赞技术团队
The Last Watchdog
The Last Watchdog
Project Zero
Project Zero
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Vercel News
Vercel News
H
Hacker News: Front Page
S
SegmentFault 最新的问题
Schneier on Security
Schneier on Security
aimingoo的专栏
aimingoo的专栏
P
Privacy & Cybersecurity Law Blog
博客园 - 三生石上(FineUI控件)
Forbes - Security
Forbes - Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
T
Tailwind CSS Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
GRAHAM CLULEY
W
WeLiveSecurity
小众软件
小众软件
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org

博客园 - 小小飞鹰

MMM互助金融/理财源码 js 弹出窗口 防止拦截,突破阻止,保存后打开 .NET开发者必备的工具箱 NBIbatis web/winform框架 NBIbatis 微信框架 NBIbatis 框架体系说明 NBIbatis 基础框架 开源中国上一些有用的开源系统 TfS+强制删除签出锁定项 thinkphp支持大小写url地址访问,不产生下划线 sqlserver 链接 ODBC 访问 MySql ibatis + log4net 配置注意事项 Devexpress GridView内嵌dx:ASPxGridLookup取得控件值乱跳解决方案 【转】Asp.Net MVC及Web API框架配置会碰到的几个问题及解决方案 将关系数据库映射到业务实体 百度贴吧10亿量级LAMP架构分享 dynamics ax 2009 distinct实现及数组集合 dynamics ax 2009 字段类似的表绑定界面注意 dynamics Ax 2009 实现 union 效果
[转]ASP.NET中 WebSite 跟 WebProject 的异同
小小飞鹰 · 2012-11-12 · via 博客园 - 小小飞鹰

在VS2008中,一个ASP.NET应用程序的存在形式有两种,WebSite 跟 WebProject ;首先必须明确的是,这两种不同的形式,在最终部署到服务器和编译后具有相同的结果,仅在设计时它们的组织结构有所不同。

  从创建方式上来说:区别在于:一种是FILE->NEW->PROJECT->ASP.NET WEB APPLICATION ;另一种是:FILE->NEW->WEBSITE;

  从组织方式上来说:WP型创建时会生成一个项目文件 *.csproj,来记录一些编译调试设置。而WS型没有。对于WP来说,项目可能只需要一个编译好的dll程序集就可以响应整个项目的所有应用请求。(我猜的!)而对于WS来说,项目根文件夹下的所有部分都视为是WEB应用程序的一部分。

  从编译方式上来说:运行一个WP时,VS会在启动浏览器之前把所有代码,所有页面都编译成一个程序集(Bin目录下)。但是也不要被编译全部代码吓到,据说VS采用了一种增量编译模式,也不会很慢。而对于WS来说,不需要预编译代码。每个页面在第一次请求时才进行编译。

  细节上来说,Web Project 的页面中的Page指令中,使用了CodeBehind 属性,而在Web Site页面中,使用的是 CodeFile 属性,来指明该页面的代码文件名。示例如下:

  WP:<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="MyWebProject._Default" Trace="False" %>

  WS:<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs"  Inherits="_Default" %>

  另外, Web Project 中的每一个页面除了ASPX文件,同名CS文件,还有一个叫: *.aspx.desinger.cs 文件,它里面包含了页面上所有控件的声明。而Web Site类型的APP中就没有这样东西。因为这部分代码由ASP.NET在编译时生成。

  在程序集引用这一方面上,WS的所有程序集引用都是记录在 web.config 文件里面的,这样ASP.NET在编译时解析引用时使用。 但是 WP 中的程序集引用是保存在项目文件 *.csproj中的,VS在编译代码时要使用它们。但有两个例外:System.core.dll  System.Web.Extension.dll 对引用是放在web.config中的,因为它们包含指定新的配置设置所需要的类。

  WS 型开发的优点:

  部署简单,只要把网站目录整个复制到WEB服务器即可。

  简化了文件管理,任何页面文件,增删随意,不需要编辑项目文件,或者运用VS。

  简化了团队协作,可以不同人写不同的页面,到时直接放过来就可以了。

  简化了调试,WP型项目中,即使只修改了某个页面,也必须重新编译整个应用程序。而WS中每个文件都单独编译,并且页面只在第一次请求它的时候才编译。

  允许混合使用语言。

  WP型开发的优点:

  文件管理比较严格,不会有什么乱七八糟的东西出现,部署的时候不需要源代码文件,因为已经被预编译进DLL中了。当然WS型也可以使用预编译工具预编译后再部署。

  允许自定义部署过程,可以和MSBuild工具一起使用,允许项目的自动化和定制化编译。此外,可以对生成的程序集进行更有效的控制,可以进行合适的命名或者签名。而WS生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集

  WP型项目更容易迁移。

   看了这么多,它们的一个小小的共同点是 都需要使用 web.config 配置文件。

  最后,微软官方推荐使用 WS 方式进行开发。还有,WS,WP之间的互转,应该还是比较麻烦的,真碰到了再看。