OsharpNS轻量级.net core快速开发框架简明入门教程

教程目录

  1. 从零开始启动Osharp

    1.1. 使用OsharpNS项目模板创建项目

    1.2. 配置数据库连接串并启动项目

    1.3. OsharpNS.Swagger使用实例(登录和授权)

    1.4. Angular6的前端项目启动

  2. Osharp代码生成器的使用

    2.1 生成器的使用

    2.2 生成代码详解(如何自己实现业务功能)

  3. Osharp部分模块使用

    3.1 Osharp.Redis使用

    3.2 Osharp.Hangfire使用

    3.3 Osharp.Permissions使用

  4. Osharp深度学习和使用

    4.1 切换数据库(从SqlServer改为MySql)

    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

OsharpNS.Redis使用

目录

  1. 在Windows下配置Redis

  2. 使用RedisDesktopManager连接Redis

  3. Osharp启用Redis

  4. Osharp初始化缓存查看

  5. Osharp缓存使用方法

在Windows下配置Redis

  1. 前往https://github.com/MicrosoftArchive/redis/releases下载Windows版的Redis(.msi后缀),并完成安装

    点击版本号,进入对应版本的下载界面,下载.msi格式的就行

    安装时基本都是默认选项,下面这个界面的时候注意选下下面的选项

  2. Redis开启远程访问,注意修改的配置文件一般是redis安装目录下redis.windows-service.conf

    网上很多文档都说改redis.windows.conf, 改了也没用;

    其实我们可以查看一下服务里面的信息,看看到底使用的是那个配置文件,是哪个就改哪个,如下图:

      

    配置文件基本修改两个地方即可; 

      

    修改完以后,重启redis服务即可;

使用RedisDesktopManager连接Redis

  1. 下载工具,工具是收费的,我是在https://www.newasp.net/soft/391754.html下载的,病毒自己鉴别,也可以自己找链接,反正下载安装了就行

  2. 配置连接

Osharp启用Redis

  1. 修改appsettings.Development.json中的Redis节点

  1. 配置说明

    2.1 Configuration配置连接串,因为Redis没有配置密码,只要填写localhost,如有密码,参考格式phone.qiadoo.com:6379,password=密码

    2.2 InstanceName配置Redis中的前缀,名称中建议以:结尾,具体效果自己对比

    2.3 Enabled配置是否启用,当然要改为true

Osharp初始化缓存查看

  1. 启动项目,进入Swagger界面

  2. 使用工具查看Redis的数据,可以看到系统初始化后加载的数据

    2.1 FunctionRoles缓存,初始化代码位于项目OSharp.Permissions,命名空间OSharp.Permission.SecurityPackBase

    2.2 All_KeyValue_Key缓存,初始化代码位于项目OSharp.Permissions,命名空间OSharp.Systems.SystemPack

OSharp缓存使用方法

  1. 缓存使用
   // -----------------------------------------------------------------------
// <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 "缓存移除完成";
}
} }
  1. 键值对使用

// -----------------------------------------------------------------------
// <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();
}
} }

OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Redis使用的更多相关文章

  1. OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Hangfire使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  2. OsharpNS轻量级.net core快速开发框架简明入门教程-Osharp.Permissions使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  3. OsharpNS轻量级.net core快速开发框架简明入门教程-从零开始启动Osharp

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  4. OsharpNS轻量级.net core快速开发框架简明入门教程-代码生成器的使用

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  5. OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  6. OsharpNS轻量级.net core快速开发框架简明入门教程-切换数据库(从SqlServer改为MySql)

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  7. OsharpNS轻量级.net core快速开发框架简明入门教程-多上下文配置(多个数据库的使用)

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  8. 【开源】OSharpNS,轻量级.net core快速开发框架发布

    OSharpNS简介 OSharp Framework with .NetStandard2.0(OSharpNS)是OSharp的以.NetStandard2.0为目标框架,在AspNetCore的 ...

  9. [开源]OSharpNS - .net core 快速开发框架 - 快速开始

    什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...

随机推荐

  1. 【读书笔记】C++Primer---第二章

    1.C++基本数据类型:字符型.整型.浮点型等: 2.算术类型如下表,下表只是表示C++要求的最小储存空间,但是一般编译器使用的都比所要求的储存空间大,以前类型所能表示的最大值也因机器的不同而有不同的 ...

  2. Roundcube 1.2.2 - Remote Code Execution

    本文简要记述一下Roundcube 1.2.2远程代码执行漏洞的复现过程. 漏洞利用条件 Roundcube必须配置成使用PHP的mail()函数(如果没有指定SMTP,则是默认开启) PHP的mai ...

  3. “蝉原则”与CSS3随机多背景随机圆角等效果

    一.什么是“蝉原则”? “蝉原则”,英文称作“cicada principle”,是一种让事物的重复出现符合“自然随机性”的规则,为什么这么说呢? “蝉原则”源自于北美,中国似乎并未有这样的说法,这背 ...

  4. Linux——浅析信号处理

    信号及其处理 信号处理是Unix和LInux系统为了响应某些状况而产生的事件,通常内核产生信号,进程收到信号后采取相应的动作. 例如当我们想强制结束一个程序的时候,我们通常会给它发送一个信号,然后该进 ...

  5. 搜索应用参考示例XXL-SEARCH

    <搜索应用参考示例XXL-SEARCH> 一.简介 1.1 概述 XXL-SEARCH 是以 "lucene/elasticsearch" 为核心的,Pragmatic ...

  6. java.IO层次体系结构

    在整个Java.io包中最重要的就是5个类和一个接口.5个类指的是File.OutputStream.InputStream.Writer.Reader:一个接口指的是Serializable.掌握了 ...

  7. Flask入门之Virtualvenv的安装及使用(windows)

    Virtualvenv 提供一个特定的Python虚拟环境(沙盒),以便于那些要求特定版本的模块的脚本能够顺利运行. 因为在Virtualvenv中,我们可以使用 pip install -r req ...

  8. Version 1.6.0 of the JVM is not suitable for the this product.Version:1.8 or greater is required

    这个问题时在打开eclipse时报的一个错误,报这个问题的意思我们都明白,说的就是当前版本的jdk版本太低,eclipse需要更高版本的jdk. 那就下一个更高版本的jdk就可以啦,这里我要说说我当时 ...

  9. Java 使用BigDecimal类处理高精度计算

    Java在java.math包中提供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.双精度浮点型变量double可以处理16位有效数,但在实际应用中,可能需要对更大或者更小的 ...

  10. Jmeter性能测试 如何利用SQLserver造出大批的数据

    作为一个测试人员,需要做性能测试时候,如果没有实际数据,或者实际数据不适合做压测,就要自己着手造数据了. 以下面的接口测试为例,简单介绍下需要的数据: 这是一个会员注册接口,入参比较多,你可以选用全部 ...