新工具和新内容——ASP.NET,Visual Studio 11 Web和.NET4.5开发人员预览(含评注)

[原文发表地址]  New Tools and New Content - ASP.NET, Visual Studio 11 Web and .NET 4.5 Developer Preview (with commentary)

[原文发表时间] 2011-09-16 21:22

当所有你们这些参加了Build大会的人获得了一个很棒的Tablet,而我却没有,这让我很郁闷(快卖给我吧!),“Angle Brackets团队”(我正在想更适合的名字)的人员忙得不可开交。

clip_image002

以下是我们团队这周在Build上宣布并展示的内容总结,这些内容在今天(9/16)就对公众开放了,并附加了一些你们的陈述。

他们在聆听

在做这个Visual Studio版本时,让我感到欣慰的一点是我们平稳地度过了许多的“精神减速障碍”。许多考虑被加入到work flow 和common scenario以避免干扰开发者。

让我感到很开心的是,团队终于意识到不是每个人都可以升级他们的Visual Studio,因此可以用旧版本打开新的project和solution。我可以使用Visual Studio 11 开发人员预览版打开一个.NET4应用程序,然后保存project,再将它在Visual Studio 2010中打开即可运行。这当然行得通。团队可以混合搭配,有时候测试版本团队人员会将solution文件导入,对其他人的开发造成破坏。

顺便说一句,你们看到过我们全新的组织图示吗?

clip_image004

重要方面:我们发布软件的所做的改变

Scott意见:值得注意的是,虽然在下一版的Visual Studio中有很多内容,其实在NuGet上的Azure/Web团队也在发布很多很棒的东西。 当我们整合更多资源的时候,开发人员也就有了更多的选择,这就好比堆垒乐高积木一样。最重要的是,很多东西只会在NuGet上展示。我在想有没有可能在NuGet Feed上添加微软支持产品。人们有时认为NuGet用来投放binary的地方,因为这很方便,但我们还需要一种方法来判断NuGet包是否真的是提供支持的产品,有点像Twitter上“认证”的概念。我很希望你们能在评论版中发表对此的看法,如果你可以在NuGet项目网站的讨论区上发表意见,那就更好了。

通过NuGet发布新产品也很重要,因为这能使其与开放源库处于同一公平竞争环境。通过将信息放置在NuGet上,微软的开放源库会争相“吸引”我们开发人员的注意,大家可以选择自己所喜欢的。如果你想用Microsoft's Ajax Minifier或者其他东西,那就直接从NuGet上获取。微软不会将资源发布在其他地方,除了在NuGet上。

Visual Studio 11开发人员预览版

clip_image006

周二发布了Visual Studio“Windows 8 Express”版,同时发布的还有支持Windows 8开发的Windows 8开发人员预览版。周三在Satya Nadella,Scott Guthrie和Jason Zander的主题演讲中,又发布了Visual Studio 11 开发人员预览版和.NET 4.5。这些资源今天对公众开放了。

ASP.NET 4.5开发人员预览版中有全新的核心功能,比如WebSockets,anti-XSS encoding和 granular request validation。它还包括了Web Form的相关改进,比如模型绑定,对HTML5的支持和隐性JavaScript。Asp.net的性能有相当大的改进,与Windows 8服务器一起作用,能减少30%的启动时间和30%的内存占用。

Scott意见:我还是在给所有的团队施加了一点压力,要注意版本编号。这么看来,.NET 4.5是正确的版本数。它使用.NET 4CLR,而且是.NET 4的加强版本(修复了缺陷)。因为修复后,它是兼容的。你们现有的.NET 4不会被破坏。你可以查看下这个版本的Visual Studio中的目标framework下拉栏。看看你可以用同样的IDE指定目标framework从2.0到4.5吗?这对那些需要开发2.0应用但还希望使用改进后IDE的企业用户来说很有用。

clip_image008

Visual Studio 11开发人员预览版新增了许多新功能,包括CSS 3的完整编辑器支持,HTML5的完整编辑器支持,JS的完整编辑器支持以及很多细节功能,比如Web Form事件可以在源代码视图中显示,Web Form设计器可以直接从源代码视图中启用,以及当你在浏览器里选中HTML时,Live Inspector(代码名为“Eureka”)通过自动查找文档中的HTML,来简化HTML编辑,以及其他很多功能。

Scott意见:所有编辑器现已情况均等,所以像区域,阶层,注释,格式等在CSS,JS,HTML和代码中都一样。现在又多了一个原因让你关闭所有没用的工具栏,投入文本编辑器和代码的怀抱

要了解更多这个版本中的新功能,你可以阅读ASP.NET 4.5的新功能和Visual Studio Web开发人员白皮书,请点击这里:https://www.asp.net/vnext/whats-new

NuGet 1.5w/Dev11支持发布了

我们对NuGet 1.5做了一次升级发布,使之支持Visual Studio11开发人员预览版。这就让在预览版构建上的开发人员可以继续使用NuGet了。

注意:NuGet不支持昨天发布的“Windows 8 Express”。这个支持是最近才往Visual Studio SKU上添加的,将会在下一个“Windows 8 Express”公众预览版中出现。

你可以点击此处下载新发布:https://www.nuget.org/

ASP.NET 4.5

在此次即将问世的发布中,ASP.NET和WebForm都有了许多新的改进。ScottGuID对此做了一个系列,写了下述文章:

· 强制输入数据控制 (9.1)

· 模型绑定第一部分 (9.5)

· 模型绑定第二部分 (9.12)

模型绑定和routing对MVC架构人员来说都不会陌生。这2个功能现在在WebForm和MVC中都有。在WebForm中,通过Form或者QueryString或者控件从请求中拉取数据会花很多时间。有时大约30%的WebForm代码只是将请求中的数据移动到变量。现在我可以这么做:

    1: public IQueryable<Product> GetProducts(
    2:    [QueryString("q")]string keyword,
    3:    [Control("categories")]int? categoryId)
    4:  
    5:    IQueryable<Product> query = _db.Products;
    6:  
    7:    if (!String.IsNullOrWhiteSpace(keyword))
    8:    {
    9:        query = query.Where(p => p.ProductName.Contains(keyword));
   10:    }
   11:  
   12:    if (categoryId.HasValue && categoryId > 0)
   13:    {
   14:        query = query.Where(p => p.CategoryID == categoryId);
   15:    }
   16:  
   17:    return query;
   18:  

这个方法支持GridView,它可以排序,按分类筛选,通过URL进行搜索。请注意值为null的int的用法。这可以让WebForm代码整洁得多,而且这只是其中一个例子。

Scott意见:ASP.NET 4.5是ASP.NET 4的添加,所以你现有的应用仍能运行,但是在使用4.5时,你可以开始熟悉它的新功能了。我已经尝试“通过减法重构”删除了一大堆繁复的代码。

我还想说的一点就是,它与ASP.NET关联更大,而不是WebForm,MVC,WFC WebAPI,Odata,IhttpHandler或者SingalR。我以前喜欢把混搭搭配的应用称为“杂交”应用,但是现在我意识到它们不过是ASP.NET应用程序。我会选用我需要的部分,你也可以如此。

MVC 4和Web Pages 2开发人员预览版发布

clip_image002[15]

ASP.NET MVC 4开发人员预览版是我们MVC框架的最新发布。这个版本包含了内置的对移动站点的支持,全新HTML5项目模板和jQueryMobile。它增强了对异步方法和自定义代码生成的支持。

其中还包括Web Pages 2(就像MVC中V和C在同一个文件中),这是一个创建动态数据驱动网站的轻便框架。最新的版本扩展了对移动设备的支持,并支持集成客户脚本,为像映射这类的任务添加辅助。你可以在这里下载Visual Studio 2010和Visual Studio 11的新版本:www.asp.net/mvc/mvc4

Scott意见:Web Pages是我和Rob用来做https://thisdeveloperslife.com的,我下周还会用它来做https://hanselminutes.com。如果你钟爱Razor,只想做一个简单的站点,编写代码,点击F5,然后部署,WebMatrix和Web Pages速度都不错。而且她们都能实现将node.js 添加到WebMatrix,这不仅很棒,而且还引出了一些有关WebMatrix用途的有趣问题。你还可以在上面做PHP。

WCF 4.5开发人员预览版

在周三我们介绍了WCF 4.5开发人员预览版。作为.NET 4.5的一部分,它包括了全新核心WCF功能,比如WebSocket,UDPmulticast,改进的streaming和更好地异步支持序列任务,以及C#异步改进。我们继续秉承简化,通过一系列的配置改进(称为“减少”),让WCF节流和配额默认为开发人员服务,更易管理。WCF客户编程模型也在.NET核心资料中,可供Windows应用开发人员使用。

Scott意见:我使用WCF好几年了,虽然很不情愿。它很强大,所有人都会同意这点,但是它很复杂而且恐怖。我很欣赏他们在这个版本中所做的改变,因为他们有效地利用了WCF的许多配置,并且重构了在REST和JSON世界中使用WCF工作的设想。对于WS-*和企业,WCF那部分还在,当你转移到REST来打开2011-2012的web时,WCF Web API会很简洁轻便,很好地融入了ASP.NET,可以使用JSON和有效的惯用法创建简单轻便的web服务。

RIA 和HTML/JavaScript

Dinesh在他的BUILD 发言中发布了JS/HTML5的RIA开发人员预览版。这是一个系列jQuery插件,可以让你轻松地在客户端上处理服务器数据。通过将不同的层衔接,RIA/JS能让你使用HTML/jQuery快速构建丰富的数据格式应用。这些库在RIAServices.jQuery NuGe包或codeplex都可获得。Silverlight的WCF RIA服务也通过WCF RIA Services V1.0 SP2WCF RIA Services 工具包2011年8月更新进行了升级。

Scott意见: RIA是另一个我很早就研究过的项目。我没资格去评判他们的项目因为WCF团队新加了jQuery,JSON以及更开放的web。我很欣赏他们做出的努力和开放的态度。看看他们的"BigShelf" 初学者项目,了解一下他们是如何用jQuery在客户端上来进行恢复、绑定,数据筛选和分类的。因为都是HTML和JavaScript,这样一来黑匣子就少了。记得阅读整个页面,因为这是一个完整的演示。

亲爱的读者们,这里为你们提供一些相关的连接,在最下面有下载链接。

发布链接

· 本周MSDN网站(https://msdn.microsoft.com) 会重点推荐上述的发布

· Scott Guthrie 对这些新功能都写了博客,你可以在这里阅读最先的几篇,之后还会有其他文章,会涉及其他的功能:

· ASP.NET vNext系列

· HTML 编辑智能任务和事件处理生成

· 强制数据控制

· WebForm模型绑定第一部分:选择数据

· WebForm模型绑定第二部分:筛选数据

· 我们在 www.asp.net 上有新落户的网页,那上面有我们发布的所有vNext 发布。你可以在www.asp.net/vnext.上查看。这里也会继续在这周更新,因为 Web API最新预览版和WebMatrix 2都发布了。

· ASP.NET 4.5 和VS 11的反馈论坛

· ASP.NET Web Pages 2 开发人员预览版教程

· 带MVC4的移动可感web应用

· 新鲜事白皮书

· ASP.NET MVC 4 Page

下载链接

· 你可能只需要这个下载: Visual Studio 11 开发人员预览版

· Scott提示 : 我在用Visual Studio 2010同时运行这个版本。我也把内部测试版本升级到这个版本,你也可以试试。安装VS没那么可怕了。你可以在虚拟机中运行它,但我把它们一起运行了,目前还没出现什么问题。

clip_image002[17]

· Visual Studio Team Foundation Server 11开发人员预览版

· Visual Studio Agents 11 开发人员预览版

· Visual Studio 11 开发人员预览版远程调试

· .NET Framework 4.5 开发人员预览版

希望你们喜欢。