RSS 2.0 Feed
2004-04 Entries
摘要:1、ObjectSpaces in CTP 在我安装了VS2005 CTP版本以后,查看附带的.Net Fx SDK时,首先就发现了讲解ObjectSpaces相关的内容被去掉了(PDC版本中带的.Net Fx SDK文档中包含了详细的ObjectSpaces文档),原因嘛,因为CTP版本中包含的ObjectSpaces和PDC版本中的相比,发生了很大的变化: 最重要的变化,就是ObjectSpaces开始支持Generic了,PDC版本中: ObjectReader reader = os.GetObjectReader(typeof(Customer), ““, ““ ); CTP版本中: ObjectReader〈Customer〉 reader = os.GetObjectReader〈Customer〉(““, ““ ); 其他的变化包括:新增了一个PagedObjectReader以支持分页,ObjectSpace类增加了更多的方法等等... 而对于ObjectSpaces的发布,比较统一的意见是ObjectSpaces将不被作为.Net Fx 2.0的一部分发布,而是会在Whidbey正式发布后一段时间,作为一个Add-on Pack发布出来,同时ObjectSpaces还会增加一些支持WinFS的特性。可以想象未来ObjectSpaces可能还会有不小的变动。 而公认ObjectSpaces最大的弱点,就是它将只支持SqlServer(97、2000、Yukon)。在用它构建DAL时,就要考虑好以后是否会对数据源进行移植。 相关链接:http://www.alexthissen.nl/Weblog/PermaLink.aspx?guid=5f3f1285-e24c-495b-acd0-029c6ab96f94 2、Yukon, a new platform 在DevX上有篇文章,Kiss the Middle-tier Goodbye with SQL Server Yukon,文章的内容是说Yukon由于其丰富的“编程”特性,我们已经可以将大量的处理直接写到“Database Tier”上面,而且可以获得更好的性能,也许,我们将(在一定程度上)不需要一个专门的Middle-tier了。 相关链接:Is Yukon the end of the middle-tier?...[阅读全文]

posted @ | Feedback (12) |

摘要:1、最近最轰动的新闻就是Microsoft和SUN的和解了,真让人感叹商场无常啊。不过也从一个侧面反应出Microsoft和SUN都意识到了现在Java和.NET都已经成长到谁也不可能消灭谁,在相当长的一段时间内,很可能是双方共同发展,所以,对双方最有利的做法就是维持这样的一个“两极世界”(就像冷战时期的美苏),并同时把其他冒出来的第三方力量打压下去。 当然也有Microsoft的员工不忘调侃一下McNealy,这里收录了过去McNealy对Microsoft的“经典”评价。 2、XC# XC#是什么东东?和C#有什么联系?呵呵。XC#是基于C#的一个扩展编译器,做为VS.NET的一个Add-in,它会在C#编译器编译完成后,再用自己的编译器将自己定义的扩展符号(以Attribute形式体现)编译成标准的IL嵌入最终生成的Assembly。 XC#能完成的扩展有:混淆代码、分析并校验代码、前置条件和后置条件的支持(我认为最有价值的就是这一点)等。 比如我有一个这样的函数:public UserInfo BuildUserInfo( String username, Int32 age)为了保证两个参数合法,同时保证返回的UserInfo对象不为空,我们或者加上检测的代码:if ( (username != null) && (username.Length > 0))…或者使用断言:Debug.Assert( username != null)…但XC#可以让我们用更加“优雅”的语法来定义这个函数的前置和后置条件: [ Requires(“username != null” ]  // 前置条件[ Ensures(“result != null” ]  // 后置条件public UserInfo BuildUserInfo( String username, Int32 age) 或者,更灵活的写法: [reture : NotNull]public UserInfo BuildUserInfo( [NotNull] String username, Int32 age) 是不是有点Design By Contract的味道?? XC#(最新版本是2.0,开始收费了,而前一个版本1.2是免费的。从我各自安装并查看其帮助文件上看,1.2和2.0几乎没有什么功能上的差别,但是在我试验1.2版本时,它对前至和后至条件的支持有些问题。 3、微软发布了Smart Client Architecture and Design Guide,这份指南着眼于WinForms Smart Client的架构设计。不过现在还并不完整,只包含了介绍、Offline设计和多线程设计三章。另外,LonghornBlogs上一篇The Road to Longhorn Goes Through Windows Forms也值得一读,文章解释了即使Longhorn WinFX是更好的程序架构体系,但是WinForms仍然是现阶段非常有价值的技术。 我现在只对WinForms在企业内部的分布式架构技术的选择有点头疼,因为微软推荐的ES/COM+实在不是我擅长的,但又不甘心用.Net Remoting这样的以后很可能支持度很低(MS已经表示.Net Remoting CANNOT talk with Indigo on-the-fly)的技术,WSE又担心效率不行…Indigo在完成后,会发布一个能运行在WinXP上的单独分离版本,还是挺期待的。...[阅读全文]

posted @ | Feedback (3) |

摘要:已经记不清从什么时候开始,B/S已经成了我们开发的系统里面最主要的程序模型,在网络浪潮的冲击下,传统的Windows程序所面临的一些问题(部署困难、升级困难、维护困难、安全问题)使得基于Web的系统大行其道,一下子,几乎只要有可能,所有的系统都开始采用B/S开发。当然,Windows程序在某些场合也是不可能被替代的(就像CSDN里面有人反驳的那样,PhotoShop永远别想做成B/S的模样),但的确更多的系统采用了Web架构。   在这篇Blog里面,引用了一项很有意思的数据。www.asp.net和www.windowsforms.net这两个站点分别是微软的WebForms和WinForms的官方站点,4/3上午,这两个站点的论坛的统计数据是:   www.asp.net:413,687个注册用户,141,522个话题,519,521篇帖子 www.windowsforms.net:4,466个注册用户,4,510个话题,13,458篇帖子   那篇Blog的作者分析原因可能是:1、大部分的开发都转向了web,所以大家都想多知道点asp.net的事;2、windows程序员们已经有了足够的知识足以开开心心的完成他们的开发了,所以他们没啥问题可问;3、www.windowsforms.net的名声远远不如www.asp.net,所以较少人光顾。   但是,在这样的几乎“一边倒”的形式之下,我却渐渐的感到了Windows程序的回归,而且这次回归,“杀回来”的已经不仅仅是过去老样子的Windows Application了,而是装备更精良的、表现形式更丰富的、实现方式更多的各种各样的Rich Client。   1、JavaScript + XMLHTTP(Bindows + Janc)   我个人认为这是一对非常好的伙伴,结合起来,可以完成我们想象不到的非常Cool的应用,JavaScript用于客户端界面的显示和处理,XMLHTTP用于客户端与服务器的信息传输。   JavaScript在客户端的表现力不容置疑,看看www.bindows.net所表示出来的能力,利用JavaScript几乎可以实现Windows应用程序所能干的大部分事情,而且Bindows提供了一个封装好的可以直接利用的JS类库,省了我们大把的力气。   XMLHTTP一直以来常被用于实现“无刷新”的Web页面,它和JavaScript配合,可以完成数据从服务器和客户端的传输。Janc是Lostinet实现的一套.NET类库,完整的封装了服务器端XMLHTTP接口,程序员不需要了解XMLHTTP的细节,就可以编写自己的XMLHTTP应用系统。(Lostinet好像在做Janc的下一个版本,叫做Rane)   想想,用Bindows构建客户端的显示界面,而与服务器的传输用Janc来实现,岂不是天作之合?Web系统原有的界面交互性差、页面刷新等问题都可以很好的解决。   2、Smart Client + WebService   从这次的DevDays04,可以看到微软正在越来越重视WinForms。现在微软把新一代的WinForms程序称为Smart Client(开始我看到这个名字也认为是手机、PPC等移动客户端),它更好的解决了传统的Windows程序原有的部署(用ClickOnce可以很好的Publish到Web服务器、FTP服务器、局域网共享目录等地方)、升级(自动的版本检测、下载、更新)、安全等问题。其实.NET很早就提供了类似的功能,比如Updater Application Block很早就出来了。   Smart Client加上WebService,不但给用户更丰富的界面体验,而且和网络有了更好的交互性,即使在Offline的时候,也可以利用缓存来继续为用户服务。   Smart Client面临的最大的问题,仍然是现阶段.Net Fx在客户端的安装问题,即使只是一个20M的分发包,有时候要说服客户安装也不是一个简单的问题。   3、Avalon + Indigo   Yes!在将要到来的Longhorn时代,WebForms和WinForms终于融合在了一起。Avalon(XAML)构建的客户端,加上Indigo的通讯架构,将带给我们前所未有的软件使用体验。   4、其他   虽然Java刚刚出现的时候,Applet被当作一项主要技术被大力宣传,但现在的确应用已经越来越少了。Java WebStart好像现在是被SUN大力推广的一项Rich Client技术(对Java不了解,不敢随便乱说…)。后记:在写完上面的文字并发布以后,随手打开了CSDN的文档中心,然后立刻发现了一篇观点和上面文字一致的文章,《迎接Client/Server模式的回归》,并从这篇文章里面找到了另一篇文章的链接,《Back to the Future with Smart Clients》。感觉是:1、天哪,我真的没有抄袭...2、看来有这个想法的不是只有我一个人......[阅读全文]

posted @ | Feedback (29) |

摘要:WhiteHorse 无疑是VS2005中最令人期待的东东之一。可惜,在现在的VS2005CTP中,可能只能“预览”一下WhiteHorse的身影…文章转移到了:http://bbs.dotnettools.org/activeubb/NewsDetail.asp?GroupName=VS2K5%28Whidbey%29%BA%CDFX2%2E0&DaysPrune=365&lp=1&id=1820根据ccboy的信息:CTP其实是pd4,也就是Partner Drop的第四个版本,当然离Beta还远呢,PD版本的做法是最近才有的,以前没有这样的版本号......[阅读全文]

posted @ | Feedback (7) |

摘要:前阵子休假一周,把《重构》带着陆陆续续的看,现在看得也七七八八了。最大的感觉是,书中所阐述的重构的原则的意义大过具体步骤的指导,其实总结一下,倒是一份不错的Design & Code Guideline,呵呵。不过最最重要的,我觉得就是“随时重构”这一准则,程序员都是懒惰的家伙,能够偷懒的时候,我绝不会花费更多的力气去敲入更多的代码。抵住诱惑!Refactoring Anytime!第三期《程序员》介绍了不少Java平台下Web表现层的MVC框架,Struts、JSF等等,想到.NET平台下实在很缺乏这些东西,除了UIP,好像就没有一个“可用的”框架了。何况现在的UIP也实在算不上一个成熟的作品。VS2005 CTP大家一定都拿到了,我的感觉离Beta还有一段不小的距离。不知道计划中的6月份的beta能不能按时推出。...[阅读全文]

posted @ | Feedback (6) |