准确的讲应该是“听讲座之周” :-)。因为机缘巧合,这一周里居然听了三个不同类型的讲座。眼看周末了,八成不会有类似的“机缘”再凑趣地发生了,就再这里总结一下自己的体会,尤其是与.net相关的一些体会。
周一听的讲座是计划中的,一场“IBM技术加油站”,去之前就打算当成产品推广会听的。演讲的是两位从美国IBM请来的讲中文的博士,内容不出所料,主要就是如何基于IBM的产品进行J2EE开发。最大的感受就是Rational被IBM收购之后,几乎完全成了为IBM产品提供服务的附属品,或者说起码这两位IBM的博士是这样认为的。举个例子:本来按我理解,RUP是由Rational开发的一种统一的、中立的、标准的软件开发过程,应该是不依赖于特定的厂商或平台的。不过IBM的两位博士实际上是这样做的:先介绍说,RUP是IBM的Rational公司开发的软件开发过程,为了实施该过程,需要使用很多工具支持,接着演示如何使用ClearQuest,ClearCase,XDE等工具来支持RUP的实施,这些工具紧密地与IBM WebSphere集成。在场有很多学生,我相信学生们听完之后就会留下这样的印象:RUP是IBM的,一定要配合IBM的工具来做。在介绍过程中有听众提出:这些辅助工具是否可以与VS.NET集成。得到的回答是“不清楚”。还有听众问能否比较一下IBM产品和Microsoft的.NET相关产品的优劣,两位博士讨论了一下,似乎对.NET和相关产品没有更深入的了解,最后得到的答复是IBM的企业级开发工具更多、更成熟。总之最后给人的印象就是只有IBM的工具才是最好的开发企业级应用的东西。我向来觉得IBM是个非常值得尊重的公司,从整个演讲来看,所介绍的开发流程以及工具也确实很优秀,不过个人认为没有比较是不能说明问题的,从工具角度来看,虽然WebSphere以及集成的Rational产品很出色,但也未必比Visual Studio.NET更出色。或者与同类的J2EE开发工具相比,WebSphere不比JBuilder更出色,XDE也不比Together更出色,RUP不是IBM发明的,MDA和SOA也不是只有IBM在做,因此,光说自己的东西好而不去和别人做比较是没有说服力的,只有论点没有论据也是无法让人信服的。周三听了一下午关于Smart Client的讲座,两位MS的大侠讲的不错,虽然内容有些浅显,不过还是跟人留下了很深刻的印象,对Smart Client的开发方式有了比较全面的认识。周四正赶上公司请了两位Novell的工程师来介绍Suse Linux,因为听说要讲Mono,所以找时间去听了一下。结果Linux没说多少,倒是说了不少Mono。以前只是看过一些Mono类库中的源代码,并没有在Linux环境下安装和运行过Mono,所以看这两位工程师在做演示还是比较新奇。关于Mono有几点体会:* 很佩服Mono社区,想想看,凡是看过.NET源码的人因为法律问题都不能参加Mono的开发,几百人的团队在三年的时间里(多数人都是利用业余时间)凭空的创建了一个Linux上的.NET,真是个很了不起的工程。* Mono为.NET的跨平台提供了可能,不过应该主要是作为运行环境而不是开发环境,在Linux下进行.NET应用开发实在是费事,Mono自带的一个0.5版本的IDE让人不敢恭维。所以如果确实需要在Linux上部署.NET程序的话,还是尽量在Windows里开发测试完了再说吧。好在Mono生成的IL与MS .NET完全兼容,所以不会有什么兼容性问题。* 因为MS .NET与Windows的紧密联系,Mono中很难实现.NET中一些与Windows相关或者与COM+相关的技术,比如interop,更常见的问题是WinForm的实现。所以我认为使用Mono做Web/Web Service应用或者做其它Server-side的应用是可行的,但是做客户端应用基本上是不太现实的,尤其是在Whidbey中更强调Smart Client(比如Click Once),这将严重依赖于客户端技术,不知道到时候Mono会怎么做。尽管Mono里的折中办法是用Linux的GTK Gnome作为替代,但想象WinForm那么方便有效实在是很困难。另外以后Longhorn了怎么办?WinFS了怎么办?Mono的发展还是有很多困难的。* 看到了很快要发布的Mono 1.2的标准,多数.NET 2.0里的东西已经在了,而且据说有些新特性是在MS .NET 2.0里也没有的。Mono已经作为.NET标准制订的参与者之一了,确实很了不起。* 对于Mono,我个人看法还是希望更多的参考和利用它的源码,并关注它的发展,至于是否真的要使用它,还是要看是否真的有这个需求了。