Tom Hollander's blog

patterns, practices and pontification

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

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.

  • First release UIP AB for .Net 2.0. Thanks
  • Tom Hollander, who is on the Enterprise Library team, posted to his blog the Enterprise Library team want...
  • $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:

    http://dotnetpimps.net/blogs/theelder/archive/2006/06/22/29.aspx
  • $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.
  • Rss engeneering. Something like already posted in the MSDN weblogs however more official.
  • $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.

  • 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.
  • 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.

  • 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).
  • 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!
  • 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.
  • 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.
  • Tom,

    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.

    thanks

    p.s. I know this could be taken care of using biztalk, but why install biztalk for just this purpose?
  • WinFXが.Net Framework3.0となったことで、EnterpriseLibraryにも新しい動きが出てきたような感じですね。次期バージョンについてのリクエストを募集しているようです。http://blogs.msdn.com/tomholl/archive/2006/06/21/641840.aspx ...
  • 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
Page 5 of 10 (145 items) «34567»