65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP.NET Core - 入门

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.76/5 (12投票s)

2016年11月17日

CPOL

5分钟阅读

viewsIcon

17089

ASP.NET Core 入门介绍

引言

如今,每个人都在谈论开源、跨平台开发。微软一直以其 Windows 产品而闻名,但现在,我们正处于开发的新时代。为此,市场上出现了一个革命性的新产品——Microsoft .NET Core。

.NET Core 是一个免费的开源、跨平台框架,用于构建现代的云原生应用程序,每个 .NET 开发者都为此感到自豪。现在,平台不再有界限,每个 .NET 开发者都可以说,是的,我是平台独立的,我使用的是开源技术。

在软件开发的革命中,微软于 2000 年推出了其首个 .NET Framework,即 .NET Framework 1.0。该框架在软件开发领域扮演着重要角色。人们喜爱微软技术产品,因为这些产品易于使用和学习。

背景

当 .NET Framework 首次进入市场时,它带来了 ASP.NET、C#、VB.NET、Web 服务、多线程程序集以及许多其他功能。时光飞逝,.NET Framework 经历了许多版本,如 1.0、1.1、2.0、3.5、4.0、4.5、4.6 等。但所有这些框架都只支持特定平台,即 Windows。就我而言,我有机会接触过 .NET Framework 的所有版本。

现在,在 2016 年,微软推出了一项新的革命——Microsoft .NET Core 1.0。人们一直喜爱 ASP.NET,因为它在万维网上运行。今天,我们将作为入门来了解 ASP.NET Core。

ASP.NET Core 是一个全新的开源、跨平台框架,用于创建现代的 Web 和云原生系统,这意味着你不再仅限于 Windows,可以在 Linux、Mac 等任何地方运行。

ASP.NET Core 特性

  1. 跨平台、开源 - 现在可以在 Linux、Windows、Mac 等任何地方运行你的应用程序。
  2. 快速开发 - 在浏览器上快速工作。
  3. 在你的编辑器中工作 - 现在,你不仅可以在 Visual Studio 中工作,还可以选择 Visual Studio Code,如果你想在命令行中操作,也可以。

现在的问题来了,在哪里可以下载 .NET Core?这里是官方网站。
只需访问 http://dot.net。

在这里,你可以轻松下载 Visual Studio 2015、.NET Core 和 Xamarin。
现在,我将告诉你 .NET Framework 包含什么,.NET Core 包含什么。

.NET Framework 包含

  1. ASP.NET 4.6 (System.web)
  2. WebForms
  3. MVC
  4. Web API

.NET Framework 以 Windows 平台而闻名。

.NET Core 包含

  1. ASP.NET Core MVC
  2. ASP.NET Core 1.0 (Microsoft.AspNetCore)

.NET Core 以跨平台开发而闻名。现在取决于你的需求,如果你想创建可以在不同平台上运行的应用程序,请选择 .NET Core。如果你对 Windows 满意,则有 .NET Framework。

Using the Code

如果你已经从 .NET 网站下载了 .NET Core(如果还没有,请下载,它是免费的),那么我们来用 .NET Core 写一些代码。
首先,如果你想了解你的 dotnet core 信息,只需打开命令提示符并输入 dotnet
例如 - C:\>dotnet 然后按 Enter 键。

正如你所见,我们目前拥有 1.0.1 版本。
如果你已经在使用 .NET Framework,你总是通过 Visual Studio 创建应用程序。今天我将告诉你,你可以在命令行中创建新的 .NET Core 项目,是的,就在命令行中。

让我们看看如何做到。

  1. C:\>Md testCore - 这将创建一个新目录。
  2. C:\>cd testcore - 这将进入该目录
  3. 现在输入 c:\>dotnet new - 这将创建一个新项目。

C:\testCore> dotnet new
c:\testCore> 中创建了新的 C# 项目。
现在通过 Visual Studio Code 或 Visual Studio 打开此项目。这是一个简单的 C# 应用程序,在解决方案资源管理器中看起来是这样的。

让我们来了解一下它的文件结构。

1. Program.cs

这是一个普通的 HelloWorld 控制台应用程序,你可以在这里根据需要进行更改。

using System;
namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

2. project.json

这是一个简单的 json 文件,它将告诉你你的应用程序依赖于哪些依赖项。因此,在这里,你将为你未来的应用程序添加依赖项。

    {
  "version": "1.0.0-*",
  "buildOptions": {
    "debugType": "portable",
    "emitEntryPoint": true
  },
  "dependencies": {},
  "frameworks": {
    "netcoreapp1.0": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.0.0"
        }
      },
      "imports": "dnxcore50"
    }
  }
}

3. project.lock.json

这是你的包的完整依赖图。

现在,如果你想运行你的代码,按 F5 键,或者在命令提示符中输入 dotnet run,就完成了。如果你在命令提示符中位于项目文件夹下,你的应用程序将运行。

这就是你的第一个 Hello World 应用程序,你可以在 Windows、Mac、Linux 上测试此应用程序,这取决于你,因为你拥有跨平台的强大功能。

现在,我们将创建我们的第一个 ASP.NET Core 应用程序。为此,我们将在 project.json 文件中添加一些依赖项。所以,将此代码添加到 project.json 的 dependencies 部分。

    "dependencies": {
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1"
  },

什么是 Kestrel?

Kestrel 是一个用于运行 ASP.NET Core 应用程序的 Web 服务器,这就是我们添加此依赖项的原因。
现在,在 program.cs 中为此服务器创建一个宿主。

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using System;
namespace ConsoleApplication
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()//Server
                .Configure(app =>
                {
                    app.Run(context => context.Response.WriteAsync("Hello in Asp.net Core"));
                })
                .Build();
            host.Run();
        }
    }
}

如上代码所示,我们有一个带有 WebHostBuilder 类的宿主对象,我们配置应用程序逻辑,构建并运行我们的宿主。现在,按 F5 运行项目。一旦你运行项目,屏幕将显示如下:

正如你所见,你的应用程序已被托管,并且你有一个 URL localhost:5000。现在打开你的 Web 浏览器,输入该 URL 并运行它。

正如你所见,我们的第一个 ASP.NET Core 应用程序正在 Web 浏览器中运行。这就是 ASP.NET Core 的一个简单介绍。如果你对本文有任何疑问,请在评论框中写下你的评论。

编程愉快!

© . All rights reserved.