小编Jin*_*n-K的帖子

c# - 动态字符串插值

我正在尝试使用特定上下文/范围中的可用变量动态格式化一些字符串。

该字符串将包含诸如 之类的部分{{parameter1}}{{parameter2}}并且这些变量将存在于我将尝试重新格式化字符串的范围内。变量名应该匹配。

我寻找了诸如动态字符串插值方法或如何使用 FormattableStringFactory 之类的东西,但我没有找到真正能满足我需求的东西。

var parameter1 = DateTime.Now.ToString();
var parameter2 = "Hello world!";
var retrievedString = "{{parameter2}} Today we're {{parameter1}}";
var result = MagicMethod(retrievedString, parameter1, parameter2);
// or, var result = MagicMethod(retrievedString, new { parameter1, parameter2 });
Run Code Online (Sandbox Code Playgroud)

是否有现有的解决方案,或者我应该(在MagicMethod)中将这些部分替换retrievedString为作为参数给出的匿名对象的匹配成员(使用反射或类似的东西)?

编辑:

最后,我创建了一个扩展方法来处理这个问题:

internal static string SpecialFormat(this string input, object parameters) {
  var type = parameters.GetType();
  System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex( "\\{(.*?)\\}" );
  var sb = new System.Text.StringBuilder();
  var pos = 0;

  foreach …
Run Code Online (Sandbox Code Playgroud)

.net c# string-interpolation

5
推荐指数
1
解决办法
4316
查看次数

CRM 的架构选择

在开始开发 CMS、CRM 或 ERP 之前,我正在寻找架构选择复杂性的一些线索。

我能够找到这个类似的问题:A CRM Architecture (open source app) 但它似乎足够老了。

我最近观看和阅读了一些会议,讨论了整体式与分布式、DDD 哲学、CQRS 和事件驱动设计等。在考虑到每个架构的缺陷(我认为)后,我对架构选择比以前更加恐慌。

我发现不幸的是,在网上可以轻松找到的所有微服务和分布式系统的示例中,它们总是以电子商务为例(客户、订单、产品......)。对于此类示例,存在多个数据库(通常是微服务的 NoSQL DB)。我看到了(或多或少)==> 为每个上下文保留必要数据的简约表示的优点。

但如何寻找一个独特的关系数据库呢?我真的认为我需要一个单一的关系数据库,在一家生产 CRM 的公司工作过(无法访问机器的源代码,但访问数据库的结构),我可以看到关系的重要性:对于列表、报告来说是必要的,并查阅 CRM 内实体之间的链接(一个联系人可以有多个公司,相反,每个用户有多个操作、任务,但他的每个任务也可以分配给其他用户,甚至链接到其他项目,例如:“联系人”、“公司”、“出版物”、“日历日期”等。而且每个表中可以有很多记录(+100,000行),所以索引的选择会相当重要,交易是全方位的-present 因为会有大量的并发访问数据记录)。

我对自己说的是,如果我选择使用微服务系统,将会有很多微服务要做,因为确实会有很多不同的上下文,并且很有可能拥有一堆不同的领域模型。然后我最终会有这样的印象:必须点亮花环的每个小灯泡,也许同时运行的进程太多。

为了尽量准确而不是全方位,我有两个问题要问:

  1. 我们能否轻松地将 DDD 理念与整体系统混合在一起,同时解耦非常小的数量(对于出于各种原因绝对应该分开的最终服务)?如果是这样,我可以请求一些资源来了解更多相关信息吗?
  2. 我们是否必须使用多种数据库,并且必须是 mongoDb、nosql 类型的数据库吗?我可以想象答案是否定的,但我可以要求详细说明一下吗?或者将我重定向到能给我足够清晰答案的文章?

先感谢您 !

(这将是.NET Core,草案在这里:https ://github.com/Jin-K/simple-cms )

domain-driven-design crm cqrs microservices .net-core

3
推荐指数
1
解决办法
1293
查看次数