前言:
2016年6月28日微软宣布发布 .NET Core 1.0、ASP.NET Core 1.0 和 Entity Framework Core 1.0。 .NET Core是微软在两年前发起的开源跨平台.NET框架项目,支持Windows、OS X和Linux平台,可用于开发各种类型的应用。此次发布包括了 .NET Core运行时、库和工具,以及 ASP.NET Core库。微软还释出了Visual Studio和Visual Studio Code扩展,允许开发者创建 .NET Core项目。如果要使用Visual Studio构建 .NET Core应用,开发者需要安装最新的 Visual Studio 2015 Update 3。
.NET Core 目前还有很多功能无法和传统Framework及mono比。而且在老项目的迁移,各种开源类库的支持上,目前相对匮乏。很多人会有疑问,微软历时2年发布的一个.NET Core、ASP.NET Core、Entity Framework Core 能为我们解决什么难题?我们可以是用它们来完成什么业务?
但是无论什么业务,万行“代码”从Hello Word起。。。。。
一、环境搭建
无论使用什么语言,编程必须要学习的第一件事情,环境搭建。人类是高级动物,因为人类会使用工具,环境搭建其实是构造工具的过程。目前官网上(https://www.microsoft.com/net/core#windows)有包含Windows、Linux、Mac、Docker的环境教程,相对还是很清晰的,但是这个网站说的是开发环境的使用,运行环境呢?并没有详细介绍。而且就开发环境来说对于老NET人,一向是神器在手(Visual Studio 201×)什么开发环境都一键搞定。但是这个一键搞定在跨平台后就造成了各种的坑。
习惯上我们在安装开发环境时安装的是.NET Core SDK,安装运行环境时安装的是.NET Core
.NET Core SDK = Develop apps with .NET Core and the SDK+CLI (Software Development Kit/Command Line Interface) tools
.NET Core = Run apps with the .NET Core runtime
因为本人比较熟悉Linux Centos 7 所以本人将以Centos 7 为基础讲述。
Centos 7.1 安装开发环境
#依赖包sudo yum install libunwind libicu #开发环境下载的还是preview2 curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131
#官网的是将文件安装到/opt/目录
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo mkdir -p /usr/share/dotnet-dev-1.0.0 &&
tar zxf dotnet.tar.gz -C /usr/share/dotnet-dev-1.0.0
#将dotnet 执行程序映射到/usr/bin执行目录;
sudo ln -s /usr/share/dotnet-dev-1.0.0/dotnet /usr/bin
dotnet --help显示信息如下所示
[root@968a822651a3 hellword]# dotnet --help .NET Command Line Tools (1.0.0-preview2-003121) Usage: dotnet [host-options] [command] [arguments] [common-options]Arguments:[command] The command to execute[arguments] Arguments to pass to the command[host-options] Options specific to dotnet (host)[common-options] Options common to all commandsCommon options:-v|--verbose Enable verbose output-h|--help Show helpHost options (passed before the command):-v|--verbose Enable verbose output--version Display .NET CLI Version Number--info Display .NET CLI InfoCommon Commands:new Initialize a basic .NET projectrestore Restore dependencies specified in the .NET projectbuild Builds a .NET projectpublish Publishes a .NET project for deployment (including the runtime)run Compiles and immediately executes a .NET projecttest Runs unit tests using the test runner specified in the projectpack Creates a NuGet package
Centos 7.1 安装运行环境
#依赖包sudo yum install libunwind libicu #运行环境下载 curl -sSL -o dotnet.tar.gz https://dotnetcli.blob.core.windows.net/
dotnet/preview/Binaries/1.0.0/dotnet-centos-x64.1.0.0.tar.gz
#官网的是将文件安装到/opt/目录
sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet
sudo mkdir -p /usr/share/dotnet-1.0.0 && tar zxf dotnet.tar.gz -C
/usr/share/dotnet-1.0.0
#将dotnet 执行程序映射到/usr/bin执行目录;
sudo ln -s /usr/share/dotnet-1.0.0/dotnet /usr/bin
dotnet --help显示信息如下所示
[root@19b9997445b9 dotnet]# dotnet --helpMicrosoft .NET Core Shared Framework HostVersion : 1.0.1Build : cee57bf6c981237d80aa1631cfe83cb9ba329f12Usage: dotnet [common-options] [[options] path-to-application]Common Options:--help Display .NET Core Shared Framework Host help.--version Display .NET Core Shared Framework Host version.Options:--fx-version <version> Version of the installed Shared
Framework to use to run the application.--additionalprobingpath <path> Path containing probing policy and
assemblies to probe for.Path to Application:The path to a .NET Core managed application, dll or exe file to execute.If you are debugging the Shared Framework Host, set 'COREHOST_TRACE' to '1'
in your environment.To get started on developing applications for .NET Core,
install .NET SDK from:
http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
Windows 10 安装开发环境(非vs2015)
(只有在win10下才能使用命令行的方式执行,在win7下提示一下错误:Failed to load the dll from [C:\Program Files\dotnet\host\fxr\1.0.1\hostfxr.dll], HRESULT: 0x80070057)
下载DotNetCore.1.0.0-SDK.Preview2-x64:https://download.microsoft.com/download/A/3/8/A38489F3-9777-41DD-83F8-2CBDFAB2520C/packages/DotNetCore.1.0.0-SDK.Preview2-x64.exe
Windows 10 安装运行环境
下载DotNetCore.1.0.0-Runtime-x64.exe:https://download.microsoft.com/download/A/3/8/A38489F3-9777-41DD-83F8-2CBDFAB2520C/packages/DotNetCore.1.0.0-Runtime-x64.exe
Docker 安装运行环境
官网上的Docker是以Debian 为基础镜像的,而我使用Docker为Centos为镜像,所以我必须自己编写Dockerfile来构建我要的docker images
# VERSION 1.0FROM maydear.com/centos:7
#//其实就是官方镜像改TAG,自己docker pull centos后修改语句
MAINTAINER kelvin "kelvin@maydear.com"# 更新系统源 RUN yum -y update && yum clean all # 安装依赖包 RUN yum -y install libunwind libicu# Install .NET Core ENV DOTNET_VERSION 1.0.0ENV DOTNET_DOWNLOAD_URL
https://dotnetcli.blob.core.windows.net/dotnet/preview/Binaries/
$DOTNET_VERSION/dotnet-centos-x64.$DOTNET_VERSION.tar.gzRUN curl
-sSL -o dotnet.tar.gz $DOTNET_DOWNLOAD_URL#安装dotnet core RUN mkdir -p /usr/share/dotnet-$DOTNET_VERSION &&
tar zxf dotnet.tar.gz -C /usr/share/dotnet-$DOTNET_VERSION#安装dotnet core 到启动命令 RUN ln -s /usr/share/dotnet-$DOTNET_VERSION/dotnet /usr/binRUN rm -rf dotnet.tar.gz CMD [ "/bin/bash" ]#build image: #sudo docker build --rm -t="maydear.com/dotnet:1.0" .#run container: #sudo docker run -it --name=dotnet -d -v /xxx:/xxx --privileged=true
maydear.com/dotnet:1.0
二、第一个.Net Core 程序
Centos 7 秒出Hello World
mkdir helloworld cd helloworldsudo dotnet new && dotnet restore && dotnet build
sudo dotnet run
发布dotnet Core 程序
sudo dotnet publish
拷贝文件到运行服务器,并运行
三、使用VS2015开发第一个Hello Word
1、安装Visual Studio Community 2015 Update 3 (略。。)
2、安装 DotNetCore.1.0.0.RC2-VS2015Tools.Preview1插件。http://download.microsoft.com/download/A/3/8/A38489F3-9777-41DD-83F8-2CBDFAB2520C/DotNetCore.1.0.0-VS2015Tools.Preview2.exe
3、创建项目
四、总结
project.json
{"version": "1.0.0-*",/*程序版本以前写在AssemblyInfo*/"buildOptions": {"emitEntryPoint": true},"dependencies": {/*依赖关系(引用包)*/"Microsoft.NETCore.App": {"type": "platform","version": "1.0.0"},"test": "1.0.2-*"/*我自己定义的NET core 类库,测试类库引用*/},"frameworks": {"netcoreapp1.0": {"imports": "dnxcore50"}} }
从Hello World 上手习惯上唯一的区别就是.NET Core 的引用是通过nuget 引用包,但是nuget如果没有支持.NET Core的包的时候,引发如图的错误:
这个nuget的自动识别,期待在Nuget3.0能有更强的优化。
相关文章:
ASP.NET Core 1.0 入门——了解一个空项目
ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)
.NET Core 1.0、ASP.NET Core 1.0和EF Core 1.0简介
云服务器下ASP.NET Core 1.0环境搭建(包含mono与coreclr)
使用VS Code开发ASP.NET Core 应用程序
dotnet run是如何启动asp.net core站点的
ASP.NET Core提供模块化Middleware组件
“dotnet restore"和"dotnet run"都做了些什么?
探秘 dotnet run 如何运行 .NET Core 应用程序
.NET Portability Analyzer 已开源
ASP.NET Core的配置(2):配置模型详解
.NET Core 1.0 RC2 历险之旅
使用VS Code开发 调试.NET Core 应用程序
让我们Core在一起:ASP.NET Core & .NET Core
.NET Core VS Code 环境配置
官方博客明确了 .NET Core RC2/RTM 时间表
.NET Core全新的配置管理[共9篇]
利用记事本创建一个ASP.NET Core RC2 MVC应用
微软.NET 正式劈腿成功,横跨所有平台
.NET Core 1.0 CentOS7 尝试
解读发布:.NET Core RC2 and .NET Core SDK Preview 1
[.NET Core].NET Core R2安装及示例教程
ASP.NET Core 开发-中间件(Middleware)
结合Jexus + Kestrel 部署 asp.net core 生产环境
通过Jexus 部署 dotnetcore版本MusicStore 示例程序
ASP.NET Core 中文文档 第一章 入门
用 Visual Studio Code 在 macOS 上创建首个 ASP.NET Core 应用程序
用 Visual Studio 和 ASP.NET Core MVC 创建首个 Web API
用 Visual Studio 发布一个 Azure 云 Web 应用程序
ASP.NET Core MVC 与 Visual Studio 入门
第二章指南(4.2)添加 Controller
DotNet Core 介绍
asp.net core 中间件详解及项目实战
教你实践ASP.NET Core Authorization(免看文档教程)
asp.net core 使用 Redis 和 Protobuf 进行 Session 缓存
asp.net core 中间件详解及项目实战
第二章 指南(4.3)添加 View
dotnet core开发体验之开始MVC
dotnet core 开发体验之Routing
聊聊ASP.NET Core默认提供的这个跨平台的服务器——KestrelServer
简析.NET Core 以及与 .NET Framework的关系
.NET Core 使用Dapper 操作MySQL
使用 CommandLineApplication 类创建专业的控制台程序
简析 .NET Core 构成体系
.NET Core也可以使用MongoDB了
.NET Core & ASP.NET Core 1.0在Redhat峰会上正式发布
.NET Core:面向未来的开源跨平台开发技术
微软说它深爱着Linux,现在它用行动证明了
原文地址:http://www.cnblogs.com/maydear/p/5630082.html
.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注