首页 > Web开发 > 详细

03、手工创建Asp.Net Core 2.0 web应用程序(探索最小架构)

时间:2017-08-22 12:19:13      阅读:444      评论:0      收藏:0      [点我收藏+]
03、手工创建Asp.Net Core 2.0 web应用程序(探索最小架构)
一、创建一个干净的控制台程序
这里我们使用的开发工具是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);
            });
        }
    }
}
View Code
效果如下:
技术分享
至此,我们使用Asp.Net Core 2.0创建了一个最小架构的Web应用程序。

8.查看一下编译后的文件
技术分享

我们并没有看到我们使用Nuget应用的两个包,这也说明.NetCore2.0做了运行时包仓优化。参考:02、NetCore2.0--引用系统和第三方包时的优化

 

03、手工创建Asp.Net Core 2.0 web应用程序(探索最小架构)

原文:http://www.cnblogs.com/netcore2/p/7410853.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!