RSS 2.0 Feed
2006-09 Entries
摘要:上周在 sourceforge 申请了项目,昨天刚刚得到批准。现在正式发布 ajaxnet4j 的第一个 beta release! 请访问 SourceForge 站点:http://ajaxnet4j.sourceforge.net (Under Construction ...) P.S. ajaxnet4j 是 Ajax.NET Professional 的一个 Java 实现。Ajax.NET Professional 是 .NET 平台下第一个、也是截至目前最流行的免费 Ajax 库之一。...[阅读全文]

posted @ | Feedback (5) |

摘要:前面帖子中提到过的 ajaxnet4j 终于可以发布了。因为 ajaxnet4j 的事情,一直尝试联系 Ajax.NET Professional 的作者 Michael Schwarz。但似乎 Michael 近来的工作很忙,我发给他的 mail 以及在他博客上的留言都石沉大海。 直到前天,Michael 在他的博客中说,他开始把代码向 CodePlex 站点上转移,准备将 Ajax.NET Professional 的代码变成 open source 的!(Ajax.NET Professional @ CodePlex) 今天下午下班的时候,又去看了一下,兴奋的看到 Michael 上传上来的第一个版本,还有它的 Licence,居然是 MIT Licence(类似 BSD)! 真是个好消息! 在 Ajax.NET Professional 新的 Licence 许可下,我的 ajaxnet4j 包也可以发布了!我想这个周末之前,我就可以把它整理一下发布了。 P.S. ajaxnet4j 是我翻译的 Ajax.NET Professional 的 Java 版本。 善意提醒:最初的 Ajax.NET 库在去年某个时间,分成了两个版本: 一个是 Michael 维护的这个被称作 Professional 的版本,由 Michael 自己维护、发布,可以免费使用(包括商业使用),但禁止修改后的版本重新发布。这个版本从今天开始,使用了 MIT Licence,允许自由修改并发布,只需要保留原有作者信息即可。 还有一个版本是被称作 BorgWorX 的 Ajax.NET 库。这个库在原有基础上,添加了许多 Ajax 风格的 ASP.NET 控件。这个库早在去年就已经是 open sourced 了。它有两套 Licence 机制:一套接近 GPL,即如果采用这个库,你的代码也必须公开源代码。一套是商业 Licence,一个商业 Licence,需要花费 300 欧元。 如果你计划采用 BorgWorX Ajax.NET 这个库,请注意它的 Licence 和 Ajax.NET Professional 是不同的。 先来看看几个简单的 ajaxnet4j Samples 吧!...[阅读全文]

posted @ | Feedback (12) |

摘要:在 ndoc 的论坛上,有一个国外的朋友提供了一个信息:一个德国的站点上有一个 NDoc 2.0 Alpha 版本: http://www.kynosarges.de/NDoc.html 据说这个版本是 Kevin 放弃开发之前,留下来的最后一个版本,提供了对 2.0 的支持,以及很多新的 features。不过很可惜的是,这个原本内部交流的 Alpha 2.0 版,没有附带源代码,只有 exes/dlls。而且只要无法联系上 Kevin,这份源代码就没有人可以得到了。 我使用 Ninputer 的 VBF 类库 初步测试,泛型支持看起来还不错,还支持 .NET 2.0 文档中新增的 J# 语法块,整体效果似乎不错!如果你只需要英文的文档,建议你试试这个版本。 其中包含的一份 ReadMe 文件描述了其新增的功能,有几项看起来很 cool 的功能,比如新增的 inheritdoc 标签,QA Log,Intellisense 文档引擎(用于在产品发布前,对编译器生成的 /doc XML 文件“瘦身”,删除其中多余的标签,删除其中对 private 成员的注释等等。比如 .NET Framework SDK 中那个 6.87MB 的 mscorlib.xml 文件“减肥”后,只剩下 203KB。),GUI 采用了 2.0 中新增的 Visual Studio 样式的菜单和工具条,等等。 因为无法得到源代码,既不能作为 NDoc Reloading 项目的起点,也不能翻译汉化。不过其中的一些 features 有可能在将来合并到 NDoc Reloaded 项目中来。 P.S. 今天访问不了 SourceForge.net 站点。经过我近期的观察,在公司一直访问没有问题,在家里则 80% 时间无法访问。公司用的是中国电信的网络,家里用的是中国网通的网络。在 Google 搜索“sourceforge 封杀”,会立刻让 Google “死”掉几分钟;在百度搜索这几个字,则看到了众多网友的抱怨。看来应该是网通单方面屏蔽了访问。...[阅读全文]

posted @ | Feedback (10) |

(回过头看了一下前天晚上写的那篇随笔,发现确实很晕糊,至少文章里面只涉及了“泛型”,并没有涉及“反射”,题目是不确切的。所以写这一篇补充一下反射的东西。) ……

posted @ | Feedback (2) |

摘要:NDoc Reloading 首先面对的课题就是 .NET 2.0 中新增的泛型类型、泛型方法、可空类型等新增功能。由于可空类型应该可以算作泛型类型的一个特例,这里就不再多说了。 对于泛型类型,在 Type.IsGenericType 属性的 .NET 文档中,微软告诉我们一些术语,这里简单说明一些: 1)泛型类型定义(Generic Type Definition),就是最初定义该泛型类型的那个类型,比如 List<T>,Dictionary<TKEY, TValue> 这些类型。 2)上述这些类型括号中的这些 T, TKey, TValue 是泛型类型形参(Parameter)。 3)在实际运用 List<T> 或者 Dictionary<TKEY, TValue> 时,总是需要将这些 Parameters 指定为特定的类型,比如 List<String>, Dictionary<String, int>,则这些处于 Parameter 位置上的类型(string, int),就是泛型类型实参(Arguments)。 4)如果泛型类型定义中的所有 Parameters 都被替换为 Arguments 的话,就被称为封闭构造类型; 5)否则,只要还有任何一个 Parameter 没有被替换,就是开放构造类型。 泛型方法,与泛型类型类似,也有类似的几个术语。(参见 System.Reflection.MethodBase.IsGenericMethod 的文档中) 在研究这个问题之前,我从来没有区分过 Parameter 和 Argument 这两个英语词,都认为是“参数”,这次总算明白,Parameter 是“形参”,Argument 是“实参”。我认为搞清楚形参和实参,对理解较复杂的泛型是很重要的。.NET Framework SDK 的文档在这方面做的不够好,很多地方都翻译为“参数”,有时就需要对照英文原文来区分到底是 Parameter 还是 Argument。 上面所说的都是简单的情形。复杂的情况比如说嵌套:对于一个 Dictionary<TKey, TValue>,TKey 指定为 string,TValue 指定为另一个 List<T> 类型,就构成了一个嵌套的 Dictionary<String, List<T>>。 再比如说,Parameter 的相对性:这点不太好理解。比如 Type.GenericParameterPosition 属性中给出个这个例子: public class B<T, U> { } public class A<V> { public B<V, X> GetSomething<X>() { return new B<V, X>(); } } 其中的红色部分 B<V, X>,V 的 GenericParameterPosition......[阅读全文]

posted @ | Feedback (2) |