Spiga

关于DotNetNuke(DNN)的语言问题

2005-03-07 09:54 by 灵感之源, 9109 visits, 网摘, 收藏, 编辑
DotNetNuke(以下简称DNN)对于看过我写的相关随笔的人或者早就接触甚至进行相关开发的人来说,不陌生,它是:

1、DNN(DotNetNuke)研究手札系列1-资源
2、DNN(DotNetNuke)研究手札系列2-背景、现状
3、DNN(DotNetNuke)研究手札系列3-框架(概述)
4、DNN(DotNetNuke)研究手札系列4-框架(硬伤) 1
5、号外!激动人心的DotNetNuke(DNN)2.2x新特性最新汇报!
6、DNN(DotNetNuke)研究手札系列5之DNN的未来(蓝图)
7、号外!DNN直接跳跃到3.0!功能大改进!
8、DNN(DotNetNuke) 3.0感官刺激零距x接触!!! :)
9、DotNetNuke3.0beta最新特性真实动画激赏(2004/11/18)
10、DotNetNuke(DNN)从入门到进阶(1)-怎样写自己的模块
11、DotNetNuke3.0 Public Beta发布新特性研究手札
12、DotNetNuke(DNN)3.0.4 Public Beta完全体验研究(2)-对比2.x真实改进
13、DotNetNuke(DNN) 3.0.7 完全功能测试版
14、到底怎样安装/初始化/个性化DotNetNuke(DNN)?

很早就在DNN官方论坛有关于语言问题的争论,关注点核心就是为什么不用C#而用VB.NET,有些声音甚至来自核心开发团队。但结果是?官方仍然继续应用VB.NET开发。当然,也有别的团队在做C#的迁移版本:CSharpNuke,据说将会在接下来的几天发布2.0版本,对应DNN官方的2.x。

今天看见在一个随笔中又有同样的争论,因此来写这个随笔,希望给大家一点想法。

一些谣言说,DNN官方要做C#了,要放弃VB.NET了。如果要C#,为什么不一开始就C#?就像Rainbow那样?何必辛苦2年多?据我说知,虽然DNN官方的核心开发团队成员不是VB.NET/ASP.NET的所谓“大牛”,也算得上“经验丰富的专家”,其中不乏一直致力于研究C++/JAVA的技术架构专家,为什么他们不直接用JAVA实现,或者跟JAVA在语法上非常类似的C#?

稍微思考一下便可知道:有别的团队做C#不奇怪,因为用JAVA也好,C#也好,很乐意看见C#版本,毕竟看C#版的比看VB.NET版的相对要熟悉一些。但官方是不会浪费资源和时间去换成C#的,如果发现VB.NET不行,早就换了,而且现在的DNN架构已经比较成熟了,性能也很不错,事实证明了VB.NET不会比C#差,而且在开发速度和某些情况的性能表现上,C#还比不上VB.NET(别疑惑,如果你不去研究,可以看看装配脑袋的随笔),只要开发人员水平够高,语言上的能力限制已经越来越少了,现在大多数语言间的区别好像仅仅是语言自己的语法了,在功能上实现已几乎没有什么很大的限制性的东西了,很多C#开发人员认为VB.NET性能差的观点我就不在这里反驳了,让他们继续误解吧。

这便也佐证了为什么2.x到3.x的架构存在大改进。

其实内核跟你无关,你只需要熟悉机制和怎样应用便可,这些可以看例子和官方技术文档,毕竟内核是官方不断改进的,即便你要挪为己用,我想你也会尽量同步官方的改进吧?你可以猜想到,C#版本必然跟得很累。开始的时候必然以官方的数倍速度开发,就像现在的大量JAVA->C#项目一样。问题是,一般JAVA->C#的项目,原来的语言版本都已经相当稳定,别的团队才会下决心进行。

现在把最新版本迁移到C#,表面看起来比csharpnuke.com聪明,其实不然,csharpnuke官方更加明智,因为dotnetnuke2.x是非常稳定的版本了,3.x是一个改革,用户对3.x还保持观望,因为3.x还不相当成熟和稳定,2.x已经相当稳定,已经有大量的用户群。而且现在用户群体都接受了VB.NET,DNN官方当然继续VB.NET版本了。

总结一下:一些开发人员要把DNN迁移到C#的主要原因:
1、用惯了C#,看VB.NET累,而且应用的语言是C#,不想跟着VB.NET的屁股;
2、觉得C#比VB.NET的性能表现要好;

这2点我都反驳了。

欢迎点拨。
灵感之源
关注 - 0
粉丝 - 18
荣誉:推荐博客
0
0
(请您对文章做出评价)
« 上一篇:博客园的bug:关于评论的点击
» 下一篇:[特别请求]请支持VB6,让微软继续对VB6的支持!
Add your comment

48 条回复

  1. #1楼 CoolBug      2005-03-07 10:24
    就我这样新生代的程序员来说,还是比较欢迎用C#的,呵呵~
     回复 引用 查看   
  2. #2楼 Ninputer[未注册用户]2005-03-07 10:25
    其实就是因为他们只会C#,懒的学VB.NET,但又觉得DNN好,想学。我真的看不出费力把VB移植成C#有什么好处,只是为了那些恰好会C#但又不会VB的人图个方便?也不知道是谁付出的心血代价更大。
     回复 引用   
  3. #3楼 KingofSC      2005-03-07 10:52
    会跟熟练是两个层面的东西

    要一个c++熟练的人转去java,你认为要多久?
     回复 引用 查看   
  4. #4楼[楼主] 奋斗中的灵感之源      2005-03-07 10:53
    to: KingofSC
    不同水平的开发人员不同时间。
     回复 引用 查看   
  5. #5楼 dudu      2005-03-07 10:53
    我觉得主要是个人习惯上的原因。
    个人感觉C#开发人员看VB.NET代码的不习惯程度应该超过VB.NET开发人员看C#代码。
    所以VB.NET开发人员有个优势, 他们可以通过学习C#, 成为双枪手。
    而C#开发人员却很难有积极性去学习VB.NET。
     回复 引用 查看   
  6. #6楼 KingofSC      2005-03-07 10:56
    所以不可否认因为语言的原因会导致dnn丧失不少用户
    所以才会有人做c#版本
     回复 引用 查看   
  7. #7楼[楼主] 奋斗中的灵感之源      2005-03-07 11:01
    这不叫丧失,这是正常的,可以理解的。

    任何语言都有用户,拥护者,不可强求。曾几何时,VB是全世界开发人员使用最广(开发人员最多)的语言,现在转投delphi、java、c#者很多,这也可以理解。
     回复 引用 查看   
  8. #8楼 KingofSC      2005-03-07 11:19
    不正常啊,.net下用c#的毕竟是多数
     回复 引用 查看   
  9. #9楼[楼主] 奋斗中的灵感之源      2005-03-07 11:22
    你做过统计还是你看过某正规统计?我只看数据。
     回复 引用 查看   
  10. #10楼 KingofSC      2005-03-07 11:42
    统计倒是没有
    曾几何时,VB是全世界开发人员使用最广(开发人员最多)的语言
    这个你又做过统计还是你看过某正规统计?
     回复 引用 查看   
  11. #11楼[楼主] 奋斗中的灵感之源      2005-03-07 11:46
    我的确看过相关统计,在OSDN上的一篇文章,几年前的事情,现在在sourcefore.net上也有实时的。
     回复 引用 查看   
  12. #12楼 KingofSC      2005-03-07 12:32
    我说.net下用C#的多也并非空穴来风
    从身边的朋友以及自己的了解,还有微软本身的推广
    以及其语法和c++\c,java的相似性而言
    虽然vb曾经是使用最广,但是如果是c++\c + java肯定比vb多
     回复 引用 查看   
  13. #13楼[楼主] 奋斗中的灵感之源      2005-03-07 12:38
    用c++/c + java来跟vb对比,你也太不厚道了吧? +_+|
     回复 引用 查看   
  14. #14楼 KingofSC      2005-03-07 12:42
    哈哈哈,我是说用这样的转向来粗略比较c#和vb.net的程序员人数
    一般用c++/c,java的如果转向.net当然90%会选择c#
    用vb的也是90%
    加上微软的推荐
    所以我才说.net下用c#多点啊
     回复 引用 查看   
  15. #15楼 idior      2005-03-07 13:12
    我认为vb.net的主要目的就是兼容那些以前用vb的人。
    如果你让一个初学者选择 最起码80%会选c#。
    所以越往后c#越多。

    dudu的意见我也很同意,习惯问题。
    还有目前一些优秀的书籍,大多采用c++,C#,java这种类型的语法。
    这也是选择c#的主要原因。 学vb.net的人显然得会类似c#的语法。
    而会c#没有太大的必要学习vb.
    就我个人而言,除非工作需要,我是不太会去学vb的。
    但是我绝不是不想学习新的语言。
    比如python我就很有兴趣,而vb这样的(思想上没什么太大变化都是静态语言,绝不是歧视它)我就没什么太大的兴趣。只要能大致看懂就ok了。

    另外问一句,如果叫你推荐新人去学习.net,你会选择什么语言?vb.net?
     回复 引用 查看   
  16. #16楼 Ninputer[未注册用户]2005-03-07 16:42
    我会推荐初学者学VB,而不是C#。原因与您的一致。
    我还认为初学者50%会选择VB,原来用VB的80%。原因或者数据来源与您的一致。
     回复 引用   
  17. #17楼 春鱼      2005-03-07 17:11
    C#的很多特性是VB没有的。例如XML注释。其实相比而言,我认为VB.NET写起来更美。但是我不能忍受没有XML注释。相信很多人一开始还觉得
    VB好用,但是改了C#之后就再也不愿意改回来了。
     回复 引用 查看   
  18. #18楼[楼主] 奋斗中的灵感之源      2005-03-07 17:37
    VB.NET 2005中就有了,而且DNN官方早就做了VB.NET 2005的移植尝试。

    “仅凭一个特性决定是不是是用某种语言的其实没什么意义的。世界上没有XML注释的语言多了,但都有人用。”

    以上引自装配脑袋的话:)
     回复 引用 查看   
  19. #19楼 大厨师      2005-03-07 22:51
    vb的语法很难接受, 从很久以前学习C的时候就不喜欢basic一样, 很少去比较语言的优劣, 自认为水平不够, 自己也没有发现basic除了语法习惯上有什么不好的。同样不喜欢一些人没有学几天就比较C#和vb.net的优劣,如果比较优劣,应该至少同时熟练掌握类种语言之后的事,如果只会使用某种语言还是不要说话的好

    有人在做这样的工作,将dnn转化为C#,认为意义有限,很同意灵感的看法
     回复 引用 查看   
  20. #20楼 Chocoboboy2005-03-07 23:33
    喜欢VB的人会认为VB的语法是最漂亮的语法^^
     回复 引用   
  21. #21楼 chinaxiaofei2005-03-08 09:03
    微软发展c#的初衷是什么?我一直了解不详.
     回复 引用   
  22. #22楼 redmoon      2005-03-08 09:29
    我市双枪手。对于VB.net是一种热爱,对于C#是一种开发语言。不好说这两个谁好谁坏,如果用Notepad开发,当然C#好写一些,但是VS2003对vb.net的代码智能程度要比C#高。
     回复 引用 查看   
  23. #23楼 KingofSC      2005-03-08 09:51
    不要离题,我们是讨论用C#的多还是用vb.net的多
    不是比较谁好谁坏
    因为如果C#的多,那么移植才是有意义的

    比较c#和vb.net用户群跟比较c++和vb用户群是不一样的
    前者都是在.net下,使用共同的库,可以说是工作在同一环境下的
    由c#换到vb.net或者由vb.net换到c#基本上只是语言语法问题和一些语言特性问题。不会存在平台和环境问题

    so...
     回复 引用 查看   
  24. #24楼[楼主] 奋斗中的灵感之源      2005-03-08 09:58
    to:KingofSC
    "由c#换到vb.net或者由vb.net换到c#基本上只是语言语法问题和一些语言特性问题。不会存在平台和环境问题",so,花那么大力气移植到底值不值?
     回复 引用 查看   
  25. #25楼 涟漪勇2005-03-08 13:52
    从delphi转到VB.NET已经快两年了,起初到公司报到前知道公司是在用.net开发,就去买了C#的书,到了公司才知道公司用的是VB.net.这样开始了VB.net,买的C#的书一点都没有浪费,上面的知识和VB.net都是一样的,只是语法的差别(也许我现在的水平感觉是这样),而且知道在国外VB.net才是真正的流行,看看国外的资料吧,大多都是VB.net版(国内的资料几乎没有vb.net).

    我写VB.net代码,很快乐.
    我看C#代码.很惬意.
    我想Delphi代码,很怀念.(记得上次看delphi代码都有点费力了^_^)

     回复 引用   
  26. #26楼 shotdog2005-03-08 14:20
    不就语法习惯问题么?我习惯vb.net的sub end sub不习惯c#,c++,java之类的大括号,我习惯写代码不区分大小写
    但是这是写
    看的话我觉得都一样了,熟悉了c#会看不懂vb.net的代码?vb.net的代码比起c#更加容易看懂,更加口语化,我支持灵感的观点
    本身语言就没多大区别,无非一些语法区别
    在说就dnn本身,你把它转成c#为了什么?就为了看?
    官方一直在发布新内核,一出新版本你就转一次?
    这些时间不如翻翻vb.net的语法把新版本看了
    再说了,dnn又不排斥c#,一个框架的,你可以用c#写控件啊。。。
     回复 引用   
  27. #27楼 Russel Harvey2005-03-09 06:23
    I am almost done converting DNN3.0.1x to C#. http://sourceforge.net/projects/sharpnukenet/

    I've been using both VB.Net and C# extensively. Put in short, comparing to C# and Java, VB.Net is like sh_t. It's not readable, many language comiler new feature would introduced in C# instead of VB.Net, because the only MS created C# is to compete with Java, and Java/C++ have been the leader in modern comiler/language.
     回复 引用   
  28. #28楼[楼主] 奋斗中的灵感之源      2005-03-09 08:55
    to:Russel Harvey

    Since you said "using both VB.Net and C# extensively", it is ridiculous to said "It's not readable"! And, there are quite a few features that even C# 2.0 does NOT have but VB.NET already has. Futhermore, C# 2.0 is even slower in quite a few aspects than VB.NET 2.0!

    Simply go ahead with your so called "sharpnukenet" and stop insulting VB.NET!
     回复 引用 查看   
  29. #29楼 KingofSC      2005-03-09 16:58
    值不值我一开始已经说明了理由

    如果搞个10几种语言,是不是又只是语法问题啊
    累不累啊,很多人会因为这样的原因而放弃DNN
    所以才会有人做C#版本的DNN,而其作用是显而易见的

    至于是该对稳定版本做还是如何,或者说为什么DNN不用C#来实现
    都是离题拉

    都是变成C#,vb.net之争了
     回复 引用 查看   
  30. #30楼 Yok      2005-03-10 23:38
    我用了4年vb...现在感觉还是c#舒服
    我常用的c#有vb没有的特性是:
    xml注释
    索引器
    ++, +=等运算符

    除了第一点外主要还是语法上的差别, 不是太大的问题
    不过不支持xml注释确实很不爽 -_- 听说有addin可以解决?

     回复 引用 查看   
  31. #31楼 Ninputer[未注册用户]2005-03-18 08:28
    谁说VB没有索引器???没有+=运算符????
    不会用请说“我不会”!
     回复 引用   
  32. #32楼 天天      2005-05-13 14:54
    理论上说,与语言无管,可以学习内核
    但是学习是干什么?是为了转为己用,如何用VB看懂了内核(框架什么的),自己再用C#重写,那还不如换微软的其他例子。
    C#毕竟是为.NET量身定做的语言,既然.NET是新的,语言也用新的,
    搞不动为什么DNN用VB?
    我开始学的是Fortran 77,后来转成了C,虽然VB能看懂,但是吃力的很,所以郁闷的很
     回复 引用 查看   
  33. #33楼[楼主] 奋斗中的灵感之源      2005-05-13 14:58
    “C#毕竟是为.NET量身定做的语言,既然.NET是新的,语言也用新的, 搞不动为什么DNN用VB? ”

    理论不通过。你这样说,就等于把所有使用VC++.NET/VB.NET的开发人员都否定了,而且连VC++.NET/VB.NET的设计者们的辛勤劳动都否定了。
     回复 引用 查看   
  34. #34楼 二十四画生      2005-05-13 17:06
    @天天
    C#是为.NET量身定做的语言,难道VB.NET就不是吗?
    不反对将DNN转为C#版,那要看自己的时间和精力够不够。简单的将DNN逐句翻译成C#版的有什么意义吗?
    为什么要学DNN?当然是DNN中有可取之处。
     回复 引用 查看   
  35. #35楼 qcong2005-05-14 17:15
    对于VB,看得懂,仅此而已
    觉得C#很好
     回复 引用   
  36. #36楼 ks2005-06-11 08:44
    vb,c#起头并进
     回复 引用   
  37. #37楼 Phoenix[未注册用户]2005-07-12 17:00
    凑合一下。

    我用VB.net,可以很快的解决问题。对性能要求不是很高(注意不是“很高”,如果用C#估计性能也高不到哪去,毕竟你得靠Framework JIT)。

    对我而言,能解决问题的语言就是好语言。比如系统管理,我就用vbscript。写出来的东东好用,稳定,That's all.
     回复 引用   
  38. #38楼 loreal[未注册用户]2005-07-25 13:36
    DNN用VB是因为DNN的开发Team有VB十几年的功底。
    不过这个问题也没有什么好争论的。
    我记得Shaun Walker以前也说过,准备把DNN用C#重写,可是后来一直没有出来,估计放弃了吧。
     回复 引用   
  39. #39楼 blue[未注册用户]2005-07-30 17:21
    C#用户应该感谢VB,没有VB就没有C#
    语言上两者不分伯仲。运行效率上两者不分高下。
    只是书写效率上VB.net高于C#
     回复 引用   
  40. #40楼 猪一样的程序者[未注册用户]2005-08-11 10:50
    过多的讨论VB或C#的语言问题是没有意义的,我们学习语言的目的是运用它来解决问题,如果一个程序员不能语言的界限是没有什么大作为的。
     回复 引用   
  41. #41楼 猪一样的程序者[未注册用户]2005-08-11 10:51
    过多的讨论VB或C#的语言问题是没有意义的,我们学习语言的目的是运用它来解决问题,如果一个程序员不能超越语言的界限是没有什么大作为的。
     回复 引用   
  42. #42楼 koc[未注册用户]2005-08-16 13:04
    vb C# 简单的连sb也一时就学会, 没什么必要转换
    还是c写的开源代码开起来有感觉
    vb的开源代码 不只不觉很轻视它
     回复 引用   
  43. #43楼 六子      2005-08-25 11:59
    以privoder的类为例,DNN一般都是首先定义一个抽象类,然后通过反射配置文件信息来生成该privoder类派生类的对象。至于privoder的类是怎么写的,什么语言,怎么实现的,它都不关心,以LoggingProvider为例,它的派生类是XMLLoggingProvider,在项目Provider.XMLLoggingProvider中,DotNetNuke项目在用到LoggingProvider的时候,它不知道是XMLLoggingProvider实现了它,也不关心是不是XMLLoggingProvider实现了它,更无法关心XMLLoggingProvider用什么语言实现的,其实XMLLoggingProvider完全可以用C#或其他语言实现,也可以自己写一个类来实现。这也从一个侧面说明DNN的语言问题吧。
     回复 引用 查看   
  44. #44楼 西南[未注册用户]2006-02-10 18:14
    我想知道..我能不能在我现在的aps.net(c#)中添加vb.net版的DNN呀..
     回复 引用   
  45. #45楼 任伟[未注册用户]2006-02-10 18:15
    我想知道..我能不能在我现在的aps.net(c#)中添加vb.net版的DNN呀..在线急
     回复 引用   
  46. #46楼 Ada[未注册用户]2006-07-21 09:07
    就像VB程序员不喜欢大括号一样,我也不喜欢Then/End什么的

    还是怀念C/C++横行的时代啊
     回复 引用   
  47. #47楼 土豆[匿名][未注册用户]2006-09-07 17:34
    我想不管是用VB.NET还是用C#,这都是一种习惯,可能DotNetNuke的开发人员对VB.NET比较熟,我说的是和C#相比。不过我觉得C#的前途应该比VB.NET好,因为这是一种趋势。
     回复 引用   
  48. #48楼 dnnme      2008-06-16 22:00
    非常感谢楼主的贡献.


    ----------------------------------------------
    DNN专业论坛:http://www.dnnme.cn
     回复 引用 查看