RSS 2.0 Feed
2007-11 Entries
摘要:【原文地址】.NET Web Product Roadmap (ASP.NET, Silverlight, IIS7)【原文发表日期】 Thursday, November 29, 2007 9:22 AM 上个星期,我们发布了Visual Studio 2008 和.NET 3.5。这个发布对.NET来说,非常巨大,它为web,客户端,办公,和移动开发提供了成堆的新功能和众多的改进。 在下几个月里,我们将发布建造在Visual Studio 2008 和.NET 3.5基础之上的一系列另外的产品,进一步完善.NET开发。下面是一些我的团队正在开发的,预定要在几个月内发布的.NET web开发方面的产品的路线图: 发布.NET Framework库的源码 上个月,我们宣布了我们将提供给开发人员下载和浏览.NET Framework库的源码的能力,以及使用Visual Studio 2008来启用集成的源码调试功能。你可以在我这里的博客贴子里了解有关详情。 我们目前正在完成提供这些源码的源码服务器的最后部署,不久就会发布如何在Visual Studio 2008中启用集成调试体验的说明。一旦发布,我会在博客里讨论启用这个功能的详细步骤。 ASP.NET 3.5 Extensions(扩展) VS 2008 和.NET 3.5包含了成堆的ASP.NET开发方面的新特性。我们计划在明年发布的“ASP.NET 3.5 Extensions”产品里提供更多的ASP.NET功能,下个星期你将可以在网上下载这个产品的第一个公开预览版。 下个星期的ASP.NET 3.5 Extensions预览版将包括: ASP.NET MVC: 这个ASP.NET模型/视图/控制器(MVC)框架提供了结构化的模型,促成了web应用中的清晰关注分离,方便你单元测试你的代码和支持TDD流程。它还帮着提供了对你发布在应用中的URL更多的控制,以及从中输出的HTML的更多的控制。你可以在我的ASP.NET MVC教程系列的第一部分中了解有关详情。我希望在这个周末能找到时间撰写和发表这个系列的第二部分。 ASP.NET AJAX改进: ASP.NET 3.5 Extensions中的新ASP.NET AJAX特性将包括更好的浏览器历史支持(往前,往后按钮的集成,通过 <asp:history> 新服务器端控件实现的服务器端历史管理支持),通过永久链接(permalinks)实现的改良的AJAX内容链接,以及另外的JavaScript库改进等。 ASP.NET动态数据支持: ASP.NET 3.5 Extensions将提供允许你更快速地创建数据驱动网站的新特性,它提供了丰富的scaffolding框架(【注】scaffolding, 字典上是脚手架,搭脚手架,支架的意思,在这里大概的意思是指生成基本的应用代码,譬如可以根据数据库内的数据定义生成跟产品有关的模型,控制器,以及视图等),允许你使用ASP.NET WebForms和ASP.NET MVC进行快速的数据驱动网站的开发。 ASP.NET Silverlight支持: 随着ASP.NET 3.5 Extensions的发布,我们将提供将Silverlight轻松集成进你的ASP.NET应用的支持,这些支持将包括一些新控件,它们方便你在网站上集成Silverlight视频,音频和可交互性内容。 ADO.NET Data Services (数据服务): 与此同时,我们还将发布ADO.NET Entity Framework(实体框架)。这提供了一个新的建模框架,允许开发人员定义与数据库数据定义相对应的概念性模型,这个概念性模型与信息的现实世界观更为接近。我们还将发布一套新的数据服务(代号名为“Astoria”),方便你从ASP.NET应用中呈示基于REST的API端点。 Silverlight 2.0 2个月前,我们发布了可用于Mac和Windows的Silverlight 1.0,同时宣布了准备在Linux上推出Silverlight的计划。Silverlight 1.0注重于在浏览器中促成丰富的媒体场景,以及支持一个JavaScript/AJAX编程模型。 明年,我们将推出Silverlight的一个重大的更新版,注重于促进RIA应用的开发。这个发布将包括跨平台,跨浏览器版本的.NET Framework,促成浏览器中的丰富的.NET开发平台。今年早些时候,我们发布了一个早期Alpha版本,内含一些该产品的基本的功能。我们下一个公开预览版将显著增加功能集。在下一个Silverlight公开预览版中将包括下面这些特定于.NET的新特性:......[阅读全文]

posted @ | Feedback (12) | Filed Under [ ASP.NET .NET IIS7 Visual Studio Community News Silverlight MVC ]

摘要:【原文地址】VS 2008 Compatibility with Older VS 2005 Add-in Packages 【原文发表日期】 Tuesday, November 27, 2007 11:43 PM 上个星期,我帮几个人解决了他们遇上的VS 2008问题,这些问题包括在启动IDE或者创建新项目时时,程序会死掉,死掉时通常会出现“Visual Studio has encountered an unexpected error(Visual Studio遇到意外错误)”的对话框。 在调试这些问题后,发现原来是由他们安装在机器上的与VS 2008不兼容的老的VS 2005附件(add-in)造成的。在这些特定案例中,是由一个老版本的VisualSVN源码控制附件造成的。注:VisualSVN的1.3.1是可以在VS 2008下工作的,但比这个旧的版本会有问题。 在默认情形下,如果你在一个安装了VS 2005的机器上安装VS 2008的话,安装程序会使用你现有的设置配置VS 2008,会导入你现有的VS 2005配置和附件包等。如果你看到任何程序死掉或其他问题的话(特别是第一次启动IDE时),非常有可能是由跟VS 2008有兼容问题的老附件包造成的。 如果你遇上这样的问题的话,一个选项是试着在“安全模式下”启动VS 2008。这会在禁止附件包的情形下启动IDE,提供一个很好的方式让你判断问题是否是由附件包造成的。你可以在命令行上往VS 2008 devenv进程传入 /safemode 切换标志,来在安全模式下启动VS 2008: 如果你发现你遇上的问题是跟附件有关,你可以使用Tools->Add-In Manager菜单在IDE中禁止那个附件。 作为一最佳实践,我建议你对安装在Visual Studio中的附件要密切注意,一定要周期性地检查是否有更新版本(特别是在升级到VS 2008时)。如果你会报告与VS相关的问题的话,请一定要提供你安装的附件包的详细信息,因为这对我们的调查会提供非常大的帮助。 希望本文对你有所帮助, Scott 附注:JetBrains公司的Ilya Ryzhenkov最近发表了一个博客贴子,详细讨论了更新很受欢迎的ReSharper附件到VS 2008的计划。你可以在这里阅读。 标签: Visual Studio...[阅读全文]

posted @ | Feedback (0) | Filed Under [ Visual Studio ]

摘要:【原文地址】Silverlight 1.1 Tools Alpha for Visual Studio 2008 Available for Download 【原文发表日期】 Monday, November 26, 2007 10:01 PM 今天下午,我们发布了可以用于Visual Studio 2008最终版的Silverlight 1.1 Tools Alpha的更新版本。你可以在这里免费下载。 今天发布的这个工具alpha更新版与原先发布的用于Visual Studio 2008 Beta2的Silverlight Tools Alpha附件(add-on)具有同样的功能集(只是升级到VS 2008最终版而已)。功能集包括基本的Silverlight 1.1项目系统支持,XAML标识编辑和intellisense支持,调试支持,Expression Blend项目兼容性,以及VB与C#后台代码的intellisense。你可以在这里找到快速入门的教程,这些教程详细讨论了如何使用这些功能。 Silverlight的下一个公开预览版将包括成堆的新运行时功能,以及显著增强的VS 2008工具支持。我不久将在博客中对此作详细讨论。 希望本文对你有所帮助, Scott 标签: Visual Studio, .NET, Community News, Silverlight...[阅读全文]

posted @ | Feedback (7) | Filed Under [ .NET Visual Studio Community News Silverlight ]

摘要:【原文地址】Answers to a few VS 2008 Trial Edition, TFS 2008, and SourceSafe Questions 【原文发表日期】 Monday, November 26, 2007 8:35 PM 下面是我过去几天看到的关于新近发布的VS 2008的几个问题的一些答复: VS 2008专业版的试用版本什么时候可以下载? 上个星期,我们在网上发布了VS 2008 Team Suite的免费试用版本。你可以在这里下载。我们希望在这个星期的稍后发布VS 2008专业版的免费试用版本。安装它们之后,两个都可以免费试用90天。如果你不是MSDN的订阅者,但想要马上得到VS 2008的话,这是起步的一个好方式。 可以把安装好的VS 2008试用版本转换成正式版本(purchased edition)么,还是需要重新安装? VS 2008的商业版本带有一个PID产品密钥(product key),你可以升级安装好的VS 2008试用版本来使用这个PID,而不必重新安装VS 2008。升级的方式有2种: 1) 从Windows的添加、除去(add/remove)程序工具里,调出VS安装程序,输入你购买的许可PID,升级就完成了(不需要DVD或另外的安装)。 2) 从你购买的DVD启动安装程序。如果是跟VS试用版本的版本是一样的,会有一个选项,让你输入完整的PID来升级试用版本。 在哪里可以找到单独的VS 2008 Team Explorer安装文件? VS 2008 Team Explorer可以用作单独的富客户端来访问VS 2008 Team Foundation Server。你可以在这里下载。 可以用VS 2008来访问TFS 2005么?可以用VS 2005来访问TFS 2008么? 是的,你可以使用VS 2008客户端来访问Team Foundation Server 2005。同样的,你可以使用VS 2005客户端来访问Team Foundation Server 2008。你可以在这里下载TFS 2008的90天免费试用版本。 如果你目前在使用TFS(或者想在将来使用它),你应该订阅Brian Harry这里的精彩博客。一定要阅读一下他关于TFS 2008的功能的博客帖子,以及讨论TFS 2008安装问题的帖子。 Visual SourceSafe和VS 2008间是什么状况? 我们正在更新Visual SourceSafe 2005,以使它能和VS 2008合作。我们原先计划在上个星期就发布的,但在发布前发现了一个缺陷,会延迟几个星期。我们目前计划在几个星期内发布。Brian Harry在这里的博客帖子里对此有详述。 希望本文对你有所帮助, Scott ......[阅读全文]

posted @ | Feedback (9) | Filed Under [ .NET Visual Studio Community News ]

摘要:【原文地址】Steps to Uninstall VS 2008 Beta2 before installing the VS 2008 Final Release 【原文发表日期】Tuesday, November 20, 2007 3:56 PM 有几个人向我询问从VS 2008 Beta2升级到VS 2008 RTM最终版的最佳方式。在我昨天宣布发布VS 2008 和 .NET 3.5的贴子里,我包含了这些建议: 很多人问我该如何从Visual Studio 2008的早期beta版升级的问题。一般来说,我建议你先卸载Beta2。作为卸载的一部分,你应该卸载Visual Studio 2008 Beta2,.NET Framework Beta2以及Visual Studio Web Authoring Component ,这些是分开的安装,需要分别卸载。之后,我通常建议在卸载后,重新启动机器,以确保在你安装新东西之前,机器处于干净的状态。然后,你就可以在机器上安装VS 2008 和.NET 3.5的最终版了。 安装完毕后,我通常建议你运行 工具->引入和输出设置 菜单选项,选择“重置设置”选项,然后重新选择你喜欢的配置。这有助于确保去掉Beta2版本的老配置(有时还会有助于改进性能)。 有几个人指出了还有其他一些小的安装包,是在安装Visual Studio 2008 Beta2时选择安装的,你也应该卸载(并不总是一定要这么做,但为安全起见,还是卸载为好)。你可以在这里找到一个这些其他的安装包的完整列表以及卸载说明。 下面是可能需要卸载的Beta2组件的完整列表(以及卸载这些组件的推荐次序): 卸载 "MSDN Library for Visual Studio 2008 Beta" 卸载 "Microsoft SQL Server Compact Edition 3.5" 卸载 "Microsoft SQL Server Compact Edition 3.5 Design Tools" 卸载 "Microsoft SQL Server Compact Edition 3.5 for Devices" 卸载 "Microsoft Visual Studio Performance Collection Tools" 卸载 "Windows Mobile 5.0 SDK R2 for Pocket PC" 卸载......[阅读全文]

posted @ | Feedback (16) | Filed Under [ .NET Visual Studio Community News ]

摘要:【原文地址】Visual Studio 2008 and .NET 3.5 Released【原文发表日期】 Monday, November 19, 2007 10:34 AM 今天我们发布了 Visual Studio 2008 和 .NET 3.5。你可以使用下面的链接下载其最终版: 如果你是MSDN订阅者,你可以在MSDN订阅网站下载(注:其中一些版本才上传完毕,如果你还没看到的话,过一会儿再来看一下)。 如果你没有订阅MSDN,你可以在这里下载Visual Studio 2008 Team Suite的90天免费试用版本。Visual Studio 2008 专业版的90天试用版本(下载大小稍微小点)将于下个星期推出。Team Foundation Server的90天免费试用版本可以在这里下载。 如果你想使用免费的 Visual Studio 2008 Express 版本(下载大小更小一些,而且是完全免费的),你可以在这里下载。 如果你只想安装 .NET Framework 3.5运行时,你可以在这里下载。 一些新特性之快速指南 Visual Studio 2008 和 .NET 3.5 内含成堆的新功能和改进。想了解详情的话,下面是一些我以前写的相关博客贴子的链接,以及你可以观看的录像的链接: VS 2008的多定向支持 VS 2008允许你构建针对多个.NET框架版本的应用。这意味着你可以使用VS 2008打开,编辑,和编译现有的.NET 2.0和ASP.NET 2.0应用(包括使用了ASP.NET AJAX 1.0的ASP.NET 2.0应用),继续在.NET 2.0机器上部署这些应用。你可以从下面的博客贴子里进一步了解其中的工作原理: VS 2008 Multi-Targeting Support ASP.NET AJAX和JavaScript支持 ASP.NET AJAX已经成为.NET 3.5的一部分,不再需要单独下载了。除了包括ASP.NET AJAX 1.0的所有功能外,ASP.NET 3.5现在还包括下面这些丰富的支持: 集成了WebParts的UpdatePanel,与象<asp:menu> and <asp:treeview>这样的控件的 ASP.NET AJAX 集成,WCF对JSON的支持,以及许许多多AJAX方面的改进。 VS 2008 和 Visual Web Developer 2008......[阅读全文]

posted @ | Feedback (33) | Filed Under [ ASP.NET .NET Visual Studio LINQ Community News ]

摘要:【原文地址】Nov 17th Links: ASP.NET, ASP.NET AJAX, ASP.NET MVC, VS 2008, .NET 3.5, IIS7, Silverlight【原文发表日期】 Saturday, November 17, 2007 12:47 PM 这是我的链接系列的最新篇。也请参阅我的ASP.NET 技巧,诀窍和教程网页里我以前写的众多很受欢迎的文章的链接。 ASP.NET GridViewControlExtender - Row MouseOver and Click Styles, Header Cell MouseOver Styles, 和 5 Themes Based on Google's Personalized HomePage: Matt Berseth撰写了三篇很酷的帖子,展示了你可以用来定制ASP.NET GridView控件观感的一些技巧。 ASP.NET AJAX Exploring one of Microsoft AJAX's often overlooked features: AddHandler: Dave Ward开始了一个新的系列,讨论一些ASP.NET AJAX客户端JavaScript的特性。该系列的第一篇探讨$AddHandler方法,该方法允许你把客户端Javascript事件处理函数连接到网页上的任何一个DOM元素上去。 Yahoo UI Style "Tip of the Day" Dialog using the ASP.NET AJAX PopupControl, DynamicPopulate and DragPanel Extender Controls: Matt Berseth的这篇很棒的文章描述了如何使用ASP.NET AJAX实现一个“Tip of the Day(今日小技巧)”弹出框控件。 VS 2008 JavaScript Intellisense: A Reference......[阅读全文]

posted @ | Feedback (4) | Filed Under [ ASP.NET .NET Visual Studio Atlas WPF Silverlight Link Listing MVC ]

摘要:【原文地址】Using LINQ to SQL (Part 1)【原文发表日期】 Saturday, May 19, 2007 12:41 AM 在过去的几个月中我写了一系列涵盖了VS和.NET Framework Orcas版中的一些新特性的帖子,下面是这些帖子的链接: 自动属性,对象初始化器,和集合初始化器 扩展方法 Lambda表达式 查询句法 匿名类型 以上的语言特性帮助数据查询成为一等编程概念。我们称这个总的查询编程模型为“LINQ”--它指的是.NET语言级集成查询。 开发者可以在任何的数据源上使用LINQ。他们可以在他们选择的编程语言中表达高效的查询行为,选择将查询结果转换或构形成他们想要的任何格式,然后非常方便地操作这个结果集。有LINQ功能的语言可以提供完全的类型安全和查询表达式的编译时检查,而开发工具则可以提供在编写LINQ代码时完全的智能感知,调试,和丰富的重构支持。 LINQ支持一个非常丰富的的扩展性模型,该模型将有助于对不同的数据源生成不同的高效运算因子(domain-specific operators)。.NET Framework的Orcas版本将发布一些内置库,这些库提供了针对对象(Objects),XML,和数据库的LINQ支持。 什么是LINQ to SQL? LINQ to SQL 是随.NET Framework Orcas版一起发布的O/RM(对象关系映射)实现,它允许你用.NET 的类来对一个关系型数据库建模。然后你可以用LINQ对数据库进行查询,以及进行更新/插入/删除数据的操作。 LINQ to SQL完全支持事务,视图和存储过程。它还提供了一种把数据验证和业务逻辑规则结合进你的数据模型的便利方式。 使用LINQ to SQL对数据库建模: Visual Studio Orcas版中提供了一个LINQ to SQL设计器,该设计器提供了一种简易的方式,将数据库可视化地转换为LINQ to SQL对象模型。我下一篇博客将会更深入一些来介绍怎么使用该设计器(你可以观看我一月份时录制的这个关于如何从头开始创建LINQ to SQL模型的录像)。 通过LINQ to SQL设计器,我可以方便地设计出如下所示的Northwind数据库的示例模型: 上图定义了四个实体类:Product, Category, Order 和 OrderDetail。每个类的属性都映射到数据库中相应表的字段,类实体的每个实例代表了数据表中的一行记录。 在上图中,四个实体类间的箭头代表了不同实体间的关联/关系。它们主要是根据数据库中的主键/外键关系生成的。设计器上的箭头的指向表明了该关系是一对一还是一对多的关系。基于此,强类型的属性将会被加入到实体类中。例如,上边的Category类和Product类之间有一个“一对多”的关系。这意味着Category类将有一个"Products"属性,该属性代表了在该类中所有的产品对象的集合。而Product类将会有一个"Category"属性来指向一个Category类的实例,该Category类的实例表明了了产品所属的类别。 上图中LINQ to SQL设计器的右侧列出了与我们的数据库模型交互的存储过程。在上边的例子中,我添加了一个“GetProductsByCategory”存储过程。它有一个categoryID作为输入参数,返回一个产品实体序列作为结果集。下面的代码将展示如何调用该存储过程。 理解DataContext类 当你点击LINQ to SQL设计器上的“保存"按钮时,Visual Studio将会保存我们建立的代表了实体和数据库关系的各个类。针对加入到我们的解决方案的每一个LINQ to SQL设计器文件,同时也会生成一个自定义的DataContext类。这个DataContext类是我们从数据库中查询实体或者进行更改操作的主要渠道。生成的DataContext类将含有一些属性,对应于我们在数据库中建了模的每个数据表,以及一些方法,对应于我们添加的每个存储过程。 例如,下图就是基于我们上边设计的模型而生成的的NorthwindDataContext类: LINQ to SQL 代码例子 用LINQ to SQL 设计器对我们的数据库建模之后,我们就可以很方便地编写代码对数据库进行操作了。下边是一些展示了常见的数据库操作的代码例子: 1) 从数据库中查询Products 下面的代码用LINQ to SQL 查询语法来获取Product对象的IEnumerable序列。注意代码是如何通过Product/Category关系来仅查出那些类别是"Beverages"的产品的: C#: VB: 2) 更新数据库中的一条产品记录 下面的代码示范了如何从数据库中查询出单一的一条产品记录,更新它的价格,然后将改动保存至数据库: C#: VB: 注意:VB在Orcas Beta1中尚不支持Lambda。但是在Beta2中,它就会支持了--那时代码就会能写得更为简洁一些。 3) 向数据库中插入一条新的Category和两条新的Products 下面的代码示范了如何生成一个新的分类,然后生成两条和该分类相关联的产品,然后将这三条记录保存到数据库中。 注意下边,我不用手工去维护主/外键关系,取而代之的是,我只向分类对象的“Products”集合中添加了两个Product记录,然后把该Category对象添加到DataContext的“Categories”集合中,LINQ to SQL将知道自动为我持久适当的PK/FK的关系。 C# VB: 4) 从数据库中删除Products 下面的代码示范了如何从数据库中删除所有的玩具产品: C#: VB: 5) 调用存储过程 下面的代码示范了如何不使用LINQ查询语法,而是通过调用我们在上面向数据模型中添加的“GetProductsByCategory”存储过程来查询Product实体。注意,一旦我查询出了Product结果集,我可以更新/删除它们,然后再调用 db.SubmitChanges()来将这些更新提交到数据库。 C#: VB: 6) 在服务器端分页查询Products 下面的代码示范了如何通过LINQ查询语法实现高效的服务器端数据库分页查询。通过使用下面的Skip()和Take()操作符,我们从数据库中只查询出从200行开始的10条记录: C#: VB: 总结 LINQ to SQL提供了一种很棒的、干净利索的方法来为你的应用程序来建立数据层。一旦你定义了数据模型,你就可以方便而且有效地对它进行查询,插入,更新和删除。 希望以上的介绍和代码例子刺激了你的胃口,希望了解到更多东西。在接下来的几周里我会在该系列中更具体地探讨LINQ......[阅读全文]

posted @ | Feedback (18) | Filed Under [ ASP.NET .NET Visual Studio LINQ Data ]

摘要:【原文地址】ASP.NET MVC Framework (Part 1)【原文发表日期】 Tuesday, November 13, 2007 3:45 AM 两个星期前, 我在博客里讨论了ASP.NET的一个新MVC(模型、视图,控制器)框架,我们将在不久的将来作为一个可选功能来支持。该框架提供了一个结构化的模型,来加强应用中的清晰关注分离,方便你单元测试代码和支持TDD流程。它还提供了对你在应用中发布的URL的更多的控制,也可以对从中输出的HTML提供更多的控制。 之后,我回答了来自迫切想了解更多详情的很多人的很多问题。鉴于如此高的兴趣,我觉得,写几个贴子更详细地描述如何使用这个框架,也许更有意义些。这是我将在以后几个星期里要撰写的相关贴子的第一个。 一个简单的电子商务店面应用 我将使用一个简单的电子商务商店应用来示范ASP.NET MVC框架的工作原理。在今天的贴子里,我将实现一个产品列单,以及相关的浏览应用场景。 具体来说,我们将建造一个网上商店,允许用户在访问该网站上的/Products/Categories网址时 浏览产品分类列表: 当用户点击上面网页上的产品分类链接时,他们将转到一个产品分类列表URL /Products/List/CategoryName上,该页面列出了指定分类中的还在销售的产品: 当用户点击个别的产品时,他们将转到产品细节URL /Products/Detail/ProductID上,这个网页将显示用户选定的产品的更多细节: 我们将使用新的ASP.NET MVC框架来实现上述的所有功能。这将会允许我们在应用的不同组件间保持“清晰的关注分离”,允许我们更轻易地集成单元测试和测试驱动的开发。 创建一个新的ASP.NET MVC应用 ASP.NET MVC框架包含一个Visual Studio项目模板,方便你创建新的MVC web应用。选择文件->新项目菜单,选择“ASP.NET MVC Web 应用”模板,用它创建一个新web应用。 在默认情形下,当你使用该选项生成一个新应用时,Visual Studio 将为你创建一个新的解决方案,然后往里面加2个项目。第一个项目是web项目,在其中你实现你的web应用的功能。第二个项目是个测试项目,你可以在其中编写单元测试,来测试你的应用代码: 你可以在ASP.NET MVC 框架中使用任何单元测试框架,包括NUnit, MBUnit, MSTest, XUnit以及其他的框架。VS 2008专业版现在包含了对MSTest的内置测试项目的支持(VS 2005版本的MSTest要求你拥有Visual Studio Team System版本才能使用),当你使用VS 2008时,默认的ASP.NET MVC 项目模块自动生成这样的测试项目。 我们还将发布可用以NUnit, MBUnit 和其他单元测试框架的项目模板,所以,如果你更喜欢那些框架的话,你可以轻松地一次点击即生成你的应用和可以马上使用的相应的测试项目。 理解项目的目录结构 ASP.NET MVC 应用的默认目录结构有三个顶层目录: /Controllers /Models /Views 你大概可以猜出来,我们建议把控制器类置于 /Controllers 目录之中,你的数据模型类置于/Models目录之中,你的视图模板置于 /Views 目录之中。 虽然ASP.NET MVC框架并不强迫你总是使用这个结构,但默认的项目模板使用这个模式,我们也把它作为结构化应用的一种比较容易的方式向你推荐。除非你有好的理由使用另外的文件布局,我建议你使用这个默认模式。 把URL映射到Controller类 在大多数web框架(ASP, PHP, JSP, ASP.NET WebForms等等)里,到来的URL一般都映射到保存在硬盘上的模板文件。譬如,"/Products.aspx"或者"/Products.php" URL一般都在硬盘上有个对应的Products.aspx 或Products.php 模板文件来处理请求。当一个web应用的http请求进入web服务器时,web框架运行由硬盘上的模板文件指定的代码,然后这代码负责处理该请求。很多时候,这代码使用Products.aspx 或 Products.php文件中的HTML 标识来帮助生成返回客户端的响应。 MVC框架一般以不同的方式把URL映射到服务器代码上。它不是将URL映射到硬盘上的模板文件,而是直接把URL映射到代码类上。这些类称为“Controllers(控制器)”,它们负责处理到来的请求,处理用户输入和交互,执行基于输入和交互的相应的应用和数据逻辑。然后,一个Controller类一般会调用单独的“视图”组件,该组件负责生成请求的实际的HTML输出。 ASP.NET MVC框架包括一个非常强大的URL映射引擎,在如何把URL映射到Controller类方面,该引擎提供了很多灵活性。你可以使用它来轻松地设置routing(路径选择,路由)规则,然后ASP.NET会根据这些规则,对进来的URL进行评估,选出一个Controller来运行。然后你也可以让routing引擎自动分析出你在URL里定义的变量,让ASP.NET自动把这些变量作为参数传给你的Controller。我将在这个系列将来的一个贴子里,讨论涉及URL routing引擎的比较高级的场景。 映射到控制器类的默认ASP.NET MVC URL Routing规则 在默认情形下,ASP.NET MVC项目有一套预先配置好的URL routing规则,这些规则允许你不用配置什么,就可以轻松地上路。这样,使用一套默认的基于名称的URL映射约定,你就可以开始编写代码了,这些约定是在Global.asax文件(由Visual Studio中新的ASP.NET MVC项目模板生成的)中的ASP.NET Application类中声明的。 默认的命名约定是这样的:把进来的HTTP请求的URL路径的开头部分,譬如 /Products/,映射到一个类,该类的名称遵循UrlPathController的模式,譬如在默认情形下,一个以/Products/开头的URL 会被映射到名为ProductsController的类上。 为建造我们的电子商务产品浏览功能,我们将在我们的项目中加一个新的“ProductsController”类 (你可以使用Visual Studio中的“添加新项”菜单从模板中轻松地创建一个Controller类): 我们的ProductsController是从System.Web.MVC.Controller 基类继承而来,从这个基类继承而来并不是必需的,但它含有一些我们以后可以使用的非常有用的辅助方法和功能: 在项目中定义这个ProductsController类之后,在默认情形下,ASP.NET MVC 框架就会使用它来处理所有到来的以"/Products/"开头的URL的应用请求。这意味着,它会自动被调用来处理我们将在我们的网上商店应用中开启的"/Products/Categories", "/Products/List/Beverages", 和 "/Products/Detail/3" 等URL。 在将来的贴子里,我们还将添加一个ShoppingCartController(以允许用户管理他们的购物车)以及......[阅读全文]

posted @ | Feedback (57) | Filed Under [ ASP.NET .NET Visual Studio Community News MVC ]

摘要:【原文地址】Tip/Trick: Hard Drive Speed and Visual Studio Performance 【原文发表日期】 Thursday, November 01, 2007 2:24 AM 人们经常在技术大会上向我询问PC硬件方面的建议。具体地说,“你能否推荐我应该用什么样的机器来用Visual Studio做开发?”或者“你的笔记本看上去非常快,那是什么类型的?” 在这个问题上,我的一些建议是很标准和明显的:从理想的角度讲,你要得到一个双核或更好的CPU。我还总是推荐内存要2G或更多。 但有一个好像经常让人有点吃惊的建议是,确认你在购买新机器时,有可能的话,总是购置最快的硬盘,有必要的话,把购买额外CPU处理器速度的钱用来投资购置较快的硬盘。 为什么硬盘速度是重要的? 在过去的几年里,多核CPU已经变得足够快了,在大多数常见的应用场景里,你最终并不会为机器上的处理器能力的原因而感到滞碍(block)。 最有可能滞碍你的是你的机器访问你硬盘的Seek和I/O速度。如果你使用的应用需要读写大量的文件,你的CPU利用率非常低是典型的,因为应用也许会花费它的大部分时间在等待硬盘操作的完成。 当你用Visual Studio做开发时,你结果会读写许多文件,花费大量的时间做硬盘I/O操作。大的项目和解决方案可能会有成百上千个源文件(包括图片,css,网页,用户控件等等)。当你打开一个项目时,Visual Studio需要读取和分析其中所有的源文件以提供intellisense。当你使用源码控制系统,check out一个文件时,你会更新硬盘上的文件和时间戳。当你编译方案时,Visual Studio 会检查来自多个硬盘路径的程序集是否更新过,当编译完成时,需要写出多个新的程序集,同时在硬盘上持久相应的.pdb调试器符号文件(每个文件都是单独的保存操作)。当你把调试器附上一个进程时(当你按F5运行应用时的默认行为),Visual Studio需要查询和装载应用所有的程序集调试器符号文件和DLL,以设置断点。 如果你有个慢的硬盘,Visual Studio会在等待它完成这些读写操作时阻塞住,这会极大地减慢你整体的开发体验。 对笔记本硬盘的一些建议 大多数PC笔记本常规硬盘的速度是5400rpm,这是非常慢的盘。如果你打算买一个新的笔记本,并计划在上面使用Visual Studio的话,我强烈建议你得到7200rpm的硬盘。你以后会察觉这会带来多么大的好处。 你也许会想,如果你买的是个高档的笔记本,内含的“当然”不会是块慢的硬盘吧。别这么想,看一下这个高端的ThinkPad(我用的就是这个牌子)的默认配置,或者这个高端的Dell XPS笔记本(3343美元起价)的 默认配置,或者这个17寸 Apple MacBook Pro笔记本(2799美元)的默认配置。注意,这三个高档的笔记本默认配备的都是速度为5400rpm的硬盘。 加上额外的55美元(Lenovo), 93美元(Dell) 或者200 美元(Apple),你就可以升级到速度为7200rpm的硬盘。投入这小量的额外金钱换来一个比较快的硬盘对性能造成的差别很大,绝对是值得的投资。 对桌面计算机硬盘的一些建议 对于桌面计算机的配置,做2个方面的硬盘性能考虑: 1) 考虑购买一个10000rpm的硬盘。这些硬盘超快,跟那些随桌面机器配置的常见的7200rpm硬盘相比,区别很明显(Jeff Atwood对此有个很棒的贴子,推荐使用这些快硬盘)。 2) 考虑购买第二个硬盘,设置你的操作系统和OS虚拟内存交换文件(virtual memory swap file)使用其中一个硬盘,然后把你所有的数据(图片,文档,以及Visual Studio 项目等)储存在第二个硬盘上。这样的方法的好处是,你读写数据的操作不会与你操作系统更新虚拟内存文件的硬盘I/O作竞争。 Visual Studio的其他性能建议 既然说到改进Visual Studio的性能问题,你也许要参阅一下下面这些博客贴子和文章,里面有一些很好的建议: 技巧和诀窍;在VS 2005里优化A