Enterprise Library for .NET Framework 3.0 – what would you like to see?

We're getting ready to start the planning process for the next release of Enterprise Library which will target .NET Framework 3.0. In case you missed it, .NET Framework 3.0 is the new name for what used to be known as .NET Framework 2.0 combined with the new WinFX class libraries for WCF, WPF and WF. For more information on the name and version, check out Soma's post.

While we expect that the new WinFX libraries in .NET 3.0 will require us to make certain updates or changes to existing blocks (for example, to allow the Logging Application Block to work within a WCF pipeline), the platform change isn't going to be anywhere near as significant as the move from .NET 1.1 to .NET 2.0. This is hopefully good news for you, as it means we can focus more of our energy on improving the library in other ways.

So where should we focus our efforts? While we have a few ideas up our sleeves, the best ideas are likely to come from people who are using Enterprise Library on real applications (and if you're still reading, that probably includes you!). So don't be shy - tell us what you want!

Instead of just providing a feature list, imagine you have $100 (Australian dollars, of course) to invest in the our new release. If there's only one feature you care about, you can invest all $100 in that feature. If you want 5 new features or changes, you could invest $20 in each of those, or you could split it up differently depending on how important each request is to you (eg $60/$20/$10/$5/$5).

Please use your imagation and come up with whatever crazy suggestions you want for this new release. But to help get you started, here are a few feature areas you may want to consider:

  • New blocks (please specify what these blocks should do)
  • New providers for existing blocks (please specify which blocks and what the providers should do)
  • Integration with new WinFX features (which ones?)
  • Changes to the internal architecture (what and why?)
  • Better support for deployment or operations processes
  • Performance improvements
  • Improvements to the configuration tool (such as?)
  • Improvements to the documentation (such as?)
  • New or improved samples or training materials
  • Software factories or guidance packages to help you build blocks or providers
  • VB version of the block source
  • ...anything else?

Please limit your suggestions and your virtual investment to things that belong in Enterprise Library. The p&p team is continuing to work on a bunch of other projects such as our new Software Factories for scenarios such as web services, smart client and web development - but these are all different projects to Enterprise Library (even though many of these will leverage EntLib blocks). Enterprise Library is - and will remain - a library of general purpose application blocks for common development scenarios.

Comments (145)
  1. Andrew says:


        I would love the ability to have different logging providers that are active only at certain log-levels.  For instance, I want all high-priority messages for a given category to go to one provider, and lower ones to go to a text file.


  2. I would like to see:

    1) 80$ for good designer probably made using Visual Studio DSL technology. This designer should allow me to develop in both UI block for PC and mobile: UseCases, Flow control, etc

    2) 20$ for support new WPF and WPF/E

    And many more, but I will write it ASAP 🙂

  3. don frazier says:

    I would like to see the data access block be able to perform smart updates inside a transaction for a data set that contains multiple tables.  Deletes should be performed from bottom up, inserts/updates from top down.  You should be able to use the relationships in the data set to derive the order in which to perform these.  The block should include a transaction to do a rollback.  You should also include support for a timestamp column to use for optimistic concurrency tests.

  4. Kevin White says:

    1. A really serious focus on key scenarios & examples for ASP.NET. No more HOL’s that claim to demonstrate ASP.NET through Winforms.

    2. A security rules engine that utilizes CODEDOM

    3. A provider that stores configuration info in SQL

    4. A Web version of the Configuration Console

    5. A Single demonstration project that employs all the key scenarios listed for each block

    6. Completely self contained unit tests or at least better documentation on the setup and dependencies to run the tests.

    7. An XML manipulation block. The base .NET library has great support but there are many simple operations which require too much code.

  5. Eric Hauser says:

    $100 for some decent documentation or usable version of ObjectBuilder.  If I want to use EnterpriseLibrary, it would sure be nice to not to have to go looking for an IOC container as well.

  6. Mario says:

    I would like to see:

    1) 80$ for Improve Software Factories, this will be a great programming help, automatization is a great need, specially in SOA Application with WCF, and link closer with App Block.

    2) 20$ for Improve Documentation.


  7. Kevin Kilburn says:

    I would like to see a block committed to combining results from 2 webservices (xml docs) into one document — a true data aggregator block.  I’ll spend $95 of my AUS bucks on that and keep the other $5 for food and alcohol. No way I’m spending $100 on my stupid computer.

  8. Larry says:

    How about support for ODP.NET in the Data Access Block?

  9. Kevin – we Aussies take for granted that for every $100 you spend on tech stuff, you’ll be spending $500 on beer.

  10. I aggree with Kevin White for:

    7) An XML manipulation block. The base .NET library has great support but there are many simple operations which require too much code

  11. Srikar says:

    I would like to see some effort to be spent on UIP block. As with 2.0, lot of things have changed like master pages, site maps etc. We need to get UIP block upto speed on that.

    Also in view of the WPF, it might be interesting to see if we can leverage the benifits in the same block.

  12. abab says:

    I agree with some sort of update around UIP although it should still be separate from Ent Lib.

  13. Stuart says:

    I’m with Larry: support for Oracle’s .NET providers (ODP.NET) in the Data Access Block is definitely needed.

    Also sort out ObjectBuilder so it can do IOC properly.

    I’d split the budget 70/30 on these two.

  14. James Reggio says:

    I would spend $100 USD on a new version of the User Interface Process (UIP) block — it’s definitely long overdue.  Amongst the new features should be support for web user controls (as views.)

  15. Javier says:

    Well I would like to see more on Documentation – Complex Examples – Hands On Labs, but everything on the same day the new fremework is available (70$)

    A provider for the logging block(?) that publishes objects-counters on the performance monitor. May be available through diferent log levels (20$)

    I agree with the configuration web console(10$)

  16. ygizhitsa says:

    Definitely I would like to see more snippets, and GA Recipes. The EntLib is mature enough to have its own DSL integrated with VS and  EntLib Configuration console. I would also like to see more ASPECT/ObjectBuilder features similar to the CAB. I’m not sure if the LINQ will be available with .NET 3.0, but if it will I would like to see EntLib makes use of it.

    What else? Cache provider for ASP.NET cache.

  17. gabriel.lozano says:

    – 80$ for the integration in the Visual Studio IDE

    – 20$ for an easy way to strong-name the assemblies

  18. Sam Gill says:

    Lets think outside the box: I would like to see an attempt to create .NET on Rails using either VB or C#.

  19. Julio Izquierdo says:

    Definitely agree with Larry and Stuart.

    I’d like to see more support for Oracle’s ODP.NET in the Data Access Application Block.

  20. Colin Bowern says:

    – Default behaviour for configuration-less logging/tracing.  I’ve had to replace Logger and Tracer with a "default" version which disables logging and tracing when no configuration is present.

    – Best practicse guidance on how ASP.NET Health Monitoring integrates in a multi-tier application.

    – A move away from GotDotNet as far as the message board is concerned.  http://forums.microsoft.com/msdn has a much better setup for discussions.  The Codeplex discussion board features aren’t that great either.

  21. Chris Hubbard says:

    $50 – generics to make creating your own blocks easier, specifically hooking into the config console (this surely could be made easier).  It seems to be way too much copy/paste code

    $50 – documentation

  22. Drew Cain says:

    I agree with Mario.  $100 for improve Software Factories.  It still takes entirely too long to develop an app, primarily because it takes forever to write a good business layer.  Strongly Typed Datasets are still no place for business logic.

  23. Mario Ferreira says:

    I like to see:

    80%)  In Integration and Automatization into Visual Studio of EntLib and Software Factories (Need for automatization is urgent for developers, we can´t learn to do the same thing in a diferent way every two years for the same promises (integration, performance, etc.), if not never we do engineering).

    20%)  In better documentarion and How to apply All App Block in Enterprise Apps, specially complex AppBlock like CAB.

    This is my opinion

  24. Wesley Davis says:

    $20 for a comprehensive "user settings" application block that can work with both ASP.Net and WinForms and anything in WinFX. It must support a hierarchy, even if that simply means parsing "/" or "" like the old VB 5/6 could do for user settings, but handle more complex settings via serialization – or the way it [is/can be] done with ASP.NET server controls. System and application settings should be separate from per-user and per-form (or, per-from-per control) settings. It should have a modest learning capability (if something is different x, e.g. 3, times in a row, make it the new default). System settings should be useful to store settings for Windows Service configuration tools.

    Application settings should be useable under ASP.Net and winforms (e.g. centrally managed) and do things from "where are the templates / default files" to "what color scheme to you want". It should handle both local XML files (winforms) and database. If a winform application is using SOA or web services, how about something that will work easliy with one? And forget any stupid ways of storing configuration based on the version of an application for winforms/FX – that is an insult to users who only use the current version. Enough already of that nonsense.

    $5 for an RSS application block, client and server side. Something that just drops into any application and will work – something that does all the heavy lifting and is close to "roll your own" with 100 lines of code. Or less. Something better, far better, than a few all-too-general framework classes. Like the original SQLHelper, give me the 90% and I’ll probably stop worrying about the other 10% because I’ll spend all the saved time doing UI.

    $5 Notification block, that is more than just error logging. Something that can send usage and performance data, for admin purposes (like systems work like planning for scalability). Something that pushes the notifications out to the right place, and can scan data from muliple sources (I’ll provide the queries), looks at a threshold or regex, and sends notifications accordingly. These can be based on a class interface / delegate (I’ll provide the object & collection it works with), or an email list or whatever. HINT: It should be more workflow than error log. Unlike the workflow engine, it should be focused on triggering conditions and notifications, at a specific level, and easier to use than a general workflow engine. Multiple sources, multiple targets (ways of notifying). Maybe this could be a distant relative, in nature, to the windows notifications (the service) that was later found to be a security risk and is turned off.

    $5 for an application block, perhaps something that is a half-extension of ASP.NET and Atlas, that makes modal popup windows easier to use, when retrieving values. I have too many custom classes and scripts that are almost, but not quite, duplicates of one another. In short, a complex form needs a selection that is more complex than a single control – in winforms it means a modal popup form, often with a filter because the timesheet charge code is a hierarchy (the possibilities are in the thousands, but only dozens when you drill down). Make a few settings, like the current selection, launch select and retrieve. This needs to be generalized in an application block. It only happens a modest number of times in an application, but it far too much of a pain to do, and never quite qorthwhile enough to be an entire library "roll your own" style.

    $5 How about an application block to more generalize external storage of the USB/1394 variety? This is probably less work-related and more like "I’m tired of writing code for home use, and what is already there doesn’t cut it". This should cover those key fobs, cameras, mp3 players, and so on. Something that can make sense out of them in ways beyond what XP and Windows Explorer does. The software that comes with these things knows nothing about anything else, and what’s worse, there is nothing that works with .NET at the "programable" level. So we need an application block for this – something that goes beyond files, and does the basics rather than the be-all-end-all of WinFS that won’t be a simple-to-use library either.

    $5 An application block for simple image processing – something far below those expensive libraries and an order of magnitude – no 2 – easier to use for developers. The 80-20, no, 90-10, no 95-5 rule. What do people need? How about simple cropping, sharpening, softening, color correction (e.g. fix florescent lights), wrong-f-stop fixing and similar non-esoteric effects. It should be limited to, when used in applications, a few controls and things even my mother can understand. If it’s fancy, forget it – that’s what the 3rd party stuff is for. I want something easy that can fit into a modest application block. If it can work with still captures from a business video conference, or a scanned document, we’re really talking close to what’s needed. It should take in common files, almost all of which will be JPG, and spit out something similar. Forget the weird stuff.

    I’ll think some more on how to spend the rest of the $100. I need to take a more in-depth look at what’s in the newer parts of .NET and still missing, now that you’re asking.

  25. James says:

    1. Built-in Sql Configuration Source (instead of an example) with the ability to have multiple applications/web sites with the same section names

    2. Ability to assign a configuration source to a particular section like the "configSource" attribute allows you to assign to an external file (so you could have multiple configuration sourcecs in use within one app/web config)

    3. Extend the default database trace listener to have the ability to store more business type data through transforms so we don’t have to always create a custom database trace listener to do this

    4. Have the timestamp logging configurable to use UTC or Local

  26. Jess Peralta says:

    Easy to use, less configuration, datagrid tied up pareto charts and graph. Put all the data on the datagrid tie it up to another graph control and to have it graph in configurable pareto charts (pie, bar, etc…) without the needs of using/configuring 3rd party reporting tool.

    Easy embedding Macromedia Flash or any movie file format on both web and client application.

    Less configurable control that converts the current screen into adobe, work, powerpoint… and datagrid conversion to excel.

  27. Tom Hollander from the Microsoft patterns & practices team just announced that they are in the planning…

  28. Jason says:

    What is the best way to tell you what we’d like to see? Do people have to reply to the blog?

  29. Tom,

    it would be nice if EntLib was faster and so closely integrated with the Operating System. It’s a shale to see there so many things that are only accessible from the Win32 API. So, if the goal is to provide every developer and consulting company, like Avanade, a framework we can use and make adopted to large corporation of big business, you have to keep every thing that is fast in Windows and keep what is efficient in term of calling any functionality.

    Exemple: the security APi in Win32 is anightmare. The .NET land is also , a nightmare. Sorry for that. But thats ‘the truth.

    I’m sorry to talk, again about that, but the MFC & ATL is the living proff that the best framework are the one, whoi can live and enhance, year after year, by considering the people who is using it, really, with respect.

    Now, the marketing is going to do big mistake…

  30. Peter says:

    1. A Forms Authentication block. This includes authentication, ticket manipulation, integration with the Identity and Principal, etc..

    2. Enterprise Architecture block. I’m thinking of the systems that have to link to workflow engines like Biztalk. They need endpoints, aggregators, sequence.

    3. Business components block. Something that helps produce better business services, entities, workflows etc.. Could be demonstrated with a new Global Bank (or is it AIB)

  31. Jason – for now posting comments is the preferred approach – not very scientific I know, but we’re just looking for random ideas at this stage. At a later stage when we have a more refined list, we may put together surveys to help with the detailed prioritization.

    If for whatever reason you don’t want to share your ideas with the world, you can click the Email link to send a private mail.


  32. Keith Farmer says:

    Re XML Manipulation — see XLinq (now LINQ over XML) at http://www.xlinq.net/

    Re LINQ in .NET 3.0:  .NET 3.0 is the WPF/WCF/etc release.  LINQ is in Orcas, which is a later release.

    Re .NET on Rails:  take a look at the BLinq project at http://www.asp.net/sandbox/app_blinq.aspx?tabid=62

  33. Tom Hollander sent out a note this morning soliciting input for the next version of Enterprise Library. …

  34. Cao Thanh Long says:

    I would like to have a code-generator for Data Access Application Block. for example : call a StoredProcedure easyly and quickly.

  35. davemoyle says:

    $40 UIP for ASP.NET

    We evaluated using the existing UIP app block, but found that maintainability was going to be too difficult. Updating the UIP block for .NET 2.0/3.0 would be helpful, but having a configuration interface would be a real boon.

    $30 Environmental Overrides

    Include Olaf’s environmental override extensions into the core libraries, but extend them to allow overrides of appSettings as well. They do a great job presently, but if you need multiple connection strings, you are probably going to have other settins that are environment sensitive also.

    $20 WebEventProvider for Health Monitoring

    $10 WinFX

    I guess the WCF improvements are a given, but I have not yet explored far enough into WF and WPF to find out how EntLib might help.

  36. Amit Goswami says:

    I use the library (specifically the ObjectBuilder and Configuration blocks) to create custom software factories. It has worked out great. However, last week I realized that there was no way to construct a factory that would return an instance of a class that requires type parameters (generic class, that is). The problem can be traced to the CreateObject method in ICustomFactory interface which does not have the type to instantiate as one of its parameters. If it did, then the type would include the generic type parameters needed and all would be well. Thanks,

    Amit Goswami (amitDOTgoswamiATideaDotcom)

  37. Chris Harvison says:

    I’d like to see the addition of asymetric encryption to the crypto application block. In particular, cms/pkcs7 support for encrypt+sign and validate+decrypt of message.

  38. LenC says:

    As stated in a few other posts…tools to generate the skeleton for an complete app – business entities, business components, data access components, and maybe even some skeletal UI.  Basically something that generates the architecture recommended on patterns and practices.  This would be especially useful for apps focused on editing business data, which seems to be a reasonable percentage of apps out there.  

    This is not necessarily an EntLib 3.0 recommendation; EL is not a code generator.  But I wanted to take advantage of Tom’s publicity <gr> (apologies, Tom).  Seriously, what is MS’ answer to solving these problems?  Architecture guidance on P&P is well presented, but not prescriptive enough for specific implementation problems that many seem to face.

    Perhaps a community project should be initiated, rather than look for such support in EL?

  39. XML Application Block. That is the most wanted element with Next Release.

  40. LenC – we are currently working on exactly what you are describing. Check out the Web Service Software Factory (http://practices.gotdotnet.com/svcfactory) and Smart Client Software Factory (http://practices.gotdotnet.com/scbat) projects that are currently under development.


  41. I think I would like to see an Object Pooling applciation something, that can contain a pool of instantiated objects and give them to an application on a as needed basis.  Also possibly simplification or better documentaiton / examples on Object Builder.

  42. To those of you who have requested an XML Application Block, could you elaborate on what capabilities such a block would provide?


  43. object says:

    As it was already mentioned: redesigning log filters to make them non-global. Currently filters like severity filter are applied on per-app basis. This makes them more or less unusable – in a typical situation you want to suppress errors for certain categories or listeners, but not for all messages.

  44. Xavier says:

    I’d like to benefit a simple, comprehensive, easy to use and efficient rules engine.

  45. Yes you heard right.&amp;nbsp; There will be a new version fo Enterprise Library coming out. Version 3.0,…

  46. Guy Burstein says:

    Hi Tom,

    Exception handling policy that goes with the WCF FaultExceptions. I have already implemented it, but I think it should come out of the box.

    Better documentation + Hands on Labs that will ship with the release of the Entlib and not 4 month after.

    Good Luck, Guy

  47. John says:

    1) CAB/SCSF for the Mobile platform:

    ObjectBuilder’s run-time lookups (reflection) may be too expensive for Mobile computing. Another run at it, perhaps, with 3.0?

    2) More guidance as GAT recipies. You pick.

    3) A best practice for deploying a Client/Server solution to a customer that supports two levels of ClickOnce®. One from me to customer’s server, another from their server to their clients.

    Thanks Tom.

  48. Don’t let the title confuse you. There is no new version for Enterprise library for .Net Framework 3.0….

  49. Julio Casal says:

    I would invest:

    – $80 in ORM and LINQ Support

    – $20 in deep integration of the configuration tool with the Visual Studio IDE

    Hope this helps,


  50. The Enterprise library team are planning for a new version which will target .Net Framework 3.0. Tom…

  51. Hi Tom (and the team)

    Thanks for asking.

    I would like to see more use of the Object Builder. I really like the mechanism, but it couldn’t do what I wanted. Therefore I created a Service Application Block of my own to put under configuration.

    I would like to see such a service application block as part of EL 3.0.

    The basic idea is:

    – Everything with an interface is a "service"

    – ObjectBuilder can create concrete instances of the interface

    – Mapping between interface and concrete class is placed in configuration

    – Configuration includes other stuff, too. Should I create this as a singleton or new instance everytime, etc.

    That way you can do an OB instance creation like this:


    I use it for a layered server side application (WCF), where I have the follwing layer (top down):

    – WCF

    – Coarse-grained business

    – Fine-grained business

    – Persistence

    All calls from layer to layer goes through an interface. ObjectBuilder takes care of instantiating and preparing the concrete instance… It even lets me change what concrete instance through configuration.

    This is only the basic idea. Maybe you and the team have some more stuff to put in.



  52. Do Something For transaction handling.

    In 2.0 we have to pass transaction to each record which we uses.

    I didn’t think so that it is a good practice to pass transaction to every method.

  53. Este tipo de noticia es de las que me gustan …

    A proponer mejoras !!!&#160;

    Enterprise Library for .NET Framework 3.0 – what would you like to see?

    Enterprise Library for .NET Framewo …

  54. Alexey says:

    $20 – Easy way to upgrade existing applications

    $60 – WinFX & WinCF, LINQ (if not, why it is El for .NET 3.0?)

    $20 – Integration with VS (DSL, WorkFlow)

  55. Trevor Westerdahl says:

    1. Much Improved (auto)Setup – I can’t speak for those who have been using the library and have become very familiar with it. As a newcomer, the library seems to be an an example of poor design… before you slap me, how is it that the library is not configured so that it requires virtually no setup? Where is the "Test Connection" Dialog? Why do I have to find and locate installer .exe files? Who belives that a console window popping up to show that "stuff" is loading is a good thing.

    2. Trimmed QuickStarts – the "quickstarts" simply are not. My lord, when logging messages requires one to scratch their head to try and figure out how to create one, there is a serious problem. I think someone keeps forgetting that the primary goal of an application is managing end-user actions, provide intuitive feedback, and mimimizing the effort to achieve that.

    Personally, it looks like someone lost the focus of developing the IL in the first place. What a great concept: program in VB, C#, C++ – whatever and it gets compiled into a uniform IL. Instead, the kids just can’t leave the concept of  "new" toys and muck the whole darn thing up with HTML,XML, XAML, Java, blah, blah, blah.

    To me, it’ll be "right" when I don’t have to design in multiple languages and instead, the language I use does it for me. Furthermore, if you can’t provide a "self-installing" example that doesn’t require manual configuration – its a rotten example.

    Not trying to offend – just be blunt.


    How about that?

  56. Ken Brubaker says:

    This should only cost 20AUD:

    Please include support for Event Tracing for Windows (ETW). There’s about five different frameworks in .NET that support it already. I understand that Orcas timeframe .NET will include an official API, however I would really like to see EntLib 3.0 include custom P/Invoke support for ETW. I feel that the high speed event tracing service in ETW is an essential part of having a truely supportable event logging architecture. I have previously built architectures around the <a url="http://www.diamondsierra.com/Products/PB.html">Paul Bunyan</a> by Diamond Sierra, which includes a high speed logging service.

    There should be no reason to go with a third party product since ETW is available in Windows XP and Windows 2003 (and Windows 2000, for that matter). However, I have found no .NET wrapper for the ETW apis.

  57. Matt Dunn says:

    Hi Tom,

    An aspect-orientation block, similar to the one from Avanades ACA.NET extensions to Enterprise Library, would be a powerful addition to the existing blocks.

    For those that haven’t seen the aspect-oriented features of ACA.NET before, there is an example at the end of the following article:


    Examples of possible aspects include: instrumentation, auditing, caching, exception handling.

    At first glance, Avanades offering seems tightly bound to their approach to service orientation thats now superceeded by WCF, so a solution aligned with WCF would seem useful.

    On another note, is it possible for Enterprise Library to evolve from a guidance initiative into an officially supported product?



  58. Hey all, did you know that Tom Hollander is looking for great ideas to enhance the quality and functionality…

  59. Khuzema says:

    First release UIP AB for .Net 2.0. Thanks

  60. Tom Hollander, who is on the Enterprise Library team, posted to his blog the Enterprise Library team&amp;nbsp;want…

  61. Keith Elder says:

    $20 – Add the EntLib console configuration tool into Visual Studio IDE.  Lot’s of people mentioned this in comments, so it looks like this should definitely be on their list.

    $20 – Integrate GAT to assist setting up EntLib based on the best "patterns" and "practice".  

    $60 – Workflow Block

    For explanations of how/why see my blog post here:


  62. $100 to improve the speed of logging.

    Currently Logging Application Block spends enormous amounts of time (40-50 microseconds per log event on my machine) just to discard the messages that are ineffective because of the log level or categories.

    Other libraries, namely log4net (http://logging.apache.org/log4net) and NLog (http://www.nlog-project.org) are many orders of magnitude (nanoseconds instead of microseconds) faster in this area, which means they are able to process much more verbose-level messages at very little CPU cost.

    The key to achieving high speed is to defer as much processing as possible until the message is known to be logged.

  63. Mike Chaliy says:

    Rss engeneering. Something like already posted in the MSDN weblogs however more official.

  64. AndrewSeven says:

    $25 for imporved out of box experience, default setup and config.

    $45 for improving the documentation

    $15 for the samples and quickstarts

    $10 for complete integration of the environment overrides, including VStudio with source controled config files and "it just works" selection of a config file to match the detected environment.

    The last $5 is at your discretion, its for situations when you need just a little more budget to make something "Good" instead of just useable.

  65. Dan Croak says:

    I’m in agreement with those who reference Ruby on Rails.  I’ve moved over to that framework as much as possible over the past 6 months and absolutely love it.  However, Visual Studio’s IntelliSense and debugging are big advantages ASP.NET has over RoR, so a few simple improvements by the patterns and practices group would go a long way to improving developer efficiency for basic, three-tier web applications…

    $25 – I have some version of VS 2005.  I download the "patterns & practices optimal ASP.NET application block."  It automatically downloads and tells me to create a new ASP.NET app with the special p & p features in Visual Studio.  

    When I do so, there is a file structure already created for me, with placeholders like the App_Data folder for models (class files) and the Data Access App Block already in place.  The dataConfiguration.config file would have three database configuration placeholders: one for a development database, one for a test database, one for a production database.  This ASP.NET app automatically detects its environment and directs the app to the correct database.

    Other folders include things like web services, layout (.aspx) pages, and view (.aspx or more likely .ascx pages).

    $25 – Easy, no XML configuration-necessary implementation of object-relational mapping.

    $10 – Easy to use testing and guidance about approaches to build it into a developer’s process.  Unit tests for models, functional tests for controllers, performance testing.

    $10 – A really good, simple explanation of Microsoft’s view of MVC vs. Page vs. Front Controller etc. architectures.

    $10 – Database migrations.  For every change to the database schema, there is a versioned file describing the change, giving the developer an easy mechanism to go back and forth in time with the database schema as needed.

    $10 – Naming conventions guidance.  From class files to variable names to database names.  Almost impossible to implement in a corporate environment, but provide a "best-case" scenario for a greenfield application.

    $10 – Routing, URL-rewriting.  Easy-to-implement beautiful and human-friendly (and therefore oftentimes search-engine friendly) URLS.

  66. sbillingsley says:

    Maybe there’s already help out there, but I would like to see help on converting SOAP error messages thrown when an exception is thrown in a class referenced by a web service, back into the original Exception.  There possibly could be a client and server side of this block.

  67. Brian Nantz says:

    I would like to see the DAAB block allow for an event when filling the dataset to catch errors and determine if we want to continue filling or throw an exception.  

    Additionally, I would love to see integration with the Guidance Autiomation for code generation of the data tier that uses DAAB.  I have only seen this with NetTiers (which requires codesmith).

  68. Robert says:

    Hi Tom,

    I would like to see the "Environmental Override" integrated in the confirguration Management.  This will help everybody with the "deployement hell".  Especially when you are not the one performing the deployement!

  69. Brian Nantz says:

    How about improvements to the logging so that you can create backup loggers.  In other words give preference to destinations (first database, if that fails try event log, if that fails use a text file, if that fails use a file in isolated file storage).  A nice log view would also be helpful.

  70. k says:

    i’ll give you everything for a decent solution to using web services within visual studio.

    something that would allow for dev/test/live environments and properly integrate with source safe.

  71. Kevin Kilburn says:


    What I would like in the XML block is an easier way to combine 2 documents into one.  Something like a xml mapping block.  An example, you call 2 web services.  The first returns you a list of customers name, address, etc.  The second returns another list of possible customers (prospects), along with other attributes of the customers returned from list one.  I would like to have an applicatin block that would assist with the mapping, combining, and manipulation of the responses into a new combined response.


    p.s. I know this could be taken care of using biztalk, but why install biztalk for just this purpose?

  72. WinFXが.Net Framework3.0となったことで、EnterpriseLibraryにも新しい動きが出てきたような感じですね。次期バージョンについてのリクエストを募集しているようです。http://blogs.msdn.com/tomholl/archive/2006/06/21/641840.aspx

  73. JimC says:

    Not sure if these are entirely valid as application blocks but…..

    1. An Application Block for Windows Workflow Foundation.  This might just mean controlling, running, monitoring rather than designing in the first instance.

    2. An Application Block for interacting with Reporting Services (SSRS) ie. retrieving reports/models, scheduling, printing, exporting

  74. KolathDragon says:

    What about an update to the Service Factory using all aspects of WCF? Allowing encrypted channels, authentication, WebService endpoint or WCF-style endpoint, TCP channel’s, etc. Allowing the user in the creation wizard to check features and possibly be able to specify options right on the wizard to gen the service, or at the very least comments/TODOs in the sections to place code with examples or URL references of where to see examples.

  75. Garry Trinder says:

    For the XML Block allow me to provide a recent scenario that had me in fits for the last few days.

    My task was to convert every record in a very large CSV file of unknown dimensions into XML and an XSD & store every record in a XML datatype column in SQL 2005. All I know about the CSV is that the first line contains the column headers. Therefore the schema of the XSD has to be derived from the list of headers every time the tool is run.

    My first task is to read in the header line, split it into an array & generate an empty XML document with every header as an element. Next I have to infer the XSD from that XML. Finally I store the XSD in SQL Server & hook it up to the appropriate column.

    Next I have to recurse through every record in the csv, create the XML, make absolutely sure it validates against the XSD and then store it in the DB.

    The major PIA was creating the empty XML document in memory using XMLDocument & then inferring the schema. Way too may steps & objects required. I had jump from XmlDocument to MemoryStream to XmlReader to XMLSchemaSet to XmlSchemaInference to XmlSchema to XmlWriter. All that just to get a string containing the XSD which I then promptly dump into SQL 2005.

    I know some people will suggest that I should have used something other than XmlDocument to create the initial empty XML file. I did try a variety of other objects including a brute force approach using StringBuilder. No matter what object you use, the amount of code and the number hops required to get the XSD will have you questioning the sanity of the .NET Framework developers.

  76. Patrick from an IBank says:

    I’m curious how do you see Microsoft Glidepath interacting with Enterprise library?

    As far as a new block, I would recommend improvements to the XML Block. There are still a lot of Flat/Delimited files that are being ftp’d, etc. Yeah, you can do this with DTS, but we want something lightweight and free!

  77. Maroju says:

    Security block for role management with effective from and to dates on role assignments.

  78. Joe says:

    $50 – Windows Workflow

    $30 – Visual Studio integration

    $20 – Documentation and Samples

  79. Alois Kraus says:

    Hi Tom,

    what I really would like to see are some of the features of already existing extensions into the main base line. E.g. the Rolling File Sink of Erwyn van Meer is a really good one.

    40 $ Put the neat features of existing extensions into the main baseline. Why else we have a community to profit from.

    60 $ Make the Logging Block even more usable:

     – Formatters should allowconfigurable TokenFunctions. This way I could write an extension to the the TextFormatter for my own LogEntry derived object and override/extend formatting very easily with full GUI support.

     – Make the damn TextFormatter more extendable. I want be able to derive from it, and still use the GUI tool with its configuration. There should be an optional property RealType="myDerivedClass,Assembly" to fool the design tool and relieve me from the burden to copy the TextFormatterSoure, create my own Assembler, and derive from TextFormatterData and then loose the GUI experience. That’s a pity.

     – Use the Critical Finalizer approach to get rid of flushing on every log call (http://geekswithblogs.net/akraus1/articles/81629.aspx)

     – ZIP the rolled files so they take less space (asynchronously of course) and configurable

     – SysLog Listener (very easy to implement)

    Uups no money left. I pay the rest with credit card ;-).

    30 $ Full UI/Data Inheritance. I extend the config classes (add only). I want to reuse the existing GUI classes from which I can also derive and add only the new added parameters to them.


     Alois Kraus

  80. Tom Fischer says:

    $10 Configuration reporting block supporting simple queries and outputs. For example, allowing IT pros to quickly ascertain an application’s configuration remotely.

    $20 Enhancing either the ObjectBuilder API or documentation to simplify container management.

    $60 Adding providers for the other major RDBMS products. Waiting for a DB vender means waiting to deploy the next version of EL.)

    $10 Configure Windows Workflow hosts. (This feature might someday become as helpful as the Data block!)

  81. Gerry says:

    I would like to see the DPAPI file key encryption as optional rather than having to encrypt the key file with user or machine key.  Optional just for test instead of each developer having their very own DPAPI version of the file, this would just be to aid unit test development.

  82. Chris says:

    Hi there.

    I would like the processing of customizing the configuration tool to be much easier.  For example, adding custom blocks through the configuration GUI is far from straight forward now, and few people (like Olaf) can pull it off smoothly.  I would also like to have the popular extensions (like those by Olaf) to be integrated into the next version.  $30.

    I think there is vast room from creating a deployment application block.  Because much of the deployment process involves MSBUILD behind the scenes, it would be nice to have a block to simplify this process.  Also, it would be nice to be able to deploy and application to a webfarm through Enterprise Library somehow; this is a common task for us, and I suspect many others too.  40%

    Finally, I think many would benefit from some sort of DB broker service, that offloads the burden of frequent DB writes from the application to a broker (think of it like a write buffer).  For applications that frequently write data to a DB in a high traffic environment, the writes can be a bottle neck for the application.  Writing to an external service (for example) would free up the application resources.  I imagine this to be a sort of data access provider.  $30



  83. Douglas says:

    I have allways wondered if encryption could be made easier.  Maybe I am not using it in the right way but I am looking for the chance of not having to deploy the .key file on each workstation (of course is a windows application) so I would spend my 100$ improving the cryptography application block for windows applications

  84. Douglas says:

    I have allways wondered if encryption could be made easier.  Maybe I am not using it in the right way but I am looking for the chance of not having to deploy the .key file on each workstation (of course is a windows application) so I would spend my 100$ improving the cryptography application block for windows applications

  85. Rich says:

    I would like to see a configuration system that can support more complex configuration sections with arrays, collections… etc. I would be even nicer to pass just an object with this data and let the configuration block make a configuration section.

    And I would ask for that for free after I spend my $100 to buy the crew a few rounds.

  86. Dad Pihto says:

    I would like to see a configuration block as independed service.

  87. Gareth Jane says:

    $33 – Windows Workflow Configuration Block (still need to think of details here…)

    $33 – Some kind of Oject/Relational Mapper using xml config via the Configuration Console

    $33 – New Offline block. Of course with WCF enhancements.

    Enterprise Library Rules!

  88. Johannes says:

    Again a support for application configuration (at least a mechanism that works in the same manner as the EntLib does its own configuration).

  89. Jelle Druyts says:

    40$: The config tool shouldn’t require all dll’s to be in the bin directory, it should be able to load assemblies from anywhere (in predefined paths for example). Integration of the config tool with Visual Studio would be nice but a separate tool is still needed for post-deployment configuration of course.

    30$: Simplify the internal architecture: there are probably good reasons for the complexity of the blocks (flexibility, power), but wouldn’t it be possible to make a simpler API available to minimize effort for boilerplate scenarios? E.g. don’t require corresponding Node classes for Configuration classes but just show these configuration classes directly in the PropertyGrid, …

    30$: A new block that allows editing of non-entlib sections, e.g. simple things like appSettings.

  90. Yiyi Sun says:

    $10 – move to CodePlex

    $30 – New AOP block: context/container, common aspect/attribute library

    $30 – New Business Rule Engine block

    $20 – DSL

    $10 – Software Factory

  91. kooriyoo@gmail.com says:

    !! caching configuration so it is read only once form a configuration source. (AFAIK now it is read all the time and it hits the performance). it could be some attribute in configuration sections like <section name="loggingConfiguration" cacheSection="true" ..>

    !. CAB should be less buggy. For example MdiWorkspace doesnt resize its contents when i resize child forms. There are lots of small bugs like that and EntLib users shouldn’t waste their time fixing them:p

  92. Kang says:

    I have a project implemented Enterprise Library 2.0 lately. I failed to integrated it with Team System Application Designer. My question is that if your 3.0 will compactible with Application Designer in Team System?



  93. Stuart Hallows says:

    DAAB to support Sybase!

  94. Wes says:

    Include a Data Access Provider for MySQL!  I already built one for EL 2.0.

  95. Olivier says:

    Hello Tom

    Before, an important topic: please do not forget ISV who have bought only VS Pro and not VSTS  (that can not not fit into anyone budget). so do not rely only on dsl or vtst features to drive the new version

    let’s start

    **hi priority**

    – msh, msbuild everywhere for administration. gat, gax for vs (35)

     note: this could satisfy some software factory requests

    – asp.net provider made available as an application block (35)

     note it is now open source. legal issues belong to the past

     see scott guthrie @


    **mid priority**

    – wcf leveraging (20)

     reliable messaging scenario

    – wwf leveraging (10)

     transaction scenario (perhabs may be rather included with wcf)


    – clear roadmap for entlib 2.0 – entlib 1.0 remaining blocks

     (about half a dozen). it was already not clear why they were not

     upgrade (resources do matters i assumed). they are typically in a

     winfx feature set. please do not let them become obsolete

     the same does apply for shadowFax

    – for ObjectBuilder look and feel, a documentation improvement will be welcome

     loot at the book

     Design Patterns Explained : A New Perspective on Object-Oriented Design  (2nd Edition)

     by Alan Shalloway

     chapter 22 The ObjectPool Pattern. is what is should have been

     (assume i have not read |: it but spend a week refactoring ob+entlib)

    – Avanade aspects seems to rock but resources do always matters, i guess

    – Data Access Application Block could be bootstraped via inclusion of xsd.exe

     as an application block. it could also bootstrap an orm ab

    good luck


    PS: others (Dan Croak, keenew, Patrick from an IBank, Brian Nantz, jkowalski …) made a lot of good remarks too

  96. Hank says:

    $60 – Improved documentation and samples

    $30 – Out of the box experience

    $10 – HOL example of using DatabaseTrace listener.

  97. Olivier says:

    Please provide a one url entry acting as a central repository for custom blocks

  98. Olivier says:

    A single webpage (one well known url entry) acting as a central repository for custom blocks will also be appreciated

  99. greg says:

    Maybe this is already well enough served by Saxon.Net, but since MS is on the fence over XQuery vs. XPath and is staying with XSLT 1.0 in the framework at the moment, it would be good to have a block for XSLT 2.0.

  100. chuck says:

    I’d like to see

    1) $30 Ability to batch a series of requests for the Data Access block and then handle them sequentially when the results come back.  Right now I can call a single stored proc that calls multiple stored procs and process the multiple results, but I have to write a special stored proc for every scenario.

    In a web app when doing the page load, and getting the data, typically your making a bunch of calls to get data drop drop down lists plus the details for the page, but since these drop down lists occur on many pages it would be better if there were a generic way to make multiple calls through managed code.

    2) $50 sample web and win form apps that provides examples of the Best Practices for using the enterprise library…

    3) $20 Provide extensions to the data Access block to export the data from a result set to common file formats (comma delimited, csv, xml, etc.).

  101. shanthu says:

    1. Logging – A Good ‘unified’ log viewer should be part of next release. Every shop is developing their own. I think you guys are under estimating the use of such a tool.

    2. Logging – Roll over files feature based on size and/or time are must for all enterprise applications

    3. Logging – In some cases logged information should be secured, please think of out of the box encryption support (this should tie into the log viewer application)

    4. Exception handling – Should offer more than a prototypic features.

  102. Vinodh S says:

    There should be a provider for an connecting to an in memory dataset and apply SQL queries to it such as complex joins, aggregates, unions against multiple tables in the dataset.

  103. Waleed Seada says:

    I would suggest adding the UIP to the application Blocks, with some effort to be spent as t get up the same with ver:2.0 of Entlib.

    Also an intensive and comprehensive examples should be provided to cover much as possible of the available features, just to draw the complete picture and pull out ideas from us.

    Thanks for giving me the opportunity to share my opinion

    Best Regards and good luck.

  104. Naresh Sikha says:

    I see various comments amounting to a full-blown IOC container (Spring style) based on ObjectBuilder. I also would like this feature – perhaps a Object Container Application Block that the other application blocks leverage rather than each block having their own static factory (considered a legacy design pattern?).

    Also I would like my dependencies on entlib to be via interfaces. My current pain point is my dependency on the Caching Application Block. Though that block is well unit tested, it makes my application impossible to unit test – I have to fully configure caching before I can run simple tests (result of the legacy static factory pattern). I would like my code to only be dependent on an ICacheManager interface and have the ObjectContainer provide me with one at runtime and my unit tests provide me with a mock version at unit test time.

    I created a simple container based on Farcaster and I’ve seen other posters have created such a container as well. Perhaps an ObjectContainer could be released well ahead of entlib 3.0 to quickly prevent the proliferation of custom containers?

    Also, an ILog interface rather than a static Logger would prevent needing complex logging set up during unit test time.

    Summarizing – I think entlib could provide an IOC container and enable down stream users to unit test their code via interfaces.

    Thank you.

  105. cameron says:

    $40 – Ablility to configure the database tracelistner to write to a custom database table with ability to map logEntry ExtendedProperties to columns in the custom database table.

    $40 – Ablility to make have the message queue d-querer service write to the database in a trasaction.  If the write to the db fails then the message is not taken off the queue.  Probably means that "logWriter.Write(logEntry)" needs to return a status.  I am not excited about using the WMI approach.

    $20 – More ASP.Net support, samples, etc.

  106. Jacques says:

    See my comments at http://jlchereau.blogspot.com/2006/06/enterprise-library.html

    – $30 Security – Improve Authorization in an ASP.NET environment

    – $20 FAAB/OAAB – File IO Application Block

    – $20 Workflow support (see a future article on my blog)

    – $10 Desktop search

    – $10 Logging – Better formatters to ease log analysis

    – $10 ASP.NET support/samples

  107. Rad says:

    $100 Performance

    Our current use of the enterprise library has been extremely limited due to the performance characteristics of the library.  Our application requires the use of many interfaces to third party products.  We are required to perform many bulk operations taking data from one database, performing business logic on the data then persisting it in another database.  We would very much like to leverage the unified framework of the library but found its logging to be magnitude’s slower than Log4Net library.  I’ve also extended the FileSink and thereby gaining 75% improvement in performance but even so it is still order’s of magnitude slower and therefore currently unusable.  Unfortunately this is preventing us from moving to the library at this time.  Data access speed is also a concern.

  108. John Read says:

    $100 for UIPAB for .Net 2.0 / 3.0.  I never understood why UIP was not in EntLib.

  109. Rad – in our testing, the Logging Application Block in EntLib 2.0 is generally faster than Log4Net. The Flat File TraceListener is one exception, because we inherit from the system’s TextWriterTraceListener (but as you discovered you can build your own). Did you compare performance for anything other than text files?


  110. Ryan Sardón says:

    It would be great support for ODP.NET 100 U$ for that.

  111. Mario says:

    It’ s important improve EntLib to do more automatic little things, but we really need is a Framework for developing Enterprise SOA Apps like MBI was in the Framework 1.1 (but more easy to install), a improved version of this will be very useful, Software Factory go in this way, but at this moment, MBI still was a better help (WSSF and SCSF are more flexible, but a good mix of two will be Great)

    This is a good instance of participation…

  112. Venu says:

    In the enterprise logging application block 2.0… can we write to same flat file from multiple appdomains usinf flatfile tracelistener. By defult I see this being logged to different flat files. If this feature exists in 2.0 I would like to know how should we achieve this. If not I would like to see this feature in the next version.  Thanks.

  113. Phil says:

    I’d spend $25 for a new library (application block) which provides a basic framework for markups languages similar to WikiText, and yet extendable to support other types of markups languages too, such as those for music sheets, chess positions, UML diagrams, mathematical  formulas, Go game diagrams, and source code for various languages.

  114. Ajay says:

    i would like to see .UpdatedRowSource = UpdateRowSource.Both for any DbCommand working in the data block i.e. when you do an insert and have the ID column property .AutoIncrement = true, this ID field should get updated automatically from the database in the dataset, after the completion of insert.

  115. Mark says:

    An easier method of using remote configuration files. Unless I’m missing something (quite possible) you must create a FileConfigurationSource pointing to the remote config file and use it to create a factory, i.e ExceptionPolicyFactory(Source).

    Also a way to combine both local and remote configuration files in a hierarchical manner would be nice. Given the senerio of having an enterprise level policy for logging or exception handling that may need to be overridden on a per appliction basis.

    Thank you, and the PAG team, for the creating and maintaining this library.

  116. bradk says:

    $20 for pre-built strong-named assemblies.

    $30 for a PostgreSQL data acces block provider that supports Kerberos

    $50 for a file based text log writer that supports multiple processes writing to the same rolling log file without blocking. IIS can do it, why can’t we ? Would be nice if this was compatible with WCF log aggregator.

  117. rick says:

    $100 for a better way to RSA encrypt shared configuration files on a web farm. i.e. not having to rename files to web.config, use a custom provider, do key imports/exports.

  118. Mark Easton says:

    I think Enterprise Library 3.0 should contain no updates to the existing functionality, but should instead contain new functionality that loosely intersects the EntLib 2.0 fnctionality. Version 3.0 could then be released as a side-by-side product (a la .NET 3.0) and could helpe really confuse the customers.

  119. Mark Easton says:

    I think Enterprise Library 3.0 should contain no updates to the existing functionality, but should instead contain new functionality that loosely intersects the EntLib 2.0 fnctionality. Version 3.0 could then be released as a side-by-side product (a la .NET 3.0) and could helpe really confuse the customers.

  120. Tom Whitner says:

    Off the top of my head, I’d like to see a data validation block that could be used from WinForm based apps as well as web apps and web services.  I’m currently thinking of a core engine that does the validation with three different means of interacting with it.  Also, the validation rules should be exressed as Xml schema – why invent a new format?

  121. $10 for separating the actual library (DLLs) from the configuration application. I would like to put the DLLs into a library directory and have the configuration application reside in the Program Files directory. This should be set up during the installation.

    $10 for improved documentation, including the ability to print some or all of the documentation if required. You should be able to single source the documentation (using HelpStudio) and produce HTML Help, Help 2.0, PDF, and possibly MS Word (less enamoured with MS Word because the documentation should not be easily edited and the format changes coming with Office 2007).

    $20 for GAT.

    $40 for crawl, walk, run documentation – start simple and build more complex scenarios. It takes a long time to learn this stuff.

    $20 for business entity mapping and business rules engine that can use the DAAB, Exception Management etc. This would likely best be done through a combination of enhancements to the EntLib itself and a reference application to show how it’s done.

    Glad you used Australian Dollars – the Canadian Dollar is at about $0.82 AUD to-day, so hopefully, I’ll get more bang for the buck.

  122. One more thing that I would like to see is the increased use of typed parameters, instead of strings. Not sure how that would be implemented. Also not sure how to prioritise this, since I have spent the $100 AUD allocated.



  123. gozh2002 says:

    $100 to embrace the open source project rather than reinvent the wheel in microsoft way.

    Eg. What if some support to spring.net rather than objectbuilder, which is an elusive and hard to understand.

  124. hrishi says:

    I would like next version with improvement in Hands On Labs & Special attention to Documentation. I think docmentation should include easy to start examples.

  125. Richard Grenfell says:

    $60 Factories that don’t require the local configuration file so that .Net modules created for integration with 3rd party applications aren’t dependent on the 3rd Party application’s configuration file for redirection.  Factories can be created currently to specify the location of the configuration file, but it is completely undocumented as far as I was able to find on how to do this.

    $40 As 1 or more others have stated, built in capabilities to strongly name the assemblies.

  126. szimmer says:

    Since there are maybe 1000 customer sites using EL in the GAC, and developers cost $250/hour, and it takes 2 hours to put EL in the GAC on developer machines, and 1 hour to do it on QA, and 1 hour to do it in prod, I vote $1,000,000 to have a simple batch file that compiles EL with strong name and puts it in GAC. Then we can break even. 😉

  127. Kram II says:

    $1000: Documentation. I have spent *far* too long trying to figure out how to use all this stuff.

    $100: Add the whole jolly lot to the .Net framework and have done with it.

  128. Will Sullivan says:

    I’m surprised I haven’t seen this listed yet–

    100$ on a Plugin Block.

  129. I’m back from a brief but fun vacation in Paris and London -&amp;nbsp;away from the distractions of the web…

  130. JV says:

    $100 for UIPAB for .Net 2.0 / 3.0

  131. LongCloud says:

    $100 UIP brought up to .Net 2.0  (and combined with the Composit UI Application Block)

  132. Recently I asked you all for your suggestions on what we should include in Enterprise Library for .NET…

  133. Rujith says:


    Thanks for asking our suggestions….

    $20 –  out of the box ODP.NET support

    $20 –  Its not a good idea to pass transactions in each method(in Data Access block). So internalize transaction by creating a trasaction scope(which we have done for our block), I would suggest internalize connection management also, upto an extend of course.

    $20 – for Making Securtiy block(ASP.NET authorization and authenticaiton) database agnostic. Let it use Data Access block so that I dont have to be tied up with SQL server.

    $20 – Software factories…

    $20 – New blocks for WCF and WWF.


  134. It would be great to have the EventBroker promoted to EntLib from CAB..

  135. Tom, I’d drop 80-bucks on byte-differential Server Application updates, that bundle a single App-Server image (inclusive of Windows Server updates versus layering them) & pushes it to a passive node (virtual?) that can THEN update the whole Application Image. My context is for Managed-Services partners that support customer-premised Application Servers.

  136. Mok says:

    Hope to see more data access application block beside MSSQL and oracle.

  137. Tom Hollander asks what we would like to see in the next version of the Enterprise Library, so here’s

  138. What would you like to see?&amp;nbsp; Seems the team is ramping up again to tackle the next version of the…

  139. I’m sure all you regular viewers have noticed that we’ve been doing a lot of probing to find out how…

  140. Enterprise Library Feedback – Integrate GAT and Workflow

  141. As Blaine menioned, we’re right at the point when we are about to begin planning for the next version

Comments are closed.

Skip to main content