一、環境搭建html
二、ADO.Net 基礎docker
四、Entity Framework Core 基礎json
五、實現登陸註冊功能windows
六、實現目錄管理功能centos
八、實現文章回復功能服務器
九、實現文章點贊功能app
前言:
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起。。。。。
1、環境搭建
不管使用什麼語言,編程必需要學習的第一件事情,環境搭建。人類是高級動物,由於人類會使用工具,環境搭建實際上是構造工具的過程。目前官網上(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 "kelvin@maydear.com" # 更新系統源 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
2、第一個.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
拷貝文件到運行服務器,並運行
3、使用VS2015開發第一個Hello Word
一、安裝Visual Studio Community 2015 Update 3 (略。。)
二、安裝 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
三、建立項目
4、總結
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能有更強的優化。