zoukankan      html  css  js  c++  java
  • XC#、Smart Client

    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上的单独分离版本,还是挺期待的。

  • 相关阅读:
    二元查找树转化成排序的双向链表——要求不创建新的节点
    MySQL 通配符学习小结
    HDU 1596 find the safest road (最短路)
    webapp开发调试环境--weinre配置
    全局钩子具体解释
    英尺到米的换算
    apache2.2 虚拟主机配置
    HTTP Digest authentication
    前端project师的修真秘籍(css、javascript和其他)
    CODE:BLOCK中的CreateProcess: No such file or directory
  • 原文地址:https://www.cnblogs.com/kaneboy/p/2436745.html
Copyright © 2011-2022 走看看