



I’ve spent today looking at LINQ and F#. I’m sure I’ll spend quite a bit of the future looking into them. I’m certainly no clairvoyant or great prognosticator of technology but I do sense a technology shift coming. It’s the same feeling I got in the late 80’s when object oriented programming began to gain momentum as the way of the future.
I wish I could write an authoritative technical post on either LINQ or F# but so far the only thing I can say authoritatively is that I have a lot to learn. I spent most of last week contrasting imperative programming with functional programming and doing searches on “Why should I care about functional programming?“ I decided that if I don’t want to become irrelevant in about 5 years, I’d better get on with learning functional programming techniques. I only occasionally dabbled in Lisp years ago and trying to capture the functional mindset is proving really difficult for me.
I did use both LINQ and F# to solve the first problem on the Euler Project list. I’ll post my solutions later once I believe they’re functional solutions instead of imperative; honestly, right now, I’m having trouble knowing the difference. I’d like to go through the entire list solving all 237 problems in both LINQ and F# but I’m sure my work schedule won’t allow that. Hopefully, I can work through enough of them that I can get over the hump of thinking like an imperative programmer. Luckily (or unluckily) F# doesn’t force you into pure functional programming, it tries to ease you into it.
Toss the new features of Enterprise Library 4.1 into the mix and my time looks pretty limited.
No pressure though… I’m only predicting that I have to change my entire approach to problem solving in order to stay relevant in my chosen profession.




(This post is a work in progress… I just needed to get an answer up quickly for several friends.)
Finally, something of moderate substance.
At work, I am actively promoting the Microsoft Enterprise Library (ENTLIB) for the project I am currently working on. I’ve now been asked, “What is the ENTLIB?”, enough times that I decided to answer that question here as it’s not a “quick answer”. If the link I’ve provided is too much, here’s my attempt at a simple description.
The Microsoft Enterprise Library is a pool of source code written by Microsoft and made freely available to developers. The source in the ENTLIB represents the collected “best practices” recommended by Microsoft for using the .NET Framework to implement enterprise solutions.
That’s the short answer most people want.
It’s technically correct. It’s also totally useless. It’s not informative enough to really let you know what you are in for if you use the ENTLIB. So, I’ll pick the description apart and explain. Examine this diagram from the ENTLIB documentation:
This diagram is actually from the Enterprise Library 4.1 documentation. Since writing this original post I have migrated my blog and decided to upgrade the diagram.
But just getting started can be daunting! Where do you start the learning process? I’m not an ENTLIB expert but have formed an opinion on where to start.
Step 3 above is a bit outdated. With EL 4.0 and beyond dependency injection is handled by Unity.
Clearly, everyone learns differently and your mileage will certainly vary. The steps I outlined just worked best for me.
To the best of my understanding, the ObjectBuilder was actually designed and implemented during the Composite User Interface (UI) Application Block project (referred to as the CAB) . The ObjectBuilder was so useful, it was refactored into the ENTLIB.
Why is that interesting? Because the CAB is sometimes mistaken as part of the ENTLIB. It’s actually a custom application block written using the ENTLIB. Since the ENTLIB and the CAB are both Microsoft projects, the refactoring of ObjectBuilder into the ENTLIB was logical.
ObjectBuilder, while shown as part of the core is actually an application block. The ENTLIB documentation notes:
ObjectBuilder is a patterns & practices Application Block, but because of its highly specific audience and its recent inception, it is not yet fully documented as a stand-alone asset like the Enterprise Library application blocks are.
The CAB seems like a perfect candidate to have that classic Visual Studio “wizardry” in order to add new CAB “thingies” (Since, this article is about the ENTLIB, the full description of the CAB is left for another time, for now, “thingies” is all I’m willing to say.). That leads us to the Smart Client Software Factory.
The Smart Client Software Factory, is a collection of code-generators, how-to examples, Guidance Automation Toolkit (or GAT), and documentation for creating “smart clients”.
What’s the GAT??? It’s a toolkit to let software development kit (SDK) developers like me add guidance toolkits to Visual Studio using the Guidance Automation Extensions (GAX).
What the hell is the GAX?!?!??!?
It really does take a bit of commitment on your part to go learn the ENTLIB and the related projects that spring up around it. My advice is to download the ENTLIB, play with the quick starts and guidance, read the documentation, buy a book, and just dig in and write a client or your own application block. In my opinion, it’s certainly worth the effort.
One last question… Who is John Galt?


More Options ...
Categories
Tag Cloud
Blog RSS
Comments RSS

Void « Default
Life
Earth
Wind
Water
Fire
Light 