教程目錄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(); } } }