程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .Net Core 系列:1、環境搭建

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

編輯:關於.NET

前言:

       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 32。

       .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 commands

Common options:
  -v|--verbose          Enable verbose output
  -h|--help             Show help

Host options (passed before the command):
  -v|--verbose          Enable verbose output
  --version             Display .NET CLI Version Number
  --info                Display .NET CLI Info

Common Commands:
  new           Initialize a basic .NET project
  restore       Restore dependencies specified in the .NET project
  build         Builds a .NET project
  publish       Publishes a .NET project for deployment (including the runtime)
  run           Compiles and immediately executes a .NET project
  test          Runs unit tests using the test runner specified in the project
  pack          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 --help

Microsoft .NET Core Shared Framework Host

  Version  : 1.0.1
  Build    : cee57bf6c981237d80aa1631cfe83cb9ba329f12

Usage: 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.0
FROM maydear.com/centos:7 #//其實就是官方鏡像改TAG,自己docker pull centos後修改語句
MAINTAINER kelvin "[email protected]"

# 更新系統源
RUN yum -y update && yum clean all
# 安裝依賴包
RUN yum -y install libunwind libicu

# Install .NET Core
ENV DOTNET_VERSION 1.0.0
ENV 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/bin

RUN 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 helloworld

sudo 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能有更強的優化。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved