问题标签 [extensibility]

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 投票
1 回答
351 浏览

c# - 高度可扩展项目的设计问题 - 牢记最佳实践

开发环境是 C# 3.5,带有 SQL Server 2008 数据库和实体框架。

想象一下,您有一个名为 Sign 的类和一个表,它表示由您的软件需要控制的第三方创建的物理电子标志。您还有一个名为 SignDriver 的类,它负责与标志进行实际通信。标志的属性/列表示标志驱动程序正确与标志对话所需的可配置信息。

一切都很好,你已经非常彻底地拍了拍自己的背。然后需要与不同的星座交谈。但是,此标志的工作方式与前一个不同,需要您的 Sign 类和表来存储其他信息。假设需要存储 5 个新事物(列/属性),但不幸的是,第一种类型的符号不需要这 5 个事物。然后您会发现,当您要控制每种类型的 10 个符号时,您的表中有许多 NULL 值。

您的域模型会不断增长,直到您拥有更多像 Sign 这样的类,每个类都代表问题域的不同部分,并且每个类都在数据库中具有相应的表。每个班级都面临着收集其类型的共同信息的相同问题,但根本不能很好地满足每种类型的专业化。

你意识到你的问题的性质意味着将有更多类型的迹象需要控制,以及更多类型的其他实体需要迎合。您需要一个更可扩展的模型。

对于这样的系统,最好的前进方式是什么?

我已经与我的同事详细讨论了这个问题,并且真的很想知道解决此类问题的最佳方法是什么。特别是因为这似乎是许多人过去会面临的问题。

以下是我们提出的选项以及每个选项的一些要点:

  • 为每个实体创建n个“类型”类和表,以与其共享 1 对 1 关系。
    • 非常继承-y。
    • 扩展时最耗时。
    • 很多表。
  • 为每个实体创建一个“扩展属性”表来保存键值对。
    • 参照完整性。
    • 可扩展。
  • 创建一个全局“扩展属性”表来存储任何实体的属性。(架构:entityType、entityId、key、value、dataType)
    • 超级可扩展。
    • 不能与现有表具有参照完整性。
    • 看起来实体框架不能很好地处理这个问题。

你会做什么,为什么?

非常感谢任何帮助。干杯。

0 投票
2 回答
283 浏览

c# - 扩展视觉工作室

我想为 Visual Studio (2010) 编写一个插件。我的目标是在解决方案资源管理器中的所有 .cs 文件的上下文菜单中添加一个菜单项。或者可能只是代码窗口的上下文菜单,尽管我更喜欢第一件事。我一直在Visual Studio 可扩展性网站上四处浏览,但我必须承认,我很难找到有关如何实现我想要的目标的教程。老实说,我想我并不真正了解 VS 可扩展性模型。

所以我想这里的一些聪明人一定曾经尝试过,我希望通过在这里提问来节省一些时间,而不是在黑暗中摸索。

提前感谢您的帮助。

0 投票
3 回答
327 浏览

asp.net-mvc - ASP.NET MVC URL 生成扩展点

ASP.NET MVC 中 URL 生成的扩展点是什么?

  1. 路由 - 虚拟路径取决于它
  2. ???

附录 1
特别是,我不仅需要控制 URL 的路径部分,还需要控制主机。而且我想将我的生成逻辑嵌入到 MVC 框架中,以便对标准Html.ActionLink方法的任何调用都会涉及我的逻辑。这将是完美的。但是,在调查 MVC 源时,我迫切希望以一种简单的方式实现我的目标。

0 投票
1 回答
137 浏览

visual-studio-2010 - 如何在 T4 模板中获取 Istereotype 参考?

有没有办法在 t4 模板中获取对 Microsoft.VisualStudio.Uml.Profiles.IStereotype 接口的引用?我的意思是存储 UML 原型定义的 IStereotype,而不是保存实际值的 IStereotypeInstance。我试过这样的东西,但 ApplicableStereotypes 枚举是空的。

我试图从 ModelStore 获取 IStereotype。但是 ProfileManager 属性总是返回 null 并且代码中断。

我被困住了。请帮忙!

0 投票
1 回答
29 浏览

java - 如何在 appserver 中实现扩展机制?

我正在开发应该 24/7 全天候工作的 servlet。我想创建一些扩展机制:在类路径中放置新 jar 必须由主 servlet 检测到,并且应该加载一些类(无需重新启动 appserver)。

目的:主 servlet 接收事件并将数据重定向到加载的类(扩展)。扩展实现了一些接口(例如IMyExtension)。

也许有办法找到所有实现特定接口的类?或者你有什么建议?

0 投票
1 回答
301 浏览

visual-studio-2008 - 自定义输出 => VS2008 IDE 中的错误解释列表

我在 VS2008 中有一个“数据库解决方案”项目——它从某种模板为多个数据库供应商生成 SQL。为了节省时间,我还在VS2008中配置了一个工具(一个Python脚本),可以编译一个单独的存储过程。现在,使用 Python 脚本,我可以自由地处理输出并让它呈现出我想要的任何形式。我正在考虑以某种方式识别这些错误和警告并填充可点击的错误/警告列表。这是典型的 Oracle 错误的样子:

这可能是一个长镜头,但对我来说是值得的。我经常做这些事情。谢谢!

0 投票
2 回答
591 浏览

ruby-on-rails - 为 Rails 应用程序构建扩展框架

我正在开始研究为 Rails 应用程序构建用户级插件系统(如 Wordpress 插件)所需的内容,因此我将不胜感激一些一般性的指针/建议。用户级插件是指用户可以提取到文件夹中并显示在管理界面上的包,允许他们添加一些额外的配置然后激活它。

这样做的最佳方法是什么?有没有其他开源项目已经这样做了?Rails 本身已经为可以利用的程序员级插件提供了什么?任何可以帮助我解决此问题的 Rails 插件?

插件必须能够:

  • 运行自己的迁移(有 这个?它没有记录)
  • 可以访问我的模型(插件已经可以)
  • 具有向视图添加内容的入口点(可以使用content_for 和 yield完成)
  • 替换整个视图或部分视图(如何?)
  • 提供自己的管理员和面向用户的视图(如何?)
  • 创建自己的路线(或者可能只是宣布它的存在并让为它创建路线,以避免插件踩到彼此的脚趾)

还有什么我想念的吗?

此外,有没有办法限制插件可以访问的有关迁移和模型的表/操作,并限制它们对路由的访问(可能让它们包括但不删除路由)?

PS:我会尽量保持更新,编译我想出的东西和相关的答案,以便为其他人提供一种指南。

0 投票
3 回答
602 浏览

ruby - Ruby 的脚本引擎?

我正在创建一个 Ruby On Rails 网站,一方面它需要是动态的,以便(排序)受信任的用户可以使网站的某些部分以不同的方式工作。为此,我需要一种脚本语言。在 ASP.Net 中的一个类似项目中,我编写了自己的脚本语言/DSL。我不能使用那个源代码(在工作中编写),如果我不需要的话,我不想制作另一种脚本语言。

那么,我有哪些选择?脚本必须被锁定并且不能使我的服务器或任何东西崩溃。如果我可以使用 Ruby 作为脚本语言,我真的很高兴,但这并不是绝对必要的。此外,几乎每个网站请求都会调用此脚本部分,有时不止一次。所以,速度是一个因素。

我查看了 RubyLuaBridge,但它是 Alpha 状态,似乎已经死了。

在 Ruby 项目中我有哪些脚本语言选择?

此外,我将完全控制该项目的部署位置(root 访问权限),因此没有真正的限制..

0 投票
2 回答
740 浏览

linq-to-sql - 将 LINQ 类扩展到我自己在不同命名空间中的部分类?

我有一个 .dbml 文件,其中当然包含基于我的表自动生成的类。

但是,我想将它们扩展到我自己的课程。通常我的设计是让我的每个表在它们自己的文件夹中都有自己的命名空间,其中包含所有相关的 dao 和服务类。因此,如果我正在处理一个仅与“客户”有关的页面,我只能包含 customerNS。

但是当使用 LINQ 时,我似乎无法做到这一点。我尝试从项目中删除默认命名空间,我尝试将 .dbml 文件放入具有自定义命名空间的自己的文件夹中,然后添加“使用”语句,但没有任何效果。

我还看到了与 .dbml 文件关联的实体命名空间、上下文命名空间和自定义工具命名空间属性,并尝试将所有这些设置为名称 x 并​​尝试在我的其他类中“使用 x”以允许我扩展部分类,但它只是不起作用。

这是可能的还是我必须将所有扩展的部分类保留在与 .dbml 文件相同的命名空间中?

0 投票
3 回答
218 浏览

android - android移动开发性能与可扩展性

我正在用 android 开发游戏,我一直在考虑将游戏的许多元素(例如游戏对象)细分为单独的类和子类。但我知道对这些对象的方法调用会导致一些开销。提高性能或提高可扩展性会更好吗?