码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2017-08-22 12:33:43      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:view   trim   eth   ret   static   efault   font   using   center   

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应用程序(探索最小架构)

标签:view   trim   eth   ret   static   efault   font   using   center   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!