软件项目开发管理心得

一 .关于NET Core入门介绍

1.Net Core简介

.NET Core是一个开源通用的开发框架,支持跨平台,即支持在Window,macOS,Linux等系统上的开发和部署,并且可以在硬件设备,云服务,和嵌入式/物联网方案中进行使用。
它具有以下优点:

1.统一编程模型
2.可测试性
3.编码更简单高效
4.支持Blazor
5.跨平台
6.支持开放源代码
7.集成开发工作流
8.支持gRPC
9.云就绪配置系统
10.内置依赖项注入
11.支持模块化HTTP请求管道
12.能托管到服务器或容器
13.支持并行版本控制
14.支持新式WEB开发工具

2.如何使用Visual Studio创建ASP.NET Core项目

1.点击 “文件”主菜单下的“新建”菜单项中的“项目…”子菜单项,打开“创建新项目”对话框,在其中选中“ASP.NET Core Web应用程序”模板。
2.在“配置新项目”对话框主要输入项目名称并选择项目保存位置,最后点击“创建”按钮来创建项目。
3.在“创建新的ASP.NET Core Web应用程序”对话框中,选择“Web应用程序(模型视图控制器)”项目类型,该项目类型就是以前的MVC项目。

说明:ASP.NET Core主要支持Web Pages项目、MVC项目和Web API项目,不支持基于WebForm框架的Web应用程序项目。
ASP.NET Core Web应用程序项目跟以前的ASP.NET Web应用程序项目有以下3点区别:
在ASP.NET Core Web应用程序项目使用appsettings.json配置文件。。
JavaScript、图片和样式表文件都存放在wwwroot文件夹下对应的子文件夹中。
路由配置、中间件配置、依赖配置都在Startup.cs文件中*

二 .NET Core 的使用

1.NET Core的启动

ASP.NET Core应用程序本质上是一个独立的控制台应用程序,这个Web服务器称为Kestrel Web服务器,并且.NET Core支持的所有平台和版本均支持Kestrel。 ASP.NET Core应用程序的程序入口在Program.cs的文件中

public class Program
{
    public static void Main(string[] args)
    {
        //调用CreateHostBuilder()方法创建IWebHostBuilder实例。
        //调用Build()方法,IWebHostBuilder实例负责创建IWebHost实例对象
        //调用Run()方法启动IWebHost实例。
        CreateHostBuilder(args).Build().Run(); 
    }
    public static IHostBuilder CreateHostBuilder(string[] args) =>
        //创建IWebHostBuilder实例
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                //使用Startup类中所定义的环境、中间件和服务配置
                webBuilder.UseStartup<Startup>();
            });
}

Startup类是应用程序的入口,这个类可以设置配置服务,开发者还可以在Startup类中配置请求管道,该管道将用于处理应用程序的所有请求。
ASP.NET Core会在主程序集中搜索名为“Startup”的类,开发者也可以指定一个其他程序集用于检索

注意:ASP.NET将基于命名空间选择类,以匹配项目的根命名空间优先,否则使用第一个按字母排列的命名空间中的类。

2.NET Core 配置

在ASP.NET
Core中将应用程序设置与用户的配置分离,使得配置系统简洁,功能更强大,配置提供程序将以键值对的形式从各种配置源读取配置数据。

ASP.NET Core Web应用程序项目中包含三个配置文件:

launchSettings.json是启动配置文件。 appsettings.json是程序运行时应用的配置文件。
appsettings.Development.json是程序调试时(即开发时)应用的配置文件。
默认配置文件基于JSON文件格式,由键值对组成。键和配值的约定规则如下:

配置键采用以下约定:

不区分大小写 键相同时取键上设置的最后一个值 API中键和值使用冒号分隔符“:”分隔 环境变量中所有平台均支持采用双下划线“__”
ConfigurationBinder类支持使用配置键中的数组索引将数组绑定到对象 值是字符串 NULL值不能存储在配置中或绑定到对象

ASP.NET Core应用的依赖注入容器中,提供了实现IConfiguration的对象,可以注入到MVC的控制器中,然后通过IConfiguration对象读取配置信息。

在ASP.NET Core MVC Web应用程序的appsettings.json中配置网站配置信息示例

{
    "SiteConfig": {
        "Name": "商城后台管理""Copyright": "版权所有:商城软件开发组"},
    ...省略代码...
}

因为SiteConfig是自定义的配置,所以需要创建对应配置类来保存配置数据。
所以 在项目的Models文件夹中添加SiteConfig类,该类包含Name和Copyright属性

namespace SettingDemo.Models
{
    public class SiteConfig
    {
        public string Name { get; set; }
        public string Copyright { get; set; }
    }
}

另外配置:

using Microsoft.Extensions.Configuration;
using SettingDemo.Models;
public class ShopController : Controller
{
    private IConfiguration config;
    public ShopController(IConfiguration configuration)    // 依赖注入
    {
        config = configuration;
    }
    public IActionResult Index()
    {
        // 获取并绑定配置项
        SiteConfig siteConfig = config.GetSection("SiteConfig").Get<SiteConfig>();
        return View(siteConfig);
    }
}

注意:在浏览器中显示的结果有中文乱码,是因为appsettings.json的文档编码是GB2312,这里需要通过记事本或Notepad++等工具将文档编码转换为UTF-8或UTF-8 BOM。

使用示例:【在appsettings.json加如下配置】

{
  //新增配置
  "ShopConfig": {
    "name": "美丽商城",
    "footer": "美丽商城页脚区域"
  },
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    }
  },
  "AllowedHosts": "*"
}

在Models创建一个SiteConfig.cs配置项类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace web.Models
{
    public class SiteConfig
    {
        public string name { get; set; }
        public string footer { get; set; }
    }
}

在需要使用的地方,创建一个ShopController.cs类:

using Microsoft.AspNetCore.Mvc;
//需要使用该扩展,才能使用IConfiguration
using Microsoft.Extensions.Configuration;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using web.Models;
namespace web.Controllers
{
    public class ShopController : Controller
    {
        private IConfiguration configs;
        public ShopController(IConfiguration config)
        {
            configs = config;
        }
        public IActionResult Index()
        {
            //获取配置节点,然后转存到模型中,方便前端获取
            var info = configs.GetSection("ShopConfig").Get<SiteConfig>();
            return View(info);
        }
    }
}

首页使用:

@{ 
    Layout = null;
}
@model web.Models.SiteConfig;
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <meta charset="utf-8" />
</head>
<body>
    <h1>@Model.name</h1>
    <hr />
    <h1>@Model.footer</h1>
</body>
</html>
  • 20
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值