近几天在给领导准备一个 PPT 时,被告知一定要讲清楚 Microsoft .NET 到底是什么。
平时,我们一般认为 .NET 就是 .NET Framework 、Visual Studio.NET 及开发出的应用(ASP.NET、WinForms等),要说给 Microsoft .NET 下个准确定义,说实话,这个还挺难为人的。微软自己有一段时间都承认给其对 .NET 的定义和使用给用户带来了很 confused 的感觉,后来“.NET”就不在 Windows 2003 Server 和其它一些服务器产品中使用了。
在 Microsoft China 网站上对 .NET 定义如下:
Microsoft® .NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。
在 Microsoft 网站上对 .NET 定义如下:
Microsoft® .NET 是微软公司的一组软件技术,用来连接信息、人、系统和各种设备。它通过使用 Web Services 技术来获得软件的高度集成。除了将小型的、分散的、构建模块应用互相连接起来,还将 Internet 上的更大应用连接起来(翻译的可能不是很准确)。
第二种定义虽然模糊了许多,但是似乎更贴切一些。两种定义里都把 Web Services 做为 .NET 的核心,其基本要素就是智能客户端、服务器、Web Services、开发工具以及一个额外的 .NET 体验。
由此给出我的定义:
Microsoft® .NET 是 Microsoft 围绕 Web Services 为核心,为信息、人、系统、各种设备提供无缝连接的一组软件产品(SmartClient、服务器、开发工具)、技术(Web Services)或服务(.NET Services,如 .NET Passport)。
其实还是句虚话,你明白了吗?
只可意会不可言传.
in short,.net is a technoledge(this is a bullshit).
对于程序员来说,.net是一种垃圾收集器(garbage collection),把最烂的程序员都收集在一些使用.net.
any人,any地方,any设备,any信息——连接
.NET就是基于CLR的托管程序及其相关应用。
我觉得Web Service和.NET无关。你能说不用Web Service的普通WinForm程序就不是.NET程序了吗?
@rIPPER
你那个像是广告语(我好像在某期.NET Show分散注意力那一节看到过)
额打赌你们领导还是跟挨了一砖一样
我也遇到这样的困惑!在给客户培训时,也不知道到底怎么定义.net,就按照msdn上的讲讲!
to Lucker:
我认为 .NET 的精髓的确在 Web Services。虽然没有使用 Web Services 的 Windows Forms 也是 .NET 的一部分。但我认为微软的想法,应该是通过 Web Services 将企业开发的模式从 Client/Server 或者 Browser/Server 彻底的转换到 Web Services/Smart Client。
to 楼主:
我个人认为 .NET 服务,比如 .NET Passport 不属于狭义 .NET 的一部分。和 Windows .NET 等产品一样,是微软让人 confused 时代的混血儿。
现在还有多少人在研究 .NET Passport 呢?微软也没有再继续宣传它……
呵呵,个人观点
TO 破宝:
探讨一下,.NET Passport 我觉得还是很好的,起码现在是最大的认证系统之一, MS 的许多应用都基于它来做用户认证和个人 Profile 管理,如果在 US ,经常用 MSN.COM 的话,.NET Passport 的作用更大,它可以管理你的 Game, Money, Calendar,Stock 等等,简直就是个 ID(身份证) …
CitiBank 就是和 MS 签约,来使用 MS .NET Passport 来完成它的网银用户认证的。
———————————————————————————–
另外,个人觉得 MS 定义 .NET 的核心是 XML Web Services ,其实现在回头来看,在很多 .NET 产品中,XML Web Services 虽然占据很重要位置,但肯定不是核心,象 .NET Framework ,包括的内容很广泛的。微软这样定义 .NET ,是看中了 XML WebServices 的潜力,抢先占了个位置而已。
1. 领导懂技术么?如果是,那么好办,从技术上给他/她解释相关的概念,这对你来说应该没难度。
2. 多数领导都是否,那么,你应该用领导懂的语言来表述,也就是,用上.NET,企业能够得到什么,这应该是领导最想了解。换句话说,告诉领导实施.NET能够带来什么经济效益,这可以从对比使用.NET与否两种情况入手。
3. 希望对你有点启示。
.net是什么,我也不知道啊
不过听说过Asp.net的定义
是唐僧说的“Asp加上了.Net,就不再是Asp,而是Asp Dot Net ~"
^_^
未来的Indio是Web Service吗(虽然这个有点关系)?Avalon是Web Service吗?WinFS是WebService吗?看现在,ASP.NET只是Web Service吗?WinForm是Web Service吗?Managed DirectX是Web Service吗?看看.NET社区的作品吧,DNN是Web Service吗?NAnt是吗?NUnit是吗?但他们都是.NET正宗的应用,谁都不能否认。
.NET = Web Service是2001年微软夸大宣传时想出来的,那时候什么都叫.NET。Web Service又是当年主推,当然要添油加醋。如果当年是宣传智能客户端,今天.NET = 智能客户端了。我不认为Web Service这样的技术有资格成为.NET的核心或全部,同样智能客户端也不能,什么应用都不能。.NET只是适于做Web Service或智能客户端罢了。以后.NET就不能有别的应用了。我们所有人都知道,.NET就是基于CLR的托管代码及其应用,这是最最直接的定义,每人会将ATL或J2EE开发的Web Service当成.NET,但所有人都会把C#写出来的托管程序当成.NET,这已经说明问题了。我觉得这也是让所有老总都能明白的最佳、最准确的定义。
当然我承认我这种理解不能起到宣传煽动的作用,所以微软才不会用:)
还是 J2EE 定义的好,Java 2 Enterprise Edition ,.NET 不如改成 XEE,X 指现在 .NET 上的所有东西。 😀
Web Service现在缺少Killer的应用。就类似于3G缺少Killer Application一样。
东西是好东西,但可能超前了一些。
不过Web Service仍然在往前走,或者再过几年,我们回过头,会发现Web Service的确成为了.NET的核心应用。
What’s .NET?
I’m glad to see people are seriously discussing the meaning of .NET. Since its debut in 2000, the term has generated a lot of confusion, partly due to an unclear marketing strategy by Microsoft.
For example, a lot products of Microsoft have attached the word .NET as suffix to the name of their new version, even that they have little to do with .NET technology. Now Microsoft tries to make it right in that it starts to remove .NET from its product naming scheme. The only product with .NET in its name is Visual Studio.NET 2003. In fact, in its next version (code-named Whidbey) the name will go back to simply Visual Studio 2005.
.NET now is regarded as a brand. Microsoft has Windows brand, a very successful one. .NET becomes its another brand. It’s not simply a set of a technologies, or products (when I say products, I include services such as msn.com, passport, alert, etc.). A brand has a set of attributes associated with it. For example, Rolex is a brand for watches. Rolex represents high quality, fashion, expensiveness, success, etc. What does .NET represent as a brand?
.NET represents connectedness, agility, and success. Let me explain them in detail.
1. Connectedness. The vision of .NET is to have everything connected, either it’s people, information, systems or devices; either it’s business internal employees, business partners, or customers; either it’s Unix, Windows, mainframes; either it’s SAP, Siebel, or Oracle ERP suite; either it’s desktop PC, cell phone or watches. In a heterogeneous environment, .NET technology can hook things together.
?
2. Agility. IT agility and business agility. Service-oriented business architecture aligns perfectly with service-oriented IT architecture. SOA lets an enterprise achieves both IT agility and business agility. .NET technology is built on SOA concept and open standards such as XML and Web services – standards on integration and interoperability – for flexibility and agility. .NET is a great platform to build the IT to support this SOA structure and achieve the agility.
3. Success. Jack Welch, former Chairman of GE, once said, "We at GE only have two sources of competitive advantage: 1. the ability to learn more about our customers faster than the competition, 2. the ability to turn that learning into action faster than the competition". Ultimately IT is for the better of the business. Agility leads to business success. .NET can build for you an agile system that’s both easy to extract insights and easy to execute your new strategy from decisions made based on those insights.
These all sound like marketing. But it’s real. Other IT vendors are talking the same things, XML, Web Services, SOA, agility, connectedness. Maybe they use different terms (for the purpose of differentiation), but the idea behind those terms are the same.
So you will find out an interesting phenomenon among IT vendors. We support the same set of open standards, i.e., XML and Web Services. We all think enterprise should go SOA. We share the same vision, i.e. agility. So now what’s the difference? It’s the implementation. XML, Web Services, SOA are just specifications and concepts. They need to be implemented using some kind of platform technology.
.NET is Microsoft’s technology to realize XML, Web Services, SOA and agility.
So When I explain .NET to my customers, I often first give them an introduction on the landscape of why they need XML, Web Services and SOA.
IT people are used to see Microsoft, as a platform vendor, provides application platforms on which they can build their IT systems. So sometimes I give the following definition of .NET:
.NET is Microsoft’s next-generation application platform to build connected solutions for an agile business. These solutions are standard-based, connected, flexible to change, secure, reliable and best performing.
For a technology standpoint, a .NET application is an application that runs on top of .NET Framework (or more precisely, an application that is built with .NET Framework classes and runs on Common Language Runtime). If an application has nothing to do with .NET Framework, it can’t be called as a .NET application. For example, using XML doesn’t make it .NET. Using SOAP SDK to consume a Web Services doesn’t make it .NET, either.
What are Microsoft’s .NET technologies? .NET Framework certainly is the core component. Visual Studio.NET 2002 and 2003 is the integrated development environment to build .NET solutions. Visual Studio Tools for Office (VSTO) can be used to extend Word and Excel capability with .NET components. Web Service Extensions (WSE) are a set of .NET classes to build Web Services-based solutions using advanced Web Services standards such as WS-Security, WS-Policy, WS-ReliableMessaging, and WS-Attachments. I mentioned a few here. But you got the idea.
Is .NET all about Web Services? Certainly not, as some people correctly pointed out. It’s Microsoft’s next-generation application platform, on which you can build any type of systems. Traditional Windows desktop applications, Web applications, Office applications, mobile applications, smart device applications. All these. On a Dopod Pocket PC (Phone Edition), you can use .NET Compact Framework to build a client application that runs on it. Or you can develop a mobile Web application and put it up on some IIS server and use the Internet Explorer browser on the Dopod to visit that website, where its pages are tailored to fit on the small screen of your device.
In a later note I’d like to write on the comparison of .NET and J2EE.
让我猜一下MS对.NET的理解
.NET是MS下一代软件平台。
软件平台可以从几个方面理解。
一方面从它涵盖的范围,包括操作系统、开发工具、开发库、支撑软件(如各种服务器软件)及与硬件结合的各种软件技术等,而Web Service并不限制于某个平台,MS只是在.NET上提供了一种实现方式。
另一方面从它的应用面出发,它可以为个人用户(这是MS原来的主要用户)、企业用户(这个MS现在开拓的主战场)、移动终端、家庭娱乐等。
在讨论.NET时就象以前讨论Windows一样,IE属于Windows吗?MediaPlayer呢。。。
简单的说.NET就是MS下一代软件平台的标识符。
定义接着变:
Microsoft® .NET 是微软公司下一代应用基础平台,它包括一组软件产品、技术和服务,用来连接信息、人、系统和各种设备,连接的主要方式是 Web Services。
同意开心的说法,
.NET 还缺少 killer 级的应用,以至于 Web Services 始终不能成为事实上的核心。
我认为 Smart Client + Web Services 将是一个比较好的组合,微软近一阶段高规格宣传 Smart Client 技术,目的就是要抢占这一制高点。
Smart Client 用在什么地方?肯定不是新浪、搜狐这样的 Web 网站,一般也不会是 B2C 的电子商务网站,……
它适合传统上使用 Client/Server 架构的场合。
现在有一种潮流:传统上使用 Client/Server 架构的企业内部程序,都在向 Browser/Server 模型转移,
这个转移过程中会遇到很多问题,同时这一转移也是微软所不希望看到的。
微软提出 .NET 本来就是要通过 Web Services 把不同的电脑无缝的连接在一起,C/S 要转换到 Smart Client + Web Services 才是微软 .NET 的目标,如果 C/S 转向 B/S 的潮流无法逆转,微软 .NET 最初的战略目标就完全失败了。
— 以上个人看法
killer级的东西就是Windows Server 2003了;)
简而言之,.NET是跨应用而J2EE是跨平台,二者归根结底为了统一应用,XML更是给出了统一的数据格式,XML应用及Web Service的成熟未来两年将见出端倪。
.NET不熟,只是听ISV说其应用的稳定性有待加强。
J2EE现已如日中天,若不是MS财大气粗,还有一大堆ASP,VC++应用,.NET是无论如何无法与之抗衡的。
.NET是微软公司将当前所有的计算机技术中应用性最高的技术整合起来形成的一个庞大的技术平台,并且针对应用性、易用性做了大量的开发工作。因此,.NET是一种简单的、易用的、商业价值高的技术集合。
我认为NET象是一个个节绳子上的路的交叉点,至于Microsoft .NET 嘛,就是很小很小的那一个.
根据微软的定义:
.NET is a "revolutionary new platform, built on open Internet protocols and standards, with tools and services that meld computing and communications in new ways".
即:.NET = 新平台 + 标准协议 + 统一开发工具
.NET作为新一代互联软件和服务战略,将使微软现有的软件在网络时代不仅适用于传统的个人计算机,而且能够满足呈现强劲增长的新设备的需要。到底什么是.NET呢?微软总裁兼首席执行官Steve Ballmer把它定义为:.NET代表一个集合,一个环境,一个可以作为平台支持下一代Internet的可编程结构。
.NET的最终目的就是让用户在任何地方、任何时间,以及利用任何设备都能访问所需的信息、文件和程序。用户不需要知道这些文件放在什么地方,只需要发出请求,然后只管接收就可以了。而所有后台的复杂性是完全屏蔽起来的。
为了实现这些功能,.NET 结构发表以后,微软便逐步调整其服务器软件的产品线,将原有的Server一一的升级更新,推出了许多新的Server,并将这些Server整合于.NET Enterprise Servers产品线中。
Windows 2000 Server(包含Advanced Server和Datacenter Server)。.NET结构中,最重要的革新就属于Web Services。Web Services构架在Web Server上,能够通过SOAP与用户端联系,并帮助用户端完成其提供的服务。在.NET Framework中,Web Services就是架构在Windows 2000 Servers中的IIS5.0上的。
Exchange 2000 Server。Exchange 不是单纯的Email Server,它更是一套不折不扣的组信息平台。
SQL Server 2000。SQL Server 提供完善数据处理功能。包含数据挖掘,XML的直接Internet支持。目前在Windows CE中推出了SQL Server 2000 Windows CE Edition。
BizTalk Server 2000用于企业间交换商务信息,它利用XML作为企业内部及企业间文档传输的数据格式,可以屏蔽平台、操作系统不同的差异,使商业系统的集成成为可能。
Commerce Server 2000用于快速创建在线电子商务。
Mobile Information Server 为移动解决方案提供可靠而且具有伸缩性的平台。
说到底 .NET就是分两块 一块就是上面的XML Webservice.
一块就是它下面的Framework,哎,总觉得托管代码的效率很低。模仿JVM。。。
C#就是MS版JAVA,.net就是MS版J2ee,我是这样理解的,虽然我不是JAVA的簇拥,但是它的开发模式确实是先进的。
关于这个.net是什么,其实根本没必要在文字上去定义它。
大家散伙吧!
引用曹严明的话:.NET是一个品牌,跟windows一样,是微软的一个品牌
从大的方面来说,我觉得这样理解比较合适:)
如果说C#就是MS版JAVA,那J#是什么呢?
.net不可能什么都包括,否则它就什么也不是拉!
.net就是用来跟j2ee竞争的,告诉人们微软还活着!!!
全是一个调,有没有说点形象点,更容易让人理解的文章.
咱们做事,老板给钱!什么工具不都一样,
只要能更有效的完成项目,就行了!
.Net可以极大地提高程序员的工作效率,尤其是对公司的新人,微软的VS2005开发平台异常的好用,减少培训成本。你公司不可能都靠一堆老人吧?不要说.NET不如JAVA这些话,各有各的优点。.NET有很大一部分就是冲着易用性来的,你别看那些新手都用.NET,他很快就能达到老手的工作效率。而且说实话,.NET的程序效率比JAVA高。
试试用用VS2005,试试托管C++和非托管C++的互操作,试试ASP.NET,试试微软的WEB service。
或者去MSDN的web cast看看。
如楼上某兄所说,.NET字面上是一个微软的品牌,深层意义上代表一种基于网络的统一的跨设备的跨平台的(如果微软想跨linux平台的话)跨语言的开发思想。
更深层次来讲,微软的意图就是要实现一个大而统一的framework,只要有Internet存在,.NET就可以轻松实现跨设备的统一。
.NET的精髓在WEB service。别小瞧这个东西,他很厉害的。厉害的倒不是技术层面上,而是在于战略层面上,如果你能清楚地了解微软的意图,你就会在竞争中比别人看的更远。最近国家和微软的关系搞的不错,这是有说法的。
点到为止,不能多说了,多说是要收钱的。
大家打个比方说明一下
J#是垃圾! 哈哈。
.net is a microsoft software family