个人做商业网站需要什么,wordpress男性主题,谷歌搜索引擎营销,怎样查询网站的点击量因为自己到开发电脑转到Mac Air#xff0c;之前的Webform/MVC应用在Mac 跑不起来#xff0c;而且.Net Core 2.0 已经比较稳定了。1. 为什么会有跨平台的.Net Core 近年来#xff0c;我们已经进入云计算时代#xff0c;在云平台的PaSS和SaSS上也是发生了大幅度的进化#x… 因为自己到开发电脑转到Mac Air之前的Webform/MVC应用在Mac 跑不起来而且.Net Core 2.0 已经比较稳定了。1. 为什么会有跨平台的.Net Core 近年来我们已经进入云计算时代在云平台的PaSS和SaSS上也是发生了大幅度的进化以docker为代表。微软的Azure平台google的GAE等等各大云计算厂商都提供了PaSS平台我们的应用程序要迁移到这样的平台上都需要进行重写。Docker给云计算带来一场革新Docker可以被认为是互联网的集装箱可以灵活地封装软件令其更快速地传播。这对现代互联网来说是一件大事因为软件都会运行上成百上千的机器上。Docker可以改变我们开发软件的方式令每个人都能便捷地利用大量的运算能力。Docker可以让开发者专注于开发软件不需要考虑在哪里运行自己的软件这才是云计算的发展方向。开发者考虑应用本身就足够了。以往的.NET 很难进入以docker为代表的云计算开发平台特别是Windows不支持Docker,因为那完全是互联网服务的基石--Linux系统才有的技术微软为了适应这样的云计算潮流在Windows Server 2016/Windows 10上支持了docker也重新开发跨平台.NET Core的应用运行平台。2. 对Old .Neter, 如何尽快熟悉.Net Core 呢?我们在vs.net 新建一个Empty Core solution, 看看程序入口program.cs,它还是一个console程序. 多引入了4个命名空间. ASP.NET Core应用的寄宿依赖于一个WebHost对象通过对应的CreateDefaultBuilder的工厂方法创建启动一个WebHost, web服务器. 注册调用了StartUp类. 这个类里面会注册一些中间件.using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Threading.Tasks;using Microsoft.AspNetCore;using Microsoft.AspNetCore.Hosting;using Microsoft.Extensions.Configuration;using Microsoft.Extensions.Logging;namespace sso{ public class Program { public static void Main(string[] args) { BuildWebHost(args).Run(); } public static IWebHost BuildWebHost(string[] args) WebHost.CreateDefaultBuilder(args) .UseStartupStartup() .Build(); }}startup类里有configureServices和configure方法, 调用顺序是先ConfigureServices后Configure。这2个的区别是: 其中和Dependecy Injection有关的方法是放在ConfigureServices()中Configure()是和Middleware相关的方法public class Startup { // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID398940 public void ConfigureServices(IServiceCollection services) { } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.Run(async (context) { await context.Response.WriteAsync(Hello World!); }); } }默认Empty的solution是只有一个Hello World,我们看一下典型的数据库应用,这个文件会是怎么样的,引入EF,MVC等中间件public void ConfigureServices(IServiceCollection services){ // Add framework services. services.AddDbContextApplicationDbContext(options options.UseSqlServer(Configuration.GetConnectionString(DefaultConnection))); services.AddIdentityApplicationUser, IdentityRole() .AddEntityFrameworkStoresApplicationDbContext() .AddDefaultTokenProviders(); services.AddMvc(); // Add application services. services.AddTransientIEmailSender, AuthMessageSender(); services.AddTransientISmsSender, AuthMessageSender();}public void Configure(IApplicationBuilder app, IHostingEnvironment env){ if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); app.UseBrowserLink(); } else { app.UseExceptionHandler(/Error); } app.UseStaticFiles(); app.UseMvc(routes { routes.MapRoute( name: default, template: {controller}/{actionIndex}/{id?}); });}如果要引入其他中间件,比如这个,可以参考下面文章.ASP.NET Core 中间件之压缩、缓存asp.net core 2.0 查缺补漏中间件配置主要是用Run、Map和Use方法进行配置,请参考这个文章 ASP.NET Core 运行原理剖析 犯了一个错误,在 https://docs.microsoft.com/en-us/aspnet/core/fundamentals/middleware/?tabsaspnetcore2x 这里有提到Dont call next.Invoke after the response has been sent to the client. Changes to HttpResponse after the response has started will throw an exception.错误代码如下: 这个代码运行时会出错,错误是该网页无法正常运作localhost 意外终止了连接。ERR_INCOMPLETE_CHUNKED_ENCODING原文地址 http://www.cnblogs.com/zitjubiz/p/net_core_daily_1.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com