1、.net core介绍

    .net core是.net framework的新一代版本, 是微软开发的第一个具有跨平台(windows、macosx、linux) 能力的应用程序开发框架,未来也将会支持freebsd与alpine平台,是微软在一开始发展时就开源的软件平台,它也经常被拿来和现有的开源net平台mono比较。
    由于.net core的开发目标是跨平台的.net平台,因此.net core会包含.net framework的类库。与.net framework不同的是,.net core 采用包化(packages) 的管理方式,应用程序只需获取需要的组件即可。与.net framework大包式安装的做法截然不同,并且各包亦有独立的版本线,不再硬性要求应用程序跟随主线版本。

2、.net core跨平台

.net core 拥有跨平台能力,并支持多种系统,让我们开大的程序可以在多个系统中运行。.net支持的操作系统:windows 客户端、windows 服务端、debian、red hat enterpise linux、 fedora、 ubuntu、 linux mint、 opensuse、 oracle linux、 centos、 mac osx

3、 .net core sdk 下载安装

下载链接  点击就下载了3.0.1.00 也可以去管网下载 

下载下来微软的就是傻瓜式安装,位置就默认了装在c盘了,下一步下一步就好了 哈哈。安装好了 win+r 输入cmd 打开命令提示符输入 dotnet –info 看到下面的信息就证明安装好了

 4、 dotnet命令

一般的命令在命令提示符里面直接输入dotnet -all 查看

 

 比如新建一个项目 它提示了是 new 怎么搞呢? 不知道就是在来一次 dotnet new -all 可以看到很多创建的命令 都有提示  表头的意思: 模板、短名称、语言、标记 下面创建一个控制台应用程序 

进入文件夹的命令自己搜吧 创建控制台应用程序是dotnet new console -n 名称     后面要接语言的话后面加上 -lang f#这样

 

 运行 dotnet run 的时候先要进去到创建项目的文件夹里面  其他命令有兴趣的自己试试   感觉跟git一样 哈哈。

 5、在vs code中创建.net core项目

 vs codel下载地址:      根据版本选择自己的下载 我的是windows 当然安装过vscode 的就忽略这一步。安装好了打开安装插件 快捷键(ctrl+shift+x)或者点击左上一排的倒数第二个按钮 搜索 c#(包括语法高亮显示、智能感知、定义、查找所有引用等。调试支持。网络核心(coreclr)。) 安装一下 ,一般语言都是中文的 可能有的是英文的就还要安装一个简体中文包chinese (simplified) 。安装好了重启vs code。

  接下来用dotnet new 创建一个.net core web程序  ,输入了命令要稍等一下 ,有点慢 (可能我的机子慢 0.0)。 创建好了 命令进入创建的文件夹webfirst 输入code . 用vscode快速打开,并加载当前目录。你也可以打开vs code左上角打开文件夹来完成这一部操作。

 

 

 首次打开的时候会提示我们添加vs code配置文件,选择yes就好了,等出现.vscode文件夹后就可以开发、调试程序了。按f5或者菜单:调试->启动调试启动项目  出现错误咯

  遇到问题不要慌 看看 。这是因为net core2.1默认使用的https,如果使用kestrel web服务器的话没有安装证书就会报这个错。其实仔细看他的错误提示,其中有一句叫你执行一个命令安装证书的语句: dotnet dev-certs https –trust 

 安装就是了  这是启动就浏览器就出现了 hello word!好熟悉的感觉  你要相信这是真的 这就是.net core 的一个程序。神奇吧。

5.1关于 vs code c#插件配置介绍

使用vs code打开.net core 项目文件夹后悔根据提示生成vs code所需要的的配置文件,就是刚才说的c#配置文件。在.vscode文件夹下面有两个文件 :launch.json和tasks.json。tasks.json是用于配置执行那些命令行命令来构建项目,launch.json配置需要使用的调试器的类型。有了这两个文件 vs code就知道如何构建调式了。

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "command": "dotnet",
            "type": "process",
            "args": [
                "build",
                "${workspacefolder}/co.csproj",
                "/property:generatefullpaths=true",
                "/consoleloggerparameters:nosummary"
            ],
            "problemmatcher": "$mscompile"
        },
        {
            "label": "publish",
            "command": "dotnet",
            "type": "process",
            "args": [
                "publish",
                "${workspacefolder}/co.csproj",
                "/property:generatefullpaths=true",
                "/consoleloggerparameters:nosummary"
            ],
            "problemmatcher": "$mscompile"
        },
        {
            "label": "watch",
            "command": "dotnet",
            "type": "process",
            "args": [
                "watch",
                "run",
                "${workspacefolder}/co.csproj",
                "/property:generatefullpaths=true",
                "/consoleloggerparameters:nosummary"
            ],
            "problemmatcher": "$mscompile"
        }
    ]
}

 节点介绍:

command节点在这里表示使用dotnet命令;

args 在这里是参数对应路径dotnet.csproj 及build

结合起来就相当于指向了dotnet build 路径\dotnet.csproj

{
   // use intellisense to find out which attributes exist for c# debugging
   // use hover for the description of the existing attributes
   // for further information visit https://github.com/omnisharp/omnisharp-vscode/blob/master/debugger-launchjson.md
   "version": "0.2.0",
   "configurations": [
        {
            "name": ".net core launch (web)",
            "type": "coreclr",
            "request": "launch",
            "prelaunchtask": "build",
            // if you have changed target frameworks, make sure to update the program path.
            "program": "${workspacefolder}/bin/debug/netcoreapp3.1/co.dll",
            "args": [],
            "cwd": "${workspacefolder}",
            "stopatentry": false,
            // enable launching a web browser when asp.net core starts. for more information: https://aka.ms/vscode-cs-launchjson-webbrowser
            "serverreadyaction": {
                "action": "openexternally",
                "pattern": "^\\s*now listening on:\\s+(https?://\\s+)"                
            },
            "env": {
                "aspnetcore_environment": "development"
            },
            "sourcefilemap": {
                "/views": "${workspacefolder}/views"
            }
        },
        {
            "name": ".net core attach",
            "type": "coreclr",
            "request": "attach",
            "processid": "${command:pickprocess}"
        }
    ]
}

 节点介绍:(这里主要是configurations节点下)

program: 这里表示程序build以后生成的dll,默认是bin\debug\框架\项目名称.dll

args:用样式参数,这个参数可以传递到程序里

cwd:代码的目录

  访问的时候是https不信的试试看,要改成http。打开properties/launchsettings.json文件

{
  "iissettings": {
    "windowsauthentication": false, 
    "anonymousauthentication": true, 
    "iisexpress": {
      "applicationurl": "http://localhost:22028",
      "sslport": 44383
    }
  },
  "profiles": {
    "iis express": {
      "commandname": "iisexpress",
      "launchbrowser": true,
      "environmentvariables": {
        "aspnetcore_environment": "development"
      }
    },
    "webfirst": {
      "commandname": "project",
      "launchbrowser": true,
      "applicationurl": "https://localhost:5001;http://localhost:5000",
      "environmentvariables": {
        "aspnetcore_environment": "development"
      }
    }
  }
}

 

iissettings、profiles.helloweb配置节点都有启动绑定配置,因为vs code启动项目默认是不通过iis来host的,iissettings选项我们忽略就可以了。将applicationurl修改为http://localhost:5001 重启就看到了是http协议了

5.2项目结构说明:

 

 

 

 

 

.vscode目录:vs code项目配置目录,相当于.vs、.idea文件夹;

bin:编译输出目录;

obj:编译配置与中间目录,用于存放编译配置与编译中间结果;

properties:用于存放项目配置;

wwwroot:存放静态文件(js,css,img等);

webfirst.csproj:项目描述文件;

program.cs文件:应用程序入口类文件

startup.cs文件:asp.net core web应用启动类文件,用于项目启动前进行相关配置

 6、总结

现在大致已经会在vs code建一个.net core应用程序了,我门的目的不是这么简单,接下来就是在vs 2017 里面开始学习 asp.net core 了(asp.net core ==.net core ??),重点介绍一下program.csstartup.cs这两个文件,我觉得现在不知道他们是什么意思没事 接下来慢慢学吧只有知道了就好写程序了吧。哪里不对的多多指教^_^

本文链接