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.Hangfire使用

  1. 启用OsharpNS.Hangfire

    配置文件中找到配置节点Hangfire (配置文件有两个,一个开发,一个发布,别改错地方)

        "Hangfire": {
    "WorkerCount": 20,
    "StorageConnectionString": "Server=phone.qiadoo.com;Port=3306;UserId=candoo;Password=密码;Database=CanDoo.KaKa.Hangfire;charset='utf8';Allow User Variables=True", //这里是数据库的连接串 用什么数据库就用什么数据库的连接串(官方默认是SqlServer的,我这里用的是MySql) "DashboardUrl": "/hangfire",
    "Roles": "", //这个有可能确定可以访问的用户的角色,没测试过 "Enabled": true }
  2. 改用MySql作为Hangfire的数据库

    官方使用的是SqlServer,只要配置好连接串就可以使用了,我用的是MySql,所以要改动一些东西

    2.1 安装Hangfire的MySql支持库

      通过Nuget安装`Hangfire.MySql.Core`

    2.2 Startups中继承HangfirePack新建一个MyHangfirePack


    using Hangfire;
    using Hangfire.MySql.Core;
    using Microsoft.Extensions.Configuration;
    using Microsoft.Extensions.DependencyInjection;
    using OSharp.Extensions;
    using OSharp.Hangfire;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks; namespace CanDoo.Test.Web.Startups
    {
    public class MyHangfirePack : HangfirePack
    {
    /// <summary>
    /// AddHangfire委托,重写可配置Hangfire服务,比如使用UseSqlServerStorage等
    /// </summary>
    /// <param name="services">服务容器</param>
    /// <returns></returns>
    protected override Action<IGlobalConfiguration> GetHangfireAction(IServiceCollection services)
    {
    IConfiguration configuration = services.GetConfiguration();
    string storageConnectionString = configuration["OSharp:Hangfire:StorageConnectionString"].CastTo<string>();
    if (storageConnectionString != null)
    {
    return config => config.UseStorage(new MySqlStorage(storageConnectionString));
    } return config => { };
    }
    }
    }
  3. 看看效果

    3.1 按照连接串去新建Hangfire用的空数据库(只要库就可以,表自己会生成)

    3.2 启动web项目

    3.3 访问http://localhost:7001/hangfire/就能看到Hangfire的界面了

    3.4 具体的使用参考,文件位于CanDoo.Test.Web.Hangfire

   // -----------------------------------------------------------------------
// <copyright file="HangfireJobRunner.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-12-31 17:36</last-date>
// ----------------------------------------------------------------------- using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks; using Hangfire; using CanDoo.Test.Identity;
using CanDoo.Test.Identity.Entities; using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.DependencyInjection; using OSharp.Collections;
using OSharp.Dependency;
using OSharp.Entity;
using OSharp.Hangfire; namespace CanDoo.Test.Web.Hangfire
{
[Dependency(ServiceLifetime.Singleton)]
public class HangfireJobRunner : IHangfireJobRunner
{
public void Start()
{
BackgroundJob.Enqueue<UserManager<User>>(m => m.FindByIdAsync("1"));
string jobId = BackgroundJob.Schedule<UserManager<User>>(m => m.FindByIdAsync("2"), TimeSpan.FromMinutes(2));
BackgroundJob.ContinueWith<TestHangfireJob>(jobId, m => m.GetUserCount());
RecurringJob.AddOrUpdate<TestHangfireJob>(m => m.GetUserCount(), Cron.Minutely, TimeZoneInfo.Local);
RecurringJob.AddOrUpdate<TestHangfireJob>(m=>m.LockUser2(), Cron.Minutely, TimeZoneInfo.Local);
}
} public class TestHangfireJob
{
private readonly IIdentityContract _identityContract;
private readonly IServiceProvider _provider; /// <summary>
/// 初始化一个<see cref="TestHangfireJob"/>类型的新实例
/// </summary>
public TestHangfireJob(IIdentityContract identityContract, IServiceProvider provider)
{
_identityContract = identityContract;
_provider = provider;
} /// <summary>
/// 获取用户数量
/// </summary>
public string GetUserCount()
{
List<string> list = new List<string>();
list.Add(_identityContract.Users.Count().ToString());
list.Add(_identityContract.GetHashCode().ToString());
return list.ExpandAndToString();
} public async Task<string> LockUser2()
{
List<string> list = new List<string>();
UserManager<User> userManager = _provider.GetService<UserManager<User>>();
User user2 = await userManager.FindByIdAsync("2");
list.Add($"user2.IsLocked: {user2.IsLocked}");
user2.IsLocked = !user2.IsLocked;
await userManager.UpdateAsync(user2);
IUnitOfWork unitOfWork = _provider.GetUnitOfWork<User, int>();
unitOfWork.Commit();
user2 = await userManager.FindByIdAsync("2");
list.Add($"user2.IsLocked: {user2.IsLocked}");
return list.ExpandAndToString();
}
} }

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

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

    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. 【Tensorflow】 Object_detection之训练PASCAL VOC数据集

    参考:Running Locally 1.检查数据.config文件是否配置好 可参考之前博客: Tensorflow Object_detection之配置Training Pipeline Ten ...

  2. GitHub+Hexo+gulp搭建博客网站

    一.前期准备 1.注册GitHub账号. 不做说明 2.创建仓库 创建一个新的仓库来放置我们的文件. 3.下载安装Node.js https://nodejs.org/en/   两个版本,选择右边那 ...

  3. 【Linux相识相知】rpm包管理

    我们日常在使用Windows的时候,如果要安装某个软件,最简单的方法就是在程序包的官网直接下载软件包到本地,一般是以.exe或者.msi格式的文件,然后一直下一步下一步就能安装成功了,但是在使用lin ...

  4. 不使用XMLHttpRequest实现异步加载:Iframe和script

    运用Iframe和script可以实现简单的异步加载: 调用页面如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...

  5. ASP.NET生命周期详解(转)

    看到好文章需要分享. 最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多 ...

  6. 【JavaWeb】JSP九大内置对象

    内置对象特点: 1.            由JSP规范提供,不用编写者实例化. 2.            通过Web容器实现和管理 3.            所有JSP页面均可使用 4.     ...

  7. javaSystem.out.println()输出byte[]和char[]异常的问题

    javaSystem.out.println()输出byte[]和char[]异常的问题 今天 突然有人问我他写的byte[]和char[],在用System.out.println()输出的时候所得 ...

  8. html页面的加载顺序

    页面加载顺序: 解析HTML结构加载外部脚本和样式表文件解析并执行脚本代码构造HTML DOM模型加载图片等外部文件页面加载完毕 window.onload = function () {  }  / ...

  9. 如何取消IntelliJ IDEA打开默认项目配置

    一.前言            在前端中,个人比较喜欢使用IntelliJ IDEA开发工具!IntelliJ IDEA是非常强大的开发集成工具,打开IntelliJ IDEA软件默认会打开最近一次的 ...

  10. Latest SoC

    From: http://laoyaoba.com/ss6/html/68/n-505768.html 2014年国产ARM SoC芯片巡礼(上) 关注“集微网”,微信点播新闻.随要随有 来源: &l ...