The Artima Developer Community
Sponsored Link

.NET Buzz Forum
Creating a Plugin Architecture for WSMQ and Dynamic AppDomains in ASP.NET

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Brendan Tompkins

Posts: 158
Nickname: brendant
Registered: Apr, 2005

Brendan Tompkins is .NET Developer and founder of CodeBetter.Com
Creating a Plugin Architecture for WSMQ and Dynamic AppDomains in ASP.NET Posted: Sep 9, 2005 12:17 PM
Reply to this message Reply

This post originated from an RSS feed registered with .NET Buzz by Brendan Tompkins.
Original Post: Creating a Plugin Architecture for WSMQ and Dynamic AppDomains in ASP.NET
Feed Title: Brendan Tompkins
Feed URL: /error.htm?aspxerrorpath=/blogs/brendan.tompkins/Rss.aspx
Feed Description: Blog First. Ask Questions Later.
Latest .NET Buzz Posts
Latest .NET Buzz Posts by Brendan Tompkins
Latest Posts From Brendan Tompkins

Advertisement

I’m finally done with the code for WSMQ Beta 2!  Whew!  If you’re not familiar with WSMQ, it’s a simple, open queue application with a WSE 2.0 endpoint that is easy to manage, deploy and scale. This latest versoin represents a huge refactoring effort from the Beta 1 version.  I’ve also added a bunch of new features. 

Providers within Providers

One that I hope will allow it to be more useful is pluggable data and queue providers.  If you wish to customize the handling of the queue operations, you can simply create a new QueueProvider, drop into the application’s bin directory, configure it and the Queue Web Service and Web Manager will use your new provider.  I’m going to release the source with two queue providers, one for Xml (XmlQueueProvider) and one for Relational Databases (DbQueueProvider).  The DbProvider also uses an additional provider model that will allow you to plugin db-specific data providers (Oracle versus SQL).  The SQL Server provider will also be made available.  I’m not expecting most to develop their own Queue or Data providers, but for those who need to do this, I think this new design will work well.

Message Trigger Plugins

The other,  more generally useful  new features I’ve added are pluggable “Message Triggers” that you can upload to a queue, through the WSMQ web manager.   These triggers allow you to embed custom code into a queue to handle certain queue events, such as messages arriving on a queue or being recieved.

I ran into a host of issues with trying to design a good plugin architecture.  My final design involves spinning up a new AppDomain for the message triggers, so that they can be easily loaded and unloaded when a new trigger is uploaded, deleted or re-versioned.  I found a bunch of great resources on how to do this, so I thought I’d post them here:

Eric Gunnerson’s  AppDomains and Dynamic Loading  is the place to start, as far as I can tell. Great overview and downloadable project.

CodeBetter’s good friend Roy Osherove has a similar, but easier to swallow version of Eric’s example in his series on adding plugins to your app.  Add Plugins to Your App 2: Search dynamically for plugins without Config Files

And Suzanne Cook's .NET CLR Loader Notes are just awesome.  Subscribed!

I’m hoping to have the installer, and source code available for downloading early next week. I’ll try to blog a bit about what I went through to get dynamic AppDomain loading to work with ASP.NET, where things are a little different from standard executables.

-Brendan

Read: Creating a Plugin Architecture for WSMQ and Dynamic AppDomains in ASP.NET

Topic: Gettin' Certified: A New IT Architect Certification Program Previous Topic   Next Topic Topic: Commercial services available

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use