关于.NET、Java和项目、产品

10-10-01 flyzb
  我是一个学Java的新手,但已经用.Net开发好几年了。当我发现对于一个系统从小型到中型,再想往上做的时候,希望能够做一个真正面向企业集成规模的软件时,突然发现微软的技术已经无法很好地支撑我想要的东西了。因为把业务真正拆分成不同可独立部署的业务组件时,在.net中很难找很好技术支撑。在这点上,微软确实不如java阵营,积累太少,wcf还很不成熟,biztalk又贵(据说还很不好用),更可怕是做这样的一个东西需要时间是很长的,需要持续发展,它需要的的是一个开放基于标准的相对稳定技术标准。可是微软的商业策略是独食政策,不知道大家发现没有基于.net的公司没有很大的,都是一些小鱼,而且微软动不动还是吃掉他们,borland就是被玩死的,因为所有技术标准都是微软说了算。在这一点上,Java是很有优势的,众人拾柴火焰高,所以做大系统时选择java是正确的。

  当然我并不是说.net不好,如果你只是做一个中小项目,用.net比java有很大的优势,成本低,开发效率高,c#有一些语言特性比java会让初学者感觉开发敏捷多了。当然这里有一个前提,你只是想做个小项目,不会变成大项目,只是想快速挣钱。很多用.net的公司就是这样的,挣到银子才是真的,对用户的需求言听计从,说什么就做什么,而用.net又可以让自己的利益达到最大化,何乐而不为呢。当然还有另外一些公司,从本质上来说跟上面的公司没区别的,只是做项目的包工头罢了,但希望面子上好看些,说自己和很多国外的大公司一样使用j2ee,可以多要些银子,往往这样的客户都是国企。

  所以说如果想做一个真正面向企业级的产品,只能选择Java。因为你要面对2个变化问题:一个因为时间维度,客户需求在变化;一个因为多用户的需求不同,怎么解决个性和共性的问题。而Java本来设计的目的和思想就是解决这些问题。所以我有另外一个观点,如果总是希望java轻量级些,那你不如去选择.net,因为轻量级目的就是提高开发效率,而复杂的需求本来就需要复杂的设计,这是没有捷径的。那些一味地追求自动生成的工具是没有什么出路的,因为真正的业务是非常复杂的,不然就是你的业务还没有做到一定的规模和程度上。

[该贴被flyzb于2010-10-01 17:57修改过]

[该贴被flyzb于2010-10-01 17:59修改过]

              

8
xiaosanaiq
2010-10-02 10:43
顶。。关注!

flyzb
2010-10-03 10:57
  其实很多人做的软件都只能称之为项目。如果说自己做的不是项目,那么可以反问一下“这个软件可以以一种很轻松的方式很容易地让多种用户使用吗”。对于那种“每一个用户一个版本”的软件,我称之为“项目”。为什么软件会做成这个样子,一是大家都很浮躁,以“快速干完项目拿到银子”为实施真理,二是缺乏对业务的理解,实施能力差,完全按照用户的需求做软件。说实话,我们大多数的软件公司都是些包工头,都是“实干型”的,很少在业务上有理论高度,往往会“屈服在用户的需求淫威之下”。对于这种软件,我不认为用了DDD模式有什么用处。我总是报着一种坚持,“不是用户说的全部都是正确的”,用户总是“希望你盖一座能达到月亮上的摩天大楼,而从来不管地基是否能够真正支持”。其实bang的框架在我看来,如果你没有一颗追求业务本来面目的心,是根本用不好的,甚至感觉别扭。

banq
2010-10-04 08:55
写得很好,java 和.net 定位不一样,之前有文章 离开.net ,作者将.net 和ruby 比较,两者都同样定位在快速开发,作者认为ruby 社区是共享的。

为什么国内存在很多项目版本,致使维护成本越来越高,关键可重用组件太少,而希望复用,粒度就要很细,ddd是指导业务细粒度建模方法。

Neoman
2010-10-06 00:02
支持

猜你喜欢
4Go 1 2 3 4 下一页