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

2011年对于.NET平台和微软技术而言,可以算是稍显平静的一年,当然也还是有少许可圈可点的事件,值得我们回顾一下。不过,在平静的2011年里,其实发布了很多2012即将发布的新产品新技术的测试版或预览版。所以说本篇文章既是一个回顾也是一个展望。

Windows Phone 7趋于成熟

虽然微软于2010年就推出了Windows Phone 7,但是直到2011年如期发布了Mango更新后,Windows Phone 7的发展和应用开发才算进入正轨。尤其Nokia与微软的联盟,有些人不看好,有些人认为这会带来智能手机的三足鼎立。

Mango针对最终用户和开发者带来了几个方面的重大更新:支持包括中文简体在内更多语言且内置了多语言输入法,更快的应用程序切换,支持多任务系统,浏览器使用IE9内核,支持后台任务的开发,背景音乐的支持,可创建多个Live Tiles,本地数据库的支持等等。需要注意的一点是,Mango更新对于操作系统而言版本号是7.5,而SDK的版本号7.1。

由于Mango带来了以上如此巨大的更新,促使很多厂商尤其国内的厂商开始推出WP7版本的应用程序。有了多语言的支持,中文软件不用再集成一个第三方的输入法;有了更快的应用程序切换和多任务支持,开发应用可以更加关注于应用功能本身,不用花太多精力去处理墓碑机制;有了多个Live Tiles和后台任务的支持,可以开发一款天气应用,在开始界面显示多个城市天气信息的Live Tiles,并在后台任务中定时更新数据息;由于浏览器使用了IE9内核,让HTML5的应用可以无缝地移植到WP7上,也可以自然而然地支持类似PhoneGap这样的移动Web开发框架;有了背景音乐的支持,现在我们也用到体验更佳的豆瓣FM或AIRPLAY精选。

所以,2012年WP7的开发会获得开发社区的更多关注,也会催生更多优秀APP的出现。

基础框架的不断增强

.NET框架本身的大版本发布基本和开发工具保持一致,不过微软也采用了另外一种更灵活的模式来增强.NET框架的功能——即针对.NET各个组成部分进行快速增量发布。

微软于2011年初,正式发布了ASP.NET MVC 3,这次的发布带来很多重要改变:使用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中强大的依赖包管理工具。需要更多的信息,可以参看Scott Guthrie的文章。

ADO.NET Entity Framework在2011年分别发布了三次增量版本,4月份发布的4.1,后来的4.1 Update,最后是11月发布的4.2。在EF 4.1和4.2中最大的增强莫过于支持Code-First特性和DbContext API。

随着.NET的子集和分化越来越多,微软也意识到开发跨多个子集的类库所带来的麻烦,于是发布了被称为“Portable Library Tools”的工具,可以帮助大家开发针对多个平台的类库(可移植库),支持的平台有:.NET Framework 4,Silverlight,Windows Phone 7,Xbox 360,甚至Mono。

另外,酝酿两年之后,微软发布了Reactive Extensions(Rx)库的1.0版。Rx把事件驱动UI与LINQ、并发性和异步调用结合起来。更多信息参见:Rx 1.0解决了异步数据访问的问题。同时,微软还发布了Ix(Interactive Extensions,交互扩展),一组基于Rx技术扩展LINQ查询操作符的类库。

当然,还有一个不得不说的东西就是Silverlight。微软在2011年底低调发布了Silverlight 5,Silverlight 5提供了许多新的功能,如:支持H.264,更强大的内容保护技术,GPU解码支持,UI处理的性能提升,脱离浏览器运行特性的加强,以及针对开发体验的诸多改善。但是由于微软已经完全拥抱HTML5,Silverlight 5就显得有点尴尬。不过Silverlight也不是完全无用武之地,作为一个轻量级的客户端开发框架已经完全能够胜任,而且Silverlight作为Windows Phone 7的开发技术之一将会长期存在。

最后,当然需要谈到.NET框架本身的发展。在2011年7月微软发布了.NET Framework 4.0的更新,这个版本包含了众多补丁和特性,包括HTML5和对移植库的支持,有些内容之前也曾单独发布过。除此,微软还发布了.NET Framework 4.5的开发者预览版,其中展示了很多新特性。

操作系统、服务器和云服务

早在2010年,微软就展示了下一代操作系统Windows 8的相关信息;但直到去年的9月份,微软才在BUILD会议上向开发者提供了开发者预览版,让众多开发者一窥Windows 8带来的新特性。虽然对于普通消费者而言,Windows 8最大的改变在于支持ARM处理器,这为更加节能的Windows 8平板电脑做好了准备。而对于开发者而言,最需要关心的莫过于Windows 8 应用模型、开发平台和工具。其中WinRT(Windows Runtime)是微软至Win32以来对Windows的API进行最重大的更新,可以说是Win32面向对象的替代品,当然也支持C#或VB调用。另外,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来开发界面。

SQL Server在2011也发布了最新版本的预览版,开发代号名为“Denali”,正式发布的时候会称之为SQL Server 2012,除了更加关注BI和大数据外,2012作为一个更大的筐也是为了理顺2008 R2一系列新功能。

微软的云平台Windows Azure在2011年也进行了很多更新,最为重要的也许就是更加开放,比如支持Node.js,支持Apache Hadoop,Windows Azure SDK for Java的支持,Windows Azure Plugin for Eclipse的更新,MongoDB的支持,Solr/Lucene的支持,Memcached的支持等。

Mono的重生与开源

Mono在2011遭遇了重大变故,由于Novell被Attachmate接管,解散了整个Mono团队,但是Miguel de Icaza作为Mono之父紧接着创立了Xamarin公司,获得了Mono相关的知识产权,实现了Mono的重生。更多信息可以参见:2011年Mono发展历程。目前在移动平台上Mono作为一个重要的跨平台技术,已经得到了大量的关注和使用。

虽然IronPython的创造者Jimmy于2010年就离开了微软,但是在2011中,IronPython还是继续获得了发展。2011年4月,IronPython完整实现了Python 2.7的功能。另外微软还发布了Python Tools for Visual Studio (PTVS)开源项目,可以在Visual Studio中编辑Python代码,并支持CPython、IronPython、Jython和PyPy这四种主要的解释器,还支持REPL,HPC,NumPy和SciPy程序库等高级功能。

开发工具

微软于2011年春天正式发布了Visual Studio 2010的SP1,除了修正部分错误、优化性能外,微软听取了社区的反馈,提供了传统模式的帮助文档查看器。鉴于微软对HTML5采取积极的态度,那么Visual Studio为HTML5提供更好的支持是理所当然的了。

在2011年,微软针对开发工具的另外一个大动作,就是正式发布Visual Studio LightSwitch 2011。其提供了一款价格相对低廉,功能灵活的RAD(快速应用程序开发)工具,给那些只进行业务应用开发的企业和水平相对初级的开发人员甚至非开发人员使用,让他们能够以最简单的方式快速开发出可以运行于桌面、Web和云中的业务应用程序。同时,Visual Studio LightSwitch也提供编码开发的方式,让有编码能力的开发人员来增强和扩展LightSwitch应用的功能,比如可以通过扩展支持Office的使用,或者报表工具。

当然,微软2011年发布的轻量级IDE还有上面提到的WebMatrix。它是一个面向学生、临时用户和开发小型站点的开发人员可以使用的快速Web应用开发工具,除了支持ASP.NET外,还支持PHP。

最后,Visual Studio 2012的开发者预览版也同Windows 8开发者预览版一起发布,不过这个还是非常初级的预览版,很多新功能尚未展示出来。

NUI新机遇

微软在NUI(自然用户界面)上多年的研究,终于在2010年发布的Kinect for XBox 360得以体现。Kinect提供了面部识别,骨骼追踪,动作识别,语言识别等功能,让你除了通过鼠标键盘、触摸板、游戏控制器等输入设备,还可以通过动作和语音来和电脑交互。Kinect一开始展示给世人的仅仅是游戏机的一个附件,让大家可以在XBox 360上可以玩体感游戏。然而,微软对于Kinect的期望不仅限于此,而是打算以Kinect作为打开NUI应用和开发的新里程。所以,微软在2011年发布了Kinect for Windows SDK的两个测试版本,并按照计划于2012年2月发布Kinect for Windows SDK正式版,也是自然而然的事情了。在Kinect for Windows的宣传视频中,我们可以看到,Kinect除了在娱乐方面以外,在教育、医疗、公共安全等方面都大有用武之地。关于Kinect for Windows的演示可见:演示1,演示2,演示3。

随着Kinect的推出,以及Siri的火热,运用NUI技术的应用将会是未来开发的一个热点。

你可能感兴趣的:(2011年.NET社区回顾:韬光养晦的一年)