中文 English
这是一个 .net core 综合性学习和示例收集项目,包含各种功能的基础使用和综合应用示例。目标是尽可能方便快速地展示各种功能的使用方法和实际效果。
当前框架版本: .Net 5.0
VS 2019 版本: 16.8.0 以上
初始账号: admin
、coredx
、alice
、bob
初始密码: Pass123$
将 www.github.com/仓库地址
改为 www.github.com.cnpmjs.org/仓库地址
- DemoApp
- Client: C# oidc 客户端示例。
- CSharpScriptDemo:使用 Roslyn 运行 C# 脚本的示例。
- DomianSample:临时性测试代码。
- GrpcClient:控制台 gRPC 客户端示例。
- IdentityServer:主要项目,所有客户端的服务端。包括大多数示例。
- IdentityServerGui:IdentityServer 的图形化外壳。.net core 3.x Windows 桌面应用开发示例(WPF)。
- JavascriptClient:js oidc 客户端示例。
- SudokuTset:数独求解器测试代码和使用示例。
- WebAPI mvc oidc 客户端示例。
- WebClient:过时代码存档。
- GraphicDemo:Windows 窗口和屏幕截图示例。相关博客:Windows GDI 窗口与 Direct3D 屏幕截图
- vJoyDemo:虚拟游戏手柄使用演示。
- IdentityServerAdmin
- IdentityServer.Admin:IdentityServer4 Web 管理界面。依赖 IdentityServer。
- IdentityServer.Admin.Api:IdentityServer4 Web Api。依赖 IdentityServer。
- 下载这两个项目并打开 IdentityServerDemo 解决方案:
https://github.com/CoreDX9/IdentityServerDemo.git
https://github.com/CoreDX9/Harmonic.git
- 卸载这些项目:
Data/Domain.EntityFrameworkCore
Data/EntityHistoryMQReceive
Data/Repository
DemoApp/WebClient
Infrastructure/ResourceOwnerClient
- 修复 Infrastructure/Harmonic 的项目引用。
- 等待 VS2019 自动还原 Nuget 和 npm 包。如果 npm 包自动还原失败,可尝试在 cmd 中运行
npm install
命令。请确保已安装 Node.js。如果出现 gyp 错误,可尝试(以管理员身份)运行命令npm install --global --production windows-build-tools
进行修复。 - 编译生成
DemoPlugin/Plugin1
。 - 把 IdentityServer 设置为默认启动项目并设置启动方式为自托管方式。
- 根据你的实际情况修改 IdentityServer/appsettings.json 和 appsettings.Development.json 中的数据库连接字符串。目前仅支持 MS SqlServer,需要其他数据库支持的请自行修改代码。
- 运行 IdentityServer 项目。开始试用并探索各种示例吧。所有示例均可在网页顶部的导航栏找到。如果网页显示效果异常,请尝试调整浏览器窗口大小或调整页面缩放比例。
- 运行你感兴趣的其他可执行程序项目。
- 根据前面的说明确保能正常启动调试。
- 在 IdentityServer 项目上单击右键并选择发布,选择 FolderProfileRelease 发布配置,发布项目。如果一切正常,可以在解决方案文件夹找到 .publish 文件夹。
- 在 Plugin1 项目上单击右键并选择发布,发布项目。
- 在 IdentityServerGui 项目上单击右键并选择发布,发布项目。如果一切正常,可以在 IdentityServer 的发布位置找到 IdentityServerGui.exe。
- 根据你的实际情况修改 IdentityServer 的 appsettings.json 和 appsettings.Production.json 的数据库连接字符串。
- 双击 IdentityServer.exe 或者 IdentityServerGui.exe 运行程序。
- 尽量使用较高版本的浏览器,尽量不要使用 IE。
- 根据情况修改 appsettings.json 的各项设定。
- 时间精力有限,无法全面测试程序,可能会发生更新框架或包版本导致功能异常的情况,如有发现,欢迎提 issue 交流。我会尽力修复。
- IdentityServer 项目包含一个自签名的 CA 根证书和网站证书。自签名证书默认会在发布模式下使用,颁发给 localhost 域名,确保在发布模式下可以正常使用 Https 协议。
- 使用我提供的配置发布项目后可以在全新安装的 Windows 7 Sp1 及更高版本的系统中直接运行,没有任何依赖,前提是在配置中设置为使用内存数据库,方便快速运行示例。
- 数据库默认会重定向到 IdentityServer 项目的 App_Data/Database 文件夹。同时为了能让调试模式和发布模式的程序运行互不干扰,数据库名称默认包含运行环境后缀。
- 自定义项目发布配置,通过修改 csproj 项目文件实现全自动化发布。
- JQuery、Bootstrap4、Lay UI、Vue、Element-UI、Avue、Axios、Monaco-editor 等众多常用前端框架和库的使用。
- IdentityServer4 与 Identity Core 的使用;SSO 集成支持。
- Identity Core 管理;IdentityServer4 管理。相关博客:Asp.Net Core IdentityServer4 管理面板集成
- Identity Core 隐私数据保护。相关博客:Asp.Net Core Identity 隐私数据保护
- Identity Core 双因素验证(两步登录)。在手机上配合 Microsoft Authenticator 或 Google Authenticator 应用使用。
- gRPC 服务的编写和使用,配合 GrpcClient。
- Web 全球化支持;网页本地化翻译管理。
- 混合型字符串全球化与本地化支持。同时使用基于 resx 资源和基于数据库的字符串本地化功能。优先使用 resx 资源,查找失败后使用数据库数据。相关博客:Asp.Net Core 混合全球化与本地化支持
- 独立的 EF Core 迁移程序集与全自动迁移和数据初始化。参考:创建迁移。
- EF Core 全自动软删除查询过滤。
- 把 asp.net core Web 应用包装为 Windows 桌面应用。相关博客:.Net Core 3 骚操作 之 用 Windows 桌面应用开发 Asp.Net Core 网站
- 使用 Roslyn 运行 C# 脚本(类似 Try.Net 那种);使用 ILSpy 反编译 .net 类型。使用 monaco editor 展示和编辑代码。相关博客:C# 编译器 和 反编译器,你要哪个(歪头)? 我全都要(捏拳)!
- 多版本 Web Open Api 支持,IdentityServer4 OAuth 2.0 集成。
- Swagger 多版本 Api 浏览和调试,OAuth 2.0 支持。
- Mvc 终结点列表浏览。
- DI 中注册的服务列表浏览。
- 文件浏览。
- 应用健康检查。
- 集成直播服务。(存在缺陷,仅支持 FFmpeg 命令行调用)
- Razor Page 使用示例。
- FluentValidation、Razor Page、多语言集成综合示例。
- SignalR 实时聊天示例;集成SignalR、Web 控制器互操作示例;集成泛型 Hub 示例。
- 程序集动态载入、调用、卸载示例(.net core 3.0 新增功能)。
- 数独求解器网页集成示例;基于 Vue 的数据绑定。相关博客:C# 数独求解算法。
- 无界面浏览器使用示例,基于 Puppeteer,Chromium79.
- video.js 使用和扩展示例;集成 CCL 弹幕引擎,集成 flv.js 实现 HTML5 直接支持 flv 格式视频的播放。
- 基于神经网络的光学字符识别使用示例。
- 方便快捷的数据库说明扩展。相关博客:EntityFramework Core 2.x/3.x (ef core) 在迁移中自动生成数据库表和列说明
- Razor 视图渲染为字符串服务示例。
- MiniProfiler 示例。
- Blazor WebAssembly 示例。相关博客:浏览器中的 .Net Core —— Blazor WebAssembly 初体验
- 动态生成 Linq Where 表达式(使用 JqGrid 高级查询的数据结构)。相关博客:动态构造任意复杂的 Linq Where 表达式
- 基于内置依赖注入框架的动态代理扩展。
- 基于 Blazor WebAssembly 的 gRPC Web Client 使用示例。
- GraphQL Server 使用示例。参考:查询。
- Quartz.NET 和 CrystalQuartz Panel 使用示例。
- NetPacket 使用示例。
- .net core DI 与 WPF 集成。
- PropertyChanged.Fody 集成。
- 通知栏支持。