随笔分类 -  .NET

关于java、C#泛型的看法
摘要:比较java、C#的泛型语法和各自优缺点 阅读全文

posted @ 2007-11-15 06:47 温少 阅读(8380) 评论(46) 推荐(0) 编辑

Java util.concurrent中LockSupport类在C#中的实现
摘要:java 5之后提供优秀的并发库util.concurrent,.net中缺乏类似的功能。由于硬件体系发生了变化,多核时代来临,.NET中缺乏并发类库显然不合时宜。其中一个办法就是在往C#中移植java的util.concurrent。本文讲述移植的关键点之一,LockSupport.park实现的代码移植。 阅读全文

posted @ 2007-11-15 06:09 温少 阅读(2935) 评论(15) 推荐(0) 编辑

Java util.concurrent包AtomicXXX系列对象在C#中的实现
摘要:从JDK 1.5开始,util.concurrent包提供了Atomic类型,包括AtomicInteger、AtomicLong、 AtomicBoolean、AtomicReference、AtomicFieldUpdate等,这些类在并发编程中大有作用。在.NET中也提供了同样能力的System.Threading.InterLocked,但是不如java中的Atomic系列对象直观好用。本文分析了JDK的底层实现,而且提供了在C#中实现AtomicInteger的源码。 阅读全文

posted @ 2007-11-15 05:52 温少 阅读(3671) 评论(6) 推荐(1) 编辑

不要奢望.NET能够跨平台
摘要:有人跟我说了这么一件事。他们公司做机顶盒开发,原来是Windows XP + .NET作的,但是由于机顶盒免费赠送给客户的,而一个Windows XP需要88美金,因此成本翻倍。公司高层最终不愿意花这一笔钱,就迁移在Linux是用Mono重新实现一遍所有的功能,但是在开发过程中遇到了种种问题,频繁出现死机现象。我听了觉得十分好笑,竟然有人还把.NET能够跨平台当真一回事,可谓智商无下限!微软的.N... 阅读全文

posted @ 2007-04-24 02:45 温少 阅读(27229) 评论(135) 推荐(5) 编辑

对象关系技术的探讨
摘要:这是一个很老的问题了,经常在论坛上看到,很多人也写了相关的文章。我在这方面拥有较多的经验,我也谈一下我的看法吧。我曾经实现过金蝶EAS BOS的多数据支持引擎,脚本引擎,也作过O-R Mapping的预研工作,曾经对多个O-R Mapping产品做过研究。C++、Java、C#都源自Algol,这系列语言也称为Imperative语言,中文翻译为命令式语言。命令式语言建立在冯*诺依曼体系结构上,程... 阅读全文

posted @ 2007-04-23 08:18 温少 阅读(5206) 评论(8) 推荐(0) 编辑

关于Atomic
摘要:应该来说,util.concurrent包中提供的atomic,包括两部分:1、atomic值对象,例如AtomicInteger、AtomicLong等。常用作计数器。2、AtomicReference3、一些内部使用Lock提供的compareAndSet操作。例如ConcurrentHashMap的putIfAbsent。.NET中也提供了类似的功能,InterLocked类提供着完全的能力... 阅读全文

posted @ 2006-11-14 21:24 温少 阅读(1596) 评论(0) 推荐(0) 编辑

在Java和.NET平台的加密术比较
摘要:最近在写一个Java的消息服务器,同时需要做一个.NET版本的客户端。他们之间需要安全通讯,基于一些简单的密码协议,用到公钥加密、对称加密、Hash算法。这个过程中,我对这两个平台的加密部分有了一定了解,以下也是我的一些新的认识吧。 1、对称加密1) Java 1.5的对称加密很简单,提供的算法也较多。可以说是,使用简单,傻瓜式,而且功能齐全。 例如: Code highlighting pro... 阅读全文

posted @ 2006-09-22 23:02 温少 阅读(6443) 评论(7) 推荐(1) 编辑

最安全的加密算法
摘要:在密码学里,有一种理想的加密方案,叫做一次一密乱码本(one-time pad)。one-time pad的算法有以下要求:1、密钥必须随机产生2、密钥不能重复使用3、密钥和密文的长度是一样的。one-time pad是最安全的加密算法,双方一旦安全交换了密钥,之后交换信息的过程就是绝对安全的啦。这种算法一直在一些要求高度机密的场合使用,据说美国和前苏联之间的热线电话、前苏联的间谍都是使用One-... 阅读全文

posted @ 2005-03-27 11:28 温少 阅读(12554) 评论(14) 推荐(0) 编辑

MSDN中新增了很多Application Block
摘要:这里有Microsoft提供的一些代码块,也许能够对你开发有所帮助。http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/Anch_EntDevAppArchPatPrac.asp以前在编写.NET应用程序时,我自己开发的访问数据库的工具类,就参考过其中的Data Access Applicat... 阅读全文

posted @ 2004-08-06 01:46 温少 阅读(2650) 评论(14) 推荐(0) 编辑

关于返回值
摘要:数组,一定不能返回NULL Object[] F1(){ //do something return null; //灾难} 上面的代码可能导致灾难性的后果。极少有人这样使用你的函数的。 Object[] objArray = F1();if (objArray != null){ for (int i = 0; i < objArray.Length; ++i) {... 阅读全文

posted @ 2004-08-01 10:30 温少 阅读(1650) 评论(11) 推荐(0) 编辑

关于MONO
摘要:Mono最近发展很快,前段时间发布了Mono 1.0,并且有虚拟主机提供商采用了MONO提供ASP .NET的网站服务。Mono带了Mono版的NUnit,还包括了开发工具Mono Developer。 Mono是一个开源的.NET实现。我认为,开放、开源才是.NET的正确发展方向,可能Microsoft并不是这么想,但其把CLR和C#提交ECMA和ISO,也是期望通过开放,赢得更多的开发者,从而... 阅读全文

posted @ 2004-07-31 19:07 温少 阅读(1541) 评论(10) 推荐(0) 编辑

关于字符串的使用
摘要:字符串,最初在C中是指一个char数组。在.NET和Java,语言本身内置String的类型,String一个不可变得类型,每次修改,都返回新的实例。以下我讨论关于String类型的一些常见用法。 1、判断是否空字符串 //判断是否为null,或者长度是否为0if (str == null || str.Length == 0){ //do something } //判断是否为null... 阅读全文

posted @ 2004-07-31 17:56 温少 阅读(3290) 评论(10) 推荐(0) 编辑

关于.NET中一些模块的看法
摘要:对.NET的一些模块,包括ASP .NET、ADO .NET、COM+等以前曾经使用过的模块,最近有了一些看法,随手写下: ASP .NET很棒,从扩展性、创新性、性能都很好。 我认为这是.NET Framework中设计和实现最好的模块了。ASP .NET由于会把Page编译成代码,然后再编译成DLL,速度很快。在Server Event、Server Control方面,ASP .NET是一个... 阅读全文

posted @ 2004-07-31 14:35 温少 阅读(5101) 评论(50) 推荐(0) 编辑

再谈ADO .NET vs JDBC
摘要:曾经在.NET下有过大约三年的开发经历,可以说非常熟悉ADO .NET。ADO .NET最大的特性是对断开连接方式的全方位支持,其引入了DataSet、DataTable、DataRow等等对象,构建了一个“内存数据库”简化版本,DataAdapter把DataReader的数据填充到DataTable或者DataSet中,给使用者一个直观的使用方式。ADO .NET还能够和ASP .NET和Wi... 阅读全文

posted @ 2004-07-28 04:07 温少 阅读(8550) 评论(19) 推荐(1) 编辑

关于Yukon中内置CLR的看法
摘要:Yukon,MS SQL Server 2005的codename,其最大的特性就是内置CLR,MS为此而炒作。以下我谈谈我的看法:1、其实这并不是一个新或者先进的技术。其他主流的数据库,都内置JVM,Oracle 8i、DB2 7.1,SYBASE都内置JVM,Oralce和DB2都是若干年前就内置JVM了,SYBASE具体什么时候支持,我还没查相关的资料,反正肯定走在MS SQL Server... 阅读全文

posted @ 2004-07-26 22:35 温少 阅读(1325) 评论(9) 推荐(0) 编辑

在Java、C#和C++中遍历集合
摘要:在Java中,常见的遍历集合方式如下: Iterator iter = list.iterator();while (iter.hasNext()) { Object item = iter.next();} 也可以使用for for (Iterator iter = list.iterator(); iter.hasNext()) { Object item = iter.next();... 阅读全文

posted @ 2004-07-23 23:53 温少 阅读(3245) 评论(3) 推荐(0) 编辑

关于Page.cs文件中注释的一点补充
摘要:突然想起,所以写出来,以方便大家阅读我提供的ASP .NET资料。Page.cs文件中,我写了一些注释,但有一个很重要的地方有遗漏。大家分析Page.cs文件时,可能会有一个疑问,aspx中的那些Controls怎么装载的呢?答案在:private void ProcessRequest()方法中的this.FrameworkInitialize();你在%System%\Microsoft.NE... 阅读全文

posted @ 2004-07-23 01:43 温少 阅读(1117) 评论(2) 推荐(0) 编辑

关于使用for循环
摘要:有人喜欢使用for作类似while的循环: for(;;) { } 评论:这是一种风格,有一部分人使用,我个人觉得不如while来得直观。 究竟是++i,还是i++ for (int i = 0; i = 0; --i) { if (condition) { list.RemoveAt(i); }} 如果list的实现是ArrayList,反序遍历可能比正序删... 阅读全文

posted @ 2004-07-23 01:27 温少 阅读(2761) 评论(10) 推荐(0) 编辑

代码风格-关于if语句
摘要:if语句的代码风格,分两大类:第一类1、关键字if后面有空格2、二元表达式左右有空格3、每个大括号,单独占一行4、else关键字单独占一行 if (a > b){ // }else{ // } 评述,我推荐在C#中使用这种写法。我觉得这种写法比较优雅,容易阅读。 第二类 1、关键字if后面有空格2、二元表达式左右有空格3、大括号放在上一句的右边 if (a > b) { //... 阅读全文

posted @ 2004-07-22 00:50 温少 阅读(1949) 评论(7) 推荐(0) 编辑

关于C#代码的局部变量命名
摘要:以前Kingdee的下一代产品是基于.NET平台使用C#,我当时参考了一些文档,编写了Kingdee公司中的《C#编码规范》。整个规范比较冗长,我也不打算详细说明。现在我和大家讨论一下关于局部变量的命名。变量命名必须直观易懂,尽量不使用缩写,必要时与类型相关。在阅读别人代码时,如发现一个好的变量命名,你应该记下来,这是一个很好的经验积累。尽量不要使用缩写,使用缩写时,最好使用通用的缩写。以下是一个... 阅读全文

posted @ 2004-07-22 00:26 温少 阅读(4701) 评论(13) 推荐(1) 编辑

导航