NetCore学习实践1__项目创建和配置文件的获取
工具安装:vs2017+版本,.Net Core2.0组件
- .NET Core 2.0 SDK win-x64下载地址:https://download.microsoft.com/download/0/F/D/0FD852A4-7EA1-4E2A-983A-0484AC19B92C/dotnet-sdk-2.0.0-win-x64.exe
- 官方更多版本下载地址:https://www.microsoft.com/net/download/core
- .NET Core 2.0 官方博客说明:https://blogs.msdn.microsoft.com/dotnet/2017/08/14/announcing-net-core-2-0/
- 开发指南:https://www.microsoft.com/net/core
- 官方中文文档:https://docs.microsoft.com/zh-cn/dotnet/
- .NET Core 2.0 API文档:https://docs.microsoft.com/en-us/dotnet/api/?view=netcore-2.0
- asp.net core的官方文档:https://docs.microsoft.com/en-us/aspnet/core/ https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/index
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
-
项目间引用
- dotnet new sln 创建解决方案,解决方案的名字默认是当前目录的名字
- dotnet sln xxx.sln add xxx.common/xxx.common.csproj 把xxx.common目录下的xxx.common.csproj添加到解决方案中
- dotnet sln xxx.sln add xxx.web/xxx.web.csproj
- 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”