zoukankan      html  css  js  c++  java
  • 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”
  • 相关阅读:
    jquery的each()详细介绍【转】
    牛客-小w的a=b问题
    HDU-6707-Shuffle Card(很数据结构的一道题)
    HDU-6672-Seq
    牛客-随机数
    牛客-小阳的贝壳
    HDU-4417-Super Mario
    牛客-Corn Fields
    HDU-2665-Kth number
    线段树模板
  • 原文地址:https://www.cnblogs.com/lyfingchow/p/7502925.html
Copyright © 2011-2022 走看看