摘要: 本章目标 多租户简介 实现public租户下的用户数据隔离 出于开发进度考虑,本章暂不会完全实现多租户的整套体系,而是会实现其中的一小部分:基于默认public租户的数据隔离,并在本章节中会讨论多租户的实现框架结构。在后续的系列文章章节中,我们会完成多租户的实现。 多租户(Multi-Tenancy 阅读全文
posted @ 2024-11-24 21:56 dax.net 阅读(1260) 评论(0) 推荐(1) 编辑
摘要: 本章目标 使用Blazor WebAssembly实现管理“贴纸”页面 集成认证与授权机制 如果你对Blazor WebAssembly的使用不感兴趣,可以跳过本章的阅读。你也可以使用自己熟悉的前端技术完成案例的界面部分,之前我们开发的后端API比较简单,所以自己实现一套前端界面并不会是一个困难的事 阅读全文
posted @ 2024-11-03 16:22 dax.net 阅读(1331) 评论(1) 推荐(7) 编辑
摘要: 本章目标 完成Keycloak的本地部署与配置 在Stickers RESTful API层面完成与Keycloak的集成 在Stickers RESTful API上实现认证与授权 Keycloak的本地部署 Keycloak的本地部署最简单的方式就是使用Docker。可以根据官方文档构建Dock 阅读全文
posted @ 2024-10-28 21:45 dax.net 阅读(1045) 评论(11) 推荐(6) 编辑
摘要: 本章目标 实现基于PostgreSQL的SDAC(简单数据访问层) 将Stickers微服务切换到使用PostgreSQL SDAC 为什么选择PostgreSQL数据库? 其实并不一定要选择PostgreSQL数据库,这里主要出于几个方面考虑: PostgreSQL免费易用,轻量效率高,能够满足目 阅读全文
posted @ 2024-10-22 22:48 dax.net 阅读(1272) 评论(5) 推荐(9) 编辑
摘要: Semantic Kernel简介 玩过大语言模型(LLM)的都知道OpenAI,然后微软Azure也提供了OpenAI的服务:Azure OpenAI,只需要申请到API Key,就可以使用这些AI服务。使用方式可以是通过在线Web页面直接与AI聊天,也可以调用AI的API服务,将AI的能力集成到 阅读全文
posted @ 2024-10-19 17:19 dax.net 阅读(2031) 评论(8) 推荐(12) 编辑
摘要: 本章目标 完成数据访问层的基本设计 实现Sticker微服务的RESTful API 引言:应该使用ORM框架吗? 毋庸置疑,Sticker微服务需要访问数据库来管理“贴纸”(也就是“Sticker”),因此,以什么方式来存储数据,就是一个无法绕开的话题。如果你遵循领域驱动设计的思想,那么你可以说, 阅读全文
posted @ 2024-10-13 21:27 dax.net 阅读(1702) 评论(4) 推荐(13) 编辑
摘要: 开篇 很早之前就想做一套案例,介绍.NET下如何从零开始搭建一个云原生的应用程序。不过这个话题有点大,会要包含很多内容。我本打算从新建一个ASP.NET Core Web API应用程序开始介绍,但又觉得即便是从零开始,也无法完全涵盖每一个步骤细节,而且很多基础性的东西其实并没有太大的介绍价值,倒不 阅读全文
posted @ 2024-10-09 22:54 dax.net 阅读(1292) 评论(14) 推荐(27) 编辑
摘要: 之前有阵子在业余时间拓展自己的一个游戏框架,结果在实现的过程中发现一个设计问题。这个游戏框架基于MonoGame实现,在MonoGame中,所有的材质渲染(Texture Rendering)都是通过SpriteBatch类来完成的。举个例子,假如希望在屏幕的某个地方显示一个图片材质(imageTe 阅读全文
posted @ 2024-10-07 19:09 dax.net 阅读(2061) 评论(2) 推荐(11) 编辑
摘要: 其实网上有大量讨论HTTP长连接的文章,而且Idle Timeout和KeepAlive Timeout都是HTTP协议上的事情,跟Vert.x本身没有太大关系,只不过最近在项目上遇到了一些问题,用到了Vert.x的HttpClient,就干脆总结一下,留给自己今后做参考。 在使用Vert.x的Ht 阅读全文
posted @ 2024-09-12 21:08 dax.net 阅读(284) 评论(0) 推荐(2) 编辑
摘要: 两年前,我使用C#基于MonoGame编写了一款《俄罗斯方块》游戏,相关介绍可以参考【这篇文章】。最近,使用业余时间将之前的基于MonoGame的游戏开发框架重构了一下,于是,也就趁此机会将之前的《俄罗斯方块》游戏也重制一次,加入了许多我一直打算加入的功能,甚至包括提供跨平台的版本。 先说说这个游戏 阅读全文
posted @ 2024-08-15 20:57 dax.net 阅读(760) 评论(2) 推荐(7) 编辑
摘要: 最近在不少自媒体上看到有关.NET与C#的资讯与评价,感觉大家对.NET与C#还是不太了解,尤其是对2016年6月发布的跨平台.NET Core 1.0,更是知之甚少。在考虑一番之后,还是决定写点东西总结一下,也回顾一下.NET的发展历史。 首先,你没看错,.NET是跨平台的,可以在Windows、 阅读全文
posted @ 2024-07-17 21:58 dax.net 阅读(4790) 评论(27) 推荐(67) 编辑
摘要: 步骤如下: a. 安装make、C++、pkg-config: sudo apt install make g++ pkg-config b. 安装openblas-lapack: wget https://github.com/xianyi/OpenBLAS/releases/download/v 阅读全文
posted @ 2024-05-07 08:22 dax.net 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 在上文《Keycloak中授权的实现》中,以一个实际案例介绍了Keycloak中用户授权的设置方法。现在回顾一下这个案例: 服务供应商(Service Provider)发布/WeatherForecast API供外部访问 在企业应用(Client)里有三个用户:super,daxnet,nobo 阅读全文
posted @ 2024-04-22 22:33 dax.net 阅读(975) 评论(4) 推荐(3) 编辑
摘要: 在Keycloak中实现授权,首先需要了解与授权相关的一些概念。授权,简单地说就是某个(些)用户或者某个(些)用户组(Policy),是否具有对某个资源(Resource)具有某种操作(Scope)的权限(Permission)。所以,授权是一种权限管理,它建立在认证的基础上:用户首先要完成认证(A 阅读全文
posted @ 2024-04-13 16:25 dax.net 阅读(1184) 评论(0) 推荐(1) 编辑
摘要: Keycloak是一个功能强大的开源身份和访问管理系统,提供了一整套解决方案,包括用户认证、单点登录(SSO)、身份联合、用户注册、用户管理、角色映射、多因素认证和访问控制等。它广泛应用于企业和云服务,可以简化和统一不同应用程序和服务的安全管理,支持自托管或云部署,适用于需要安全、灵活且易于扩展的用 阅读全文
posted @ 2024-04-06 21:59 dax.net 阅读(1050) 评论(2) 推荐(5) 编辑
摘要: Windows 7是一个老的操作系统,它与它的SP1版本早已在2015年1月13日结束主流版本的支持,虽然微软官方将最终支持日期延期到2020年1月14日,但这也已经过去了几年的时间了,参考:https://learn.microsoft.com/en-us/lifecycle/products/w 阅读全文
posted @ 2024-01-21 13:27 dax.net 阅读(4968) 评论(0) 推荐(0) 编辑
摘要: 有时候需要在Windows Forms中加入一些实现了IDisposable接口的类型,然而会有这样的疑惑:应该在何时调用这些类型的Dispose方法? 第一种方式是在窗体的OnClosed事件处理函数重载中调用,比如: class MyComponent : IDisposable { } cla 阅读全文
posted @ 2023-12-29 10:34 dax.net 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 背景 游戏开发中,一个非常常见的行为就是,游戏中的角色需要对周围发生的事物做出反应:飞机在被子弹打中后要出现爆炸效果并从屏幕上消失;台球在撞击到桌面边缘时应能够根据速度和角度反弹等等。在这些场景中,至少会有两个参与者(飞机与子弹,台球与桌面)进行交互,以共同完成一个游戏行为。两个参与者的情况是最为简 阅读全文
posted @ 2023-05-20 21:39 dax.net 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 这又是一个来自于实际项目的问题:如何在RESTful API上实现指定字段的服务端排序。问题背景是这样的,有一个前端的页面,它会显示下面这张表格: 这张表格的表头是可以被点击的,当点击某个列的列头(Column Header)时,数据就会根据这一列进行升序或者降序排列。当数据量小的时候,一张表格就可 阅读全文
posted @ 2023-04-07 21:47 dax.net 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 2022年11月,随着.NET 7的发布,微软发布了新版本的C#语言:C# 11。与之前C#的大版本更新相比,例如,C# 2.0引入了泛型,C# 3.0引入了LINQ和Lambda表达式,C# 4.0引入了协变与逆变、C# 5.0引入了async/await等等,C# 11则更多地是进一步完善C#语 阅读全文
posted @ 2023-04-05 19:03 dax.net 阅读(180) 评论(0) 推荐(1) 编辑