前言
asp.net core rtm 6月底即将发布,自己也想着为社区做点共享,刚好最近不太忙,看到社区的小伙伴们都在为dotnet core的推广而贡献力量,项目中刚好在用rc2版本,就多写些文章来帮助那些还在学习的朋友们吧。
目录
- dotnet core 和 .net的区别
- github中dotnet core各个项目的状况
一、 dotnet core 和 .net的区别
目前在使用C#开发应用程序的时候,有两种框架可供选择: .Net Framework 和 .Net Core,那他们有什么不同的地方呢?或者说是微软为什么要做两个框架,在同一个平台上运行不好吗?就先让我们一起看看他们之间的不同。
大家都知道 .Net Core是跨平台的,除了运行在windows上之外,还可以运行在Linux和Mac OS上。而 .Net Framework只能运行在windows上或者借助于Mono运行于其他平台上。 .Net Core和 .Net Framework可以理解为一个子集和父集的关系,之所以 .Net Core带了个Core是因为它包含了 .Net Framework的一些核心的功能和特性,比如它们共享GC (Garbage Collection,垃圾收集,垃圾回收),jit(Just-In-Time )编译器,还有类型系统和语言特性等。
-
那么 asp.net 和 asp.net core 的区别呢?
asp.net 目前的版本是asp.net 4.6,它已经被使用了很多年了,它比较稳定,如果你的系统不需要跨平台,只是在windows上运行的话,可以使用asp.net 4.6, 它很稳定并且很多第三方库都对其进行了支持。
asp.net core 是采用了 .net core的新一代asp.net架构程序。目前的版本是RC2。后面会对其进行大量介绍。
下面这张图就是他们之间的关系:
二、 github中dotnet core各个项目的状况
有一点值得我们开发者高兴的是,现在微软 .net 相关的大多数项目都是开源的,托管在github上,我建议大家有不懂的地方多去查看源代码,来了解其中的运行原理,以便于对知识的更好的理解和吸收。
-
.NET Compiler Platform ("Roslyn")
.NET编译器。提供的开源Csharp和Visual Basic编译器及代码解析API -
.NET Core Framework
也被叫做CoreFx,提供Core的基础程序集类库,它包括collections, file systems, console, XML, async等. -
.NET Core Runtime
也被叫做CoreCLR,它包括了 .net core的runtime(运行时),和mscorlib(基础库),它包含的有GC(垃圾回收),JIT(just-in-time)编译器, 类型系统(.NET data types),和其他一些底层的类库。 -
ASP.NET Core
它包含以下Project:- DependencyInjection - 基础的依赖注入项目和默认的实现
- EntityFramework - ORM 数据库访问组件
- Identity - 用户身份验证系统
- MVC - Web项目的MVC框架
- Razor - MVC的模板语言和CSHTML文件语法解析
- Templates - Visual Studio新建项目的默认模板
- Tooling - Visual Studio 工具集, 编辑器 等