问题标签 [dynamic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
830 浏览

.net - 在 .NET 中,您将如何处理允许多租户 SaaS 应用程序的租户任意向模型实体添加属性?

因此,我们正在构建一个多租户系统以作为服务运行。我们从头开始。我们正在关注 DDD;该域(目前)有大约 20 个实体,以后还会有更多。它由我们托管,地理上冗余(除了 SQL 查询之外的所有内容都有 n+1 ;-) ),并且设计灵活(嗯,最后是我们自己的要求,而不是业务',尽管他们希望我们能够当然可以根据需要轻松更改它)。我们基于 .NET,并将使用关系数据库作为我们的后备存储。我们并不反对(完全)使用开源工具和库。

业务的必备功能之一是系统的租户可以扩展某些实体。例如,客户端 A 可能希望实体 Foo 具有 Title 和 Abstract 属性,而客户端 B 可能希望实体 Foo 具有 Publish Date 和 Directed-By 属性——而不是 Title Abstract。

也可能是它应该为需要的租户支持多种语言的数据 - 例如,一个租户可能有兴趣将其整个帐户翻译成两种(或更多)语言;“静态”字符串和作为数据附加到实体的字符串。

所以。任意数量的字段(在一些通用基线之上;所有租户都将获得关于这些实体的某些内容),可由客户端定义(他们也可以在其中定义数据类型)。数据翻译的可能性(不复制实体 - 例如,没有用英语设置一组,然后用法语设置相同的一组)。强类型、可搜索、可查询的后备存储也是如此(因此,XML 字段中没有额外的东西,除非有办法让它成为强类型和可搜索的)。高性能(但作为次要要求;该功能非常重要,可以在必要时购买硬件)。

数据量?在我们当前的系统中,一个“普通”客户端有数百个实体,一个“大”客户端有数千个实体。请求通常会过滤这些列表以显示在 10-200 之间,最常见的事情可能涉及六个实体(在新系统中应该是可扩展的)。

其他点?每个实体都有指向拥有它的租户的直接链接。

在 .NET 领域如何处理这个问题?有人建议我们将实体放入一个 IoC 容器中,并在运行时动态地将它们 glob 在一起——但是如何将其映射到关系数据库呢?

我还记得很久以前读过Ayende关于 Lucene.NET 的帖子,这听起来不错,但目前我们还没有任何使用 Lucene.NET 或 nHibernate 的经验。(我们目前将 Linq2Sql 用于我们的 ORM,但如果我们需要更改它以支持这一点,坦率地说,我个人会很高兴)。

我读了这个从 Ayende 链接的 Castle dev list thread,看起来 nHibernate 有一个叫做 IUserType 的东西可能会有所帮助——我想知道我们是否可以应用它,为每个租户拉出适当的 IoC?因此,每个可扩展实体的每个租户都有一个 IUserType,并将数据本身存储在 SQL Server(我们最可能的 RDBMS)内部的 XML 列中。

最后,我刚刚阅读了一个关于动态更改每个租户每个实体的 DB 表的建议 - 但这听起来很不错......老实说,令人担忧!我的意思是,它可以工作,但将这种能力授予租户(他们可能不太懂技术)听起来并不是一个好主意。我想它可能仅限于管理员员工......

0 投票
6 回答
6513 浏览

c++ - C++动态类(动态破解)

有没有办法在运行时向类添加一个字段(以前不存在的字段)?像这样的片段:

我真的不在乎它会如何完成,我不在乎它是否是一个丑陋的黑客,我想知道它是否可以完成,如果可能的话,还有一个小例子。

另一个例子:假设我有一个描述这个类的 XML 文件:

我想将字段“field1”和“field2”“添加”到类中(假设类已经存在)。假设这是该类的代码:

我不想在运行时创建一个类,我只想将成员/字段添加到现有的。

谢谢 !

0 投票
7 回答
4738 浏览

dynamic - C#4 动态关键字 - 为什么不呢?

在阅读了对该主题的许多回复后,我发现许多不喜欢它的人都提到了滥用新关键字的可能性。我的问题是,什么样的虐待?这怎么可能被滥用得如此糟糕,以至于人们非常讨厌它?仅仅是纯粹主义吗?还是有一个我没有看到的真正陷阱?

0 投票
2 回答
3522 浏览

sharepoint - Sharepoint Webpart 中的超链接

我一直在处理一个 SharePoint 项目,并且我已经通过自定义 Web 部件加载了用户控件。

我有几个 Web 控件,我需要在其中动态生成超链接(在数据库的循环中),这些超链接将在单击时调用用户控件的某些功能。

当我构建自己的 ASP.NET 站点时,我只需将参数添加到超链接并检查页面加载以查看在单击超链接时是否需要运行任何其他代码。

我开始意识到这在 SharePoint 环境中可能不太可靠,因为我无法控制网页 URL 的形成方式。

我希望在单击超链接并传递一些值时将其发回,但我不确定解决此问题的最佳方法。

有人能指出我正确的方向吗?

谢谢。

0 投票
5 回答
5110 浏览

dynamic - 你如何实现 C#4 的 IDynamicObject 接口?

要在 C# 4.0 中实现“方法缺失”语义等,您必须实现 IDynamicObject:

据我所知,IDynamicObject 实际上是 DLR 的一部分,所以它不是新的。但是我还没有找到很多关于它的文档。

那里有一些非常简单的示例实现(fx herehere),但是谁能指出我更完整的实现或一些真实的文档?

特别是,您应该如何处理“参数”参数?

0 投票
1 回答
971 浏览

email - SMTP 中继限制

我们已经建立了一个系统,通知通过以下发件人地址格式发送给用户: user-{0} @aol.com(将 {0} 替换为 ID)

这样我们就可以跟踪我们最初将消息发送给了哪个用户。由于各种原因,这种格式不太可能改变。我们遇到的问题是:我们发送的每封带有动态地址的电子邮件都在创建一个新的 SMTP 中继。

我对继电器的了解非常有限。我们的主机 (GoDaddy) 将 SMTP 中继限制为每天 250 个。这是一个可能每天发送数千封电子邮件的应用程序。

我假设我们使用的每个“未注册”电子邮件地址都会打开一个新的中继,对吗?如果是这样,是否有任何服务或主机以合理的价格提供无限中继?

谢谢。

0 投票
1 回答
2702 浏览

c# - 使用字符串动态创建 (LLBLGen) Linq 查询

我们需要生成在编码期间(设计时)100% 未知的 LINQ 查询。这是因为逻辑在我们的框架中可用,它与任何数据项目 100% 分离。对于数据,我们使用 LLBLGen 生成的数据访问代码。

通常通过在 DLL 上使用调用,我们指定给框架(而不是引用),我们可以创建代码来检索数据。但是现在我们需要通过 linq 来做这件事。我们如何创建如下查询:

仅来自字符串。我们将有一个名为“customer”的字符串,所以我们知道我们必须从 Customer 中检索。然后我们会有一个包含我们想要检索的字段名的字符串[]。如您所见,这些列可能包含复杂类型(相关字段)。

任何建议,尤其是与 LLBLGen 结合使用时,都会很棒!

谢谢, 加布

0 投票
8 回答
18569 浏览

c++ - 在 C++ 中表示二维数组的最佳方法,其大小在运行时确定

在 C++ 中,我想做类似的事情:

但这当然行不通。做类似事情的最佳方法是什么?我已经看到了一些解决方案,但它们看起来很混乱。

0 投票
4 回答
9680 浏览

c# - C#4 中的 dynamic 关键字是否支持扩展方法?

我正在听一个关于C#4关键字的演讲dynamic,我想知道......这个功能是否会与其他 .NET 功能正交,例如它是否支持扩展方法?


注意:这个问题是在 C#4 发布之前提出的,这就是为什么它用将来时来表达。

0 投票
3 回答
759 浏览

dynamic - C#4.0 动态对象是否有一些鸭子类型的功能?

根据 Anders 的说法,在 C#4.0 中,我们将获得动态类型,或“静态类型为动态”的对象。这将允许在运行时而不是编译时发生任何方法调用解析。但是是否有工具将动态对象绑定到某种合约(从而也获得完整的智能感知),而不是允许对其进行任何调用,即使你知道这不太可能是有效的。

即,而不仅仅是

有能力对其进行转换或转换以将其限制为已知的合同,例如

甚至只是

在 C#4.0 的现有材料中找不到类似的东西,但它似乎是动态范式的逻辑扩展。有更多信息的人吗?