Monthly Archives: 一月 2011

ASP.NET MVC 3 (RC 2) 发布

[原文发表地址] Announcing ASP.NET MVC 3 (Release Candidate 2) [原文发表时间] December 10, 2010 11:47 PM 今天早上ASP.NET组推出了ASP.Net MVC 3最终的发布候选版本(RC2), 你可以从这里下载安装。 快了。。 今天的 RC2发布版接近ASP.NET MVC 3最终的发布版本。它是一个真正的“发行候选版本”。我们希望我们不会再改动它的任何代码。我们今天发布它,大家就可以对它进行最后的测试,在最后关头发现任何重大缺陷的时候通知我们,并且大家可以开始升级程序来使用它。我们将于一月份正式发布最终的ASP.NET MVC3 RTM版本。 在VS2010与VS2010 SP1 Beta上都能使用 现在的ASP.NET MVC 3 RC2发布版可以在Visual Studio 2010/Visual Web Developer 2010 Express上使用,也可以在最新发布的VS 2010 SP1 Beta上使用。 这意味着你不一定要安装VS2010 SP1(或SP1 Beta)来使用它。 它在已经发售的Visual Studio 2010上也能使用。VS2010 SP1新增了一些不错的功能(包括VS中的IIS Express和SQL CE支持),能让ASP.NET表单和ASP.NET MVC程序开发人员获得更好的体验,我下周将写一篇关于它的博文。 缺陷和性能修复 今天的ASP.NET MVC 3 [...]

Posted in 未分类 | Leave a comment

ASP.NET MVC 3, IIS Express, SQLCE 4,Web Farm Framework, Orchard, WebMatrix发布

[原文发表地址]Announcing release of ASP.NET MVC 3, IIS Express, SQL CE 4, Web Farm Framework, Orchard, WebMatrix [原文发表时间]January 13, 2011 12:11 PM 我非常高兴地在这里给各位介绍今天发布的几个产品: ASP.NET MVC 3 NuGet IIS Express 7.5 SQL Server Compact Edition 4 Web Deploy and Web Farm Framework 2.0 Orchard 1.0 WebMatrix 1.0 以上产品全部免费。 他们是在.NET 4和 VS2010发布版上创建的,为ASP.NET(包括Web Forms和MVC)和Microsoft Web Server stack增添了很多新的价值。 ASP.NET MVC [...]

Posted in 未分类 | Leave a comment

在没有安装ASP.NET MVC 3的web服务器上运行一个ASP.NET MVC 3应用程序

[原文发表地址] Running an ASP.NET MVC 3 app on a web server that doesn’t have ASP.NET MVC 3 installed [原文发表时间] January 18, 2011 10:33 PM 上周我们发布了几个新的Web产品——包括ASP.NET MVC 3。自那时起,我们就收到了很多很好的反馈,并且产品有大量下载。 一些用户最近问到我的一个问题是:我的虚拟主机提供商还不支持ASP.NET MVC 3——能知道他们什么时候会安装吗? 好消息是你无需等待他们在其web服务器上安装任何东西。只要你的虚拟主机提供商支持.NET 4,现在你就能在它上面构建和部署ASP.NET MVC 3应用程序——不需要虚拟主机提供商做任何准备工作。下面的博文讲述如何实现。 一些背景 我们支持两种方法来安装和使用在机器上支持ASP.NET MVC 3的程序集: 1. 将ASP.NET MVC 3程序集装在机器上的一个中心位置, 由web项目从那里引用/使用。 2. 将ASP.NET MVC 3程序集拷贝到你的web项目的\bin目录下, 让你的web项目从那里引用/使用。 第一个方法是我们在Visual Studio中使用的默认方法, 有利于简单通过windows更新维护ASP.NET MVC 3程序集(在一个糟糕的缺陷事件中)。 第二种方法也是完全支持的, 并且胜在不需要在机器上显式安装ASP.NET [...]

Posted in 未分类 | Leave a comment

ASP.NET MVC3:用Razor实现隐式和显式代码碎块(code nuggets)

[原文发表地址 ] ASP.NET MVC 3: Implicit and Explicit code nuggets with Razor [原文发表时间] December 16, 2010 11:23 PM 这是我涵盖ASP.NET MVC3新功能博文系列中的又一篇: · Razor中的新@模型关键字(10月19日) · Razor中的层(10月22日) · 用Razor实现服务器端注释(11月12日) · Razor的@:和<text>语法(12月15日) · 用Razor实现隐式与显式代码碎块(今天) 在今天的帖子中我将继续讨论如何使用Razor在你的视图模板中隐式和显式定义代码碎块(code Nuggets), 并演示一些示例。 用Razor实现流畅编程 Asp.net mvc3发布包括一个新 “Razor”视图引擎(和一个现有的.aspx视图引擎)。你可以从我介绍Razor的帖子中更多地了解Razor与我们引进它的缘由以及它所支持语法。 Razor尽量减少编写一个视图模板需要敲入的字符数,实现流畅快捷的编码工作流。与大部分模板的语法不同,你不会因为需要在HTML中标注服务器端代码块而中断代码编写。代码分析器足够聪明,它能够从你的代码里推断出是否为服务器端代码。 这使其简洁、富有表现力的语法输入能够干净,快速,有趣。 比如下面的Razor代码段能用来迭代一组产品(Products),并输出一个链接到相应产品页面的产品名字<ul>列表: 运行时,上面的代码输出如下: 请注意上面是如何在一个“foreach”循环内嵌入两个代码块的。其中一块输出商品的名字,另一块则将ProductID包含于一个超链接内。注意我们并不需要显式将代码碎块括起来——Razor能足够聪明地隐式识别出这种情况下代码段的起始。 Razor如何隐式识别代码碎块 Razor没有定义自己的语言。你在Razor代码碎块中所写的代码都是标准C#或VB。这允许你重用现有的语言技能,无需重新学习一种定制语法。 Razor解析器内置了很多智能,任何时候你都无需显式指定编写的C#/VB代码碎块的结尾。它让编码更流畅,更有效率, 让模板语法更美妙,干净,简练。下面的场景中,Razor将帮你隐式指定代码碎片范围, 让你无需显式标明。 获取属性 Razor允许你输出一个变量值,或通过标点“.”引用输出其次属性。 你也能用标点符号“.”获取更底层的子属性 数组、集合索引 Razor允许你为集合或数组添加索引: 调用方法: Razor还允许你调用方法: 注意上面这些场景中我们是如何不需要显示定义代码块的结束位置的。 [...]

Posted in 未分类 | Leave a comment

Microsoft Web Farm Framework 2.0

[原文发表地址] Microsoft Web Farm Framework 2.0 [原文发表时间] January 20, 2011 9:47 PM IIS 团队最近发布了Microsoft Web Farm Framework 2.0。你可以从这里了解更多信息并下载正式第二版。 什么是Microsoft Web Farm Framework? Microsoft Web Farm Framework是我们支持的一个免费产品,易于部属和管理一个Web服务器群,支持在服务器群里自动安装和配置平台组件,还能自动同步和部署ASP.NET应用程序。 它支持负载均衡,能在服务器群中自动升级,这样不会(因维护)让用户无法访问站点/程序(它可以每次自动从负载均衡的服务器池里拿出一台升级,然后将其放回)。 几个月之前我发表了一篇教程,演示如何配置和使用Microsoft Web Farm Framework程。 你可以从这里阅读。 V2发布版中的新功能 本周的RTW发布版包括在之前Beta版中所没有的几个新增功能,包括: l 工作流生成器能被用来定义和调度运行在服务器群中的自定义任务。 任务可被调度为定期运行或由管理员手动启动。这类任务的一个例子是用msdeploy命令来部分同步网站内容。 l Windows 凭证存储区(Windows Credential Store)支持将用于部署服务器的管理员凭证存储在一个安全的Windows凭证存储区。这就为在Web Farm Framework中处理凭证时新加一层安全防护。 l 第三方负载均衡支持:由Web Farm Framework的可扩展性实现。 现在能配置Web Farm Framework与硬件负载均衡器集成,而不是依靠(免费的)IIS应用程序请求路由模块。 l 对高级MSDeploy操作的改进支持。更多MSDeploy功能现在可以在Web Farm Framework的高级配置场景中使用。 [...]

Posted in 未分类 | Leave a comment

VS 2010 SP1 和 SQL CE

原文发表地址:VS 2010 SP1 and SQL CE 原文发表时间:January 11, 2011 上个月我们发布了VS 2010 Service Pack 1 (SP1)Beta . 你可以在Jason Zander的两篇博文和Scott Hanselman包含了VS 2010 SP1 Beta的一些新功能的博文中了解更多关于VS 2010 SP1 Beta的信息。你可以从这里下载和安装VS 2010 SP1 Beta。 上周我发表了关于VS2010 SP1中新增的对 IIS Express的支持的博文。今天的博文中我将要讨论一些支持SQL CE的VS2010 SP1工具支持,并且逐步讲一些它实现的很酷的应用场景。 SQL CE—它是什么?为什么要关注它? SQL CE是一个免费的,可嵌入的数据库引擎,它使数据库存储变得容易。 不需要数据库安装 SQL CE使你不必运行可执行程序或者安装一个数据库服务器来使用它。你可以简单地把SQL CE文件复制到ASP.NET应用程序的\bin目录中,然后你的web应用程序就能把它当作数据库引擎来用。运行时不需要安装或安全许可。在机器上你不必具有管理员账户。只要把你的web应用程序复制到任何一个服务器上,它就能工作。对运行在虚拟主机环境中的中度信任应用程序也是如此。 SQL CE在ASP.NET应用程序的内存中运行,当你第一次访问一个SQL CE数据库时它会启动,并且当应用程序被卸载后它会自动关闭。SQL CE数据库被作为ASP.NET应用程序中的\App_Data下的文件形式存储。 使用已有的数据API SQL CE4使用现有的基于.NET的数据API,也支持SQL服务器兼容的查询语法。这意味着你可以使用现有的数据API像ADO.NET,也可以使用高级别的ORM,例如实体框架和配有SQL CE的Nhibernate。这使你可以使用你现在所掌握的同样的数据编程技术和数据API。 支持开发,测试和生产案例 SQL CE可被用在开发案例,测试案例和轻量级的产品使用案例。在SQL CE4版本中我们已经做了一些工程技术工作来确保在多线程服务器场景(比如 ASP.NET)中,SQL [...]

Posted in 未分类 | Leave a comment

ASP.NET MVC3: 使用Razor实现服务器端注释

[原文发表地址] ASP.NET MVC 3: Server-Side Comments with Razor [原文发表时间] November 12, 2010 5:33 PM 本周早期我们发布了ASP.NET MVC3 候选发布版。 它支持“即时”配置,包括一系列基于ASP.Net MVC3 beta和第一个预览版的新改进。 这是详细讨论ASP.NET MVC3 Beta/RC功能的我的“迷你帖子”系列中的另外一篇:  Razor中的新@模型关键字(10月19日)  Razor中的布局(10月22日) 使用Razor实现服务器端注释(今天) 今天的帖子中我将讨论一个我们最近引入的一个小而有用的功能:Razor中的服务器端注释支持。 为何服务器端注释? 场景: 你在处理一个视图模板,希望暂时禁用某些内容或视图代码(可能能帮助你分析一个问题,或者暂时改变你的网站输出) HTML支持客户端注释(!–>),你能用其阻止浏览器解析、执行、显示里面的HTML内容。但是将这个方法用于很多情形所产生的问题是:注释内的内容还是被从服务器送到了客户端,这是很不必要的——服务器端注释内的代码还是会在服务器端执行。 ASP.NET 表单支持一种服务器端注释语句(<%- -%>),你能使用它来完全禁用页面上的内容、代码、控件。使用服务器端注释,ASP.NET表单编译器在解析的时候完全跳过<%–%>块内的内容,在组装页面的时候完全移除那部分内容。你能在我这里的一篇旧一些的博文上获取更多这个功能的相关信息。 本周早前有人问我:用Razor可以实现同样功能吗?答案是肯定的。 使用Razor实现服务器端注释 Razor现在允许你将视图中的任何代码、内容、区域放入@*注释 *@语句(对C#和VB模板都有用)。这个语句表明Razor解析器必须忽略这个块里的任何内容,就像本就不存在一样(意味着没有东西被执行,在运行时没有性能损耗,没有东西被传到客户端)。 比如, 下面我将一些HTML内容和服务器代码包含于一个@**@块。这等同于它从来就不在那里: 注意上面Visual Studio是如何在编辑器中对注释进行着色(默认是绿色)以使它们更直观的。 Visual Studio现在还让你能使用文本编辑器工具栏上的注释、取消注释按钮很容易地注释、取消注释一段文本、代码。比如,我们现在选择上面文本编辑器中的@**@注释块,然后点工具栏上的“取消注释”按钮(或按Ctrl+K,CTrl+U更好)让VS取消注释那块区域: 我们这样做的时候,编辑器将自动帮我们取消注释那一块(可以少按些键) 我们然后可以在编辑器中选中突出显示另一块区域的文本、代码,然后点“注释”工具栏按钮或按Ctrl+k,ctrl+C实现服务器端注释: 我们这样做的时候,编辑器将自动帮我们注释那一块(可以少按些键) 总结 服务器端注释是一个有用的小功能,在很多情况都可以信手拈来。Razor现在支持运行时注释,Visual Studio提供不错的开发时工具支持。 希望对您有所帮助。

Posted in 未分类 | Leave a comment

我的“2010精华集锦”博文链接

原文发表地址:Links to my “Best of 2010” Posts 原文发表时间:December 31, 2010 10:01 PM 祝大家新年快乐! 对我来说,2010是忙于写博客的一年(这是我在2010年发表的第100篇博客)。这星期有人建议我总结出一个列表来组织我今年最喜欢的博文。 下面就是根据主题整理出来的一些我最喜欢的博文的速查列表: VS 2010和.NET 4 下面是我写的关于VS2010(有些写于2009年下半年)和4月份发布的.Net 4(包括ASP.NET 4和WPF 4)的一系列博文: Visual Studio 2010和.Net 4发布 干净的Web.Config文件 初学者项目模板(Starter Project Template) 多定向(Multi-targeting) 多显示器支持 专注于代码的新Web配置文件选项 HTML/ASP.Net /JavaScript代码碎块 自动启动ASP.Net 应用程序 用ASP.Net 4 Web 窗体实现URL路由 在VS2010内搜索和导航代码 VS2010代码智能感知改进 WPF 4 添加引用对话框改进 ASP.Net 4中的SEO改进 ASP.Net 4 中的输出缓存扩展性 适应于ASP.Net和Windows窗体的内置绘图控件 ASP.NET 4内更干净的HTML标记——Client ID [...]

Posted in 未分类 | Leave a comment

ASP.NET MVC3: 通过Razor实现布局

原文发表地址:ASP.NET MVC 3: Layouts with Razor 原文发表时间:October 22, 2010 3:05 PM 通过Razor使用布局 在我上一篇博客中,我演示了一个简单的例子来呈示一列商品目录的商品URL:   下面用一个简单的ProductsController实现上面的商品URL列表。它从数据库返回一列商品种类,然后传到视图文件,以在浏览器以合适的HTML响应呈示出来。   下面显示Index.cshtml视图文件(用Razor来实现的)   上面的视图文件没有使用布局页面——这意味着我们往站点添加新的URLs和页面的时候我们会在不同的地方重复我们的核心网站布局。使用布局可以让我们避免这种重复,以后管理我们的网站设计更加容易。让我们现在更新我们的示例来使用一个吧。 重构以使用布局 Razor使重构现有页面以使用布局变得简单。 让我们用上面的简单示例做一下吧。 我们的第一步是往项目的\视图\共享文件夹(这是通用视图文件、模板所放置的地方)下添加一个“SiteLayout.cshtml”文件:   SiteLayout.cshtml 我们将用SiteLayout.cshtml文件来定义我们网站的通用内容, 可能看起来像下面这样:   上面文件需要注意: 文件顶端不需要有一个@inherits指令了。你想要的话也可以选择加上一个(比如:如果你希望有一个定制基类),但是这不是必需的。这样就能让文件美观而干净, 而且也方便程序员之外的人处理文件, 遇到他们不理解的概念也不会觉得疑惑。 我们在上面的布局文件中调用@RenderBody()方法, 我们在<head>部分的<title>元素内输出“View.Title”属性。我还将讨论一下这是怎么使用的。 现在我们有了一个通用的布局模板来保持我们网站任意页面的外观一致性。 Index.cshtml 我们下面根据我们刚才创建的SiteLayout.cshtml文件来更新我们的Index.cshtml视图。下面是它可能的样子的首次截图: 关于上面的文件需要注意: 我们不需要将我们的主体内容包装在一个标记或元素中——Razor将默认自动将Index.cshtml中的内容视为布局页面的主体部分。如果我们的布局有几个可更换的区域,我们能选择性地定义“name sections”。但是Razor让90%的情况(你只需要有一个主体部分就可以了)超级干净而简练。 上面我们编程设置了Index.cshtml页面中的View.Title的值。我们的Index.cshtml文件中的代码会比SiteLayout.cshtml中的代码先执行——这样我们就能编写视图代码编程设置需要被呈示到布局的值。对像设置页面的标题,和为搜索引擎优化内的<head>设置<meta>元素这样的事情,上面功能尤其有用。 刚才我们在Index.cshtml页面内编程设置所用的布局模板。它也可以通过设置视图上的布局属性来实现(注意:在第一个预览版中,这个属性被称为“LayoutPage”——我们在ASP.NET MVC 3 Beta版中将其更名为“Layout”)。我将简单地介绍设置这个属性的几个替代方法。 现在当我们在网站内请求/商品URL的时候,将得到返回如下HTML: 注意上面是怎样返回一个SiteLayout.cshtml和Index.cshtml的合并HTML内容的。顶端的“Product categories”标题根据视图正确设置,我们的动态目录列表显示在正确的位置。 用ViewStart保持事物“干燥”(DRY) 现在我们在Index.cshtml文件的顶端通过编程设置所要用的布局文件。对包含一些专门针对视图的逻辑的情况还好,因为布局文件会随着特定视图的不同而不同。但是这样设置的话会最终导致大部分网页应用程序的冗余和重复——要不就所有的视图都使用同样的布局,要不这样:如果他们有不同的布局(比如:对移动设备或本地化网站),选择使用布局的逻辑在所有视图中通用。 好消息是Razor包括一个能让我们不需要在每个视图中显式设置布局的新功能——而是让我们能一次性定义网站内所有视图的布局逻辑,从而让我们的视图文件更干净,也更容易维护(确保我们坚持DRY原则:不要重复你自己):   自ASP.NET MVC 3 [...]

Posted in 未分类 | Leave a comment

公布: Silverlight 5

[原文发表地址] Announcing Silverlight 5 [原文发表时间] December 02, 2010 10:22 AM 在今天召开的Silverlight FireStarter 发布会上我们公布了Silverlight的下一个版本。 Silverlight 5新增很多重要的功能,让程序员实现高级的媒体体验和丰富的跨浏览器、跨桌面与设备的应用程序。 在我今天早上的主题宣讲会上我们演示了其中的一部分,着重介绍了Silverlight 5带来的开发效率和新的用户体验。 你能在这里看到我的主题宣讲会。 高级媒体体验 我们看到Silverlight正采用很赞的高级媒体解决方案。在过去的几个月中我们看到像Canal+,TV2和Maximum TV这样的公司已经启用Silverlight解决方案来进行直播和点播。 Silverlight 5将加大对媒体处理的支持,通过增加:  硬件视频解码: Silverlight 5现在支持 GPU加速视频解码,这大大减少了CPU加载高清视频的时间。 即使是低性能的上网本,使用Silverlight5也能观看1080p高清晰视频。  特技播放(Trickplay): Silverlight5现在允许在客户端通过自动音频修复效果器用不同的速度播放多媒体内容。有时你需要加快视频观看的同时听懂所讲的内容,这对观看培训视频非常不错。  改良的电源感知(awareness),防止你在观看电影的时候弹出屏幕保护,同时在不播放视频时允许计算机进入睡眠状态。  Silverlight 5现在包含远程控制支持——允许用户通过远程控制设备控制媒体播放。 应用开发 Silverlight提供了一个丰富的应用程序开发环境,让你可以生成非常好的网络传输应用程序。 Silverlight 5在应用程序开发方面做了很重大的改进,包括:  数据绑定和MVVM: Silverlight 5大大改进了数据绑定,来提高开发效率和提供更好的Silverlight/WPF 功能耦合。程序员现在能够调试数据绑定表达式,在绑定上设置断点,和更容易地定位错误。隐式数据模板(DataTemplates)现在允许生成贯穿整个应用程序的模板,以默认支持一个特定的类型。 上级RelatvieSource绑定使数据模板能更容易地绑定到一个容器控件的属性上。类型调节器内的绑定允许类型内部使用绑定来引用别的属性。引入一个新的DataContextChanged事件来简化更改。现在它也支持标记扩展(Markup extensions),在XAML解析的时候允许执行属性和事件处理器的代码,支持先进的MVVM.  WCF和RIA Services: Silverlight 5现在支持WS-Trust。WCF RIA Service [...]

Posted in 未分类 | Leave a comment