NetCore学习实践1__项目创建和配置文件的获取

工具安装:vs2017+版本,.Net Core2.0组件


NetCore地位


 

.net framework 是在 windows 下运行的,不能跨平台,只能蜗居在window里;为了跨平台,novell公司开发了mono,把大部分.net framework 功能移植到 linux 下(xamarin和unity3d的基础)可以在linux下运行。现在是云计算的天下,所谓云,我的通俗理解就是将所有的计算由各个终端转移到服务器,而linux天然就是做服务器的,在服务器领域,linux分分钟吊打windows,甩windows几条街不在话下 ,所以作为后端开发的主流语言,c#的市场占有量总是不及java,采用c#在.Net平台下的大公司也是屈指可数或者说基本没有,故而一些java程序员总是有种莫名的优越感。我一直觉得c#的语法优雅秒杀java,但是不得不承认,高并发高流量的项目还是得用java平台,毕竟人家可以运行在linux服务器上,不说window服务器稳定性不行,生态软件是最大的硬伤。微软爸爸眼红啦,自己的亲儿子高富帅出生,咋就比不过人家呢?于是收购了mono,但是出身富贵的微软觉得mono这家伙心法以及招式太过陈旧,类库配不上自己儿子的优雅飘逸,于是Net Coret应运而生,微软宣告武林,以后犬子C#也可以借助net Core跨 Linux、windows、mac 运行,linux服务器的强大资源并非java独有。

自此,微软家庭构造如下:

 命令创建项目


 

既然跨平台了,咱们也就潮一把,装一波b格,命令行来一波。

控制台项目

  • dotnet new console -o consoleTest   在当前目录创建ConsoleTest文件夹并在该文件夹下创建ConsoleTest控制台应用     -o 要放置生成的输出的位置output
  • dotnet new console -n consoleTest   在当前目录创建ConsoleTest文件夹并在该文件夹下创建ConsoleTest控制台应用     -n 正在创建输出的名称。如果未指定任何名称,将使用当前目录的名称。

-n 指定名称则会以名称创建目录和应用,否则将使用当前目录的的名称创建控制台应用

  • dotnet restore    通过nuget 还原安装当前目录的项目用到的包,一定要 cd 到项目根 目录下执行。
  • dotnet run          编译并运行当前目录的项目,一定要在项目根目录下执行。

mvc项目

  • dotnet new mvc -o test1 或者 dotnet new mvc
  • dotnet restore
  • dotnet run  项目自带嵌入式服务器,测试阶段不用 IIS 等单独的服务器  http://127.0.0.1:5000  https://127.0.0.1:5001即可以访问了
  • ctrl+c   停止服务器 
  • dotnet new --help  不懂的命令查文档
  • 其他项目的创建:
    • 类库:dotnet new classlib
    • webapi:dotnet new webapi
    • 解决方案: dotnet new sln

  

  • 项目间引用

  1. dotnet new sln     创建解决方案,解决方案的名字默认是当前目录的名字 
  2. dotnet sln xxx.sln add xxx.common/xxx.common.csproj   把xxx.common目录下的xxx.common.csproj添加到解决方案中
  3. dotnet sln xxx.sln add xxx.web/xxx.web.csproj   
  4. dotnet add xxx.web/xxx.web.csproj reference xxx.common/xxx.common.csproj   添加xxx.web.csproj项目对xxx.common.csporj项目的引用

配置文件的读取


 

ASP.Net依赖于System.Configuration和XML配置文件web.config,Net Core采用了单独的json文件:appsetting.json。

项目启动的时候已经默认将该json文件加入到ConfigurationBuilder中,我们在项目中可以直接读取。

{
  "Data": "LineZero",
  "ConnectionStrings": {
    "DefaultConnection": "数据库1",
    "DevConnection": "数据库2"
  },
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Debug",
      "System": "Information",
      "Microsoft": "Information"
    }
  }
}

Configuration.GetConnectionString("DefaultConnection");//获取连接串的shortcut  数据库1
Configuration["ConnectionStrings:DevConnection"];//数据库2

Configuration.GetSection("Logging").GetSection("IncludeScopes").Value;
Configuration.GetSection("Logging")["IncludeScopes"]; //这两种写法都支持“false”
原文地址:https://www.cnblogs.com/lyfingchow/p/7502925.html