The Visual Studio Pipeline Builder is a tool for generating pipelines for Add-ins from the System.AddIn namespace.
Because of the lack of updates at the official code-drop for the pipeline builder, I registered this project so I can have subversion.
Looking to create a plugin architecture? Don't look here.
After having continued this project after it was unmaintained from the original authors, I discovered that this isn't the best way to build plugins for .Net applications. The core of the problem, the core that causes monsters like this to be built, is that you can't use the type Type
inside of an AppDomain unless you load the originating dll into the AppDomain. This, and the fact that you can't unload dlls from your AppDomain is the problem.
You have two options, as I see it:
- use a more capable library for introspection and reflection. That would be Mono Cecil. Using Cecil, you can look at the IL as Reflection was meant to be done; without tainting your AppDomain with what you are looking at and avoiding problems such as attributes from executing code as you look at them.
- use message passing - I would recommend an open source service bus called MassTransit - mailing list - using this framework you simply use Publish-Subscribe to let your plugins respond to application events. It has as a great side-effect that each plugin can be run in the complete isolation of a process; or inside of your own AppDomain, should you wish.
by JesseKaplan http://www.codeplex.com/site/users/view/JesseKaplan
This has been one of the most requested features we've had since people started learning more about our model and playing with the bits. For a particular version of an application writing the code for the views and adapters can be a lot of mechanical repetitious work and generally only gets interesting when you are writing "cross-version" adapters. So what we've done is build a tool that will automatically generate the source code for the views and adapters for a given contract assembly. This tool is really just a library that can be used from various other places and our release will include a simple command line tool as well as a VS 2008 add-in that will automatically generate the projects and set references/build paths for you appropriately.
This tool should still be considered in pre-release state but because of the nature of it that shouldn't discourage you from using it in your products. While we are still working on adding additional features (and will be taking requests/suggestions for them), as long as tool has the features you need you should feel comfortable using it. Since the code this tool generates doesn't take any dependencies on the tool, or related assemblies, new updates will not impact your app and should be easy enough to incorporate in your build process. If we post updates that change the code generated for currently available features we'll make sure that gets noted and describe the changes.
Currently the tool only generates C# projects and source code but the code it generates can be consumed from any other .Net language. The contract assembly itself can also be built in any language.
This project consists of three major pieces:
* PipelineBuilder assembly for examninig the contract assembly and generating the source code
* PipelineHints assembly that contains custom attributes you can use in the contract's source code to customize the PipelineBuilder output
* VSPipelineBuilder VS2008 add-in that integrates with VS and takes care of adding projects and source files to solutions
Why am I not contributing to the original project?
Because I tried to but nothing was changed and discussions aren't replied to by anyone in charge. The CTP isn't developed upon, but rather kept inhouse till MS releases something public. The original source code contained some problematic bugs and it's a shame everyone downloading it would have to experience the same bugs over and over again or have to apply patches on their own.
Hence I set this up so that people can contribute and so that subversion can be used.
Please file issues in the issue tracker and vote on them, so they can be fixed according to need! Also, please sign up as a developer and help out! :)
1. Close any VS instances with the add-in loaded. Paste binaries in %PROGRAMFILES%\Microsoft\Visual Studio Pipeline Builder
2. Start Visual Studio
It's not possible to select MS-LPL, from the list of licenses, but for obvious reasons I can't change the license of the original project, from the limited version. Principally it states you mustn't use the code on non-windows systems, which would be hard anyway since it's a visual studio plugin.