.NET Core RC2发布在即,我们试着用记事本编写一个ASP.NET Core
在.NET Core 1.0.0 RC2即将正式发布之际,我也应应景,针对RC2 Preview版本编写一个史上最简单的MVC应用。由于VS 2015目前尚不支持,VS Code的智能感知尚欠火候,所以我们直接采用最原始的记事本来编写这个MVC应用。[源代码从这里下载]
? 步骤一、安装最新的.NET Core SDK我们可以根据自身的操作系统环境从https://github.com/dotnet/cli上下载.NET Core最新的SDK,这个SDK包含.NET Core Runtime和一些有用工具(比如命令行)。如果你已经安装了老旧的版本,我个人建议你先将其卸载。 目前的版本为1.0.0-preview1-002702,我们可以执行dotnet –version命令确认是否是这个版本。 步骤二、定义源代码和配置我们创建一个目录(假设为C:HelloWorld)来存放MVC应用所有的源文件。下图展现了定义在这个目录下的所有文件。 定义NuGet.config我们在NuGet.config文件中定义应用程序使用的NuGet包所在的站点地址(https://www.myget.org/F/aspnetrc2/api/v3/index.json 1: <?xml version="1.0" encoding="utf-8"?> 2: <configuration 3: packageSources 4: add key="RC2" value="https://www.myget.org/F/aspnetrc2/api/v3/index.json" /> 5: </ 6: /configuration> 定义Project.json定义在Project.json文件中的所有配置如下所示,我们会发现它与RC1中的Project.json不太一样。RC2中,我们可以向定义普通依赖一样来选择运行时(Microsoft.NETCore.App),或者说运行时本质已经成为了一个一般意义上的以来。除了这个针对运行时的依赖,我们还添加了两个依赖,它们分别是“Microsoft.AspNetCore.Mvc”和“Microsoft.AspNetCore.Server.Kestrel”,前者定义了ASP.NET Core MVC的核心框架,后者则提供了一个针对Kestrel的Server (ASP.NET Core管道中的Server专门负责请求的监听、接收和回复)。我们在“framework”节点添加了一个名为“netcoreapp1.0”的框架,之前的名称叫做“dnxcore50”。 2: "version": "1.0.0-*",
"emitEntryPoint": true
7: "Microsoft.NETCore.App": { 8: "type": "platform",1)'> 9: "1.0.0-rc2-3002702" 10: },1)'> 11: "Microsoft.AspNetCore.Mvc":"1.0.0-rc2-final",1)'> 12: "Microsoft.AspNetCore.Server.Kestrel":"1.0.0-rc2-final" 13: },1)'> 14: "frameworks": { 15: "netcoreapp1.0": { 16: "imports": "dnxcore50" 17: }
18: }
19: }
定义入口程序启动应用的入口程序定义在Program.cs。如下面的代码片段所示,我们在这个文件中定义了一个Program类型,并在Main方法中编写了启动MVC应用的代码。具体来说,我们创建了一个WebHostBuilder对象通过调用扩展方法UseKestrel为构建的HTTP消息处理管道注册了一个Kestrel服务器。在调用UseStartup方法将Startup设置为启动类型之后,我们调用Build方法创建了一个WebHost对象。我们最终调用Run方法启动WebHost,进而启动了我们的MVC应用。 using Microsoft.AspNetCore.Builder;
4: public class Program 6: static void Main(string[] args) 8: new WebHostBuilder()
10: .UseStartup<Startup>() 12: .Run(); 14: } 定义初始化类型ASP.NET Core应用启动的时候会先执行一段初始化操作来构建一个完整的HTTP消息处理管道,这些初始化操作定义在Startup.cs。上面调用WebHostBuilder的UseStartup方法指定的类型Startup就定义在这个文件中。如下面的代码片段所示,我们在ConfigureServices方法中注册了与MVC相关的服务,并利用Configure方法将实现MVC框架的中间件注册到消息处理管道中。 class Startup
8: services.AddMvc(); 10:? 12: { 14: } using Microsoft.AspNetCore.Mvc; 3: { 5: string Index()
7: return "Hello World"; 9: }
|
- 加载测试ASP.NET网站
- asp.net – 如何从WCF客户端拦截raw soap request / respon
- asp.net – 是否可以从ColdFusion引用.NET程序集?
- asp.net-mvc – 具有插件和多租户支持的ASP.NET MVC应用程序
- 如何写一段死锁代码
- asp.net-mvc – Asp.net 5(vnext)是否可以使用?
- Asp.Net Core基于JWT认证的数据接口网关Demo
- asp.net – 没有Javascript的Google Analytics
- asp.net-mvc – MVC OAUTH VS2012模板,在哪里输入redirect_
- 基于ASP.Net Core开发的一套通用后台框架
- ASP.NET MVC 2.0 – RenderPartial和RenderActio
- asp.net – 如何以完全信任的方式部署IIS ASP .N
- asp.net – 是否有可能检测到页面刷新(F5)服务器
- asp.net-mvc – 找不到CrystalImageHandler.aspx
- asp.net-mvc – System.Web.Optimization和Micro
- asp.net-mvc-4 – 从数据库上传模型时丢失dataAn
- asp.net – 在web.config中创建一个字符串并在we
- asp.net-mvc – LinkedIn登录ASP.NET MVC 5应用程
- 基于Azure IoT开发.NET物联网应用系列-全新的Azu
- asp.net – 为什么viewstate序列化为表单中的隐藏