.NET Framework 是什么?

   -.net framework是一个重新包装的windows操作系统的应用程序接口库(API Library);

  - .NET Framework是一个类似java虚拟机的运行时(Common Language Runtime),借了java 虚拟机的很多概念,但机制更优化(比如它有java所没有的“确定的垃圾收集器”机制Deterministic Garbage Collection,强制资源在指定点回收);

  - 定义了一个共同中间语言(Common Intermediate Language),所有语言都先编译到这个CIL,使得不同语言开发的程序(VB,C#,J#等等)可以在同一机制下运行,并且可以无缝配合工作。

  - .NET Framework是操作系统服务和应用程序的桥梁,是一个应用软件抽象层。

  .NET Framework不是什么?

  - 并不包括新的windows内核代码

  - 并没有增加Windows的操作系统一级的功能,它只是OS功能的延伸

  - 并不会加快windows的速度

  所以,.NET framework主要是一个程序架构,在这个架构下,程序员可以快速高效地开发高质量的软件。但因为它是一个中间抽象层,所以基于.net framework的软件一般会比直接针对windows API开发的程序速度慢。就好比从前你要盖一个违章建筑,要自己买原始的建筑材料,比如砖,水泥,要知道如何用砖和水泥砌成一堵墙,但现在.net framework已经提供了很多可以灵活配置的半成品部件,包括“墙”,你直接装上用就是了,质量往往比你自己买砖和水泥砌的墙还好,但当然这个配置的“墙”一般没有你自己砖一瓦砌起来的墙对你自己的胃口。

  .net framework一般比较适合开发在pc上运行的桌面软件和企业级的软件,但可能基于下面两个原因,Microsoft推出在移动设备上运行的.net CF(compact framework):

  1)Java 早就有了在移动设备上运行的 J2ME(Java Micro Edition),是J2SE(Java Standard Edition)的子集,微软在产品线上必须跟它竞争;

  2)移动设备大行其道,很多企业级的系统需要整合到移动设备上,使移动设备成为这些系统的终端,而很多新的企业级系统是针对.NET framework开发的,那么使用.net CF开发手机端程序可以很方便整合到服务器端系统上(比如用.net remoting直接访问服务器端的.net应用)。

  在PC上,.net framework经历了几代:从1.1,到2.0到3.0以致最新的3.5,需要说明的是,这几代产品并不是完美向下兼容的,也就是说,你装了.net 2.0并不一定能运行针对.net 1.1开发的软件,而往往要同时装上1.1才行。但是在PPC上的.net compact framework据说是向下兼容的(我试过装了3.5是可以运行现有的.net CF 软件),你装一个3.5就应该可以运行基于任何以前版本开发的软件了。

  .net CF 2.0据说效率并不高,起码我装的几个2.0的软件,感觉是比较慢。3.5据说优化了很多,但问题是,3.5才刚出来没多久,针对3.5的软件还几乎没有,所以还无从证实3.5是否真的比2.0快了很多。只是因为3.5向下兼容2.0的原因,我自己把3.5刷进去是为了确保以后能运行所有基于.net CF的软件而已。

  所以我估计很多ppc软件开发商还对.net CF持观望态度,移动设备对软件性能要求比较苛刻,就这一点也足以令人不敢贸然使用了。不过用.net framework开发软件真的很方便,尤其是微软的.net开发工具做得很强大,这是它比较成功的地方

  有些PPC软件一定要安装.NET Compact Framework 才支持运行

  本程序包使用 ActiveSync 4.0 及以上版本来更新设备,更多信息请参见 Windows Mobile Center。请确保在运行 NETCFSetupv35.msi 之前连接好您的设备。如果未连接设备,ActiveSync 会存储 CAB 文件,直到您连接了设备后才进行更新。不使用 ActiveSync 的用户可以直接在设备上运行与安装文件夹中的找到的设备相匹配的 CAB 文件。

时间: 2024-10-29 14:01:31

.NET Framework 是什么?的相关文章

.NET Framework For Java Programmers

.NET Framework For Java Programmers Author: Ashish Banerjee Objective After reading this article Java programmers should be able to decipher and de-jargonize the .NET architecture and relate it with the proposed ECMA standard.    Target Audience Java

解决一个Django Rest Framework的JSON输出的小问题

  在服务器升级迁移过程中,遇到一个见了鬼的问题. 同样的一个API输出,在本机测试时和生产中一台机器上的输出为纯数据的json格式. 而在另一台生产机器上却为加了统计和跳转信息的另一种json格式. 由于前端用了vue.js作了数据的加载,如果同样的代码,那获取json中对象的信息显然就会发生问题. 解决BUG的时间来不及,也无法深入调试.可用以下代码,判断json中是否有存在对象来进行对象的赋值,可解决这个输出问题. 以后找时间还是深入研究一下这个DRF的输出机制吧. //此处兼容djang

ASP.NET企业开发框架IsLine FrameWork系列之十五--框架配置信息大全(下)

三.IsLine.ExceptionProcess 部分 这部分主要管理异常,对异常的管理分为两部分,异常记录和异常展现,你可以分开对其进行配置, 即异常的记录与展现之间互不影响. 关于异常记录: <add key="IsLine.ExceptionProcess.Configuration.RenderName" value="OracleUsingSPRender"/> 使用该信息指定记录异常的节点,"OracleUsingSPRender

.NET Framework For Java Programmers ---4(Good)

Conclusion.NET is definitely an improvement over Java framework, but it is NOT going to displace Java any time soon. Though in coming years Java and .NET will converge. It currently lacks support for other platforms. Since .NET has been architected b

框架-如何在android framework中修改webview禁掉软键盘

问题描述 如何在android framework中修改webview禁掉软键盘 5C 如题,在webview调用的网页中,点击input标签后会弹出软键盘,现在有个需求需要禁用软键盘,用户会通过遥控输入,请问该如何修改 解决方案 调用hideKeyBoard()可以禁用软键盘 解决方案二: 在当前界面 隐藏掉 软键盘 调用hideKeyBoard()可以禁用软键盘 解决方案三: 对应的activity设置windowSoftInputMode-stateAlwaysHidden

[原][自动化测试]Robot Framework Selenium基本使用

Robot Framework Selenium基本使用 首先要说一下,一切和Robot Framework相关的资料都可以通过官方 http://code.google.com/p/robotframework/ 查询学习. 一.工具基本安装 准备条件: 1.Python语言及库,环境变量等: a) 准备文件:python-2.7.4.amd64.msi b) 基本安装:最好保持C盘默认路径,方便后面安装 c) 基本配置:环境变量配置很简单:path中添加安装目录,默认路径的话是C:\Pyth

NET Framework 工具

Microsoft .NET Framework SDK 工具旨在更轻松地创建.部署和管理针对 .NET Framework 的应用程序和组件.本节包含有关这些工具的详细信息. 可以从命令行运行除程序集缓存查看器 (Shfusion.dll) 和 Microsoft CLR 调试器 (DbgCLR.exe) 之外的所有工具.必须从 Microsoft Windows 资源管理器访问 Shfusion.dll.DbgCLR.exe 位于 Microsoft.NET\FrameworkSDK\Gui

如何向android的framework里添加新类

google对于所有的类和API,分为开放式和不开放式两种.所谓的开放式就是值javadoc所包含的,并不是java中有public和private,而是跟javadoc有关系,代码  没有关系. 在开放式的类中增加了一个变量,而又没隐藏,导致和原API的doc不一致造成的就会有错. 通过提示,有2个方法可以解决  该问题: 1.将新增加的变量或方法加上"@hide" 的注释,注意一点,加"@hide" 不是简简单单的/*@hide */就行了,标准的javadoc

App Framework框架之选择器(2)

App Framework选择器类似于jQuery 范例: Js代码   $settings=$(div_settings);           var $login_li=$settings.find("#settings_user");      var $user_modify_password_div=$(user_modify_password_panel);    $user_modify_password_div.find("input[name=old_pa

iOS 利用 framework 进行动态更新

前言 目前 iOS 上的动态更新方案主要有以下 4 种: HTML 5 lua(wax)hotpatch react native framework 前面三种都是通过在应用内搭建一个运行环境来实现动态更新(HTML 5 是原生支持),在用户体验.与系统交互上有一定的限制,对开发者的要求也更高(至少得熟悉 lua 或者 js). 使用 framework 的方式来更新可以不依赖第三方库,使用原生的 OC/Swift 来开发,体验更好,开发成本也更低. 由于 Apple 不希望开发者绕过 App