DNX概述
1. 什么是.NET执行环境 ?
.NET Execution Environment(DNX) 是一个SDK 和运行时环境,它包含所有的你需要创建和运行.net应用程序的组件。它提供一个主机进程,CLR宿主逻辑和管理入口点。DNX是为执行跨平台的asp.net的Web应用程序而创建的。但是它也能执行其它类型的.net应用程序,如控制台应用程序。
2. 为什么创建DNX ?
DNX提供一个在不同平台开发和执行的环境。你可以用DNX在一种平台上面开发,然后部署到另一个平台上面去。
DNX简化了开发跨平台的应用程序, 它负责的给CLR宿主,处理依赖和启动你的应用程序。你可以通过轻量级的json配置文件定义你的应用程序,建立你的工具并发布它。
包的管理完全地改变了现在应用的开发,DNX使其很容易地创建和应用包。DNX提供工具安装、创建、管理NuGet包。DNX工程简化了利用交叉编译为不同的构架生成不同的NuGet包。你可以直接引用NuGet包和还有依赖。你也可以创建和安全开发工具
DNX使其很容易与开源的工程一起工作,通过DNX你可以很容易地用源代码替换掉一个已经存在的依赖。让DNX在运行时编译,然后你可以Debug源代码和修改它。
3. 工程
一个DNX的工程是一个含有project.json的文件的目录。文件夹的目录名就是工程的名字。你可以用DNX工程创建NuGet包。project.json文件定义了你的包的元数据,你的工具的依赖文件和哪些框架你需要使用的:
{
"version": "1.0.0-*",
"description": "ClassLibrary1 Class Library",
"authors" : ["daroth"],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"frameworks":{
"net451": {},
"dotnet5.4":{
"dependencies":{
"Microsoft.CSharp": "4.0.1-beta-23516",
"System.Collections": "4.0.11-beta-23516",
"System.Linq": "4.0.1-beta-23516",
"System.Runtime":"4.0.21-beta-23516",
}
}
}
}
}
在"frameworks"属性下面你可以声明你需要哪个构架来构建你的应用。 DNX可以交叉编译每一个构架创建相应的lib目录。
你可以利用 .NET Development Utility(DNU)来创建,打包和发布DNX工程, 生成二进制文件。打包可以生成NuGet package,然后上传到package feed. 发布是把所有相关的组件打包到一个独立的文件当中以便发布当前应用。
4. 依赖
依赖在DNX由名字和版本号组成。版本号应该遵循语义版本(主版号-次版本号-补丁). 典型的依赖参考安装的NuGet包或者另一个DNX工程。工程的引用在当前目录引用或者用global.json在解决方案一级:
{
"projects": ["src", "test"],
"sdk": {
"version":"1.0.0-rc1-final"
}
}
global.json文件也定义了最小的DNX版本以用来创建当前的工程。
依赖是可以传递的,你可以只在最顶级申明你的依赖。DNX可以下载整个依赖图用安装的NuGet包。工程依赖生成在运行时在生成工程的时候,这样可以使你灵活地用二进制工作或者源文件部署你的DNX应用。
5. 包和摘要
对包的引用你首先要安装你的包,你可以用DNU去去安装下载新的包到目前的或者重新恢复所有的依赖。下面的命令是下载和安装所有的在project.json里申明的所有包:
dnu restore
包被重置利用配置的包文件。可以配置包的摘要用NuGet.config
6. 命令
一个命令是一个命名的.net运行的入口。你可以在project.json文件中定义命令:
"commands":{
"web":"Microsoft.AspNet.Server.Kestrel",
"ef":"EntityFramework.Commands"
},
你可以像下面这样来用DNX执行你的命令:
dnx web
命令可以做为NuGet包的形式被创建和发布, 你可以用DNU去安装全局的命令:
dnu commands install MyCommand
7. 应用宿主
DNX应用程序宿主是被DNX第一个调用的管理入口,负责处理依赖,解释project.json, 提供其它的服务和调用应用程序的入口。
另外,你可以用直接DNX调用你的应用程序入口。用DNX而不用DNX 应用宿主并不是很常见。
DNX应用宿主提供一系统的应用程序依赖(如IServiceProvider, IApplicationEnvironment和ILoggerFactory).应用程序宿主服务可以在你的主入口中被注入到构造函数当中。
8. 编译模块
编译模块是一个可以扩展的点,可以让你参与 到DNX编译的过程当中。你可以通过实现ICompileModule接口来实现你自己的编译模块,然后放到compiler/preprocess或者compiler/postprocess当中去。
9. DNX版本管理
你可以安装不同的DNX版本到你机器上去。你可以用.NET Version Manager(DNVM)来管理不同的DNX版本。DNVM可以让你在你的机器上面列出不同的DNX版本, 安装不同的版本转换当前激活的版本。
DNX概述的更多相关文章
- 【Net Core】DNX概述
1. 什么是.NET执行环境 ? .NET Execution Environment(DNX) 是一个SDK 和运行时环境,它包含所有的你需要创建和运行.net应用程序的组件.它提供一个主机进程,C ...
- ASP.NET 5 (vNext) 理解和概述
概述 ASP.NET 5 (又称为vNext) 是自ASP.NET产生15年以来一次革命性的更新, 我们可以从以下几点来理解其概貌和意义: ASP.NET 5是开源的 ASP.NET 5开发的WebA ...
- NET5实践:项目创建-结构概述-程序运行-发布部署
ASP.NET5实践01:项目创建-结构概述-程序运行-发布部署 1.项目创建 ASP.NET5项目模板有三种: 新建项目: 选择模板: 2.结构概述 References对应配置是project ...
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
随机推荐
- BZOJ 3744 Gty的妹子序列
Description 我早已习惯你不在身边, 人间四月天 寂寞断了弦. 回望身后蓝天, 跟再见说再见-- 某天,蒟蒻Autumn发现了从 Gty的妹子树上掉落下来了许多妹子,他发现 她们排成了一个序 ...
- BZOJ 2330 糖果
Description 幼儿园里有N个小朋友,lxhgww老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红分到的糖果比他的 ...
- ios入门之c语言篇——基本函数——4——数值交换函数
一个常用函数,被整理出来,免得每次 都要写 参数返回值解析: 参数: *a:int*,需要交换值的第一个变量: *b:int*,需要交换值的第二个变量: 返回值: (无) 函数解析: swap(&am ...
- Hibernate如何一个类映射两个表
一个User类有username,password属性,还有 otherInformation等其他属性,username和password映射到一个表,otherInformation等其他属性映射 ...
- UVA 10706 Number Sequence (找规律 + 打表 + 查找)
Problem B Number Sequence Input: standard input Output: standard output Time Limit: 1 second A singl ...
- BZOJ 1072 [SCOI2007]排列perm
1072: [SCOI2007]排列perm Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1268 Solved: 782[Submit][Sta ...
- BZOJ1621: [Usaco2008 Open]Roads Around The Farm分岔路口
1621: [Usaco2008 Open]Roads Around The Farm分岔路口 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 521 S ...
- 安装zabbix2.2.3
系统版本:CentOS 6.3_x86_64 zabbix版本:zabbix-2.2.3 zabbix服务端IP:172.16.10.72 1.yum安装LAMP环境 # yum -y install ...
- 【转】Android低功耗蓝牙应用开发获取的服务UUID
原文网址:http://blog.csdn.net/zhangjs0322/article/details/39048939 Android低功耗蓝牙应用程序开始时获取到的蓝牙血压计所有服务的UUID ...
- 【转】处理新版Chrome书签、菜单字体不清晰
原文网址:http://www.nmgwddj.com/share/311.html 昨晚打开Chrome浏览器,忽然感觉有些什么东西变了,仔细看了半天忽然发现,书签中的字体和网页中右键的字体全部都变 ...