2011年.NET社区回顾:韬光养晦的一年

fmms 12年前
     <p> 2011年对于 .NET 平台和微软技术而言,可以算是稍显平静的一年,当然也还是有少许可圈可点的事件,值得我们回顾一下。不过,在平静的 2011 年里,其实发布了很多 2012 即将发布的新产品新技术的测试版或预览版。所以说本篇文章既是一个回顾也是一个展望。</p>    <p> <strong>Windows Phone 7 趋于成熟</strong></p>    <p> 虽然微软于 2010 年就推出了 Windows Phone 7,但是直到 2011 年如期发布了 Mango 更新后,Windows Phone 7 的发展和应用开发才算进入正轨。尤其 Nokia 与微软的联盟,<a href="/misc/goto?guid=4958330145463593429" target="_blank">有些人不看好</a>,有些人认为这会带来智能手机的<a href="/misc/goto?guid=4958330146263454205" target="_blank">三足鼎立</a>。</p>    <p> Mango 针对最终用户和开发者带来了几个方面的重大更新:支持包括中文简体在内更多语言且内置了多语言输入法,更快的应用程序切换,支持多任务系统,浏览器使用 IE9 内核,支持后台任务的开发,背景音乐的支持,可创建多个 Live Tiles,本地数据库的支持等等。需要注意的一点是,Mango 更新对于操作系统而言版本号是7.5,而 SDK 的版本号7.1。</p>    <p> 由于 Mango 带来了以上如此巨大的更新,促使很多厂商尤其国内的厂商开始推出 WP7 版本的应用程序。有了多语言的支持,中文软件不用再集成一个第三方的输入法;有了更快的应用程序切换和多任务支持,开发应用可以更加关注于应用功能本身,不用花太多精力去处理墓碑机制;有了多个 Live Tiles 和后台任务的支持,可以开发一款天气应用,在开始界面显示多个城市天气信息的 Live Tiles,并在后台任务中定时更新数据息;由于浏览器使用了 IE9 内核,让 HTML5 的应用可以无缝地移植到 WP7 上,也可以自然而然地支持类似 <a href="/misc/goto?guid=4958327291153343647" target="_blank">PhoneGap</a> 这样的移动 Web 开发框架;有了背景音乐的支持,现在我们也用到体验更佳的<a href="/misc/goto?guid=4958330147797468296" target="_blank">豆瓣 FM</a> 或 <a href="/misc/goto?guid=4958330148599943173" target="_blank">AIRPLAY 精选</a>。</p>    <p> 所以,2012年 WP7 的开发会获得开发社区的更多关注,也会催生更多优秀 APP 的出现。</p>    <p> <strong>基础框架的不断增强</strong></p>    <p> .NET 框架本身的大版本发布基本和开发工具保持一致,不过微软也采用了另外一种更灵活的模式来增强 .NET 框架的功能——即针对 .NET 各个组成部分进行快速增量发布。</p>    <p> 微软于 2011 年初,正式发布了 <a href="/misc/goto?guid=4958330149383082295" target="_blank">ASP.NET MVC 3</a>,这次的发布带来很多重要改变:使用 Razor 作为默认的模板引擎,增强了 JavaScript 和 jQuery 的支持,强大的依赖注入功能等等。在发布 ASP.NET MVC 3 的同时,微软也一起发布了很多用于 Web 开发的关联产品:IIS Express 7.5,SQL Server Compact Edition 4,Web Deploy,Web Farm Framework 2.0,Orchard 1.0(一个基于 ASP.NET MVC 3 的 CMS),WebMatrix 1.0(支持 ASP.NET MVC 3 的轻量级 Web 开发 IDE)。以及 NuGet——VS 中强大的依赖包管理工具。需要更多的信息,可以参看 <a href="/misc/goto?guid=4958330150181700583" target="_blank">Scott Guthrie 的文章</a>。</p>    <p> ADO.NET Entity Framework 在 2011 年分别发布了三次增量版本,4月份发布的4.1,后来的4.1 Update,最后是 11 月发布的4.2。在 EF 4.1 和4.2中最大的增强莫过于支持 <a href="/misc/goto?guid=4958330150964473335" target="_blank">Code-First 特性和 DbContext API</a>。</p>    <p> 随着 .NET 的子集和分化越来越多,微软也意识到开发跨多个子集的类库所带来的麻烦,于是发布了被称为“<a href="/misc/goto?guid=4958330151759424591">Portable Library Tools</a>”的工具,可以帮助大家开发针对多个平台的类库(可移植库),支持的平台有:.NET Framework 4,Silverlight,Windows Phone 7,Xbox 360,甚至 Mono。</p>    <p> 另外,酝酿两年之后,微软发布了 <a href="/misc/goto?guid=4958330152553152603">Reactive Extensions</a>(Rx)库的<a href="/misc/goto?guid=4958330153344179714">1. 0 版</a>。Rx 把事件驱动 UI 与 LINQ、并发性和异步调用结合起来。更多信息参见:<a href="/misc/goto?guid=4958330154133590850">Rx 1.0 解决了异步数据访问的问题</a>。同时,微软还发布了 Ix(<a href="/misc/goto?guid=4958330154931970559" target="_blank">Interactive Extensions</a>,交互扩展),一组基于 Rx 技术扩展 LINQ 查询操作符的类库。</p>    <p> 当然,还有一个不得不说的东西就是 Silverlight。微软在 2011 年底低调发布了 Silverlight 5,Silverlight 5 提供了许多新的功能,如:支持H.264,更强大的内容保护技术,GPU 解码支持,UI 处理的性能提升,脱离浏览器运行特性的加强,以及针对开发体验的诸多改善。但是由于微软已经完全拥抱 HTML5,Silverlight 5 就显得有点尴尬。不过 Silverlight 也不是完全无用武之地,作为一个<a href="/misc/goto?guid=4958330155726357407" target="_blank">轻量级的客户端开发框架</a>已经完全能够胜任,而且 Silverlight 作为 Windows Phone 7 的开发技术之一将会长期存在。</p>    <p> 最后,当然需要谈到 .NET 框架本身的发展。在 2011 年 7 月微软发布了<a href="/misc/goto?guid=4958330156534451123" target="_blank">.NET Framework 4.0 的更新</a>,这个版本包含了众多补丁和特性,包括 HTML5 和对移植库的支持,有些内容之前也曾单独发布过。除此,微软还发布了 .NET Framework 4.5 的开发者预览版,其中展示了<a href="/misc/goto?guid=4958330157317813546" target="_blank">很多新特性</a>。</p>    <p> <strong>操作系统、服务器和云服务</strong></p>    <p> 早在 2010 年,微软就展示了下一代操作系统 Windows 8 的相关信息;但直到去年的 9 月份,微软才在 <a href="/misc/goto?guid=4958330158115850224" target="_blank">BUILD 会议</a>上向开发者提供了<a href="/misc/goto?guid=4958330158899314371" target="_blank">开发者预览版</a>,让众多开发者一窥 Windows 8 带来的新特性。虽然对于普通消费者而言,Windows 8 最大的改变在于支持 ARM 处理器,这为更加节能的 Windows 8 平板电脑做好了准备。而对于开发者而言,最需要关心的莫过于 <a href="/misc/goto?guid=4958190266514715277">Windows 8 应用模型、开发平台和工具</a>。其中 WinRT(Windows Runtime)是微软至 Win32 以来对 Windows 的 API 进行最重大的更新,可以说是 <a href="/misc/goto?guid=4958330160418416809" target="_blank">Win32面向对象的替代品</a>,当然也<a href="/misc/goto?guid=4958330161214011916" target="_blank">支持 C# 或 VB 调用</a>。另外,Windows 8 也带来了类似于 Windows Phone 7 中的 Metro UI,并为 Metro UI 的程序提供了 Windows Store。开发人员可以选择 HTML5/JavaScript 的组合,也可以选择 XAML/C++、C#、VB 的组合开发 Metro UI 应用;对于游戏开发,要充分利用硬件性能的话只能选用C++/DirectX 11.1,休闲类游戏也可以使用 XAML 或 HTML5 来开发界面。</p>    <p> SQL Server 在 2011 也发布了最新版本的预览版,开发代号名为“Denali”,正式发布的时候会称之为 <a href="/misc/goto?guid=4958330162007146527" target="_blank">SQL Server 2012</a>,除了更加关注 BI 和大数据外,2012作为<a href="/misc/goto?guid=4958330162810331466" target="_blank">一个更大的筐</a>也是为了理顺 2008 R2 一系列新功能。</p>    <p> 微软的云平台 Windows Azure 在 2011 年也进行了<a href="/misc/goto?guid=4958330163595300502" target="_blank">很多更新</a>,最为重要的也许就是更加开放,比如支持 Node.js,支持 Apache Hadoop,Windows Azure SDK for Java 的支持,Windows Azure Plugin for Eclipse 的更新,MongoDB 的支持,Solr/Lucene 的支持,Memcached 的支持等。</p>    <p> <strong>Mono 的重生与开源</strong></p>    <p> Mono 在 2011 遭遇了重大变故,由于 Novell 被 Attachmate 接管,解散了整个 Mono 团队,但是 Miguel de Icaza 作为 Mono 之父紧接着创立了 Xamarin 公司,获得了 Mono 相关的知识产权,实现了 Mono 的重生。更多信息可以参见:<a href="/misc/goto?guid=4958330164393417934">2011年 Mono 发展历程</a>。目前在移动平台上 Mono 作为一个重要的跨平台技术,已经得到了大量的关注和使用。</p>    <p> 虽然 IronPython 的创造者 Jimmy 于 2010 年就离开了微软,但是在 2011 中,IronPython 还是继续获得了发展。2011年 4 月,<a href="/misc/goto?guid=4958330165178558158">IronPython 完整实现了 Python 2.7 的功能</a>。另外微软还发布了 <a href="/misc/goto?guid=4958188481007526139">Python Tools for Visual Studio</a> (PTVS)开源项目,可以在 Visual Studio 中<a href="/misc/goto?guid=4958330166697139470" target="_blank">编辑 Python 代码</a>,并支持 CPython、IronPython、<a href="/misc/goto?guid=4958330167498669489" target="_blank">Jython</a> 和 PyPy 这四种主要的解释器,还支持 REPL,HPC,NumPy 和 SciPy 程序库等高级功能。</p>    <p> <strong>开发工具</strong></p>    <p> 微软于 2011 年春天<a href="/misc/goto?guid=4958330168288488046">正式发布了 Visual Studio 2010 的 SP1</a>,除了修正部分错误、优化性能外,微软听取了社区的反馈,提供了传统模式的帮助文档查看器。鉴于微软对 HTML5 采取积极的态度,那么 <a href="/misc/goto?guid=4958330169073819885" target="_blank">Visual Studio 为 HTML5 提供更好的支持</a>是理所当然的了。</p>    <p> 在 2011 年,微软针对开发工具的另外一个大动作,就是<a href="/misc/goto?guid=4958330169865863778">正式发布 Visual Studio LightSwitch 2011</a>。其提供了一款价格相对低廉,功能灵活的 RAD(快速应用程序开发)工具,给那些只进行业务应用开发的企业和水平相对初级的开发人员甚至非开发人员使用,让他们能够以最简单的方式快速开发出可以运行于桌面、Web 和云中的业务应用程序。同时,Visual Studio LightSwitch 也提供编码开发的方式,让有编码能力的开发人员来<a href="/misc/goto?guid=4958330170652253831" target="_blank">增强和扩展 LightSwitch 应用的功能</a>,比如可以<a href="/misc/goto?guid=4958330171446219430" target="_blank">通过扩展支持 Office 的使用</a>,或者<a href="/misc/goto?guid=4958330172240394001" target="_blank">报表工具</a>。</p>    <p> 当然,微软 2011 年发布的轻量级 IDE 还有上面提到的 WebMatrix。它是一个面向学生、临时用户和开发小型站点的开发人员可以使用的<a href="/misc/goto?guid=4958330173024479558" target="_blank">快速 Web 应用开发工具</a>,除了支持 ASP.NET 外,还支持 PHP。</p>    <p> 最后,<a href="/misc/goto?guid=4958330173818129675" target="_blank">Visual Studio 2012 的开发者预览版</a>也同 Windows 8 开发者预览版一起发布,不过这个还是非常初级的预览版,很多新功能尚未展示出来。</p>    <p> <strong>NUI 新机遇</strong></p>    <p> 微软在 NUI(自然用户界面)上多年的研究,终于在 2010 年发布的 Kinect for XBox 360 得以体现。Kinect 提供了面部识别,骨骼追踪,动作识别,语言识别等功能,让你除了通过鼠标键盘、触摸板、游戏控制器等输入设备,还可以通过动作和语音来和电脑交互。 Kinect 一开始展示给世人的仅仅是游戏机的一个附件,让大家可以在 XBox 360 上可以玩体感游戏。然而,微软对于 Kinect 的期望不仅限于此,而是打算以 Kinect 作为打开 NUI 应用和开发的新里程。所以,微软在 2011 年发布了 Kinect for Windows SDK 的两个测试版本,并按照计划于 2012 年 2 月发布 Kinect for Windows SDK 正式版,也是自然而然的事情了。在 <a href="/misc/goto?guid=4958330174608030410" target="_blank">Kinect for Windows 的宣传视频</a>中,我们可以看到,Kinect 除了在娱乐方面以外,在教育、医疗、公共安全等方面都大有用武之地。关于 Kinect for Windows 的演示可见:<a href="/misc/goto?guid=4958330175405250863" target="_blank">演示1</a>,<a href="/misc/goto?guid=4958330176199967541" target="_blank">演示2</a>,<a href="/misc/goto?guid=4958330176199967541" target="_blank">演示3</a>。</p>    <p> 随着 Kinect 的推出,以及 Siri 的火热,运用 NUI 技术的应用将会是未来开发的一个热点。</p>    <div id="come_from">     来自:     <a id="link_source2" href="/misc/goto?guid=4958330177720006632" target="_blank">InfoQ</a>    </div>