教程目录html
从零开始启动Osharp前端
1.1. 使用OsharpNS项目模板建立项目git
1.2. 配置数据库链接串并启动项目github
1.3. OsharpNS.Swagger使用实例(登陆和受权)redis
1.4. Angular6的前端项目启动数据库
Osharp代码生成器的使用json
2.1 生成器的使用windows
2.2 生成代码详解(如何本身实现业务功能)缓存
Osharp部分模块使用app
3.1 Osharp.Redis使用
Osharp深度学习和使用
4.2 多上下文配置(多个数据库的使用)
4.3. 自定义模块的定义(Senparc.Weixin的使用)
4.4. 继续学习中....
OsharpNS官方资源 项目地址:https://github.com/i66soft/osharp-ns20 演示地址:https://www.osharp.org 直接使用QQ登陆能够查看效果 文档地址:https://docs.osharp.org 正在完善中.... 发布博客:https://www.cnblogs.com/guomingfeng/p/osharpns-publish.html 大神看这个文档应该就能跑起来,从零开始启动Osharp基于此文档完成 VS生成器插件:https://marketplace.visualstudio.com/items?itemName=LiuliuSoft.osharp 官方交流QQ群:85895249
目录
前往https://github.com/MicrosoftArchive/redis/releases下载Windows版的Redis(.msi后缀),并完成安装
点击版本号,进入对应版本的下载界面,下载.msi格式的就行
安装时基本都是默认选项,下面这个界面的时候注意选下下面的选项
Redis开启远程访问,注意修改的配置文件通常是redis安装目录下redis.windows-service.conf
网上不少文档都说改redis.windows.conf, 改了也没用;
其实咱们能够查看一下服务里面的信息,看看到底使用的是那个配置文件,是哪一个就改哪一个,以下图:
配置文件基本修改两个地方便可;
修改完之后,重启redis服务便可;
下载工具,工具是收费的,我是在https://www.newasp.net/soft/391754.html下载的,病毒本身鉴别,也能够本身找连接,反正下载安装了就行
配置链接
配置说明
2.1 Configuration配置链接串,由于Redis没有配置密码,只要填写localhost
,若有密码,参考格式phone.qiadoo.com:6379,password=密码
2.2 InstanceName配置Redis中的前缀,名称中建议以:
结尾,具体效果本身对比
2.3 Enabled配置是否启用,固然要改成true
启动项目,进入Swagger界面
使用工具查看Redis的数据,能够看到系统初始化后加载的数据
2.1 FunctionRoles缓存,初始化代码位于项目OSharp.Permissions
,命名空间OSharp.Permission.SecurityPackBase
2.2 All_KeyValue_Key缓存,初始化代码位于项目OSharp.Permissions
,命名空间OSharp.Systems.SystemPack
// ----------------------------------------------------------------------- // <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