快速搭建.net core并在Linux服务器上运行
.NET Core发展史
.NET Core是由Microsoft开发,目前在.NET Foundation(一个非营利的开源组织)下进行管理
.NET Core是用C#和C++编写的,并采用MIT协议作为开源协议。第一个版本的.NET Core 1.0是在2016年发布的,功能有限。NET Core 2.0于2017年8月14日发布。在这个版本中发布的两个核心框架是ASP.NET Core2.0和 Entity Framework Core 2.0。
目前最新的.net core 版本为 5.0
微软的版本更新一般情况包括测试版本--使用版本--稳定版本。不特定说明外一般情况下.0版本为测试版本。在.0版本之后的0.1版本为一个稳定版本。建议使用2.1 3.1这样的版本。.1版本一般为稳定的LTS官方至少维护3年。
下面是采用.net core 3.1搭建MVC项目
① 创建一个.net core项目。
本文采用的编辑器为VS 2019,这里需要注意.net core 3.0以上的项目必须使用vs 2019才能创建。
此时一个完整的.net core 3.1项目就已经搭建好了。但是既然我们创建的是MVC架构,那么我们就需要一个标准的MVC模型:
Model(模型)表示应用程序核心(比如数据库记录列表)。
View(视图)显示数据(数据库记录)。
Controller(控制器)处理输入(写入数据库记录)。
手动创建3个文件夹(当然创建项目时也可以自动创建)
② 写入一个测试页面
IndexController层:
public class IndexController : Controller
{
/// <summary>
/// 控制器主页面
/// </summary>
/// <returns></returns>
public IActionResult Index()
{
return View();
}
}
view视图层:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>主页面</title>
</head>
<body>
<h2>
当前时间为: @DateTime.Now.ToString("yyyyMMdd dd:mm:ss");
</h2>
</body>
</html>
现在运行项目你会发现依旧是最初的" hello word "界面,并没有显示我们预定的时间,这是为什么呢?这时你会发现在项目下面有一个Startup.cs类,这是一个至关重要的文件,项目的启动类。其中包含了路由的配置。
Startup 类配置服务和应用的请求管道。
ASP.NET Core 应用使用 Startup 类,按照约定命名为 Startup。Startup 类:
可选择性地包括 ConfigureServices 方法以配置应用的服务 。 服务是一个提供应用功能的可重用组件。
在 ConfigureServices 中注册服务,并通过依赖关系注入 (DI) 或 ApplicationServices 在整个应用中使用服务 。
3.包括 Configure 方法以创建应用的请求处理管道。
在应用启动时,ASP.NET Core 运行时会调用 ConfigureServices 和 Configure
接下来我们将服务添加到容器中:
/// <summary>
/// 此方法由运行时调用。使用此方法可将服务添加到容器中。
/// </summary>
/// <param name="services"></param>
public void ConfigureServices(IServiceCollection services)
{
services.AddControllersWithViews();
}
然后在Configure方法中添加路由
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRouting(); app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Index}/{action=Index}/{id?}"
);
});
}
路由配置完成现在开始运行项目:
此时界面报错了!根据页面提示我们发现创建的视图层有问题,我们创建的视图文件夹为View而实际应该为Views。那么我们要将View文件夹目录名称修改为Views如下
此时我们再次运行出现下面的视图说明已经OK了:
Linux服务部署
1、首先需要注册该机器的秘钥,每台机器只需要注册一次既可。
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
==注意:1,笔者是虚拟机部署安装的CentOs 7 网络默认没有打开,所以需要配置网络
2、linux用户的权限问题会导致失败,请确保您的当前用户为su用户:可直接 > su
2、sudo yum install dotnet-sdk-3.1
这个根据项目需求,笔者此处安装的是 core 3.1的sdk
以上第二步可能会消耗一段时间,不妨喝杯茶改改BUG。。。。。。。。
3、查看是否安装成功
dotnet --version
如出现以下信息则表示安装成功:
[ ]
3.1.0
3.此时linux系统上.net core sdk已经安装完成了。
部署项目: 因为此处我是虚拟机,有界面的linux系统所以我直接拖入或者复制进我的项目:
全部拷贝进Linux服务器下的文件夹下,然后执行一下命令:
[ ]
Hosting environment: Production
Content root path : /home/xiaoke/mvc
Now listening on : http://localhost:57984
在浏览器访问 : http://localhost:57984 出现下面的界面表示部署成功