OsharpNS 轻量级. net core 快速开发框架简明入门教程
教程目录
从零开始启动 Osharp
1.1. 使用 OsharpNS 项目模板创建项目
1.2. 配置数据库连接串并启动项目
1.3. OsharpNS.Swagger 使用实例 (登录和授权)
1.4. Angular6 的前端项目启动
Osharp 代码生成器的使用
2.1 生成器的使用
2.2 生成代码详解 (如何自己实现业务功能)
Osharp 部分模块使用
3.1 Osharp.Redis 使用
3.2 Osharp.Hangfire 使用
3.3 Osharp.Permissions 使用
Osharp 深度学习和使用
4.1 切换数据库 (从 SqlServer 改为 MySQL)
4.2 多上下文配置 (多个数据库的使用)
4.3. 自定义模块的定义 (Senparc.Weixin 的使用)
4.4. 继续学习中....
OsharpNS.Redis 使用
目录
在 Windows 下配置 Redis
使用 RedisDesktopManager 连接 Redis
Osharp 启用 Redis
Osharp 初始化缓存查看
Osharp 缓存使用方法
在 Windows 下配置 Redis
前往 https://github.com/MicrosoftArchive/redis/releases 下载 Windows 版的 Redis(.msi 后缀), 并完成安装
点击版本号, 进入对应版本的下载界面, 下载. msi 格式的就行
安装时基本都是默认选项, 下面这个界面的时候注意选下下面的选项
Redis 开启远程访问, 注意修改的配置文件一般是 Redis 安装目录下 Redis.Windows-service.conf
网上很多文档都说改 Redis.Windows.conf, 改了也没用;
其实我们可以查看一下服务里面的信息, 看看到底使用的是那个配置文件, 是哪个就改哪个, 如下图:
配置文件基本修改两个地方即可;
修改完以后, 重启 Redis 服务即可;
使用 RedisDesktopManager 连接 Redis
下载工具, 工具是收费的, 我是在 https://www.newasp.net/soft/391754.html 下载的, 病毒自己鉴别, 也可以自己找链接, 反正下载安装了就行
配置连接
Osharp 启用 Redis
修改 appsettings.Development.JSON 中的 Redis 节点
配置说明
2.1 Configuration 配置连接串, 因为 Redis 没有配置密码, 只要填写 localhost, 如有密码, 参考格式 phone.qiadoo.com:6379,password = 密码
2.2 InstanceName 配置 Redis 中的前缀, 名称中建议以: 结尾, 具体效果自己对比
2.3 Enabled 配置是否启用, 当然要改为 true
Osharp 初始化缓存查看
启动项目, 进入 Swagger 界面
使用工具查看 Redis 的数据, 可以看到系统初始化后加载的数据
2.1 FunctionRoles 缓存, 初始化代码位于项目 OSharp.Permissions, 命名空间 OSharp.Permission.SecurityPackBase
2.2 All_KeyValue_Key 缓存, 初始化代码位于项目 OSharp.Permissions, 命名空间 OSharp.Systems.SystemPack
OSharp 缓存使用方法
缓存使用
- // -----------------------------------------------------------------------
- // <copyright file="TestController.cs" company="OSharp 开源团队">
- // Copyright (c) 2014-2018 OSharp. All rights reserved.
- // </copyright>
- // <site>http://www.osharp.org</site>
- // <last-editor > 郭明锋 </last-editor>
- // <last-date>2018-06-27 4:50</last-date>
- // -----------------------------------------------------------------------
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Linq;
- using System.Threading.Tasks;
- using CanDoo.Test.Identity;
- using CanDoo.Test.Identity.Dtos;
- using CanDoo.Test.Identity.Entities;
- using Microsoft.AspNetCore.Identity;
- using Microsoft.AspNetCore.Mvc;
- using Microsoft.AspNetCore.Mvc.Filters;
- using Microsoft.Extensions.Caching.Distributed;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Logging;
- using OSharp.AspNetCore;
- using OSharp.AspNetCore.Mvc;
- using OSharp.AspNetCore.Mvc.Filters;
- using OSharp.Caching;
- using OSharp.Collections;
- using OSharp.Core.Systems;
- using OSharp.Data;
- using OSharp.Dependency;
- using OSharp.Entity;
- using OSharp.Exceptions;
- using OSharp.Identity;
- using OSharp.JSON;
- namespace CanDoo.Test.web.Controllers
- {
- [Description("网站 - 缓存测试")]
- [ClassFilter]
- public class TestCacheController : ApiController
- {
- private readonly IDistributedCache _cache;
- public TestCacheController(IDistributedCache cache, IKeyValueStore keyValueStore)
- {
- _cache = cache;
- }
- [HttpGet]
- [MethodFilter]
- [Description("写入缓存")]
- public async Task<string> Write()
- {
- await _cache.SetAsync("TestWrite", "Test");
- return "缓存写入完成";
- }
- [HttpGet]
- [MethodFilter]
- [Description("读取缓存")]
- public async Task<string> Read()
- {
- return await _cache.GetAsync<string>("TestWrite");
- }
- [HttpGet]
- [MethodFilter]
- [Description("移除缓存")]
- public async Task<string> Remove()
- {
- await _cache.RemoveAsync("TestWrite");
- return "缓存移除完成";
- }
- }
- }
键值对使用
- // -----------------------------------------------------------------------
- // <copyright file="SettingsController.cs" company="OSharp 开源团队">
- // Copyright (c) 2014-2018 OSharp. All rights reserved.
- // </copyright>
- // <site>http://www.osharp.org</site>
- // <last-editor > 郭明锋 </last-editor>
- // <last-date>2018-06-27 4:50</last-date>
- // -----------------------------------------------------------------------
- using System;
- using System.ComponentModel;
- using System.Threading.Tasks;
- using CanDoo.Test.Systems.Dtos;
- using Microsoft.AspNetCore.Mvc;
- using Newtonsoft.JSON;
- using OSharp.AspNetCore.Mvc.Filters;
- using OSharp.AspNetCore.UI;
- using OSharp.Core.Modules;
- using OSharp.Core.Systems;
- using OSharp.Data;
- using OSharp.Exceptions;
- namespace CanDoo.Test.Web.Areas.Admin.Controllers
- {
- [ModuleInfo(Order = 1, Position = "Systems", PositionName = "系统管理模块")]
- [Description("管理 - 系统设置")]
- public class SettingsController : AdminApiController
- {
- private readonly IKeyValueStore _keyValueStore;
- /// <summary>
- /// 初始化一个 < see cref="SettingsController"/> 类型的新实例
- /// </summary>
- public SettingsController(IKeyValueStore keyValueStore)
- {
- _keyValueStore = keyValueStore;
- }
- /// <summary>
- /// 读取设置
- /// </summary>
- /// <param name="root"> 设置根节点, 如投票设置为 Votes</param>
- /// <returns > 相应节点的设置信息 </returns>
- [HttpGet]
- [ModuleInfo]
- [Description("读取设置")]
- public IActionResult Read(string root)
- {
- ISetting setting;
- switch (root)
- {
- case "System":
- setting = _keyValueStore.GetSetting<SystemSetting>();
- break;
- default:
- throw new OsharpException($"未知的设置根节点: {root}");
- }
- return JSON(new SettingOutputDto(setting));
- }
- /// <summary>
- /// 保存指定设置项
- /// </summary>
- /// <param name="dto"> 设置信息 </param>
- /// <returns>JSON 操作结果 </returns>
- [HttpPost]
- [ModuleInfo]
- [Description("保存设置")]
- [ServiceFilter(typeof(UnitOfWorkAttribute))]
- public async Task<AjaxResult> Update(SettingInputDto dto)
- {
- Check.NotNull(dto, nameof(dto));
- Type type = Type.GetType(dto.SettingTypeName);
- if (type == null)
- {
- return new AjaxResult($"设置类型 \"{dto.SettingTypeName}\"无法找到");
- }
- ISetting setting = JsonConvert.DeserializeObject(dto.SettingJson, type) as ISetting;
- OperationResult result = await _keyValueStore.SaveSetting(setting);
- if (result.Succeeded)
- {
- return new AjaxResult("设置保存成功");
- }
- return result.ToAjaxResult();
- }
- }
- }
来源: https://www.cnblogs.com/candoo/p/10790121.html