标签: extensibility

VS2010可扩展性 - 它有多大不同?

给那些已经看过VS2010的人提问.为了让他们的加载项在VS2010下工作,加载开发人员必须做出多大的改变?

vsx extensibility add-in visual-studio

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

使用Word 2007作为CMS页面编辑器

我一直在寻找几个小时,但我找不到任何关于这个......基本上我想为word 2007创建一个模板或插件,允许有人为CMS创建新页面.我的想法与博客文章模板类似.我知道如何创建基本模板,但我找不到使用Word中的发布按钮发布创建的文档的方法.

thnx提前

c# extensibility ms-word publishing content-management-system

3
推荐指数
2
解决办法
1559
查看次数

没有开源的可扩展性

我公司目前正在用C#创建一个大型的多层软件包.我们已经对结构采用了SOA方法,我想知道是否有人对如何使具有编程知识的用户可扩展它有任何建议.

这将涉及双重过程:生产系统的管理员批准以允许使用特定插件,以及实际的插件体系结构本身.

我们希望允许用户编写脚本来执行常见任务,修改用户界面的布局(用WPF编写)并添加新功能(即允许列表制表数据).有没有人有任何关于如何实现这一点的建议,或者知道在哪里可以获得知识来做这种事情?

我认为这对于发布带有限制性许可证的软件开源来说是完美的角落,但是,我并不热衷于允许竞争对象访问我们的源代码.

谢谢.

编辑:以为我只是澄清解释为什么我选择了我做的答案.我指的是我公司外部的生产管理员(即客户端),并且让他们以更简单的方式自动化/编写脚本,而不需要他们完全了解c#(他们主要是编程有限的最终用户)经验) - 我更多地考虑DSL.这可能是一个遥不可及的目标,Managed Extensibility Framework似乎提供了迄今为止最好的折衷方案.

.net c# plugins extensibility

3
推荐指数
2
解决办法
358
查看次数

Microsoft的MEF与Eclipse相比如何?

MEF(Managed Extensibility Framework)和Eclipse平台之间有什么共同点和不同点?我觉得MEF与Eclipse非常相似,添加了DI.

你的意见?

.net eclipse plugins extensibility frameworks

3
推荐指数
2
解决办法
1683
查看次数

Linq to SQL可扩展性方法定义

如果我有一个Linq表说User和我那么做这样的事情;

public partial class DataAccessDataContext
{
    partial void UpdateUser(User instance)
    {
        //do something here
    }
}
Run Code Online (Sandbox Code Playgroud)

最终发生的事情是记录永远不会在数据库中更新.

一旦我摆脱了UpdateUser方法,数据库就会再次更新.

我在网上发现了一些内容,提到一旦你实现了Insert,Update和Delete三种可扩展性方法中的任何一种,就不再更新数据库了.

这是正确的,有没有办法让这个工作?

extensibility linq-to-sql

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

体验流畅的界面?我需要你的意见!

很抱歉这个很长的问题,它被标记为维基,因为我要求的东西可能没有一个非常具体的答案.如果它关闭了,那就这样吧.

我的主要问题是:

你如何编写一个未在基类中完全定义的流畅接口,以便使用流畅接口的程序可以在现有结构中添加新单词,并且仍然保持一个引导接口,以便在点之后,智能感知仅列出此时实际应用的关键字.


我正在重写我的IoC容器的第三次迭代.第二次迭代是为了提高性能,第三次迭代将解决一些可扩展性问题和分离问题.

基本上,可扩展性的问题是没有.我最近想要使用具有生命周期的服务,并在生命周期结束后,解决一个新的副本.例如,每分钟读取一个配置文件,但不是更频繁.我目前的IoC解决方案不支持这种方法,但添加它的唯一方法是进入基类库并在那里添加对它的支持.这对我来说意味着我无法构建可扩展的类库.平心而论,我并不打算在其中构建可扩展性,但后来我并没有充分意识到进入并稍后添加类似内容会带来多大的痛苦.

我正在寻找我的流畅的配置界面,因为我想在界面中构建完全可扩展性(或者摆脱它,我不愿意这样做)我需要以不同的方式做事.

因此,我需要你的意见.我实际上使用流畅的接口的经验很少,但我已经看到了很多使用它们的代码,因此开箱即用有一个明显的好处:

  • 使用流畅接口的代码通常很容易阅读

换句话说,这个:

ServiceContainer.Register<ISomeService>()
    .From.ConcreteType<SomeService>()
    .For.Policy("DEBUG")
    .With.Scope.Container()
    .And.With.Parameters
        .Add<String>("connectionString", "Provider=....")
        .Add<Boolean>("optimizeSql", true);
Run Code Online (Sandbox Code Playgroud)

比这更容易阅读:

ServiceContainer.Register(typeof(ISomeService), typeof(SomeService),
    "DEBUG", ServiceScope.Container, new Object[] { "Provider=...", true });
Run Code Online (Sandbox Code Playgroud)

所以可读性是一个问题.

但是,程序员指导是另一种,通过在网络上或在编辑器中阅读现有代码而不易理解的东西.

基本上,当我输入这个:

ServiceContainer.Register<ISomeService>()
    .From.|
          ^-cursor here
Run Code Online (Sandbox Code Playgroud)

然后intellisense将显示可用的分辨率类型.在我挑选那个之后,写道:

ServiceContainer.Register<ISomeService>()
    .From.ConcreteType<SomeService>()
    .For.|
Run Code Online (Sandbox Code Playgroud)

然后我只能在"For"关键字之后获得可用的内容,例如"Policy"等.

但是,这是一个大问题吗?您使用过的流畅界面是这样的吗?明确定义接口的警告是使用所有关键字和所有内容创建一个类或接口,以便每个逗号后的intellisense包含所有内容,但这也可能导致这是合法的(如,它编译)代码:

ServiceContainer.Register<ISomeService>()
    .From.ConcreteType<SomeService>()
    .From.Delegate(() => new SomeService())
    .From.With.For.Policy("Test");
Run Code Online (Sandbox Code Playgroud)

所以我想构建流畅的接口,以便在您指定如何解析服务后,再也不能这样做了.

  • 换句话说,流畅的界面非常易于使用,因为它们可以引导您完成您的工作.

但这是典型的吗?因为我希望能够添加一堆这样的关键字,比如解析器的类型(ConcreteType,Delegate等),范围的类型(Factory,Container,Singleton,Cache等)作为扩展方法,这样程序可以定义自己的方法,而无需进入和更改基类,这意味着我需要为所有中间停止提供接口,并让实际的重要关键字.然后,这些关键字的实现必须选择一个中间停止接口以便返回.

所以看起来我需要为以下内容定义一个接口:

  • xyz.From.
  • xyz.From.<Resolver here>.
  • <Resolver here>.With.
  • <Resolver here>.For.

等等,但对我来说看起来很分散.

任何有流畅界面经验的人都可以回到顶部并阅读我的引用答案,并试着给我一个简短的答案吗?

extension-methods extensibility fluent-nhibernate

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

如何以编程方式覆盖构建和启动操作?

我创建了一个与自定义项目类型相关联的自定义项目模板.该解决方案在很大程度上取决于项目的MPF - Visual Studio 2012框架.

我接下来要做的是覆盖此自定义项目类型的默认"Build"(F6)和"Start without debugging"(ctrl + F6)事件.解决方案本身将部署为VSIX包.

任何帮助表示赞赏.

c# extensibility visual-studio-sdk visual-studio-extensions visual-studio-2012

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

Visual Studio和加载项卸载

当我从Visual Studio的加载项菜单中删除加载项时,它不会从内存中卸载.有谁知道我是否可以为我的加载项(在C#中)编写一些强制卸载的代码.这甚至可能,还是我必须重启VS?

c# vsx extensibility add-in visual-studio

2
推荐指数
1
解决办法
825
查看次数

Magento:如果控制器被重写,为什么控制器动作predispatch事件不会触发?

如果重写控制器,为什么控制器操作predispatch事件不会触发?这是一个片段store/app/code/core/Mage/Core/Controller/Varien/Action.php:

abstract class Mage_Core_Controller_Varien_Action
{
    // [...]
    public function preDispatch()
    {
        // [...]
        if ($this->_rewrite()) {
            return; // [What is the purpose if this?]
        }
        // [...]

        // [This is where my event needs to be firing, but this code never gets 
        // executed because the controller is rewritten]
        Mage::dispatchEvent(
            'controller_action_predispatch_'.$this->getFullActionName(),
            array('controller_action'=>$this)
        );

    }
    // [...]
}
Run Code Online (Sandbox Code Playgroud)

我不知道从哪里开始解决这个问题.以前有人曾经处理过这个吗?

php extensibility controller event-handling magento

2
推荐指数
1
解决办法
9454
查看次数

如何使用UITypeEditor为Visual Studio创建简单的Automation Extender

在Visual Studio中,当您在解决方案资源管理器中选择项目或项目项时,有时您可能想要向属性窗口(按F4时弹出的窗口)添加自定义属性。另外,要填充这些属性的值,我需要添加一个按钮以弹出一个表单,以便我可以在设计时从用户那里收集信息。

什么是最简单的实现,这样我就可以开始了?如何使用UITypeEditAttribute创建一个用户界面来收集值?

ide extensibility visual-studio

2
推荐指数
1
解决办法
400
查看次数