问题标签 [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 回答
226 浏览

wcf - TryReceiveRequest 被无限次调用

我已经构建了一个自定义绑定,以便能够从其他来源接收 HTTP 消息。但是,它还不是没有错误的。

我观察到,一旦处理了第一个请求,我的服务就会将 CPU 使用率提高到 100%,并且随着请求的数量越来越多,服务变得越来越慢。在将日志记录命令插入每个命令后,可以看到这种行为的原因绑定的功能。

直到第一个请求进入之前,一切正常:

然后,完成第一条消息的处理:

通道实现了 IReplyChannel 接口,因此只能获取请求,回复它,然后关闭通道。ServiceModel 不只是关闭通道,而是继续在已使用的通道上发送垃圾邮件 TryReceiveRequest,而不管过去是否已使用该通道。

有什么方法可以正确解决这个问题吗?为什么ServiceModel在关闭回复上下文后不关闭通道,尽管在使用后保持通道打开是没有用的?

0 投票
4 回答
8518 浏览

prism - MEF:PRISM 的替代品?

MEF 在多大程度上(如果有的话)是 PRISM 的替代品?

0 投票
2 回答
1111 浏览

silverlight - 如何为 DataBinding 扩展 Silverlight TabControl?

微软的 Yi-Lun Luo 说:

[C] 目前 [the] TabControl 不会覆盖 PrepareContainerForItemOverride,因此它不会自动将您的数据源包装在 TabItems 中。

所以问题是:我如何创建自己的控件:

  1. 扩展 TabControl。
  2. 覆盖 PrepareContainerForItemOverride。
  3. 自动将我的数据源包装在 TabItems 或我自己的 TabItemExtended 控件中?
0 投票
1 回答
82 浏览

iis-7 - 在 IIS 7(.5) 中向网站页面添加自定义任务

是否可以将 TaskItem(或 TaskList)添加到网站页面(Web 对象主页)?

我想为我的插件提供一些上下文访问,但我似乎找不到一个好的集成点。

0 投票
3 回答
312 浏览

c# - 在我的设计中实现自定义挂钩的最佳方式

我想知道将自定义挂钩插入我的应用程序的最佳方法是什么。基本上,我的应用程序分为两个程序集:一个Core包含所有业务逻辑的UserInterface程序集和一个包含 GUI、控制器类(我正在使用异常的 MVC 模式调用“被动视图”)和一些帮助程序类的程序集。核心组件也被其他一些应用程序使用。

我们公司使用我的应用程序来处理来自其他公司的订单。所有公司的一般流程都是相同的,但这里和那里存在特定于客户的小偏差。截至目前,这些偏差已直接实施到核心组件中,闻起来很臭。我想将这些细节分开,最好将它们封装到每个客户的单个对象中,这样我就有一个包含所有客户特定细节的中心对象,我可以将其放入 UserInterface 程序集中。

我考虑过使用事件来实现这一点。通过在我的核心类中添加一些事件,我的控制器类将能够订阅或取消订阅为某些客户实现这些偏差的方法。

我可以想到两种方法:手动添加这些绑定或让它们自动添加,如果存在异常方法。我正在为后者考虑这样的事情:

我想我必须使用反射来实现这一点,但这对于需要多次执行的操作是否可行?

或者有没有更好的方法来添加自定义钩子,同时让我以客户为基础集中偏差?

[编辑] 完全修改了问题。

0 投票
1 回答
315 浏览

visual-studio - 使用数据库信息填充 Visual DSL

我有以下问题要解决:

  1. 目前我们有一个数据库模式的元数据树,它具有内存表示和专有模式 XML 序列化(也就是说,我们可以将所有内存数据读/写到 xml 文件)。

目前我正在开发一个 Visual DSL 解决方案(类似于图表),以允许更轻松地使用数据库模式进行操作,并且需要以下指导:

我想从包含数据库模式信息的元数据树中填充 DSL 模型,但我不确定哪个是最好的方法(我是 DSL 新手,所以我不确定我是否看到了所有可能的方法) . 到目前为止,我知道以下内容:

  1. 在 Visual Studio 中创建 DSL 项时,我取出创建元数据树的架构,然后将其序列化为为新项创建的 DSL 文件中的 DSL 的 XML 架构。这样,当 DSL 打开时,它将正确反序列化。然而,这需要大量代码来将我们自己的数据转换为 DSL 所需的数据。

  2. 如果可能的话,我想实例化一个元数据树来遍历它,同时通过代码/API 更改 dsl 模型。

因此,任何朝着这个方向(你做这件事的方式)的指导对我来说都是有价值的。

0 投票
1 回答
144 浏览

design-patterns - 基于继承的 API 是否违反 OCP?这可以通过提供者模型/依赖注入来实现吗?

我是第一次设计 API,并尝试遵循 SOLID 指南。我发现自己挣扎的一件事是平衡 OCP 和可测试性与简单性和易于扩展性。

这个开源 API 面向科学建模和计算。其目的是让各个小组能够轻松地将他们的特定模型导入到这种“可插拔”架构中。因此,它作为一个项目的成功将取决于这些科学家在没有不必要的开销或过于陡峭的学习曲线的情况下传授他们特定领域知识的难易程度。

例如,我们的计算引擎依赖于“矢量化”计算——我们很少需要只计算一个标量值。许多模型可以利用这一点并执行“开销”计算以在每个标量子计算中重复使用。但是,我希望用户能够定义一个简单的标量操作,它将继承(或以其他方式提供)默认的矢量化行为。

我的目标是成功

1) 让新手用户尽可能简单地实现他们的基本计算模型 2) 让高级用户尽可能简单地覆盖矢量化行为

...当然,同时保持 SoC、可测试性等。

经过几次修改,我有了一些简单且面向对象的东西。计算合约是通过接口定义的,但鼓励用户从提供默认向量化的抽象 ComputationBase 类派生。这是设计的按比例缩小的表示:

对于 ComputationBase 中的向量化计算,我最初使用了提供者模式(通过构造函数 DI),但将标量计算保持为抽象。理由是这是很好的“受保护的变体”——基类将始终“拥有”向量化操作,但将计算委托给注入的提供程序。从可测试性和矢量化代码重用的角度来看,这似乎通常也是有益的。但是,我遇到了以下问题:

1) 标量(继承)和向量(提供者)计算方法的异质性似乎可能使用户感到困惑,要求似乎过于复杂,而且代码味道很差。

2) 为向量化创建一个“单独的”提供者是一个有漏洞的抽象——如果提供者要做任何聪明的事情,它通常需要类的实现的内部知识。我发现自己创建了私有嵌套类来实现它们,这告诉我这是一个无法分离的问题

这是 w/r/t OCP vs 可测试性 vs 简单性的好方法吗?其他人是如何设计他们的 API 以在各种复杂程度下进行扩展的?你会使用比我所包含的更多的依赖注入机制吗?我也对关于良好 API 设计的一般参考资料感兴趣,而不是对这个特定示例的回答。谢谢。

谢谢,大卫

0 投票
4 回答
28984 浏览

visual-studio-2008 - Visual Studio 中的 Powershell

有谁知道我可以在 Visual Studio 中运行 powershell 的方法。

我的意思是,在工具窗口中有一个交互式的 powershell 提示符吗?

善良,

0 投票
3 回答
1229 浏览

c# - 扩展 ASP.NET WebControls:如何有效地隐藏公共属性

我将 TextBox WebControl 扩展为一种“DateTextBox”,它DateValue在代码隐藏中将其值作为属性 () 公开:

鉴于此控件仅应与日期一起使用,因此没有理由Text从其父级继承该属性。

有什么办法可以隐藏它吗?.. 除了实现 a NotImplementedException,像这样:

0 投票
1 回答
93 浏览

graphics - 可以构建的图形编辑器有哪些?

我想从一个功能强大的矢量图形绘图/编辑程序开始,并将其扩展为我正在处理的项目创建一个视觉设计器。

您知道可以构建的图形编辑器吗?也许开源?用户应该已经能够自由地绘制和着色图形,并且任何形式的分组/排列元素都是一个优点。