.Net Core 系列:1、环境搭建

前言:

       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.gz
RUN 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能有更强的优化。

相关文章:

原文地址:http://www.cnblogs.com/maydear/p/5630082.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【集合框架】JDK1.8源码分析之HashMap(一)

转载自 【集合框架】JDK1.8源码分析之HashMap&#xff08;一&#xff09;一、前言在分析jdk1.8后的HashMap源码时&#xff0c;发现网上好多分析都是基于之前的jdk&#xff0c;而Java8的HashMap对之前做了较大的优化&#xff0c;其中最重要的一个优化就是桶中的元素不再唯一按照…

java 连接 sql2005,java与sql server2005 连接有关问题

当前位置:我的异常网 Eclipse java与sql server2005 连接有关问题java与sql server2005 连接有关问题www.myexceptions.net 网友分享于&#xff1a;2013-01-27 浏览&#xff1a;73次java与sql server2005 连接问题package com.lzw.dao;import internalFrame.guanli.Item;imp…

微软借Bletchley项目将云计算信息加入区块链

在比特币领域大获成功后&#xff0c;越来越多的行业开始尝试通过区块链&#xff08;Blockchain&#xff09;技术在自己的业务中实施分布式分类帐&#xff08;Ledger&#xff09;。 InfoQ 什么是区块链 区块链是一种用于创建数字交易分类帐的数据结构&#xff0c;或有关某笔交易…

php定时某个时间循环做,PHP定时循环执行脚本

代码如下&#xff1a;<?php ignore_user_abort(); //关掉浏览器&#xff0c;PHP脚本也可以继续执行.set_time_limit(0); // 通过set_time_limit(0)可以让程序无限制的执行下去$interval 43200; // 每隔*秒运行&#xff0c;这里是12小时执行一次$is_send true;//是否开启t…

LinkedList 的实现原理浅析

转载自 LinkedList 的实现原理浅析 LinkedList内部结构 查看LinkedList的源码&#xff0c;发现其继承自AbstractSequentialList&#xff0c;实现了List&#xff0c;Deque&#xff0c;Cloneable以及Serializable接口&#xff0c;如&#xff1a; 也就意味着&#xff1a; Linked…

移植.NET Core计划,整合各平台变得更简单了!

在前篇文章中我提到了如何移植 .NET Core&#xff0c;并邀请使用者们不吝啬的回报您的使用经验和改进意见。 这项措施带动起了非常多使用者之间的讨论。 根据这些讨论的重点和我们与第一与第三方伙伴合作的经验&#xff0c;我们决定把核心 API 跟其他 .NET 平台&#xff0c;主要…

browserquest php安装,请问一下browserquest-php项目换成GatewayWorker的形式需要怎么部署worker...

单进程模式用户间数据容易共享browserquest本身就设计成单进程模式&#xff0c;单进程模式用户间数据容易共享&#xff0c;不用频繁的进程间通讯&#xff0c;开发简单。改成gateway网关模式利弊如果要改成多进程gateway网关模式&#xff0c;代码改动量会很大&#xff0c;要求开…

Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例

转载自 Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 第1部分 ArrayList介绍 ArrayList简介 ArrayList 是一个数组队列&#xff0c;相当于 动态数组。与Java中的数组相比&#xff0c;它的容量能动态增长。它继承于AbstractList&#xff0c;实现了List, Random…

ASP.NET Core 介绍

原文&#xff1a;Introduction to ASP.NET Core作者&#xff1a;Daniel Roth、Rick Anderson、Shaun Luttin翻译&#xff1a;江振宇(Kerry Jiang)校对&#xff1a;许登洋(Seay)、魏美娟(初见)、姚阿勇(Mr.Yao) ASP.NET Core 是对 ASP.NET 的一次意义重大的重构。本文介绍了 ASP…

计量经济学自相关matlab,计量经济学 自相关性.ppt

(3)检验自相关性 ①残差图分析&#xff1a;在方程窗口中点击Resids按钮&#xff0c;所显示的残差图(图5.3.7所示)表明e呈现有规律的波动&#xff0c;预示着可能存在自相关性。 图5.3.7 残差图 运用GENR生成序列E&#xff0c;观察E&#xff0c;E(-1)图形(见图5.3.8)。 图5.3.8 E…

Java 并发工具包 java.util.concurrent 用户指南

转载自 Java 并发工具包 java.util.concurrent 用户指南 1. java.util.concurrent - Java 并发工具包 Java 5 添加了一个新的包到 Java 平台&#xff0c;java.util.concurrent 包。这个包包含有一系列能够让 Java 的并发编程变得更加简单轻松的类。在这个包被添加以前&#x…

JavaScript实现四则运算

编写一个带有两个变量和一个运算符的函数&#xff0c;调用时接收prompt输入 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.or…

mysql中select语句子句,了解mysql中select语句操作实例

Select的语法SELECT[ALL | DISTINCT | DISTINCTROW ][HIGH_PRIORITY][STRAIGHT_JOIN][SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT][SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS]select_expr, ...[INTO OUTFILE file_name export_options| INTO DUMPFILE file…

通过几个Hello World感受.NET Core全新的开发体验

2016年6月27日&#xff0c;这是一个特殊的日子&#xff0c;微软全新的.NET开发平台.NET Core的RTM版本正式发布。我个人将.NET Core的核心特性归结为三点&#xff0c;它们的首字母组成一个非常好记的简称——COM&#xff0c;分别代表的含义Cross-Platform、Open-Source和Modula…

Java多线程(六)之Deque与LinkedBlockingDeque深入分析

转载自 Java多线程&#xff08;六&#xff09;之Deque与LinkedBlockingDeque深入分析 一、双向队列 DequeQueue除了前面介绍的实现外&#xff0c;还有一种双向的Queue实现Deque。这种队列允许在队列头和尾部进行入队出队操作&#xff0c;因此在功能上比Queue显然要更复杂。下图…

matlab边算边出图命令,Matlab:不包含边境和工具栏的figure(移除保存图片的白边)...

Matlab:不包含边界和工具栏的figure(移除保存图片的白边)当我们使用matlab的imshow命令显示图片时&#xff0c;会有白框和工具栏出现。在保存图片时会出现白色的边框。下面将说明如何去除这些显示。Matlab启动时运行脚本script.m&#xff0c;文件位置在~/matlab/ directory。在…

JavaScript实现复选框全选与全不选的效果

//里面涉及到几张图片&#xff0c;有需要的可以联系我要&#xff0c;直接私信我就行&#xff0c;每天在这个点都会上线&#xff0c;看到就回&#xff0c;或者从我的资料里面找我的联系方式&#xff0c;收到之后会发给你们的<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1…

ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行

之前两篇文章简析.NET Core 以及与 .NET Framework的关系和.NET Core的构成体系从总体上介绍.NET Core,接下来计划用一个系列对ASP.NET Core的运行原理进行剖析。 ASP.NET Core 是新一代的 ASP.NET&#xff0c;早期称为 ASP.NET vNext&#xff0c;并且在推出初期命名为ASP.NET …

深入并发包-ConcurrentHashMap

转载自 深入并发包-ConcurrentHashMap 前言 以前写过介绍HashMap的文章&#xff0c;文中提到过HashMap在put的时候&#xff0c;插入的元素超过了容量&#xff08;由负载因子决定&#xff09;的范围就会触发扩容操作&#xff0c;就是rehash&#xff0c;这个会重新将原数组的内容…

红帽、微软和 Codenvy 联合推出语言服务器协定(Language Server Protocol,LSP)项目

微软、红帽及容器开发环境供应商Codenvy本周在Red Hat DevNation开放源码大会上宣布将共同发展语言服务器协定&#xff08;Language Server Protocol&#xff0c;LSP&#xff09;项目&#xff0c;让不同的程序编辑器与集成开发环境&#xff08;IDE&#xff09;方便嵌入各种程序…