ScottGu同学最近在Blog上发布了一些有关MIX 2008和ASP.NET MVC框架的消息。
话说2007的视频我还没有看多少,2008又要出来了。在每年的MIX大会上总有一些东西被微软力推,比如06年的ASP.NET AJAX(当时还是Atlas,如果没有记错的话),07年的Silverlight,那么在08年的MIX大会中又会重视什么呢?Scott在这篇文章中给了我们一些选项:
IE 8
IIS 7.0
ASP.NET (including ASP.NET 3.5, ASP.NET AJAX, ASP.NET MVC, and ASP.NET Dynamic Data)
VS 2008 and Expression Studio
WPF
Silverlight 2
And much more....
按照过去的经验,我估计最受关注的应该还是ASP.NET系列的内容。微软的ASP.NET团队目前手中的任务其实不少,有许许多多大大小小的框架/组件需要去开发和完善——不过只要有一个东西获得成功并受到业界广泛使用,那么他们的目的就达到了。微软那么多牛人毕竟不是吃干饭的。
在ASP.NET系列中最受社区(或者还是微软)重视的应该就是ASP.NET MVC框架了,它是ASP.NET系列内容中唯一能够被称为框架的新玩意儿——ASP.NET AJAX已经不新了。Scott也在不久前发布了有关ASP.NET MVC框架的最新消息,其主要内容就是谈到了APS.NET MVC会为几周后的MIX08发布一个“ASP.NET MVC Framework MIX 08 Edition”——呵呵,这名字是我乱取的,其实应该叫做“ASP.NET MVC MIX Preview Release”,从文章内容上看改动不小,而且似乎价值颇大:
ASP.NET MVC Framework能够在Partial Trust级别中运行了:还记得ASP.NET AJAX遭遇虚拟主机时的状况吗?ASP.NET AJAX由于必须在Full Trust级别下才能运行,所以只能让虚拟主机服务器商在服务器上安装ASP.NET AJAX了。ASP.NET MVC Framework能够在Partial Trust级别中运行,这意味着我们只需要将相关dll复制到bin目录下去即可。
对于URL Routing等基础设施有了极大的增强:文章中仅提到了能够更好地支持RESTful的URL。我有时候在想,ASP.NET MVC的URL Routing其实体现的是“约定胜于配置”,如果要“强大”的功能,是不是又需要相当程度的配置了呢?由于没有谈到更详细的内容,我们只能拭目以待了。
增强VS 2008的支持:Visual Studio其实是个平台,扩展性极强,微软为了吸引更多开发人员,让自己的东西更有竞争力自然需要借助于强大工具的支持。说起来创建项目时的模板也已经是一种支持了,从文章内容看来,至少还会出现一个Test Project的模版,不过似乎UI简陋了些——还好,毕竟只是个Preview。
去除了ControllerAction自定义属性:在上一个CTP中,Controller的Action需要使用ControllerActionAttribute这个自定义属性进行标记,而今后则不需要这个东西了。这个改变据说是因为社区的反馈,不过我倒并不介意这个。
Filter Attribute:新功能。自定义属性是.NET中非常强大的一个特性,代码实现可以非常漂亮。例如按照文章的说法,ASP.NET MVC将会使Controller和Action支持可扩展Filter机制,而框架本身也会通过这个机制实现一些常用的功能,比如文章中提到的缓存和身份验证——不得不说,这个真的很强。
内建HTML Helpers:其实就是把原本在MVC Toolkit里的类库集成到嫡系框架中了。当然,肯定还会增加新的Helper类和方法。
大量重构和设计上的改进:这无疑会使ASP.NET MVC框架变成一个很好的学习材料——以及很多技术作家写作的素材。刚才搜了一下有关ASP.NET 3.5的书籍,发现已经有不少了,不过还缺少几个重要的系列,例如Wrox的Professional系列和O'Reilly的Essential XXX和Programming XXX等。每项技术出现之后的百家争鸣总归是不会少的,不过那么多书总让我无从下手,所以我现在一般只看MSDN和社区里的文章。
ASP.NET MVC框架将会公布源代码,可供调试、编译和修补:其实我更关心的是ASP.NET MVC的实现,例如它是如何在Partial Trust级别下运行的。公布源代码之后直接解决了看代码的问题,当然调试也不在话下。至于修补,按照Scott的说法,微软肯定不会允许第三方将ASP.NET MVC修改后再发布,因此真正的Patch也只会由微软进行。公布源代码的目的是方便用户发现问题之后能够自行修补,或者有啥需要自行扩展——“悄悄的进村,打枪的不要”。
就先总结到这里吧。
不过我比较奇怪,为什么没有提到.NET并行库,莫非还“拿不出手”?其实我很喜欢那个东西……
本文作者:未知