软件开发迫切需要一个面向Internet的异构体系,为软件提供像IC电路元件一样可插拔的标准封装和复用方式的组件构造平台。于是,.NET和C#应运而生。组件编程是C#将C++及其面向对象技术从软件设计开发阶段向软件发布、运行、管理的合理延伸。C#在面向对象的基础上直接引入接口、属性、方法、事件、特征、文档化等组件特性,为其RAD开发提供了一流的支持。内置语言的元数据映射机制彻底解除了IDL、GUID、COM接口等繁冗的编程任务,使得组件得以廉价地实现自描述,并且革新了传统C++的代码编写方式。“side by side”的执行方式解决了长期以来困扰程序员的“DLL-Hell”,多个版本的组件可以相安无事地同时运行于一个系统内。简化了的XCopy安装方式使得烦琐的注册表不再成为安装程序的必需。“拷贝,然后运行”——程序本来就应该是这个样子!组件编程不仅是编程元素的改变,更是程序设计思想的革新。
Web 服务为当今产业界公认的下一代网络计算方向,它可以将一个基于Internet的应用程序模块,在遵守一定的协议下进行对象组件之间的远程交互。.NET平台直接在IL中间语言中内置对XML Web Services的操作支持,使得C#与生俱来地获得了下一代网络编程语言的美名。在C#下的XML Web Services编程,开发人员面对的将是一个友好的由商业组件组成的对象结构,而不是HTTP、SOAP、UDDI、WSDL等底层协议。