大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1.标准集成:XML、SOAP及其它
创新互联建站是一家集网站建设,陵水黎族企业网站建设,陵水黎族品牌网站建设,网站定制,陵水黎族网站建设报价,网络营销,网络优化,陵水黎族网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
过去,微软的体系结构建立在COM/DCOM基础上,COM/DCOM是进程间通信的二进制标准。虽然这个标准本身没有什么失误,但是它与微软以外的领域格格不入。也就是说,这个标准成了实现与其它软件平台互操作的瓶颈。
除此之外,数据也是一个问题。虽然ADO简化了数据访问,但是把数据从一个地方传送到另外一个地方就成了问题。ADO Recordset(记录集)对象是一个存储了数据的二进制结构,而这种二进制格式对于非微软的平台没有任何意义。
.Net弥补了这些缺陷,因为它完全基于标准。比如,数据用XML的格式通过进程边界,而这个数据有一个到XSD的连接,所以任何客户端都可以正确地转化数据。
SOAP基于XML,用于与Web服务的通信。集成SOAP以后,不管客户端运行的是不是微软的操作系统,都可以实现简单的可编程访问。
2.简化应用
COM所面临的一个头痛的问题就是应用。COM利用Windows注册表来定位机器上的组件。这个想法是不错的:每个注册的组件只有一个实例,所有的应用程序都使用相同的版本。COM具有向后兼容性,也就是说新版本兼容老版本,但是开发人员可能会破坏这种兼容性。
.Net则采用了不同的方法:它根本就没有使用注册表。相反,微软的建议是每个应用程序使用自己局部的组件(在.Net称为“assembly”)。利用这种方法,用于应用程序Foo的Assembly X如果发生变化,Assembly X的Application Bar不会受到任何影响。这种方法听起来好象以前一台机器上同一个DLL的多个拷贝,的确是这样。不过你不会遇到应用程序查找Windows\System32目录的问题。
由于.Net不使用注册表,很多应用都可以用简单的拷贝命令来完成,通常没有必要开发安装程序。此外,应用程序不会琐定assembly,所以升级DLL的时候不必关闭应用程序。
3.Web服务支持
在流行的Web服务方面,微软发挥着重要的作用,而.Net为开发Web服务带来了前所未有的便利。用Notepad就可以建立简单的Web服务,甚至不必利用编译器,只要对它们进行简单的调用即可,因为.Net会对它们进行编译,甚至提供一个测试页供用户检验其功能。.Net 拥有所有必需的渠道,可以生成用户所需的所有文件,比如WSDL文件。
.Net也是一个聪明的Web服务使用者:只要设置了指向某个Web服务的索引,你就可以把它当作本地的assembly。你可以获得完整的Intel许可和功能实现帮助。
Web服务对于发送数据是非常重要的,感谢ADO.Net,Web服务可以利用简单或者复杂的数据,并以XML格式把它们发送到任何客户端,最后设置一个链接,指回到一个描述数据模式的XSD。
4.用于所有.Net语言的标准工具集
最终,你会拥有一个适用于所有语言的集成工具集。你会拥有一个统一的IDE、调试工具以及其它类似的工具。因此,其它公司可以把他们的语言嵌入IDE环境,并获得.Net工具所有的支持。比如富士通开发了netCOBOL .Net,它已经直接集成到IDE中,因此可以用 COBOL编写Web服务和Windows应用并获得微软提供的调试和profiling(监管)工具。
.Net是个开放的架构,所以其它厂商也可以提供自己的工具。比如Borland,该公司已经宣布其下一版Delphi将具有建立.Net应用的功能,同时它也保证,Delphi会拥有自己的IDE,不会嵌入Visual Studio .Net。
5.对移动设备的支持
Visual Studio .Net发布不久,微软就推出了移动Internet工具包(Microsoft Mobile Internet Toolkit ,MMIT),以便用.Net构建移动应用。该工具包提供了可视化功能,你可以直观地拖动和下拉面向移动设备的窗体和控件。该工具包有利于正确书写标记语言(比如WML、WAP等等)。
.Net简化架构(.Net Compact Framework)不久就会面市,它是.Net架构的缩略版,设计用于Pocket PC设备。有了这个架构,开发人员就可以开发出丰富的Pocket PC计算机应用。你可以编写一个运行于小型设备上的应用,比如用于Pocket PC设备或者具有Web功能的手机。事实上,MMIT包含了很多仿真程序,它们使用了真正为这类设备编写的ROM代码,所以在你的应用程序投入使用之前,可以首先测试其用于此类设备时的性能。
6.代码管理
.Net管理用户的代码,从很多方面看,这一点都是很重要的,比如减少bug以及构建更多可扩展的应用。.Net可以处理以下操作:内存分配和回收,进程及线程的创建和终止,以及运行代码的访问许可。
VB开发人员先前面临的问题——比如内存管理、线程和进程创建——现在都可以由.Net来处理。而C++程序员可以转向C#,.Net代替他们处理这些操作后,内存泄露和其它bug出现的可能性将大大减少。拥有了被管理的代码,你可以访问.Net所有跨语言的能力。
7.平台独立
虽然.Net是为微软的操作系统创建的,但是微软的确为ECMA标准委员会发布了一部分框架和C#。比如,Mono project实现了Linux的.Net,包括架构和C#编译器。这意味着很多应用(特别是基于Web的应用)一次编写完成后就可以运行于多种平台上。
8.充足的学习资源
.Net的学习曲线非常重要,可能.Net的方面的书要比其它所有编程技术的书都多。此外,微软和第三方团体开设了很多课程,可以让开发人员很快就上手。最后,很多网站为开发人员员学习.Net提供了技术和指导。
9.现代化语言
VB.Net和C#都是现代化的语言。它们完全是面向对象的,设计的时候消除了很多VB 和C++的矛盾。这两种语言使用了多层式架构 (n-tier),这是一种基于组件的方法。
比如,C#取消了指针和其它一些结构,它们曾经给C++程序员(特别是新手)带来很多严重的问题。代码由.Net架构管理后,VB.Net 和C#都从中受益。这个架构还包括一些基础的对象,它们是开发多线程、支持XML等应用所必须的。
10.跨语言标准基本类型
VB开发人员曾经面临一个致命的问题:VB中的字符串与C++中的字符串不同,所以调用Windows API函数的时候会出现一些问题。.Net确定了所有类型的标准定义,所以VB中的字符串和C#中的字符串相同,也和netCOBOL .Net中的字符串相同。这意味着你再也不必担心语言A中的整型数据是32位而语言B中只有16位。你可以确信不同语言的数据类型都相同,可以更好地进行跨语言集成。
优点多于缺点
.Net具有很多明显的优点,可以提高开发人员的效率,减少bug,加快应用开发并简化使用。IT人员对.Net保持了应有的警惕,因为它毕竟还是个新事物,需要有一个比较艰难的学习曲线。但是对于大多数组织而言,其优点远远多于缺点。有了.Net,你可以在未来的开发项目中赢得更高的生产力。
在还有很多详细的讲解和回答。。
目前,最优的选择有四个:
1.如果只在win下使用,.net form是不二选择,可谓是又快又好,企业应用或定制开发都是相当好的,初学者也可以入手。
2.electron,跨平台。需要会前端,必须熟悉js、css和html。属于前端人员大杀器,如果是初学者,需要一下子学三样东西,再加上electron的进程间通信,可能会被搞懵。
3. qt5,可以使用qml(js语法)进行UI编程,但是需要懂c艹,但是写软件相当快,还可以写安卓、ios、Linux、嵌入式中的应用。
4.flutter,刚刚正式支持win平台的软件开发。谷歌出的这个东西,适合没有基础的初学者,因为是一个全新的体系,全新的语言,写ios、安卓非常高效,之后还会兼容h5。如果是初学者可以跟着走,值得尝试。但是新东西总有一些坑。
正式项目跨平台建议electron或qt,只用win平台强烈建议微软自己的net。个人技术尝试建议flutter。
桌面端开发跨平台的,如果你是轻量级的项目,那么我推荐你用electron, 目前使用Electron来开发的桌面应用非常多,我们最熟悉的比如Atom,VScode等等。
而且在github上也能找到许多应用使用了electron。
electron是Node,Chromium,html,css,js的结合框架,这就需要你有一定的前端基础。其实只需要了解一下electron的API就行了,其他的就像你在做web是一样的。
这种方式最大的缺点就是性能,还有透明窗口也有问题。所以在做需要性能方面占有很大成分的项目时,并不推荐使用这个方式。
那么其他的,就是最近几年使用比较多的windows directui框架,但它不是跨平台的。
那么就引出了qt,作为c++跨平台的界面框架,这个上手的话,我觉得对一般人是有难度的,因为首先需要扎实的c++功底,其次你要熟悉控件的制作原理,因为有时候你需要定制自己的UI控件。它现在在嵌入式,军工领域非常受欢迎。但是整个库非常臃肿庞大,而且开发界面的效率也非常低。如果来做互联网项目,迭代更新的速度根本就跟不上。
目前都只有大公司会采用,像maya这种生产力型的应用很多是qt做的。
还有一种是直接使用Cef加js,比如网易云音乐,就是这么搞的,但是很多和系统平台的交互接口你需要重写,等于是需要自己造轮子。工作量大,目前没有适合的框架给你套用,也需要扎实的c++功底。
其实pc端的应用基本也就windows会火一些,再加一个macos,那么选择qt应该会很好一点,毕竟你自己造一个跨平台的框架,太费时。总之,做跨平台就意味着,不可能做到既有效率又完美的实现各种功能,许多都要自己摸索。
win桌面端直接上visual studio啊!然后你熟悉什么语言?vb.net,c#,c++都有相应的win桌面工具。直接用就好了,非常好用
编程语言这种东西无所谓,只要能用啥都可以。 主要看你老板需要和你会用什么语言。
比如 我用AS编安卓程序,当然用JAVA。不过我后台最开始用ASP和ASP.NET来做,现在换PHP了。桌面端用QT或者VB做。 涉及单片机部分控制也用C。
现在做跨平台的了 开始以QT为主了。
只要能达到目的啥都可以。
学会1-2种 换其他的也不是很难。
对初学者来建议学C起步吧。
精通一门,重新学个语言入门也就1个月的事。
PC桌面程序,如果简单一点的,用pyqt5+python的开发难度和周期都比较现实一点
会C++ 用Qt5 非常不错 写代码效率很高
会js 用atom使用的那个框架
会Python用PyQt 写代码很快
会java用JavaFX
看语言咯
还可以用delphi,其firemonkey框架发布8年时间,支持跨平台:win,安卓,ios,macos,linux,后续支持webassembly,界面是控件拖拽布局所见即所得,开发效率较高。编译生成的是机器码,编译速度快,调试方便,其生成机器码运行效率较高,支持x86,arm的32位64位处理器。支持跨平台3D界面,蓝牙通讯,定位,重力,摄像等,支持多种SQL,NoSQL数据库。单个开发工具实现前后端开发,跨平台开发。适合个人和小公司用一套工具实现大部分开发需求。
主要有以下几种技术
### Duilib
#### 简述
Duilib是在Windows平台上使用最广泛的类库,使用C++和XML混合编程,国内很多计算机企业都喜欢使用这个类库,可能是由于他的技术许可比较宽泛的原因。
适合于界面比较简单的软件,视觉特效丰富,局限于Windows的平台。例子:360电脑管家。
#### 优势
#### 劣势
### Gtk、Qt或WxWidget:
#### 简述
三种基本可以做到跨平台的技术,使用C/C++开发,使用者广泛。其中WxWidget使用了API嫁接方式,Qt和Gtk(包括各种绑定技术)使用自绘技术。
结构严谨,软件可以做的很大很复杂。例子:WPS和Maya。
#### 优势
#### 劣势
### Electron:
#### 简介
使用Web技术开发桌面软件,基于Chromium(Chrome)引擎,使用JS编程语言,绝大多数使用者都是原来的网页开发者。
绝大多数都是爱好者使用,处于“勉强可用”的地步。
适合大面积静态展示型软件使用。例子:网易云音乐。
#### 优势
#### 劣势
### QtQuick(QML)
#### 简述
Qt公司开发的一款基于OpenGL的图形类库,有显卡加速,类似于Duilib。采用了C++与QML混合编程。QML类似于JavaScript语言。
QtQuick下一个版本在Qt 6上更加强大,业界期待已久。
#### 优势
#### 劣势
### Atk、Swing或JavaFX
使用Java语言开发软件,有JDK加持业界积累的众多Java类库支持。有不输于VS的IDEA加持,本应该更棒,只是现在已经式微了。
绝大多数使用者都是企业开发(不追求界面美观)、爱好者(开发顺手)。
### WinForm、WPF或Xamarin:
使用C#开发,WinForm和WPF局限于Windows平台。有VisualStudio加持使用很爽。
### Flutter:
使用Dart语言,新类库,bug可能会很多。
### SwiftUI或Cocoa:
苹果平台原生界面技术,macOS平台内建支持,不是macOS专用软件不推荐。
### Win32:
经典Windows 平台API,绝大多数只有一些老软件还在使用,不是维护老软件不推荐。
winform,不二选择
webview2,作为一个浏览器控件嵌入在桌面应用中,支持.net core和.net framework
1.Java 是 简 单 的
Java 与 C++ 极 为 相 似, 但 却 简 单 得 多。 高 级 编 程 语 言 的 所 有 特 性 中,
不 是 绝 对 需 要 的 都 已 删 去 了。 例 如, Java 没 有 算 符 过 载、 标 题 文 件、
预 处 理、 指 针 运 算、 结 构、 联 合、 多 维 数 组、 模 板 及 隐 式 类 型 变 换。 如
果 你 知 道 一 点 C、 C++ 或 Pascal, 你 很 快 就 会 驾 驭 Java。 这 里 是 一 个 简 单 的 Java Hello World 程 序:
public class HelloInternet {
public static void main(String argv[]) {
System.out.println(“Hello In-ternet!”)
}
}
2.Java 是 面 向 对 象 的
Java 是 一 种 面 向 对 象 的 编 程 语 言。 除 了 简 单 的 类 型, 如 数 字 和 布 尔 算
子 之 外, Java 中 的 大 部 分 都 是 对 象。
正 如 任 何 面 向 对 象 的 语 言 一 样, Java 代 码 也 按 类 组 织。 每 个 类 定 义 一
组 规 定 对 象 行 为 的 方 法。 一 个 类 可 以 继 承 另 一 个 类 的 行 为。 在 类 的
根 层 次 上, 通 常 是 类 对 象。
Java 支 持 单 继 承 类 层 次 结 构。 这 就 是 说, 每 个 类 一 次 只 能 继 承 一 个 别
的 类。 有 些 语 言 允 许 多 继 承 性, 但 这 可 能 造 成 混 乱, 使 语 言 不 必 要 地
复 杂 化。 例 如, 难 以 想 像, 一 个 对 象 会 继 承 两 个 完 全 不 同 的 类 的 行
为。
Java 还 支 持 摘 要 类 的 接 口。 这 允 许 编 程 人 员 先 定 义 接 口 的 方 法, 而 不
必 急 于 马 上 确 定 方 法 的 实 现。 一 个 类 可 以 施 行 多 个 接 口, 从 而 具 有
真 正 多 继 承 性 的 许 多 优 点。 一 个 对 象 也 可 实 施 任 意 数 量 的 接 口。 Java
接 口 与 IDL 接 口 极 其 相 似。 很 容 易 建 立 IDLJ 编 译 器。 这 就 是 说, Java 可
用 于 CORBA 对 象 系 统 来 建 立 分 布 式 对 象 系 统。 鉴 于 在 许 多 计 算 机 系 统
中 都 采 用 IDL 接 口 和 CORBA 对 象 系 统, 这 种 兼 容 性 是 重 要 的。
3.Java 是 静 态 类 型 的
在 一 个 Java 程 序 中, 必 须 定 义 所 用 对 象 (数 字、 字 符、 数 组 等) 的 类 型。
这 有 助 于 编 程 人 员 很 快 发 现 问 题, 因 为 当 程 序 编 译 时 可 以 检 测 类 型
错 误。
不 过, Java 系 统 中 的 对 象 也 有 动 态 类 型。 要 求 一 个 对 象 为 动 态 类 型 往
往 是 可 能 的, 所 以 编 程 人 员 写 的 程 序 可 以 对 不 同 类 型 的 对 象 做 不 同
的 事。
4.Java 是 编 译 型 的
当 运 行 Java 程 序 时, 它 首 先 被 编 译 成 字 节 代 码。 字 节 代 码 非 常 类 似 于
机 器 指 令, 所 以 Java 程 序 非 常 高 效。 然 而, 字 节 代 码 并 不 专 对 一 种 特
定 的 机 器, 所 以 Java 程 序 无 需 重 新 编 译 便 可 在 众 多 不 同 的 计 算 机 上
执 行。
Java 源 程 序 被 编 译 成 类 文 件, 它 相 当 于 程 序 的 字 节 代 码 表 现。 在 一 个
Java 类 文 件 中, 所 有 对 方 法 及 实 例 变 量 的 参 照 均 按 名 进 行, 并 在 第 一
次 执 行 代 码 时 加 以 分 辨。 这 使 得 代 码 更 通 用, 更 不 易 受 修 改 的 影 响,
而 仍 具 高 效。
5.Java 是 体 系 结 构 中 立 的
Java 语 言 对 每 种 计 算 机 都 一 样。 比 如, 简 单 的 类 型 都 是 不 变 的: 整 数
总 是 32 位, 长 整 数 总 是 64 位。 令 人 奇 怪 的 是, 诸 如 C 及 C++ 等 时 髦 的
编 程 语 言 却 不 是 这 样。 由 于 这 些 语 言 定 义 如 此 自 由, 每 种 编 译 器 及
开 发 环 境 便 各 有 不 同 了, 这 使 程 序 的 移 植 成 为 讨 厌 的 问 题。 Java 程 序
的 移 植 却 很 容 易, 而 且 不 需 要 进 行 重 新 编 译。
6.Java 是 健 全 的
Java 程 序 不 可 能 造 成 计 算 机 崩 溃。 Java 系 统 仔 细 检 测 对 内 存 的 每 次
访 问, 确 认 它 是 合 法 的, 而 且 不 致 引 起 任 何 问 题。
不 过, 即 使 Java 程 序 也 可 能 有 错 误。 如 果 出 现 某 种 出 乎 意 料 之 事, 程
序 不 会 崩 溃, 而 把 该 例 外 抛 弃。 程 序 会 发 现 这 类 例 外, 并 加 以 处 理。
传 统 的 程 序 可 以 访 问 计 算 机 的 全 部 内 存。 程 序 可 能 (无 意 识 地) 修 改
内 存 中 的 任 何 值, 这 就 会 造 成 问 题。 Java 程 序 只 能 访 问 内 存 中 允 许 它
们 访 问 的 那 些 部 分, 所 以 Java 程 序 不 可 能 修 改 不 拟 修 改 的 值。
7.Java 是 小 巧 的
由 于 Java 的 设 计 是 要 在 小 的 计 算 机 上 运 行, 作 为 一 种 编 程 语 言 来 说
其 系 统 是 相 对 较 小 的。 它 能 有 效 地 在 4MB 以 上 RAM 的 PC 机 上 运 行。 Java
翻 译 器 只 占 用 几 百 KB。 这 种 翻 译 器 对 Java 的 平 台 无 关 性 和 可 移 植 性
是 可 靠 的。
由 于 Java 很 小, 它 对 内 存 很 小 的 计 算 机, 如 基 于 Java 的 PC 机, 以 及 电
视 机、 烤 箱、 电 话 机 及 家 用 计 算 机 等, 是 很 理 想 的。
8.Java 是 多 线 程 的
Java 程 序 可 以 执 行 一 个 以 上 的 线 程。 比 如, 它 可 以 在 一 个 线 程 中 完 成
某 一 耗 时 的 计 算, 而 其 它 线 程 与 用 户 进 行 交 互 对 话。 所 以 用 户 不 必
停 止 工 作, 等 待 Java 程 序 完 成 耗 时 的 计 算。
在 多 线 程 环 境 中 的 编 程 通 常 是 困 难 的, 因 为 许 多 东 西 可 能 同 时 出
现。 但 是, Java 提 供 了 易 于 使 用 的 同 步 特 性, 使 编 程 更 为 方 便。
Java 线 程 通 常 被 映 射 为 实 际 的 操 作 系 统 线 程, 只 要 底 层 操 作 系 统 支
持 这 种 映 射。 因 此, 用 Java 写 的 应 用 程 序 可 说 是 “MP 热”。 这 就 是 说,
如 果 它 们 在 多 处 理 器 机 器 上 运 行, 它 们 更 将 表 现 不 凡。
9.Java 是 可 收 集 无 用 的 存 储 单 元 的
用 C 及 C++ 写 软 件 的 编 程 人 员 必 须 仔 细 跟 踪 所 用 的 内 存 块。 当 一 个 块
不 再 使 用 时, 他 们 务 必 让 程 序 释 放 它, 从 而 方 可 再 用。 在 大 的 项 目
中, 这 可 能 很 困 难, 并 往 往 成 为 出 错 和 内 存 不 足 的 根 源。
在 Java 的 情 况 下, 编 程 人 员 不 必 为 内 存 管 理 操 心。 Java 系 统 有 一 个 叫
做 “无 用 单 元 收 集 器” 的 内 置 程 序, 它 扫 描 内 存, 并 自 动 释 放 那 些 不
再 使 用 的 内 存 块。
10.Java 是 快 速 的
Java 比 典 型 的 脚 本 语 言 大 为 有 效, 但 它 比 C 慢 20 倍。 这 对 大 多 数 应 用
是 可 接 受 的。
不 久 的 将 来, 代 码 生 成 器 就 可 供 利 用 了, 这 将 使 Java 程 序 几 近 于 用 C
或 C++ 编 写 的 程 序 那 么 快。
11.Java 是 安 全 的
Java 程 序 没 有 指 针, 而 且 象 这 样 的 字 节 代 码 程 序 强 在 类 型 上, 所 以 在
执 行 之 前 它 可 能 验 证 Java 程 序。 被 验 证 的 Java 程 序 得 以 保 证 不 突 破
Java 语 言 的 任 何 限 制, 而 且 可 以 安 全 地 执 行。 Java 字 节 代 码 验 证 被
Web 浏 览 器 用 来 确 保 小 程 序 不 含 病 毒。
12.Java 是 可 扩 展 的
Java 程 序 可 与 用 其 它 语 言 编 写 的 现 存 程 序 库 连 接。 由 于 Java 数 据 结
构 与 C 的 数 据 结 构 的 类 型 极 为 相 似, 这 是 相 当 方 便 的。 最 大 的 问 题 在
于, 现 有 多 线 程 程 序 库 为 数 不 多。
Java 程 序 可 以 声 明 某 些 方 法 是 内 部 的, 然 后, 把 这 些 内 部 方 法 映 射 成
软 件 库 所 定 义 的 功 能, 从 而 动 态 地 链 接 到 虚 拟 机
--------------------------------------------------------------------
1.标准集成:XML、SOAP及其它
过去,微软的体系结构建立在COM/DCOM基础上,COM/DCOM是进程间通信的二进制标准。虽然这个标准本身没有什么失误,但是它与微软以外的领域格格不入。也就是说,这个标准成了实现与其它软件平台互操作的瓶颈。
除此之外,数据也是一个问题。虽然ADO简化了数据访问,但是把数据从一个地方传送到另外一个地方就成了问题。ADO Recordset(记录集)对象是一个存储了数据的二进制结构,而这种二进制格式对于非微软的平台没有任何意义。
.Net弥补了这些缺陷,因为它完全基于标准。比如,数据用XML的格式通过进程边界,而这个数据有一个到XSD的连接,所以任何客户端都可以正确地转化数据。
SOAP基于XML,用于与Web服务的通信。集成SOAP以后,不管客户端运行的是不是微软的操作系统,都可以实现简单的可编程访问。
2.简化应用
COM所面临的一个头痛的问题就是应用。COM利用Windows注册表来定位机器上的组件。这个想法是不错的:每个注册的组件只有一个实例,所有的应用程序都使用相同的版本。COM具有向后兼容性,也就是说新版本兼容老版本,但是开发人员可能会破坏这种兼容性。
.Net则采用了不同的方法:它根本就没有使用注册表。相反,微软的建议是每个应用程序使用自己局部的组件(在.Net称为“assembly”)。利用这种方法,用于应用程序Foo的Assembly X如果发生变化,Assembly X的Application Bar不会受到任何影响。这种方法听起来好象以前一台机器上同一个DLL的多个拷贝,的确是这样。不过你不会遇到应用程序查找Windows\System32目录的问题。
由于.Net不使用注册表,很多应用都可以用简单的拷贝命令来完成,通常没有必要开发安装程序。此外,应用程序不会琐定assembly,所以升级DLL的时候不必关闭应用程序。
3.Web服务支持
在流行的Web服务方面,微软发挥着重要的作用,而.Net为开发Web服务带来了前所未有的便利。用Notepad就可以建立简单的Web服务,甚至不必利用编译器,只要对它们进行简单的调用即可,因为.Net会对它们进行编译,甚至提供一个测试页供用户检验其功能。.Net 拥有所有必需的渠道,可以生成用户所需的所有文件,比如WSDL文件。
.Net也是一个聪明的Web服务使用者:只要设置了指向某个Web服务的索引,你就可以把它当作本地的assembly。你可以获得完整的Intel许可和功能实现帮助。
Web服务对于发送数据是非常重要的,感谢ADO.Net,Web服务可以利用简单或者复杂的数据,并以XML格式把它们发送到任何客户端,最后设置一个链接,指回到一个描述数据模式的XSD。
4.用于所有.Net语言的标准工具集
最终,你会拥有一个适用于所有语言的集成工具集。你会拥有一个统一的IDE、调试工具以及其它类似的工具。因此,其它公司可以把他们的语言嵌入IDE环境,并获得.Net工具所有的支持。比如富士通开发了netCOBOL .Net,它已经直接集成到IDE中,因此可以用 COBOL编写Web服务和Windows应用并获得微软提供的调试和profiling(监管)工具。
.Net是个开放的架构,所以其它厂商也可以提供自己的工具。比如Borland,该公司已经宣布其下一版Delphi将具有建立.Net应用的功能,同时它也保证,Delphi会拥有自己的IDE,不会嵌入Visual Studio .Net。
5.对移动设备的支持
Visual Studio .Net发布不久,微软就推出了移动Internet工具包(Microsoft Mobile Internet Toolkit ,MMIT),以便用.Net构建移动应用。该工具包提供了可视化功能,你可以直观地拖动和下拉面向移动设备的窗体和控件。该工具包有利于正确书写标记语言(比如WML、WAP等等)。
.Net简化架构(.Net Compact Framework)不久就会面市,它是.Net架构的缩略版,设计用于Pocket PC设备。有了这个架构,开发人员就可以开发出丰富的Pocket PC计算机应用。你可以编写一个运行于小型设备上的应用,比如用于Pocket PC设备或者具有Web功能的手机。事实上,MMIT包含了很多仿真程序,它们使用了真正为这类设备编写的ROM代码,所以在你的应用程序投入使用之前,可以首先测试其用于此类设备时的性能。
6.代码管理
.Net管理用户的代码,从很多方面看,这一点都是很重要的,比如减少bug以及构建更多可扩展的应用。.Net可以处理以下操作:内存分配和回收,进程及线程的创建和终止,以及运行代码的访问许可。
VB开发人员先前面临的问题——比如内存管理、线程和进程创建——现在都可以由.Net来处理。而C++程序员可以转向C#,.Net代替他们处理这些操作后,内存泄露和其它bug出现的可能性将大大减少。拥有了被管理的代码,你可以访问.Net所有跨语言的能力。
7.平台独立
虽然.Net是为微软的操作系统创建的,但是微软的确为ECMA标准委员会发布了一部分框架和C#。比如,Mono project实现了Linux的.Net,包括架构和C#编译器。这意味着很多应用(特别是基于Web的应用)一次编写完成后就可以运行于多种平台上。
8.充足的学习资源
.Net的学习曲线非常重要,可能.Net的方面的书要比其它所有编程技术的书都多。此外,微软和第三方团体开设了很多课程,可以让开发人员很快就上手。最后,很多网站为开发人员员学习.Net提供了技术和指导。
9.现代化语言
VB.Net和C#都是现代化的语言。它们完全是面向对象的,设计的时候消除了很多VB 和C++的矛盾。这两种语言使用了多层式架构 (n-tier),这是一种基于组件的方法。
比如,C#取消了指针和其它一些结构,它们曾经给C++程序员(特别是新手)带来很多严重的问题。代码由.Net架构管理后,VB.Net 和C#都从中受益。这个架构还包括一些基础的对象,它们是开发多线程、支持XML等应用所必须的。
10.跨语言标准基本类型
VB开发人员曾经面临一个致命的问题:VB中的字符串与C++中的字符串不同,所以调用Windows API函数的时候会出现一些问题。.Net确定了所有类型的标准定义,所以VB中的字符串和C#中的字符串相同,也和netCOBOL .Net中的字符串相同。这意味着你再也不必担心语言A中的整型数据是32位而语言B中只有16位。你可以确信不同语言的数据类型都相同,可以更好地进行跨语言集成。
优点多于缺点
.Net具有很多明显的优点,可以提高开发人员的效率,减少bug,加快应用开发并简化使用。IT人员对.Net保持了应有的警惕,因为它毕竟还是个新事物,需要有一个比较艰难的学习曲线。但是对于大多数组织而言,其优点远远多于缺点。有了.Net,你可以在未来的开发项目中赢得更高的生产力。