RSS 2.0 Feed
2008-09 Entries
摘要:【原文地址】jQuery and Microsoft 【原文发表日期】 Sunday, September 28, 2008 11:32 AM jQuery 是个轻量级的开源JavaScript库(只有15kb大),在相当短的时间内,已经成为网上最受欢迎的JavaScript库之一。 jQuery如此受欢迎,有很大一部分是因为它允许你用最少数量的代码就能非常优雅地(且非常有效地)找出和操作HTML元素。jQuery是通过一个非常棒的“selector” API来实现这个的,该API允许开发人员查询HTML元素,然后对它们施加“命令(commands)”。jQuery命令的一个特征是,它们可以“串连(chained)”在一起,这样,一个命令的结果可以转而注入到另一个命令中去。jQuery还包含了一套内置的动画效果APIs,这些APIs可以用作命令之用。这样的组合允许你只要击键几次就可以做一些非常酷的事情。 例如,下面的JavaScript用了jQuery找出页面上所有拥有一个CSS类为 "product" 的 <div> 元素,然后使用动画效果慢慢使它们消失: 另一个例子,下面的JavaScript用了jQuery找出页面上一个特定的id为"datagrid1"的<table>,然后获取datagrid中的每隔一行的<tr>,给这些<tr>元素设置一个CSS类为"even",用来设置隔行的背景颜色: [注意:这两个例子都改变自优秀图书《jQuery in Action》 中的代码片段] 一直以来,许许多多开发人员要求我们在ASP.NET AJAX中添加象上面这样的元素选择和动画效果操作的功能,这些支持其实早就作为提议的功能列在我们几个月前发表的《ASP.NET AJAX 路线图》中了。但当开发团队开始研究实现时,他们很快就意识到jQuery对这些场景的支持已经非常出色,而且围绕着jQuery已经建立有一个巨大的生态系统和社区。jQuery库在同一个页面上也与ASP.NET AJAX和 ASP.NET AJAX Control Toolkit协作良好。 我们想,与其复制这些功能,原封不动(as-is)地使用jQuery,将其作为VS/ASP.NET中的一个标准的,受支持的库不更好吗?然后我们可以将精力集中在建造充分利用jQuery的新功能上。我们给jQuery开发团队发了信,看他们对此是否有兴趣,我们很快收到回复,他们也觉得这是个非常有趣的主意。 对jQuery的支持 今天,我非常兴奋地宣布,从此以后,微软将把jQuery和Visual Studio一起发行。我们将把jQuery JavaScript库原封不动地发行,不会生成分叉或改变jQuery主干的源代码。相关文件会继续在现有的jQuery MIT许可下使用和发布。 我们还将发布intellisense注释版本,在设计时提供很好的Visual Studio intellisense和帮助集成。例如: 在有串连的命令时: jQuery intellisense注释支持将能在几个星期后免费下载(该支持可以在VS 2008 SP1和免费的Visual Web Developer 2008 Express SP1下工作)。新的ASP.NET MVC也将发行jQuery,会将jQuery库默认加到所有新的项目中。 从今年稍后开始,我们还将把微软的产品支持扩展到jQuery,这将允许开发人员和企业每周7天/每天24小时都可以向Microsoft PSS(产品支持服务)电话求助和开设jQuery支持案子。 以后,我们将把jQuery作为类库之一,用来在ASP.NET AJAX控件工具包中实现高层次的控件,以及在ASP.NET MVC中实现新的Ajax服务器端辅助方法。加入ASP.NET AJAX的新功能(象客户端 模板 支持)也将设计来与jQuery完美集成。 我们还计划向jQuery开源项目贡献测试,缺陷修补和补丁。所有这些都将经过标准的jQuery补丁评估(patch review)过程。 结语 能与jQuery开发团队合作,我们非常高兴。jQuery是个极棒的类库,是我们认为能让ASP.NET和ASP.NET AJAX开发人员受益匪浅的东西。我们期待它将与Visual Studio和ASP.NET完美结合,能给更多的开发人员带来好处。 想了解关于今天这个宣布的细节,请参阅jQuery开发团队博客John Resig的贴子。Scott Hanselman也即将发表一个很好的教程,展示jQuery与ASP.NET AJAX(包括新的客户端模板引擎),以及ADO.NET数据服务(是在.NET 3.5 SP1中发布的,以前的代号名为“Astoria”)的集成。 希望本文对你有所帮助, Scott     【译注】这应该是个非常重大的事件,好像这是微软第一次公开支持一个开源产品。从原贴子的跟贴来看,众多开发人员都是喜出望外。 标签: ASP.NET, Visual Studio, .NET, Atlas, Community News ...[阅读全文]

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

摘要:【原文地址】Silverlight 2 Release Candidate Now Available 【原文发表日期】 Thursday, September 25, 2008 9:54 PM 今天晚上,我们发布了Silverlight 2正式版的第一个公开候选版本(release candidate,简称RC)。 在我们最终发布正式版之前,我们还有一把计划修补的缺陷。然而,我们还是发布了今天这个版本,以便开发人员可以开始更新他们现有的Silverlight Beta2应用,这样,在最终版本发布之日,他们的应用就可以工作;而且还能允许开发人员报告我们内部没能发现的任何最后的紧要问题(请到www.silverlight.net论坛上报告任何这样的问题)。 重要注意事项: 今天我们发布的只是Silverlight的开发人员运行时版本(以及相关的VS和Blend工具), 并没有发布正规的终端用户版本。这是因为我们想要给予现有的开发人员一段简短的时间,在允许网站正式启用Silverlight 2之前,更新他们的应用,使用最终的Silverlight 2的APIs。在Beta2和这个RC版本之间有一些重大的变动,我们想要确保一旦最终版出来,现有的网站就可以很快地更新到最终版。因此,目前你只可以用RC来做开发,在最终版发布之前,你不能使用新的APIs上线(但最终版不久就会发布)。 你可以在这里下载今天的Silverlight RC版本和相关的VS和Blend工具支持。注意, Expression Blend在Blend 2.0 SP1中对Silverlight 2提供了支持。你需要先安装Blend 2.0,之后安装SP1服务包,该服务包添加了对Silverlight 2的支持。如果你还没安装Blend 2.0的话,你可以在 这里下载它的免费试用版本。 Beta2->RC API 更新 今天的RC版本包括了一堆缺陷修补和一些显著的性能优化。 今天的RC版本还包括许多API变动,旨在修正Silverlight和.NET框架完整版间的差距。虽然变动的数目不小,但绝大部分变动本身都是比较小的(象参数次序,方法和属性的重新命名,在命名空间之间移动类型等)。你可以阅读这篇博客贴子,下载这篇文档,了解与Beta2版本间种种已知的重大API变动。 我们还更新了随Silverlight发布的控件的样式,还修改了它们所使用的一些状态组别和控件模板的名称。在从Beta2版升级时,你也许会发现这样做比较有利些: 暂时去掉你自己的定制样式模板,先让你的应用在RC下正常工作,之后,再一一加入你自己的样式定义,以解决任何由于重新命名或行为变动而造成的问题。 如果你在从Beta2升级到RC版的过程中遇上难缠问题的话,请去www.silverlight.net论坛上发贴询问(Silverlight开发团队的成员会在那里帮助大家)。如果一两天之后还没得到答案的话,请给我(scottgu@microsoft.com)发邮件,我会帮你或者给你联系知道答案的人。 新的控件 今天的候选版本包括了一堆新的功能和变动,以及针对的VS和Blend工具。大体上讲,你会发现包括了控件,networking,数据缓存,布局,显示,媒体stack和其他组件以及子系统方面的的许多改进。 在接下来的几个月里,我们还将发布许多新的Silverlight 2控件(不久会撰文讨论相关细节),今天的RC版本包括了3个新的核心控件 - ComboBox, ProgressBar, 和 PasswordBox - 我们已将它们直接加到了核心Silverlight运行时的下载包中(该下载包只有4.6MB 之大,只花几秒钟即可安装): 在运行的时候,这些控件的默认外观如下图所示: Silverlight 2中的ComboBox支持标准的DropDownList语义,除了象上面那样静态定义个项外, 你也可以对其进行数据绑定。例如,我们可以象下面这样定义一个"Person"类: 然后象这样在页面上加一个ComboBox: 然后编写下面的代码,将一个Person对象集合绑定到ComboBox(通过设置它的ItemSource属性): ......[阅读全文]

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

摘要:【原文地址】ASP.NET MVC Preview 5 and Form Posting Scenarios 【原文发表日期】 Tuesday, September 02, 2008 5:22 AM 上个星期四,ASP.NET MVC开发团队发布了ASP.NET MVC框架的“第五个预览版”。你可以在这里下载这个新版本。这“第五个预览版” 可在.NET 3.5和最新发布的.NET 3.5 SP1下工作,也可在Visual Studio 2008以及免费的Visual Web Developer 2008 Express SP1版本(现在支持类库项目和web应用项目了)下使用。 第五个预览版包含了建立在“第四个预览版”的新功能之上的一堆新功能和改进。你可以在这里阅读“第五个预览版”的发布说明,其中总结了所做变动和新添特性。在这个博客贴子中,我将讨论这个版本中一个最大的关注点:表单提交场景。你可以在这里下载我将在下面建造的一个应用的完整版本。 Web MVC模式中的基本表单提交 让我们看一个简单的表单提交场景,往产品数据库中加一个新产品:   上面的页面是在用户访问我们应用的“/Products/Create”URL时返回的,该网页的的HTML表单标识如下: 上面的标识是标准的HTML,在<form>元素中,我们有2个<input type="text"/>文本框,然后在表单的下部有一个HTML提交按钮,点击该按钮,会导致包含该按钮的表单将表单输入提交到服务器,该表单会向由它的“action”属性(在这里是“/Products/Save”)表示的URL提交内容。 使用先前的“第四个预览版”,我们也许会使用象下面这样的ProductsController类来实现上面的场景,在其中实现2个action方法,“Create”和“Save”: 上面的“Create” action方法负责返回显示了初始空白表单的HTML视图,而“Save” action方法则负责处理表单提交回服务器后的场景。ASP.NET MVC框架会自动地将“ProductName”和“UnitPrice”表单提交值映射到Save方法的同名参数上。 Save action方法然后使用LINQ to SQL创建一个新的Product对象,将用户提交的值赋予它的ProductName和UnitPrice属性, 然后试图将新产品保存到数据库中。如果产品保存成功的话,用户就会被重新定向到一个“/ProductsAdded”URL,该URL会显示一个成功消息。如果有错的话,我们会重新显示“Create” HTML视图,这样用户可以修正问题,再试着提交。 然后我们可以实现一个象下面这样的“Create” HTML 视图模板,该模板与上面的ProductsController协作产生适当的HTML。注意下面,我们使用了Html.TextBox辅助方法来生成<input type="text"/>元素,同时该方法自动地使用我们传递给视图的Product模型产品的适当属性值来填充这些文本框的值: 第五个预览版中的表单提交方面的改进 上面的代码在先前的“第四个预览版”下工作,在“第五个预览版”中仍将继续工作。但“第五个预览版”添加了额外的特性,允许我们将表单场景做得更完善。 这些新的特性包括: 发布单个action URL,但根据HTTP动词做不同的分派的能力 模型绑定器(Model Binders),将允许从表单输入值构建出丰富的参数对象,然后传递给action方法 新的辅助方法,允许将提交进来的表单输入值映射到action方法中的现有模型对象实例上 对处理输入和验证错误的支持的改进(例如,在表单重新显示给用户时,自动高亮显示有问题的域(field),保留用户输入的表单值) 我将用本贴子剩下的篇幅对这些特性进行仔细讨论。 [AcceptVerbs] 和 [ActionName] 特性 在上面的例子中,我们用2个action方法,“Create” 和 “Save”,实现了添加产品的场景。象这样将实现进行分割的一个动机在于,它使得我们的Controller代码既干净又易读。 但在这个场景中使用2个action方法的坏处在于,我们最终在网站上发布了2个URL,"/Products/Create" 和 "/Products/Save"。这在因为输入错误,需要重新显示HTML表单的场景时,会变得有点问题,因为在出错的场景下,重新显示的表单的URL会变成“/Products/Save”,而不是“/Products/Create”(因为“Save”是表单提交的目标URL)。如果用户将这重新显示的页面收藏的话,或者将URL拷贝/粘贴 email给朋友,他们保存的是错的URL,而且在之后再来访问时,非常可能出错。发布2个URL也会给某些搜索引擎造成问题,如果它们爬你的网站,试图从你的action属性自动连到下一个网页的话。 绕过这些问题的一个方法是,发布一个单一的“/Products/Create” URL,然后取决于请求是GET还是POST而使用不同的服务器逻辑。一个在其他web MVC框架中过去常用的方法是,在action方法中有个巨大的if/else语句,根据不同动词,执行不同分支: 但上面这个方法的坏处是,它使得action方法的实现难读,而且难以测试。 ......[阅读全文]

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

摘要:【原文地址】Quick Update【原文发表日期】 Tuesday, September 02, 2008 5:21 AM 我最近收到了不少(好心的)电邮,询问我是否安好,因为在过去的几周内(以及几乎整个夏天),我的博客没什么动静。 就为了答谢大家的关切,我还活着,好着呢,:-)。过去的六周,我在度假,不幸地是,没有空发贴子,但换了很多尿布。 在正式回去上班之前,我还要度一个星期的假。但这个周末,我找到时间写了一篇讨论 ASP.NET MVC第五个预览版中一些新特性的贴子,希望在我上班后恢复正常的发帖日程之前,能给你提供一些临时性的阅读材料。 谢谢, Scott 【附注】 有点不好意思,就在我去度假前,我刚开始撰写关于“第四个预览版”分成二部分的贴子,但在“第五个预览版”出来前没有时间完成第二部分。在这个月稍后,我会贴出这第二 个部分(是讨论AJAX的),其内容将针对ASP.NET MVC最新的版本。 【附注二】 经常有人问我,我的博客是否是我自己写的。没错,每篇帖子确实都是我写的,希望我过去6周的缺博提供了支持这个答复的一些证据,:-)。...[阅读全文]

posted @ | Feedback (0) |