zoukankan      html  css  js  c++  java
  • .NET Core入门程序及命令行练习

    用命令行一步一步新建项目、添加Package、Restore、Build、Run 执行的实现方式,更让容易让我们了解.NET Core的运行机制。

    准备工作

    1. 安装.NET Core 运行环境,下载地址:https://www.microsoft.com/net/download
    2. 安装Notepad2替代notepad,Notepad2可以识别代码、以不同的颜色进行区分,下载地址:http://www.flos-freeware.ch/notepad2.html
    3. 了解几个cmd命令:
    C: 打开C盘 md supermva 创建supermva文件夹
    color a 命令行颜色改为绿色(更有逼格一些) cd supermva 打开supermva文件夹
    cls 清除命令行 dir 查看文件目录
    cd.. 返回上级目录 notepad 直接打开notepad
    cd 返回到跟目录 Tab 自动补全功能
    F7   查看历史命令 exit   退出cmd

    Dotnet Core信息

    dotnet.exe是.NET Core SDK为我们提供的一个重要的命令行工具,我们在进行.NET Core应用的开发部署的时候将会频繁地使用它。dotnet.exe提供了很多有用的命令。

    dotnet             查看已安装的dotnet信息

    dotnet --version   查看dotnet版本

    dotnet --help       查看dotnet命令帮助

    创建Console程序

    1)以下步骤实现了Console输出“Hello World”,也就相当于我们在VS中 创建控制台应用程序 → 还原Nuget包 → Build → 运行

    1. >md HelloWorld                    创建HelloWorld 文件夹,
    2. >cd HelloWorld                       定位到HelloWorld 文件夹
    3. >dir                       查看文件夹内容(此时为空)
    4. >dotnet new                          查看创建dotnet程序的说明和例子
    5. >dotnet new console             创建Console应用程序,supermva目录下生成了:Program.cs , supermva.csproj
    6. >notepad Program.cs            打开Program.cs文件,看到Main方法中输出了“Hello World”
    7. >notepad HelloWorld.csproj    打开.csproj项目文件,看到程序的基本属性:TargetFramework
    8. >dotnet restore                    还原Nuget包
    9. >dotnet build                       编译
    10. >dotnet run                     运行程序,【该命令会自动触发编译操作,第9步可以省略】,Console输出"Hello World"

    2) 可以修改代码,然后直接 dotnet run

    3) 程序说明

    .csproj项目文件:

    对于传统的.NET Framework应用来说,即使是一个空的C#项目,定义该项目的.csproj文件在内容和结构上显得比较复杂。这个.csproj文件的结构并不是为一般的开发者设计的,我们也不会直接编辑这个文件,而是利用Visual Studio间接地修改它。但是对于一个.NET Core应用来说,这个.csproj文件的结构变得相对简单并清晰了一些,以至于一般的开发人员可以直接编辑它。对于上面我们执行脚手架命令创建的控制台程序,定义项目的这个helloworld.csproj文件的完整内容如下。

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp2.0</TargetFramework>
      </PropertyGroup>
    </Project>

    如上面的代码片段所示,这个helloworld.csproj是一个根节点为<Project>的XML文件,与项目相关的属性可以根据分组定义在相应的<PropertyGroup>节点下。对于这个helloworld.csproj文件来说,它实际上只定义了两个属性,分别是通过<OutputType>和<TargetFramework>节点表示的编译输出类型和目标框架类型。由于我们创建的是一个针对.NET Core 2.0的可执行控制台应用,所以目标框架为“netcoreapp2.0”,编译输出为Exe(对于Self Contained发布模式)。

    dotnet build 编译:

    默认采用Debug编译模式,所以编译生成的程序集(helloworld.dll)会保存在indebug目录下。除此之外,针对不同目标框架编译生成的程序集是不同的,所以最终生成的程序集会采用基于目标框架的目录结构进行组织,所以最终生成的这个程序集被保存在“inDebug etcoreapp2.0”目录下。

    包安装:

    当我们安装了.NET Core SDK的时候,这些针对项目的SDK将被安装在“%programfiles% dotnetsdk{version}Sdks” 

    创建Web Application

    web应用中,也就是用户向服务器发出HTTP请求,服务器响应然后返回给用户请求结果。

    步骤同上,新建一个HelloWorld文件夹

    1、dotnet new web

    会自动生成以下文件

    wwwroot 文件夹

    包含静态文件,如 HTML 文件、JavaScript 文件和 CSS 文件。 有关详细信息,请参阅 ASP.NET Core 中的静态文件

    Program.cs

    包含程序的入口点。 有关详细信息,请参阅 .NET 通用主机

    Startup.cs

    包含配置应用行为的代码,例如,是否需要同意 cookie。 有关详细信息,请参阅 ASP.NET Core 中的应用启动

    namespace HelloWorld
    {
        public class Program
        {
            public static void Main(string[] args)
            {
                CreateWebHostBuilder(args).Build().Run();
            }
    
            public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
                WebHost.CreateDefaultBuilder(args)
                    .UseStartup<Startup>();
        }
    }
    View Code

    一个ASP.NET Core应用构建在ASP.NET Core框架之上,后者利用一个管道式的构建完成了对HTTP请求的监听、接收、处理和最终的响应。ASP.NET Core管道由一个服务器和若干中间件构成,当宿主(Host)程序启动之后,该管道被成功构建出来并利用服务器开始HTTP请求的监听

    从编程层面来看,ASP.NET Core管道的构建主要涉及WebHostWebHostBuilder这两个对象。我们可以根据命名将WebHost理解为Web应用的宿主,WebHost是由WebHostBuilder构建出来的。一般来说,我们会先创建一个WebHostBuilder对象,并将最终管道构建所需的各项设置通过相应的方法(绝大部分是扩展方法)注册到它上面。注册完成之后,我们直接利用这个WebHostBuilder创建出对应的WebHost,当后者被启动的时候,整个管道会根据我们预定义的设置被构建出来。

    2、运行 dotnet run 

    打开浏览器:http://localhost:5000/

    创建MVC

    步骤同上,新建一个HelloWorld文件夹

    1、dotnet new mvc

    会自动生成以下文件,

    2、运行 dotnet run 

    打开浏览器:http://localhost:5000/

  • 相关阅读:
    猪苓汤证与黄连阿胶汤(包括栀子豆豉汤)
    女子脸上长斑案
    js 标签云效果
    JS 黑客帝国文字下落效果
    修改webftp,在线文件管理
    利用百度地图API,获取经纬度坐标
    测试img在不显示时是否加载?
    PHP 生成指定大小随机图片
    超简易静态Web服务器
    js 编号生成器
  • 原文地址:https://www.cnblogs.com/peterYong/p/11481839.html
Copyright © 2011-2022 走看看