03、NetCore2.0网页应用程序之搭建最小框架_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 03、NetCore2.0网页应用程序之搭建最小框架

03、NetCore2.0网页应用程序之搭建最小框架

 2017/8/22 19:08:50  敦格  程序员俱乐部  我要评论(0)
  • 摘要:03、NetCore2.0网页应用程序之搭建最小框架这里我们不使用VS2017或者CLI命令的方式创建Asp.NetCore2.0网页应用程序,而是完全手工的一点点搭建一个Web框架,以便更好的理解Asp.NetCore2.0网页应用程序的最小脉络框架。一、创建一个干净的控制台程序这里我们使用的开发工具是VS2017项目只有一个Program.cs类。二、让控制台程序可以响应Web请求1.让控制台程序成为Web宿主,需要引用WebHost包Microsoft.AspNetCore
  • 标签:程序 net 应用 应用程序 网页
03、NetCore2.0网页应用程序之搭建最小框架 这里我们不使用VS2017或者CLI命令的方式创建Asp.Net Core 2.0网页应用程序,而是完全手工的一点点搭建一个Web框架,以便更好的理解Asp.Net Core 2.0网页应用程序的最小脉络框架。 一、创建一个干净的控制台程序 这里我们使用的开发工具是VS2017 项目只有一个Program.cs类。   二、让控制台程序可以响应Web请求 1.让控制台程序成为Web宿主,需要引用WebHost包 Microsoft.AspNetCore.Hosting   2.我们不想用IIS作为服务器,可以使用Kestrel作为Web服务器 Microsoft.AspNetCore.Server.Kestrel   3.使用Nuget应必要包之后的项目结构   4.指定Web服务器,并启动WebHost 在Main方法中加入如下代码
using Microsoft.AspNetCore.Hosting;

namespace MyWeb
{
    class Program
    {
        static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()           // 指定WebServer为Kestrel
                .UseStartup<Startup>()  // 配置WebHost
                .Build();

            host.Run();                 // 启动WebHost
        }
    }
}

 

新建一个Startup类,用于配置WebHost
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;

namespace MyWeb
{
    class Startup
    {
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            app.Run(c => {
                return c.Response.WriteAsync("Hello dotnet core.");
            });
        }
    }
}
5.启动我们这个干净的Web应用程序   6.访问网站   7.让网站的响应能力强一点
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Logging;
using Microsoft.AspNetCore.Http;

namespace MyWeb
{
    class Startup
    {
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
        {
            app.Run(c => {
                var req = c.Request.Path.ToString().TrimStart('/');
                var res = string.Empty;

                switch (req)
                {
                    case "1":
                        res = "one";
                        break;
                    case "2":
                        res = "two";
                        break;
                    default:
                        res = "none";
                        break;                        
                }

                var mtd = string.Empty;
                switch (c.Request.Method)
                {
                    case "GET":
                        mtd = "请求方式: get";
                        break;
                    case "POST":
                        mtd = "请求方式:post";
                        break;
                    default:
                        mtd = "请求方式:none";
                        break;
                }

                return c.Response.WriteAsync(res);
            });
        }
    }
}
logs_code_collapse">View Code 效果如下: 至此,我们使用Asp.Net Core 2.0创建了一个最小架构的Web应用程序。MVC、WebAPI是在此基础上的更高层次的封装。

8.查看一下编译后的文件

我们并没有看到我们使用Nuget应用的两个包,这也说明.NetCore2.0做了运行时包仓优化。

参考:02、NetCore2.0优化之Nuget包

发表评论
用户名: 匿名