科技
asp源码下载(ASP.NET Core- 全新的ASP.NET !)

最新版本的 ASP.NET 叫做 ASP.NET Core (也被称为 ASP.NET 5) 它颠覆了过去的 ASP.NET。

ASP.NET Core 1.0是一个开源跨平台的开发框架,用于构建基于云的现代 Web 应用 。它是从底层开始重新构建来提供性能优良的Web应用开发框架,可以部署在云上或者本地服务器上。另外,它使得 ASP.NET 应用更加精简和模块化(可以根据你的应用需要向里面添加其他模块),跨平台(你可以很容易的在 Windows, Mac or Linux 上开发和部署你的应用),云优化(你可以在云上在云上部署和调试你的应用)。

对于使用 ASP.NET 旧版本的我们来说,这意味着什么?

ASP.NET Core: 全新的ASP.NET !nerror="javascript:errorimg.call(this);">

下面列出 ASP.NET Core 1.0 的核心变化.

你可以在 OSX 和 Linux上运行 ASP.NET Core 应用,这对于 ASP.NET 来说,这具有跨时代的意义,也给 ASP.NET 开发者和设计师们带来了全新的体验。ASP.NET Core 具有两个运行时,这意味着你可以选择不同的运行环境来部署你的应用,使得你的应用将更加灵活。

你也可以创建只运行在 windows 下完整 .NET 框架的 ASP.NET Core 应用。

需要明确的是,ASP.NET 4.6 更加成熟。它如今久经考验并且现已发布并可使用。ASP.NET Core 1.0 是1.0 发布版本,包含 Web API 和 MVC,但是现在还没有 SignalR 和 Web Pages。,它也不支持VB 和 F# 语言。

ASP.NET Core的跨平台,让它不再只依赖 Visual Studio,开发者和设计师们可以在自己喜欢的环境上工作。比如 Sublime Text,WebStorm ,这真是太棒了!

如果你使用 Visual Studio 创建了一个空的 ASP.NET Core 工程,那么你将会看到下面的惊喜。(除非你没有使用之前的 ASP.NET 创建过任何项目)

你感觉到惊喜了吗?新的工程结构完全不一样了, 工程模板焕然一新,包含以下的新文件:

· Program.cs: 这个文件包含了 ASP.NET Core RC2 应用的 Main 方法,负责配置和启动应用程序。

· wwwroot:你的静态文件将被放置在这个文件夹,它们都将作为资源直接提供给客户端,包含 HTML,CSS 和 Javascript 文件。

ASP.NET Core: 全新的ASP.NET !nerror="javascript:errorimg.call(this);">

ASP.NET Core: 全新的ASP.NET !nerror="javascript:errorimg.call(this);">

· References: 它包含了 .NETCoreApp 第一个版本运行时的引用。

是的,WebForms 不再是 ASP.NET 5 的一部分,这真令人悲伤。你可以继续使用 VS2015 的 .NET 4.6 来构建 Web Forms 应用,但是却不能体会 ASP.NET 5 的新特性了。

除了 WebForms, the .NET Core 也没有包含 Windows Forms, WCF, WPF, Silverlight 等等。

目前,在当前 ASP.NET Core 1.0 RC2版本中, VB.NET 和 F# 也不被支持。

ASP.NET Core: 全新的ASP.NET !nerror="javascript:errorimg.call(this);">

在之前的 ASP.NET MVC 中, MVC 控制器和 Web API 控制器是不同的。 一个 MVC 控制器使用基类 System.Web.MVC.Controller,一个 Web API 控制器使用基类System.Web.Http.ApiController。 在 MVC Core 中,会为它们提供一个共同的基类,就是Microsoft.AspNetCore.Mvc.Controller

View Components

View Components 支持完全异步,这允许你创建异步的视图组件。

下面是 View Component 的视图:

<h3>Person List</h3>  
<ul>  
    @foreach (var p in Model) {  
        <li>@string.Format("{0} {1}",p.FirstName,p.LastName)</li>  
    }  
</ul> 

新指令: @inject, @using, @inherits

这是一个简单的类,来展示一些异步的方法。

using System.Threading.Tasks;  
using System.Linq;  
  
namespace MVC6Demo.Models  
{  
    public class Stats  
    {  
        private PersonModel _persons = new PersonModel;  
  
        public async Task<int> GetPersonCount {  
 return await Task.FromResult(_persons.GetAll.Count);  
        }  
  
        public async Task<int> GetRegisteredPersonCount {  
 return await Task.FromResult(
 _persons.GetAll.Where(o => o.Status.ToLower.Equals("registered")).Count);  
        }  
  
        public async Task<int> GetUnRegisteredPersonCount {  
 return await Task.FromResult(
 _persons.GetAll.Where(o => o.Status.ToLower.Equals("")).Count);  
        }  
    }  
} 

这是不是很酷?

Tag Helpers

所以相比于以下代码:

@using (Html.BeginForm("Login", "Account", FormMethod.Post, 
        new { @class = "form-horizontal", role = "form" }))
 {
 @Html.AntiForgeryToken
 <h4>Use a local account to log in.</h4>
 <hr />
 @Html.ValidationSummary(true, "", new { @class = "text-danger" })
 <div class="form-group">
 @Html.LabelFor(m => m.UserName, new { @class = "col-md-2 control-label" })
 <div class="col-md-10">
 @Html.TextBoxFor(m => m.UserName, new { @class = "form-control" })
 @Html.ValidationMessageFor(m => m.UserName, "", new { @class = "text-danger" })
 </div>
 </div>
}

ASP.NET Core 不止可以部署在IIS上

后来 OWIN作为应用程序和 Web 服务器中间的接口出现。 Microsoft 开发了Katana作为一个 OWIN 的实现,可以部署 ASP.NET Web API, SignalR 和其他第三方框架,这些框架可以在 IIS 和 IIS Express, Katana's 自托管主机和自定义主机。

新的HTTP请求管道

动态的Web开发

ASP.NET Core: 全新的ASP.NET !nerror="javascript:errorimg.call(this);">

ASP.NET Core: 全新的ASP.NET !nerror="javascript:errorimg.call(this);">

在过去的 MVC 和 Web API 中,使用路由属性可能会导致一些问题,尤其是你正在做一些代码重构。这是因为路由必须设定为字符串类型,当你修改了控制器的名字,你就必须修改路由属性的字符串

集成的依赖注入 (DI)

集成 Grunt, Gulp and Bower

内置的AngularJs模板

ASP.NET Core: 全新的ASP.NET !nerror="javascript:errorimg.call(this);">

SignalR 3

Web.Config

这是一个新的配置文件的样子:

由于 ASP.NET Core 都是插件化的,你需要配置 Stratup 类的源代码,就像下面这样:

 public Startup(IHostingEnvironment env)
        {
 var builder = new ConfigurationBuilder
 .SetbasePath(env.ContentRootPath);

 builder.AddEnvironmentVariables;
 Configuration = builder.Build;
        }
        public IConfigurationRoot Configuration { get; }
        public void ConfigureServices(IServiceCollection services)
        {
 services.AddMvc;
 services.AddTransient<MVC6Demo.Models.HeroStats>;
        }

        public void Configure(IApplicationBuilder app)
        {
 app.UseDeveloperExceptionPage;


 app.UseMvc(m => {
 m.MapRoute(
 name: "default",
 template: "{controller}/{action}/{id?}",
 defaults: new { controller = "Home", action="Index"});
 });
        }

在之前的 ASP.NET MVC 中,默认的测试框架是 Visual Studio 单元测试框架(有时候也叫作mstest),这个框架使用 [TestClass] 和 [TestMethod] 特性来描述一个单元测试。

绝对的免费和开源

我认同开源的 .NET 会产生重大的意义,它产生了积极的商业意义和社区意义,十分感谢微软所做出的工作。

文章来源:By Vincent Maverick Durano, 10 Jun 2016


顶一下()     踩一下()

热门推荐

发表评论
0评