Anduin Xue
Anduin Xue

Anduin's Tech Blog

Multi-tenant


软件工程领域中的逆全球化趋势

在过去的二十年,全球化在软件工程领域取得了长足的发展,然而近年来,逆全球化的趋势逐渐浮现。在这篇博客中,我们将探讨这种趋势背后的原因以及它如何影响我们构建和维护软件的方式。 在全球化的背景下,我们曾经认为构建的应用应该越来越“全球化”,即应用能够全球布局,全球服务。然而,随着近年来国际间政治局势的变化,人与人之间的不信任逐渐加剧,客户对网络和互联网耦合的服务产生了不信任。这种不信任导致了软件工程领域的逆全球化趋势。 在逆全球化的趋势下,我们不能无条件地将整个地球视为一个可以进行数据最终一致性的分区。考虑到许多国家的军队、机关、科研等都逐步面向私有网络和空气墙的模式,我们在尝试面向这些客户时,也必须考虑在完全本地的部署情况下应用的维护与运行。这意味着我们需要重新思考软件的构建和维护方式,以适应这种新的趋势。 容忍空气墙(AirGap)是这种新趋势下的一个关键问题。在面对这种情况时,我们可能需要考虑将私有云打包提供给客户,甚至将一整个系统,连带一整套有完整维护、更新、管理经验的组织结构一起交给他。这可能会产生截然不同,甚至是如今无法想象的合作模式:未来销售软件,销售的不再是光盘,不再是程序,而是销售的人,销售的组织结构。 虽然站在2021年的视角来看,这种逆全球化的操作还非常疯狂,但现实往往正是这样。在这样的背景下,我们需要重新审视我们构建和维护软件的方式,以适应这种不断变化的世界。那么,我们将如何应对这种逆全球化趋势,以确保软件工程能够继续发展和繁荣呢?这是一个值得我们深入思考和探讨的问题。--GPT 4

Multi-tenant China Software Development AirGap

Support multi-tenant in pure Entity Framework Core

In this blog post, we discuss how to support multi-tenancy in pure Entity Framework Core, a crucial feature that allows data to be separated by different tenants, ensuring no interference between them. The post outlines the process of implementing multi-tenancy without relying on ASP.NET boilerplate, focusing on creating an example entity, configuring the SQL Server connection, and adding filters for tenant-specific data. The example entity, Blog, has a primary key, Id, and a TenantId that represents which tenant the blog belongs to. The table is grouped by TenantId, creating multiple collections of blogs. The BloggingContext class is created, taking a tenantId as input, and the SQL Server connection is configured by overriding the OnConfiguring method. To ensure that developers only access blogs from the current tenant, a filter is added by overriding the OnModelCreating method. Additionally, when inserting an item into the table, the TenantId is automatically set by overriding the ...--GPT 4

ASP.NET Core C# Entity Framework Multi-tenant

  • 1