新手对VS2003 SP的感言的介绍与剖析

开发 后端
经过长时间学习VS2003 SP,于是和大家分享一下,看完本文你肯定有不少收获,希望本文能教会你更多东西。学习VS2003 SP时,你可能会遇到许多问题,这里将介绍这些问题的解决方法,在这里拿出来和大家分享一下。

本文向大家介绍VS2003 SP,可能好多人还不了解VS2003 SP,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。它提供了一个使用了基于MSBuild的build系统的项目模型。

VS2005网站项目和VS2005Web应用项目简介,VS2005支持两种项目模型:VS2005网站项目(WebSiteProjects)和VS2005Web应用项目(WebApplicationProjects)。VS2005网站项目是VS2005刚发行时内置的项目模型,它提供了一个基于无项目(project-less)的模型来开发web应用,该模型使用了ASP.NET2.0在运行时使用的同个动态编译系统。而VS2005Web应用项目则是今春早些时候发布的一个完全支持的可下载项目模型,它提供了一个使用了基于MSBuild的build系统的项目模型,可以把一个项目中的所有编码编译成单个程序集(与VS2003类似,但又少了VS2003web项目中涉及FrontPage服务器扩展,IIS依赖性,以及其他问题的种种限制)。

想进一步了解VS2005Web应用项目的话,请参考我发表在http://webproject.scottgu.com网站上的系列教程。注意,对VS2005Web应用项目的支持将包含在VS2005SP1中,这样以后就不用另外下载了。

VS2005网站项目和VS2005Web应用项目两个模型在将来的VisualStudio版本中将会继续被完全支持。我们发现,有些人喜欢一个模型,憎恶另外一个模型,反之亦然。从特性(feature)的角度看,没有“***的模型选择”这一说,完全取决于你个人的爱好和你们的团队协作机制(teamdynamics)来决定哪个模型最适于你。譬如,许多的企业开发人员喜欢VS2005Web应用项目模型,因为它提供了更多的build控制和团队集成支持,而许多的web开发人员则喜欢VS2005网站项目模型,因为它的“即存即行(justhitsave)”的动态模型和灵活性。

有2篇文章,你也许会发现在决定采用哪个模型时有用,这篇MSDN上的白皮书内含对这两个模型的比较,而RickStrahl的《Web应用项目和Web部署项目发布了》一文对不同选项的利弊做了一个很好的讨论。

想从VS2005网站项目模型迁移到VS2005Web应用项目模型的话,请按这个C#或VB版的教程里示范的步骤做。

那么哪个项目模型Build起来快些呢?#t#

在对项目做fullbuild时,VS2005Web应用项目模型编译起项目来会比VS2003 SP网站项目模型快很多。fullbuild是指对项目里的每一个类和网页要做编译或重新编译的情形,要么因为你在build菜单里选了Rebuild,要么因为你修改了一个依赖的类库项目或者/app_code子目录里的编码,然后点击了build或按了ctrl-shift-b来编译解决方案。

在这些“全部重新编译(fullrebuild)”的情形下,VS2005Web应用项目编译比VS2005网站项目快很多有几个原因。主要原因是,跟在VS2003中一样,VS2005Web应用项目只编译你的页面的后台编码(code-behind)以及你项目中的其他类文件。它既不分析也不编译你的.aspx页面内的内容/控件/行内(inline)编码,这意味着,它不需要parse那些文件。坏处是,这也意味着,在编译过程中,它不会检查那些文件是否有错(而VS2005网站项目则会识别其中的任何错误)。好处是,这使得编译极其快。

那么,这是否意味着你总是应该在大型项目的情形下使用VS2003 SP应用项目模型来得到最快的build时间呢?不,不一定。VS2005网站项目的一个很好的特性是对“按需编译(ondemandcompilation)”的支持。这在你对所依赖的文件做了变化(dependentchanges)后,让你避免常规地重新编译整个项目,而是只需要对那些你正在编辑的页面做重新编译,而且这个编译是按需进行的。这会给你的解决方案带来build性能上的极大改进,而且也会在开发非常大的项目时给予你非常好的工作流程。如果你想要在保持网站模型灵活性的同时改进build性能,我强烈推荐使用这个模型。

下面几节提供了针对VS2005网站项目模型和VS2005Web应用项目模型优化技术方面的特定教程,包括我上面描述的“按需编译(ondemandcompilation)”build选项。

优化VS2005网站项目Build时间的特定技巧和诀窍

在使用VS2005网站项目模型时,按下述步骤做VS2003 SP的话,你就可以极大地改进build性能:

1)确认你没有遭受我称之为“程序集引用冲突(DuelingAssemblyReferences)”的问题。我在这个博客帖子里描述了如何发觉和解决这个问题。如果你曾经在build时看到编译过程好像在“正验证网站(ValidatingWebSite)”这个编译阶段停顿了(意即,输出窗口里超过几秒钟都没有输出)的话,你非常可能是遇上这个问题了。VS2003 SP使用上述这个博客帖子里概述的技术来解决这个问题。

2)把在/app_code子目录里的文件的数目保持在很小的范围。如果你***在这个目录里有一大堆类文件的话,我建议在你的VS解决方案里另建一个类库项目,把这些类移到这个类库项目里去,因为类库项目比/app_code子目录里的类编译快多了。如果在/app_code目录里只有小数量的文件的话,这通常不是个问题,但你有很多目录或数十个文件,那么把这些文件移到一个单独的类库项目里,然后在你的网站项目里引用这个类库项目,你将能改进build速度。另一个需要知道的事情是,每次你在VSHTML设计器里从源码视图转换到设计视图时,设计器会在设计表面加载之前引起/app_code目录的编译。原因是,这样你就可以在设计器里使用在/app_code目录里定义的控件。如果你没有/app_code目录,或者里面没几个文件,那么页面设计器加载起来就会极快,因为它不需要先做很大的编译工作。

3)在你的网站项目中激活“按需编译(on-demandcompilation)”。右击你的网站项目,打开项目属性页。在左边点击Build区,打开项目的build设置。在设置里把“F5启动操作(F5StartAction)”从“BuildWebSite(网站)”改成“BuildPage(页面)”或“NoBuild(不Build)”选项。然后,确认清除了“把网站当作解决方案一部分来Build(BuildWebsiteaspartofsolution)”复选框:

这让你来控制你要核实你网站上的哪些页面以及什么时候核实,可以极大地改进build性能。我推荐做的一个诀窍是,在你的环境里添加一个快捷键,允许你很快地触发Build Page操作,以避免使用鼠标和菜单。你可以这么做,选择工具->定制菜单选项,然后在定制对话框的左下方点击“键盘”按钮。这会打开一个对话框,让你选择VS Build.BuildPage命令,然后与你想要的任何键组合相关联:

build

 

 

责任编辑:chenqingxiang 来源: NET130
相关推荐

2009-11-27 16:16:51

VS2003系统

2009-11-27 10:14:44

2009-11-27 09:53:15

VS2003安装程序

2009-11-30 11:14:57

VS2003 WebS

2009-12-01 09:30:45

2009-11-30 13:51:28

2009-12-09 13:41:04

VS 2003 报错

2009-11-30 17:40:17

VS2003 ASP

2009-12-16 10:15:58

VS2003编译

2009-12-09 16:52:51

VS 2003插件

2009-11-30 09:27:38

VS2003源代码

2009-11-25 15:39:24

VS2003 Incl

2009-12-10 13:11:47

VS2003安装

2009-11-30 11:05:19

VS2003 WebS

2009-11-30 17:28:39

VS2003 ASP

2009-11-26 13:05:39

VS2003断点

2009-11-30 10:34:28

VS2003编译

2009-11-30 09:16:44

VS2003源代码

2009-11-25 13:35:05

VS2003使用

2009-11-27 08:59:29

VS2003配置文件
点赞
收藏

51CTO技术栈公众号