News

Locations of visitors to this page
    To Do: Blog 1000

Enterprise Library vs. .NET 2.0

Wednesday, June 01, 2005 9:58 AM

Feedback

# re: Enterprise Library vs. .NET 2.0

Very well said -- and I very much agree.

I want simplicity, which the .NET framework does pretty well at promoting, but the EL fails to pass this test. It tries to be everything to everybody, and in attempting that it fails to be a good solution for those that just want the most basic features. For that matter, I know people that do need a lot of complex features that report it fails them to, because nothing can be all things to all people, but when you make it complex you take away the ability to be easily extendible (not even by those working on it).

For Data Access, ADO.NET just isn't that hard, and there are certainly other solutions to make it easier and better if you want or need that. Logging has Log4Net which is simpler, better, and far more of a standard. Some of the other blocks may be better, but why do I want to pollute my whole project with all of EL to get a few benefits when by doing so I tie myself to a library that just isn't easily extended when I most need it.

I hate to say it, but I find that the main reason people are using EL is because it is from "Microsoft" -- and we all know that too many Microsoft developers fear anything that comes from elsewhere, or worse many of these have never even looked for other solutions or heard of these other great tools. 6/1/2005 10:40 AM | Paul Wilson

# re: Enterprise Library vs. .NET 2.0

Simplicity is the ultimate goal. Sometimes, looking at entlib, it seems that the simplicity of use acheived by the config tool and the 'consistency' is overridden by the underlying complexity that you see when you crack it open, and by the bundled package that makes it harder to evaluate as individual pieces. I am not answering to defend entlib, mind you, but to ask you - what could we do to trim down the external or internal features? The open source suggestion for entlib would be an option, but I'd like to say something that I always stress to our customers - we can write the code, we need you - our customers- help in understanding *what code to write*, what works and what doesn't. But we rely on you being up front about these things. In the team we'll be discussing next week what we can do to address this feedback, change things etc.Maybe open feedback weekly calls? Public stack rank of RFCs? so we produce something that *you* would use in more solutions (regardless of whether it comes from the MS 'mothership'). You have a team in MS who is willing to listen often, and respond by shipping often, so pls let us know what you would want to see. We promise to listen and try to understand and apply the learnings in what we do... Drinking our own kool-aid = death... 8/12/2005 7:28 PM | Edward Jezierski

# re: Enterprise Library vs. .NET 2.0

edjez,
Thanks for the comments. However, I'm not sure that I have much to say that you're going to like to hear.

The config tool is nice, but since it doesn't work properly with .NET 2.0 assemblies, I've had to manage my EL config files mostly myself. That can get you to dislike EL in a hurry, but I can forgive that. That's what you get when you deal with alpha and beta products.

My experience was so bad with the Jan. 2005 release, and my project schedule is so inflexible that I haven't even yet looked at the June release. Perhaps I will like it better, but I'm afraid to find out what code I'll have to rewrite. It's possible that I'll look at it in the next week or so, since we're currently changing our thoughts on caching anyway. This is probably a convenient time.

As for what to trim...well, that's a hard one. I'll be frank. I don't think that the current version of the EL is a suitable framework to build upon for future versions. Were I designing EL 2.0, I'd throw out nearly everything you have and start over. Start with the principle of "the simplest thing that could possibly work". It doesn't appear that that principle was followed very much in EL 1.0. It appears that you had a bunch of developers going "wouldn't it be cool if..."?

BTW, I mean no disrespect to Tom or Scott or anyone involved in the project. I've met them both and they seem to really know their stuff and seem like great assets.

So, what does the EL need? Simple, it needs the following:
1) A DAAB that's configurable for multiple providers. Include a SQL Server and an Oracle helper and directions for me on how to write my own (or supply others as "user extensions" on a peer website).
2) A configuration block for consistent configuration management. This block probably doesn't need to be all that extensible, and not nearly as extensible as it currently is. Just provide a means for me to provide my own configuration data when the shipped block and normal config files won't cut it. Then I can be responsible for loading/saving that config data on my own. If I want to use the same format you've used, great. If not, and I really love Windows 2.x .INI files, let me. :)
3) A caching block. Give me a couple methods of caching and a way to refresh.
4) Exception handling. There's a ton of features in the current block, but I find myself wondering why I'd use most of them. I just want a way to notify my user somehow and to recover from the exception. Why do I need to translate my exception into another type, or change the message? Let me handle that kind of stuff in my own processing. That's far too much for the EL to be doing.
5) Logging. This goes under the "notify my user somehow". This block should be pretty much the simplest of the blocks other than the DAAB. Provide a couple of sinks, and show me how to write my own sink. Like the DAAB, you can even supply a peer site for sinks.
6) A UI block goes on my "nice-to-have", but not on my "must-have" list.

Finally, at the risk of repeating myself, the infinite complexity and extensibility of the EL detracts from it's usability. I don't need all those options. You're supplying the source code, so if I need drastic changes, I'll do 'em myself, otherwise I should be able to just use it straight out of the box. If I need a helper for MySql, I'll write my own. If I need extra configuration data, let me figure out how to get it to you and how to save it. If I want to log to a Blackberry, let me figure out how to make a sink that the EL can source. Or let the community handle all of these things for you. Concentrate on the core.

One more thing (after "finally"). I really do think that it's a workable idea to release the EL as a bunch of versioned and loosely coupled blocks. Release a config block, and then a DAAB, and then a logging block, etc. That might help to make the product seem less overwhelming. 8/12/2005 9:34 PM | Chris J. Breisch

# Enterprise Library 2.0


I was looking around tonight to see if many people have been blogging about the new EntLib release... 1/23/2006 11:28 PM | Kyle Finley

# re: Enterprise Library vs. .NET 2.0

please get me a new ebook aboat Hands On Labs for C# 2005.
I am computer engineering.
3/25/2006 7:02 AM | javad ahvaz

Post a comment





 

Please add 1 and 3 and type the answer here: