之前一文《c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥》 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方信息的翻译开始做起。

  此系列系小九的学堂原创翻译,翻译自微软官方开发向导,一共分为六个主题。本文是总览及向导。之后会将目录分块持续进行翻译,并会加上链接。

  [小九的学堂,致力于以平凡的语言描述不平凡的技术。如要转载,请注明来源:小九的学堂cnblogs.com/xfuture]

  目录

  1. .NET Native安装和配置(.NET Native Setup and Configuration)

  2. .NET Native 编译入门:开发流程详解 (Getting Started with .NET Native Code Compilation: The Developer Experience Walkthrough)

  3..NET Native 部署测试及样例

  4. .NET Native性能测试

  5. .NET Native与反射

  6. 将Windows应用商店应用迁移到.Net Native (Migrating Your Windows Store App to .NET Native)

  7. .NET Native一般问题解答 Q&A (.NET Native General Troubleshooting)


  原文:Compiling Apps with .NET Native

  

                                                      使用.Net Native编译应用

                                                   .NET Framework版本 4.5
 
                        
                                                                                      

 小贴士

这个主题依赖于预发行的.net native开发者预览版。下载地址: Microsoft Connect website. 友情提示需要注册.

  .net native是构建和部署windows store apps(windows应用商店应用)时可使用的预编译技术(注:据build2014大会信息,将来会逐渐支持桌面应用)。它可以把在.net framework下写出的托管代码编译成机器码。

  通常情况下, 在.NET环境下开发的应用程序会被编译成中间语言(IL)。在运行时,即时编译(JIT)会将中间代码编译成机器码。与此不同的是,.NET Native则直接将windows应用商店程序编译为机器码。

  对于开发者意味着:

  • 你的应用将拥有机器码直接运行的卓越性能。

  • 你可以继续使用C#来进行开发。

  • 你可以继续获得.NET Framework框架带来的所有优势:强大的类库,自动的内存管理机制和垃圾回收,异常处理机制,等等。

  对于使用者意味着:

  • 运行更快更流畅

  • 持续保持更快的启动(注:启动时间减少60%)

  • 更低的部署和更新消耗

  • 内存优化(注:内存消耗减少20%)

  .NET Native 涉及了多种编译成机器码的方法。它转换了.NET Framework对于应用的构建和执行机制。尤其是:

  • 在预编译的阶段,将所需要的.NET Framework的部分静态链接到应用程序,这使用应用程序可以在应用程序自身包含的.NET Framework库下, 编译器可以进行全面分析并提供更高性能的运行状态。这种带来的好处是,即使.NET Framework更新了,应用依然可以保持更快的速度来启动。

  • .NET Native 通过静态的预编译优化了应用的运行时,因此可以提供更卓越的性能。与此同时,它保留了核心反射功能,提供给开发者优秀的产能。

  • .NET Native 使用了和C++编译器相同的后端, 对静态编译的场景进行了优化。

 

  .NET Native 能够带给在.NET Framework和CLR环境开发的人员C++的性能优势,因为它使用了和C++底层相同或者相似的工具,具体如下表所示:

 

.NET Native

C++

The .NET Framework + Windows Runtime

Win32 + Windows Runtime

编译器

UTC 优化编译器(UTC optimizing compiler)

UTC 优化编译器(UTC optimizing compiler)

部署

随时可以运行的二进制机器码

随时可以运行的二进制机器码(汇编)

运行

MRT.dll (Minimal CLR Runtime)

CRT.dll (C Runtime)

  

  Windows 8.1 系统下Windows应用商店应用发行中,可以将在app包里(.appx files)的.NET Native编译成的机器码源文件上传至Windows应用商店。

  
  此篇为引导篇,之后会有目录分篇并会更新链接。
  希望大家支持和多多评论,你们的支持是我继续做下去的动力!

C++的性能C#的产能?! - .Net Native 系列向导的更多相关文章

  1. C++的性能C#的产能?! - .Net Native 系列五:.Net Native与反射

    此系列系小九的学堂原创翻译,翻译自微软官方开发向导,一共分为六个主题.本文是第五个主题:.Net Native与反射. 向导文链接:<C++的性能C#的产能?! - .Net Native 系列 ...

  2. C++的性能C#的产能?! - .Net Native 系列四:性能测试方法(PerfView)

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  3. C++的性能C#的产能?! - .Net Native 系列《三》:.NET Native部署测试方案及样例

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  4. C++的性能C#的产能?! - .Net Native 系列《二》:.NET Native开发流程详解

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  5. C++的性能C#的产能?! - .Net Native 系列《一》:.NET Native安装和配置

    之前一文<c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥> 获得很多朋友支持和鼓励,也更让我坚定做这项技术的推广者,希望能让更多的朋友了解这项技术,于是先从官方 ...

  6. c++的性能, c#的产能?!鱼和熊掌可以兼得,.NET NATIVE初窥

    对于微软开发者来说,每次BUILD大会都是值得期待的.这次也是惊喜满满,除了大众瞩目的WP8.1的发布还有一项会令开发者兴奋的技术出现:.NET NATIVE.下面就来详细了解一下其为何物. [小九的 ...

  7. 不可或缺 Windows Native 系列文章索引

    [源码下载] 不可或缺 Windows Native 系列文章索引 作者:webabcd 1.不可或缺 Windows Native (1) - C 语言: hello c 介绍不可或缺 Window ...

  8. 【REACT NATIVE 系列教程之十二】REACT NATIVE(JS/ES)与IOS(OBJECT-C)交互通信

    http://blog.csdn.net/xiaominghimi/article/details/51586492 一用到跨平台的引擎必然要有引擎与各平台原生进行交互通信的需要.那么Himi先讲解R ...

  9. React Native系列文章

    React Native版本升级的正确姿势 WebView JS与RN进行通讯 用API网关把API管起来 React-Native 给客户端来个「同音词模糊搜索」 30天React Native从零 ...

随机推荐

  1. make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl] 错误 1,make: *** [out/host/linux-x86/obj/lib/libESR_Portable.so] 错误 1

    错误3: g++: g++: selected multilib '32' not installed selected multilib '32' not installed make: *** [ ...

  2. html视频播放器的代码 及其参数详解

    播放视频最实用的一段代码是: 程序代码 <"></embed></object> 其他的看参数自己修改吧 .avi格式 代码片断如下: 程序代码 < ...

  3. Jquery判断变量是否为空

    var aaa=''; if(aaa) { //aaa不为空也不是不可识别对象时执行 } else { //aaa为空或不可识别时执行 } aaa必须是变量,对象的属性好像是不行,

  4. CSS 两列布局 之 左侧适应,右侧固定 3种方式

    第一种:左侧用margin-right,右侧float:right CSS代码: html, body,ul,li #wrapper { width: 100%; height: 100%; padd ...

  5. CentOS一键ftp

    # Version : 1.0 # Author : 果子 # Date : -- :: # Description : 只需要三步即可完成安装 # chmod a+x install_vsftpd. ...

  6. Drools 函数学习

    Drools 函数学习 函数是定义在规则文件当中一代码块,作用是将在规则文件当中若干个规则都会用到的业务操作封装起来,实现业务代码的复用,减少规则编写的工作量.函数的编写位置可以是规则文件当中 pac ...

  7. python学习4 常用内置模块

    logging os 路径处理 // 获取当前路径 os.path.abspath(__file__) //获取当前文件夹路径 os.path.dirname(os.path.abspath(__fi ...

  8. mysql优化

    一.优化事项 1. 数据库(表)设计合理    (不合理设计导致内伤)    我们的表设计要符合3NF   3范式(规范的模式) , 有时我们需要适当的逆范式.2. sql语句的优化(索引,常用小技巧 ...

  9. Spring MVC --->>>No mapping found for HTTP request with URI

    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> < ...

  10. [Leetcode] Bulls and Cows

    You are playing the following Bulls and Cows game with your friend: You write a 4-digit secret numbe ...