Tuesday, August 31, 2004

Differences between Java & C#

  • The Main() method is capitalized.
  • The Java concept of packages is replaced with the C# namespace.
  • C# supports attributes for including extra information for the compiler.
  • Boxing and unboxing convert between value and reference types.
  • There is no class path.
  • C# supports properties.
  • C# uses ref and out to pass types by reference instead of by value.
  • Delegates provide type-safe function pointers.
  • C# methods are non-virtual by default.
  • The C# switch statement supports with string data type.
  • C# supports enumerated types.
  • C# provides the struct for light-weight classes.
  • C# supports pointers, in unsafe code only.

  • Main() 方法的首字母是大写的.
  • Java中的packages概念替换成了C#中的namespace.
  • C# 支持属性,这样可以为编译器提供一些额外的信息.
  • 值类型和引用类型转化的时候会存在装箱和拆箱.
  • 没有Classpath一说了.
  • C# 支持属性.
  • C# 使用ref out 在传值的地方来传一个引用类型.
  • Delegates 提供了类型安全的函数指针.
  • C# 的方法默认是非虚的.
  • C# 的switch 语句支持用string 类型的数据.
  • C# 支持枚举类型.
  • C# 通过struct 来提供轻量级的类.
  • C# 在非安全代码的情况下支持指针.
  • Saturday, August 28, 2004

    今天拿到了VS2005的DVD

    激动啊.花了我20美金呢,迫不及待的就安装上了.下面就初步的体验给出一些我的看法:)

    1.安装
    2.初次运行
    3.部分新特性体验
    4.安装MSDN

    5.展望正式版

    总的来说,真的是不错那.


     

    1.安装


    因为是Beta版本,而且是DVD版的,所以安装非常的简单.基本上只要选择一个安装路径(如果你的C盘够大,你甚至可以略过这一步)和安装内容.Beta版本的连序列号都已经写好了,不需要你关心,点击安装以后,泡上几壶茶,这样才能好(这也许和我的笔记本硬盘速度比较慢有关系).这里对于安装就不多赘述.

    2.初次运行


    初次运行,看到了2005的Loading界面,眼前除了"Codename: Widbey"有点扎眼以外,还没有什么出众的地方呢.转眼跳出一个窗口告诉我这是第一次运行VS2005,让我选择一个IDE的模板,已经有一些设定好的模板,适合于不同类型的开发人员.可能微软得出这样的模板也是花了不少精力的呢.我选择了C# Developer.然后就正式进去了.看惯了Windows和Office 2003的风格,VS2005还真没有什么让人眼前一下子一亮的东西.除了每个文件的tab形状有变化,其他的还真的没有什么特别的.只是感觉比2002和2003精致了一些.


    图1 精致却无新意的IDE

    创建一个新的项目,不一样的第一眼就来了.因为ASP.NET2.0已经和前面的版本相比有革命性的变化,所以在创建一个新项目的时候,咋一下还找不到怎么创建ASP.NET的项目呢.因为ASP.NET的项目已经被提升到了超越一般项目的高度,它有专门的一个创立子菜单:


    图2 创建ASP.NET应用程序的地方.

    而在Project菜单中创建的是WinForm的应用程序和其他非ASP.NET的程序.事实上ASP.NET的功能甚至语法上都有不小的变化,有空的时候一起探讨一下.

    关于内存的消耗,毕竟是Win32平台上的应用程序比Java的IDE要好很多.在没有什么大的动作(例如大程序的编译啊,调试啊,发布啊)发生的时候,IDE的内存消耗量控制在50M之内(不包括VM),这已经不知道比Java的IDE(例如JB,Eclipse,Sun JavaCreator之流)要好太多了.

     3.部分新特性体验

     在今年一月份的时候,我就翻译过一篇文章"程序员眼中的VS.NET Whidbey".在那篇文章中,我们就已经初识了Whidbey的"最激动人心的十个特性".今天我们就来对比一下,是否那么让人激动.

    a. 重构 Refactor


     我们假设存在一个private的String变量 ok, 我们想将这个变量包装变成一个Property,Get/Set方法都很简单,这么简单的事情难道还要自己来做?不,你现在只需要点击不超过5下鼠标就可以完成了.


    图3 Step 1 Refactor第一步

    选择了这个"包装Field"选项以后,就是一个Refactor第一步就迈出去了.

     
    图4 Step 2 弹出的向导指引如何设定这个新的Property

    简单的第三次鼠标动作:点击OK


    图5 Step 3 这是一个预览的窗口,告诉你什么地方要发生变化了.

    第四次鼠标动作: 点击Apply,大功告成.


    图6 Step 4 看到结果

    而且这张截图中显示了VS2005IDE功能方便的另外一个改变.就是可以分辨在上一次保存文件之后修改过的代码,左边行前有绿色小条子的就是,而正在修改尚未保存的代码,默认是用黄色显示.这个功能也非常贴心.

    上面是一次简单的Refactor的演示,实际上Refactor的内容很多,包括

    1.  抽取一段代码为一个方法;
    2. 对一个变量或者方法进行改名;
    3. 包装一个域变量为一个Property;
    4. 对一个Class抽取出Interface;
    5. 提升一个方法内的变量为方法的一个参数;
    6. 删除一个参数;
    7. 交换参数的顺序;

    等等功能.这些重构的功能基本上已经完成常用的重构工作.但是对比JB中的重构,应该说考虑到语言上的差异以外,微软做了一些概念上的调整,将一些重构转移到了IntelliSense中去了.例如"包围代码块(Surround With..)",对比下面的JB中的重构菜单,就可以看到,有了提高,也有不足.


    图7 JBuilder X中的重构菜单

    相信这样的安排既有语言特性上的考虑也有IDE菜单安排逻辑上的考虑.在未来,我将对这两个重构作出一个详细的对比.

    b. 编辑后直接运行 Edit and Continue

     这一直是一个VB6中的优异特性,相信微软在2002和2003中没有实现这样的特性是有其内在的困难存在的.现在既然已经重新在VB.NET中实现了这样的功能,但是却没有在其他的语言中实现这样的功能,想必也是有其考虑在里面,但是个人认为,对于.NET Framework而言,C#和VB.NET在本质上的差别已经没有了,不是因为时间紧张就是因为战略上的考虑而不在 C#上添加这么一个讨人喜的功能.最后的结论就是,不得不说是一个遗憾,但是相信所有的开发人员都会适应这样的一个缺憾的.因为我们没的选择.

    c. 一次点击 Clickonce

     2002和2003刚出来的时候,当我看到可以在IE中运行一个WinForm的应用程序,给我的惊讶不亚于一颗原子弹.因为这样的功能整合和BS和CS结构的优点.可以开发出以往CS一样漂亮的界面,又可以通过Web的方式部署/运行,虽然没有Web Service那样横跨所有的异质平台,但是对于那些只需要在Windows平台上运用的系统的,对于以往积累的众多的CS开发人员来说,简直就是一个比Web Service还要好的选择,因为他们只需要如何将一个写好的CS程序发布到IIS上去就可以了,而这一切只是需要几个简单的操作而已.

    但是两年过去了,看到ASP.NET流行了,并没有看到这项技术的流行.不流行,那么肯定是存在其不可接受的限制(具体的分析可以参看我的翻译文档).现在有了Clickonce,相信这项技术将普遍的推广开来.

    d. 智能标签 Smart Tags

    在我翻译《十大特性》的时候,一直没有很好的理解智能标签是什么意思.当我开始试用2005的时候,我开始明白了.


    图8 ASP.NET中的智能标签

    以前的Grid控件已经更名为GridView.在GridView中点击右上角的小三角后看到的Common GridView Tasks就是智能标签,他能为你做很多的工作,尤其是在制作界面的时候,能为你定制很多的常用外观属性和动作特性,特别有用,包括数据源的定义等等.开发速度大大提高.

    这样的一个特性,相信在MSDN中也有详细的介绍,相信对于ASP.NET的开发组而言,也将是非常值得骄傲的一个特性,因为ASP.NET真正走入了RAD开发的时代.

    (to be continued.)

     

     




    Friday, August 20, 2004

    成功报名全记录

    今天下午4点开始,江苏地区的日语二级报名开始,国家考试中心的报名站点估计要被广大的报名考生给挤爆了。从下午3点45分左右开始,报名的页面就已经开始开始打不开了。到了4点的时候更是一下子拥挤起来。辛苦去年的惨痛经历在眼前,我准备了8个窗口,全都是报名的页面开在那边,就等时间一到,就点击报名,生怕某个环节网络出问题,准备了8个窗口(实际上真的还是用不到的,有一个窗口就可以了)。

    一开始不停的报告DNS错误,表示无法连接服务器。终于有几次成功了,却告诉我莫名其妙的说?我的证件和密码已经被使用?,我×他大爷的,我还没有报名报上那??,这帮孙子干活也太不负责人了。。顺着他的提示,确认了一下用户名和密码又重新回到了第二步点击?同意?去重新填写信息。还是不行??我都快急疯了,好不容易找到联系电话正打算打到北京去问问什么意思,突然一个信息出来说我已经预定了位置了。我的老天,这么眷顾我,在我不经意间就让我搞定了,太高兴了,立马填写详细信息后跳转到交费页面。

    交费页面里面指向在线缴费的连接居然告诉我DNS错误,而且其他人也有这样的问题,还好,到了这一步,位置是有了,就差交钱了。改天交吧??一看时间,用了25分钟了,可怜我的朋友没有出来这个页面。正当我在检查了剩余名额后发现缴费居然已经可以了。那还有什么好犹豫的?缴费啊。一切顺利,缴费成功。共费时44分钟。

    其中4点20的时候,全部的座位只剩下了500个,4点30的时候只有5个,4点33的时候为0个,4点56的时候有6个(估计是有人放弃了)。现在,不知道了※??

    惊险无比的30分钟,真是tmd bullshit。


    Wednesday, August 18, 2004

    Microsoft dissappointed me!

    失望, I have asked Microsoft to send me the VS.NET 2005 beta disc for over one month, and it said that the disc will be delived soon, and I will be able to get the disc in 2-4 weeks. 5 weeks passed away, I still haven't got my disc!

    日语等级考试报名开始了

    8月17日中午12点开始,2004年度的日语等级考试(JLPT)考试正式开始,其实日本的官方报名时间是从2004年7月5日就开始了,期间的原因我们就不去多想了。去年我报名的时候因为非常的拥挤,导致我未能在南京考试,今年南京的报名时间是2004年8月19日中午12点开始,估计20分钟内就会把名额抢光。

    去年报名的时候,对国家考试中心负责日语能力报名的网站就失望之极,没有想到的是今年反而更加变本加厉了。这里面肯定存在一个腐败的问题,页面空链接,2004年的报名写的是2003年的字样,报名的用户名和密码形同虚设,系统从报名前2个小时还在调整,开发的源代码都可以看到??这样不负责任的站点居然是堂堂国家考试中心制作的。Im shame on it,这样的系统,这样的国家级的站点,让我太失望了,乃至联想到北航的丑闻,联想到全国上下的形形色色的腐败,让我痛心疾首,让我对这个国度失望透顶。

    无奈??无奈之余别和我只能想,做好自己的事情就是最大的期望了。


    Friday, August 13, 2004

    I am illed

    生病了,真的生病了.好久没有病的如此严重了.发烧到38.6度,十多年没有打屁股针了,今天居然让我"重温"了一把.

    早上起来就浑身软绵绵的.下楼还滑了一脚,所幸没有受伤,否则又得破费了..

    早上挂了两瓶水,也是好久没有挂水了,两瓶水居然挂了2个半小时.中午从医院回来后也是昏昏沉沉的.但是休息了一下以后明显感觉好多了,除了感冒引起的鼻子依旧不舒服外,已经好了很多了.

    难得病的如此厉害,纪念这一天.


    Thursday, August 12, 2004

    写什么东西.

    懒懒洋洋的爬上来写Blog.朋友告诉我说我的Blog更新进度变慢了.更新的内容少了...好久没有写点东西.究竟要不要写?写什么,这些都是一个问题.哈姆雷特式的诘问往往能让自己清醒.


    Blog是什么?写Blog干吗?

    Blog本来是国外一种在Web上记录自己心情,写自己的日子的一种log形式的文件.起源可以追溯到txt格式的文件了.但是最近这个Blog之风行简直让人无以适从.就是一种变了脸的个人站点.只不过只能发文字或者简单的图片等等.一样就是个人站点又开始泛滥了.从最早我在Blogger上写Blog,但是却是无法查看自己的Blog站点(因为众所周知的原因).于是新鲜感一过,立马就忘记了还有一个Blog等待更新.后来在JavaLobby上也提供了blog.而且还能正确的访问到.但是英文的站点,羞愧于自己的烂E文,终于又是放弃了.后来,在Blogcn上注册了中文的Blog,开始了个人的Blog生活,那个时候是2003年的8月份,整整一年了.后来断断续续的也维持了好几个月,写了不少东西,一样还是不知道什么是Blog,还是不知道应该写什么.主题不明了........迷失了.

    国内写Blog的人是为了图名还是图利?还是真的为了记录自己的生活?北京女病人成了中国最受关注的女博客,还出了书了.木子美和竹影青瞳等这样的一脱成名的女人更是搅的国内的Blog社区蠢蠢欲动.2003年中国最佳Blog评选也出炉了,闹吧.....我反正就没有想法了....

    技术?生活?

    我一直想将这个Blog做成技术Blog,无关的东西不写,无聊的东西不写.但是想写点原创的技术文章确实也不容易.需要至少对准备写的主题有一个透彻的了解,这样才能写的顺当,写的言之有物,写的不会让大家反胃.但是这样需要很多的业余时间.我的业余时间主要最近主要都给了日语了.所以更新时间自然变慢了.于是有的时候想是否就写点生活上的东西.但是言之无物啊!空洞啊..让我写着写着就没有那劲头了..让我痞,可以啊.我也可以痞子气一点,调侃一下人家吧.但是不是我的本性..终究不是那号人...唉~~~~

    那就这样吧...

    等着吧.写Blog不用RSS似乎是过不去了,FeedDemon是少不了了,(FeedDemon Download).Blog的服务程序自带了RSS link生成,但是TraceBack根本就没有用过...有几个人明白什么是TraceBack?有几个人用过?呵呵..就让他空白吧.

    明天开始让他空中就空着吧...

    可怜今天还生病了...