关于.net的精彩对话(转)
[序言]我想很多爱好软件编程的网友都像我一样,对微软推出的.net平台充满了好奇,但是看了相关的文档也是一头雾水,还好,Purple很幸运在QQ上遇到了一位.net高手,经过高手的一番教导,Purple已经对.net了解到了些皮毛,虽然很少,但是对进一步认识.net是很有帮助的。有兴趣了解.net的朋友,不妨看看下面的这段“关于.net的精彩对话”。
开始:
Purple:
我对.net没有什么概念!Darkroad:
给你一个现场办的培训:Java知不知道?Purple:
知道。Darkroad:
当年Sun推出Java力图一统江山,微软又怎能忍得下这口气?Purple:
java是一个编程工具。Darkroad:
是一门跨平台语言。Sun的意图就是大家都使用Java,这正是触动了微软的利益。因为微软最希望看到的是大家都基于Windows系统。问题是win当年的性能、稳固性、安全性都不行,所以只能应用于小规模的系统。Purple:
那vb,vc不是很好用吗?Darkroad:
对,只是vb、vc只能在windows上编程。
绝大多数的规模应用,例如银行、航空、企业ERP,莫不是基于Sun的Oracle+C++或IBM的DB2+C++,又或者HP的系统。可是随着软硬件体系的发展,Microsoft/Intel平台越来越有实力了。
企业内的多种应用系统并存的现状,又将系统间的互通提到了一个重要位置。而这个时候,Internet时代到来,这种互通范围更加广泛了,甚至有可能是公司与公司之间,国与国之间的互通。
Sun Java的跨平台性恰恰具备了这个优势,另外,世界上更有无数使用Java编成的程序员,数量决不在微软的开发工具之下。
而微软为了对抗Java,也使出了本地化Java的绝招,就是让Java在Windows上的版本与Sun的版本不兼容。这当然惹怒了Sun,于是Sun就将Microsoft告上法庭。最后微软放弃了对最新版Java的支持。Purple:
这么复杂?Darkroad:
另外,一批以Java做为基础的中间件(应用层)供应商迅速崛起,他们的目标就是建立企业间应用的标准接口。
微软当然不会没有看到着生死存亡的威胁,本地化Java,甚至放弃支持Java,其实都是其缓兵之计。
Purple:
那怎么办?Darkroad:
微软一方面施计拖住Java平台拓展,另一方面,励心图治,埋头苦干。在推出了Visual Studio 97后五年内,一直没有拿出新的开发工具和应用解决方案。而其竞争对手之一,当年大名鼎鼎的Borland公司,也就是现在的Inspire公司,一到两年就推出一些新版的工具。Purple:
呵呵Darkroad:
可见微软为了创建一套惊人的解决方案,已经决定彻底的革新自身。
在2000年微软推出了.Net的alpha版和beta1版,在2001推出了beta2和beta3版,直到2002年推出最终版。每一版与前版都存在巨大的改进,其中无数的程序员系统专家都参与其中,提出改进建议。这在微软开发史上是少见的。Purple:
我知道了,.net就是和java 差不多的。Darkroad:
非也非也,差得很远!Purple:
有什么区别?Darkroad:
Sun的Java方案时使用一种语言,一套平台一统天下,号召程序员们,最后最好都转到Java平台上,使用一种语言开发,可以在任意平台上运行。因此Sun的Java归纳了应用开发方面的主要接口,包括数据库接口、图形接口、界面接口、还有关于服务器并行运行以及调整性能的接口等等。
如果不是因为Java的运行速度较慢,说不定早两三年他们的这一野心就已经实现了。
当年微软正是因为在世界上最多人用的操作系统上,能够提供速度最快的程序,才没有优势尽丢。当然另一个原因是有很多程序员已经习惯了使用其工具。Purple:
你直接讲就可以了!Darkroad:
你不是想了解.net吗?Purple:
想!我知道了.net比java功能更强大。Darkroad:
哈哈,刚才不是说到Sun的Java像一统天下吗?
微软这次想到了一个更绝的招数。微软认为,现今世界上已经存在了各种各样存在巨大差异的应用系统。这种差异包括了系统方面的差异,例如使用了不同公司的产品;包括应用开发方面的差异,例如银行与其他业务系统,甚至银行与银行内部间的差异。等等。关键在于找到一种大家都可以沟通的约定俗成的方式。
Sun是希望统一通过Java解决的,因为Java可以跨平台。可是世界上有这么多应用不是使用Java开发的该怎么办?有这么多程序员不熟悉Java该怎么?Purple:
不知道。
Darkroad:
微软通过Internet巨大的传播力量找到了答案。
微软认为应用本身以什么形式表达并不重要,不管你是使用Java还是使用VB。关键在于你如何找到对自己有用的应用,并识别对方的使用方法以及返回的信息,这才是最重要的!就像我想写一个和招行的接口,我最关心的是招行如何帮我代收费,而其非如何编写这个代收费系统。
Internet提供的方便的寻址,以及标准的数据格式和接口,正是可以借助的最大依据!Purple:
internet?Darkroad:
Yeah!
.Net是紧紧围绕Internet为核心的。
.Net提出的概念中,WebService(万维网服务)是最重要的之一。什么叫做WebService?是指能够提供一定功能,并且符合.Net接口标准的服务。例如招行的代收费系统,如果使用.Net的标准,提供了调用该应用的接口,并且使用了标准的数据返回格式,那就可以成为WebService。
Web Service并没有强调使用什么工具开发,既可以是Java也可以使vb/vc等等。Purple:
oh!Darkroad:
Sun想以Java一统天下,微软偏偏使用开发性接口将Java纳为自己体系中的一个部分,管你是Java还是VB还是什么其它的东西,统统都是我的!Purple:
这么厉害!Darkroad:
对呀!不过开始的时候,这当然是微软的一厢情愿了,如果没有其它人的支持,微软也是白做。Sun理所当然的抗拒这一系统,所以在Java阵营中,迟迟没有定义好对于Web Service的支持。
话要说回来,微软又有这么多传统程序员支持,就算它的理想不能实现,至少也可以保持自己的阵营不败。
不过最决定性的是,IBM决定加入这个阵营!:)结果导致,Sun的抵制变成了一种落伍!这一点太致命了。Purple:
那java没有前途了。Darkroad:
对呀!不过所幸,Java语言本身还是有很多爱好者的,另外他在中间件市场的优势,也不会让其衰落。
可是为什么IBM会加入这一阵营呢?我想还是因为其开放性。其实IBM也看到了微软的软肋了。你想想,在Web Service中我可以不使用Java,但我同样也可以不使用你什么vb/vc的,这岂不是找到了可以公平竞争的好机会了?Purple:
真聪明!Darkroad:
IBM不但要加入,而且要做老大,现在不是正可以借助这个机会大大扩充一下自己的实例吗?IBM才不想让Sun一家独大,踩住自己的命门。另外,IBM也是最大的中间件供应商之一,.Net体系是能够让其迅速发展的机遇之一。
那微软呢?当然非常清楚这一点,但是他们也有信心在自己推出的体系中取得长足的优势!因为VS.NET Studio中提供的VB.NET,C#.NET,还有ASP.NET,ADO.NET无一不是围绕其中进行优化,正所谓艺高人胆大嘛!
哈哈,看来IBM和微软是各怀鬼胎了。
最惨的就是Sun了,这次算是输了半招。当然看清形势后,他们也在迅速的拓展其Java平台,以便能够搭上这次.Net的快车。
关于.net的精彩对话(转)的更多相关文章
- 庭审精彩语录整理 z
公诉人:用百度搜索淫秽关键字+快播,搜索结果得出超过4200万结果,可见快播在传播淫秽视频方面的巨大影响.王欣:这个没有任何意义,您可以用百度搜索淫秽关键字+QQ看有多少结果. 新浪科技讯 1月8日下 ...
- socket何时处于”读就绪状态“?---通过“应用程序大爷"和"内核孙子"对话再看重要的select函数的使用方法
前面. 我已经陆续介绍过select函数的一些零碎知识, 在本文中,我们来讨论这样一个问题:socket何时处于读就绪状态? 事实上主要讨论select函数, 毕竟socket的读就绪状态会导致sel ...
- 和我一起打造个简单搜索之Logstash实时同步建立索引
用过 Solr 的朋友都知道,Solr 可以直接在配置文件中配置数据库连接从而完成索引的同步创建,但是 ElasticSearch 本身并不具备这样的功能,那如何建立索引呢?方法其实很多,可以使用 J ...
- Genaro Network —— 区块链3.0缔造者
在2018年1月26日硅谷密探在美国旧金山艺术宫成功举办了“Blockchain Connect Conference”.在大会上,Genaro Network 联合CEO Jason Inch 携同 ...
- [对话CTO]当当网熊长青:兴趣是成为优秀工程师的第一因素-CSDN.NET
Women Techmaker 北京站 [对话CTO]当当网熊长青:兴趣是成为优秀工程师的第一因素-CSDN.NET [对话CTO]当当网熊长青:兴趣是成为优秀工程师的第一因素 发表于2 ...
- 不要困在自己建造的盒子里——写给.NET程序员(附精彩评论)
此文章的主旨是希望过于专注.NET程序员在做好工作.写好.NET程序的同时,能分拨出一点时间接触一下.NET之外的东西(例如10%-20%的时间),而不是鼓动大家什么都去学最后什么都学不精,更不是说. ...
- ChatterBot聊天机器人呢结构(五):ChatterBot对话流程
原文地址:http://www.bugingcode.com/blog/ChatterBot_Dialogue_process.html 创建机器人 部署机器人的各种属性,根据前面的章节里聊天机器人的 ...
- Insights直播回顾,对话专家,HMS Core 6创新能力解读
HMS Core Insights第八期直播–对话专家,HMS Core 6创新能力解读,已于11月25日圆满结束,本期直播与小伙伴们一同了解了HMS Core 6在图形.媒体以及连接与通信领域推出的 ...
- DNS原理及其解析过程 精彩剖析
本文章转自下面:http://369369.blog.51cto.com/319630/812889 DNS原理及其解析过程 精彩剖析 网络通讯大部分是基于TCP/IP的,而TCP/IP是基于IP地址 ...
随机推荐
- Mybatis foreach批量插入
1.foreach的属性 item:集合中元素迭代时的别名,必填 index:在list和array中,index是元素的序号:在map中,index是元素的key,可选 open:foreach代码 ...
- import Vue form 'vue' 解释
- 洛谷P2258 子矩阵——题解
题目传送 表示一开始也是一脸懵逼,虽然想到了DP,但面对多变的状态不知从何转移及怎么合理记录状态.之(借鉴大佬思路)后,豁然开朗,于是在AC后分享一下题解. 发现数据范围出奇地小,不过越是小的数据范围 ...
- 实用工具/API
实用工具/API PNG图片无损压缩 在线给图片加水印 随机密码生成 随机头像生成 微博一键清理工具 CSS压缩 在线工具 免费虚拟主机 技术摘要 https://github.com/biezhi/ ...
- 为什么Redis可以方便地实现分布式锁
1.Redis为单进程单线程模式,采用队列模式将并发访问变成串行访问,且多客户端对Redis的连接并不存在竞争关系. 2.Redis的SETNX命令可以方便的实现分布式锁. setNX(SET if ...
- python中导入sklearn中模块提示ImportError: DLL load failed: 找不到指定的程序。
python版本:3.7 平台:windows 10 集成环境:Anaconda3.7 64位 在jupyter notebook中导入sklearn的相关模块提示ImportError: DLL l ...
- Python编程:从入门到实践—类
创建类 #!/usr/bin/env python# --*-- encoding:utf-8 --*-- class Dog(): """一次模拟小狗的简单尝试&quo ...
- 【C++进阶:STL常见性质】
STL中的常用容器包括:顺序性容器(vector.deque.list).关联容器(map.set).容器适配器(queue.stac) 转载自:https://blog.csdn.net/u0134 ...
- 术语-EDI:EDI
ylbtech-术语-EDI:EDI 电子数据交换(Electronic data interchange,缩写EDI)是指按照同一规定的一套通用标准格式,将标准的经济信息,通过通信网络传输,在贸易伙 ...
- accomplish、complete、finish、achieve和fulfill
accomplish to succeed in doing something, especially after trying very hard vt. 完成:实现:达到 complete us ...