.net姗姗来迟了.但是终于我觉得应该谈论一下.net的未来了.原因很简单,我现在每天都收到几乎50封邮件询问.net的未来以及与其它技术相比,它有什么样的优势等.所以在这里,我将介绍我个人对这项技术未来发展的看法.
我将从开发者的期望开始并以公司(软件工业企业)的视点结束.
好了!
当一个开发者开始开发一个软件的时候,他所要求或需要的是:
1.适当的编程语言知识来将商业逻辑写成程序
2.数据库知识来储存他的数据
3.在分布式环境中将商业逻辑连接到数据库的工具
4.懂得如何将应用程序打包
5.如果需要在客户端提供用户透明性则需要开发web解决方案
6.希望得到一些组件来复用他辛勤劳动的结果或其他人高效的解决办法
7.希望能够通过脚本或服务器端的逻辑来完成更新客户端的任务
8.希望能够授权一个团体来重用你的组件以便促进你的业务或工作
9.希望提供一个简洁的用户界面
10.希望避免建立一个你已经作过的web页面的麻烦
还有很多...(我无法包括或讨论所有的方面因为所有这些东西实际上随个人的不同而不同)
但我认为上面提到的10点应该是所有认真的开发者都要考虑的.所以从技术上讲,在.net到来以前,我们知道的对这些问题的解决办法是:**这里我假设你们希望从列出了所有可能选项的列表中选择一个而且我只会提供这些流行技术的名字.
1.适当的编程语言知识来将商业逻辑写成程序:c,c++,和java.
2.数据库:oracle,sol server 等.
3.在分布式环境中将商业逻辑连接到数据库组件的工具:corba, rmi, dcom等
4.为分发应用程序打包:安装程序(独立于环境),二进制文件而后最终注册组件
5.通过(显示)提供在线解决方案:html, dhtml, css, 和xml等.
6.希望使用软件重用机制:java beans, com等
7.客户端更新:java script, jscript, applets 等和服务器端逻辑: perl, asp, php 等.
8.组件发售:进行物理拷贝和注册组件或完全通过服务器访问
9.简洁的用户界面:vb, vc++, gtk 等
10.可重用web组件:目前工业界还没有任何一个流行的软件被经常使用.
例如我曾为我的开发环境使用:c++, sql server, dcom, html, com, jscript, asp,服务器和客户端注册实用程序, vc++, gtk+ (在linux上) 和 xml .所以我所遇到的问题是我需要花费很长的时间来学会这些技术而且几乎每次我都怀疑这些技术能否普及或者能否生存下去.我并不是说所有的开发者都要一下子学会这所有的技术但可以肯定的是,如果你要设计新的和有创意的东西那么你就必须对上面我们讨论的每一点中的至少一项有很好的了解而且做到这一点的人的确是这个工业的领头人.
但是对于.net,微软在一个软件包里依靠几种拥有明显界线的技术集成了几乎所有的东西.意味着你拥有了所有的东西但不会把它们混淆起来.
因此如果你开始学习.net,你所需要学习的一切是:
主要技术:c#(vb.net也是一个好的选择)
asp.net
xml.
只有三种....................是的!
c#可以用来编写客户端更新的脚本,创建商业逻辑,做服务器端编程,编写windows应用程序,编写控制台程序,做组件设计,而且它可以将xml作为数据,元数据(自描述的数据),商业逻辑和数据库之间的连接工具,但同时你需要ado.net的c#实现,更进一步的是如果你要将东西发布到网上,你需要在服务器端安装asp.net,如果要创建可重用的web组件,你需要web services的概念,就象vc++开发的windows services一样,但是没有了物理上的局限.
只有一种语言,我们能将它用在几乎每一个地方.没有更多的混淆...是的!没有了com/dcom里浪费系统主存的组件注册过程也没有了系统上的授权允许过程(除了一些特殊情况).
所以从程序员或开发者的视点来看这是一个高度的成功.
现在让我们从公司的角度来想一想(当然!这里我讨论的是小公司,它们以独立项目的方式工作).例如一个公司招聘了四个vc++程序员因为他们的项目将用vc++开发,但是在后来的6个月里他们获得了一个用vb开发的项目.
现在会怎么样呢?
他们会要求他们的开发者学习vb开始工作,当然另一种方法是解雇他们而招聘一批vb开发者!
所以这是一个主要问题.
但是对于.net,由于极好的相互兼容性,你不需要学习一种新的.net语言因为你可以将一种语言的组件引入到另一种.net语言中来.
因此对于.net没有必要将你的vb程序员转变成managed c++ 程序员或把c#程序员转变成jscript.net程序员.