.net core .net standard .net framework

一、引言

  开始写就首博客前,已经尝练习了好累Docker环境安装,.Net
Core环境安装了,在此替腾讯谈做一个拓宽,假如我们纪念学习、练手.net core
或是Docker却苦于没有支付环境,服务器也非思进,那么我们得以动用腾讯云提供的开发者实验,每个实验项目每天可以免费使用相同不成,时常45分钟,学习技能仅因看几乎首文章、几本书是全然不够的,”实践在能够产生真知“。

腾讯云开发者实验连接地址

 

老二、环境介绍

  以演习平台达成之条件是CentOS7.3版
或许你会说自不懂Linux怎么惩罚,没涉及,我为是小白,学点基本命令暂时能为此起就是实施了。毕竟我们不是专程以Linux下整开发的。(Linux下专业人士见谅哈)。

  Docker容器,如果说Docker容器还免晓得啊概念以来,我引进先暂停,先念下Docker的基本概念,弄清楚Docker是呀,总比越看越乱好.

  dotnet镜像(也可是aspnetcore镜像就二者的涉及自将稍后解释).

  OK,开始下手!

 

其三、启动实验,安装Docker

  

  我进的搭建Docker环境,当然也得以由其他实验被启着手。从搭建Docker环境中进入我们得观看要求的步调,方便我们飞速安装,仅此而已。 

  1、先来安装Docker环境

  yum install docker-io -y //CentOS已经将Docker软件包放在了Extras软件源中,直接利用即可
  docker -v //查看docker的版本 version
  systemctl start docker.service //开启Docker服务
  systemctl enable docker.service //开机启动Docker服务

  

  

  安装Docker环境时需拭目以待一至一定量分钟……..安装了!

  接下我们要用Docker服务拓展启动

  

  到此处Docker环境的装就已经收尾了。

 

   当然我们还索要配备Docker,开始布置DockerHub:

  echo "OPTIONS='--registry-mirror=https://mirror.ccs.tencentyun.com'" >> /etc/sysconfig/docker
  systemctl daemon-reload //重新载入 systemd,扫描新的或有变动的单元
  systemctl restart docker.service //重启docker服务

 

 

四、安装.NETCore环境

  接下我们用时有发生个别种艺术来安我们的.net
core环境

  方式一:在Docker容器中获取dotnet镜像

  docker pull microsoft/dotnet //安装.net core镜像

 

  

   这种方式提供被了俺们.net
core的浑模板,编译工具,RunTime等等,一应俱全。

  我们好由此docker命令查看我们曾经具备的镜像,注意 立即要以Linux主机下查看,别跑至容器中错过矣

  docker images // 查看当前已有的docker镜像文件

 

  

   当前命令下我们得以看到dotnet镜像就于我们拉取下来了。OK

  继续,我们初步新建并运行一个坐dotnet镜像的容器

  docker run -it microsoft/dotnet //启动一个dotnet镜像

 

   

  看root后面变化了未曾,这说明我们都进去了一个器皿,Docker当新建一个容器后,会给此容器分配一个id,也就算是咱所见的那么错字符串了。

   继续,通过命令新建一个web应用

  dotnet new mvc -n MyFirstDocker.Web //创建项目名为MyFirstDocker.Web的ASP.NET Core MVC项目

  

  我们可以通过ls命令看到眼前容器被的拥有文件夹信息,MyFirstDocker.Web项目已创办好了

  

  以MyFirstDocker文件夹内,有众多我们耳熟能详的物

   

  接下,通过命令启动项目

  dotnet run //启动项目

  

   OK,大功告成,项目启动,由于试验环境没有得浏览器,我们只能看看
哈哈 貌似是有一致种植方法可以视页面 但自身还未曾学会 见谅哈

 

   通过命令exit退出时容器,查看时主机及曾有的容器实例

  docker ps -a // 查看当前的已存在的容器实例 (不考虑状态)

 

 

  于此处我们开要考虑长远计划了,假如自己要用新的文书参加进来,我可采用什么办法,在容器被安装一个git,pull新文件,或许可以,但是要说这大主机及发十单容器,都运作着服务,莫非自家还得十个容器全部安git,基于这个考虑,可以品味用生这种操作了。

  我以Linux主机中安装.NET Core
SDK

  首先开始部署安装包之发源

  sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
  sudo sh -c 'echo -e "[packages-microsoft-com-prod]
  name=packages-microsoft-com-prod 
  baseurl= https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod
  enabled=1
  gpgcheck=1
  gpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

  

  接下去开始安装.net-sdk,版本2.0.3,这个过程耗时较长,需要耐心等

  sudo yum update
  sudo yum -y install libunwind libicu
  sudo yum install dotnet-sdk-2.1.3

   好了,开始连下去的操作了

  cd /home 
  mkdir aspnetcoreapp
  cd aspnetcoreapp
  dotnet new web
  dotnet restore
  dotnet run

   

  通过直接开行,也是好一直运行起来的,但是一定是未引进的呀,毕竟Docker这么好用 
哈哈

  

  接下去让Linux主机上之文书可以共享文件及Docker容器中,这样一来我们可以一直当Docker中动用Linux主机文件,然后运行起来,当起文件改动,只待更新Linux主机上之公文即可。这里见面逢一个题材,就是阳曾经用了共享目录的通令,但是Docker容器中连从未那些文件,这是出于selinux的来由,我的解决方案虽是以
-v加上一个–privileged=true,当然这个方案吧是凭借度娘得知的。

  当前Docker容器中既发出了共享目录下之文书,可能会见待dotnet
restore然后可以就此dotnet run进行启动

   

 

  方式二:在Docker容器中获aspnetcore镜像

  docker pull microsoft/aspnetcore //安装asp.net core镜像

 

  

  查看时都局部镜像,成功安装了aspnetcore镜像

  

  同样与前面的操作一样,我们根据该镜像新建一个器皿

  docker run -it microsoft/aspnetcore //运行一个以aspnetcore为镜像的容器 

  同新建一个使,但是会意识是动用不能够不负众望,提示我们从未SDK

  dotnet new mvc -n HelloDocker.Web //创建项目名为HelloDocker.Web的ASP.NET Core MVC项目

  

   

  在这里自己只要分解下dotnet镜像与aspnetcore镜像是呀关联:

   在dockerhub官网中有着dotnet和aspnetcore的镜像,dotnet可以看做是集大成者,包含了.netcore控制台aspnetcore的拥有,而aspnetcore是因dotnet镜像吧底蕴,在aspnetcore中仅包含了RunTime和构建当前色也镜像的工具,这吗就算象征如果我们而一直行使aspnetcore为镜像,我们的种是使就编译好了底,才足以直接使用是镜像。

  而当您使用dotnet镜像经常,包含了编译工具,Runtime,一切的漫天,这吗激素dotnet镜像比aspnetcore镜像那个这么多之缘由了。

  

   可以利用方式同样尾声在Linux下编译好的型,同样用共享目录的章程共享到发出aspnetcore镜像的Docker容器中,这样我们不怕好一直走起了。由于时日涉及并未品味,下次会尝试一下。

  这样做的便宜是当开条件中编译好的类我们得以一直用来用,Docker容器中只有需要周转时环境就可了。

 

 

 五、DockerFile文件之打算

  dockerFile可是好东西,好比如说用在武功秘籍,一招一式照在做。

  一般是以列蒙修好一个dockerfile文件,然后于其间写及我们的要求

  FROM microsoft/dotnet:latest
  WORKDIR /app
  COPY . /app
  RUN dotnet restore
  EXPOSE 5000
  ENV ASPNETCORE_URLS http://*:5000
  ENTRYPOINT ["dotnet","run"]

 

   通过命令将dockerfile文件运行,将所有项目于包改成镜像,我们可以采取docker
images可以看到这个变化的初镜像

  docker build -t mydockerimage .

 

   如果我们得运用是镜像,我们可以直接当开创容器时指定这个镜像,生成之后的条件及汝于包的镜像是一模一样的

   最后谢谢博友的稿子参考,半只不解的上正好看到就首稿子,很顺畅的缓解了一个问题。

  @圣杰 http://www.cnblogs.com/sheng-jie/p/8107877.html

 

  新春佳节关,在此祝愿大家  新年大吉大利
大吉大利。

 

2018-1-1,望技术有成后能回来看见自己的脚步

 

由于对微软的技能比较感兴趣,所以近年来就是当研用Visual
Studio Code开发一个Asp.net core项目还要准备从后端开始波及起。

同开始为此dotnet
new
console创建了一个控制台项目,在配备文件里发现及时是一个.netcoreapp2.0的门类;

随后同时就此dotnet
new
classlib创建了一个类库,在配备文件里发现这是一个.netstandard2.0底类;

 

较好奇这间有什么不同;

 

先是是.net
framework这个我们就算那个熟悉了,用于转移于iis上之Windows应用或Asp
Web项目;

 

说不上是.net
core用于转移跨平台的控制台应用程序、ASP.NET
Core Web 应用程序和道服务;

 

终极是.net
standard 用于转移可以从有 .NET 实现(如 .NET Framework、.NET Core 和
Xamarin)引用的库;

注意:

倘想使ConfigurationBuilder()读取配置文件设置basepath等请求使用.netcoreapp2.0,
.netstandard2.0即勿支持;

只要想用StackExchange.Redis进行Redis客户端操作请使用.netstandard2.0,
.netcoreapp2.0脚下非支持;

.netstandard2.0凡心有余而力不足引用.netcoreapp2.0底;