Monday, April 24, 2006

Some quick pondering

After a conversation this weekend with a friend, I thought I might post some useful links for those going down a service or component oriented route. I hope these are helpful.

-Microsoft's Enterprise Library for .NET 2.0: The Enterprise Library's latest version is a really wonderful framework for the development of both Applications and Services. In summary it is divided up into six distinct Application blocks designed to cover basic abstraction that are also open source. Some of the most useful blocks are the Data Access Application Block (DAAB) and the Cryptography Application Block (CAB). Look for more and more pieces to be added to this block in the future. Also, if you are looking to develop applications for Oracle and use the DAAB you should read this blog further to see some interesting issues and hiccups you may run into. The DAAB is also great if you need to develop for several databases and need the .NET implementation side to be close to database agnostic. That being said this may be impossible with Oracle due to their seeming inability to work cleaning with a generic implementation.

-ODP.NET and ODT for VS2005: Though still in Beta, this release looks to be feature complete, and reasonably stable enough. Though Microsoft and Oracle will still bicker about smaller details it is still better to use the Oracle provider than the one included with .NET by default. The Oracle implementation is faster, more flexible, and will provide better integration than the standard .NET provider. It is also possible to modify the DAAB to use ODP.NET instead of the default .NET provider. I would also like to mention that the code changes for the DAAB are relatively minor (shouldn't take more than 30 minutes if you know what to change before hand).

-Ingenious MVC: By now all developers should be trying to learn and get used to patterns. One of the most powerful patterns available is the Model-View-Controller (MVC). Though a discussion of that pattern is out of scope for this post, I would strongly encourage reading Chapter 14 of Martin Fowler's "Patterns of Enterprise Application Architecture". It is important to note that MVC is not just for Web Applications, it has plenty of application for rich client applications and should be included at the application form level (i.e. forms have controllers specifically developed for the application they are in, or the purpose they serve, controllers should not be "super-generic" for any/all applications). That being said my friend Kent Boogaart has developed an excellent MVC framework that is extremely straight forward and easy to implement. The base documentation for Ingenious MVC is very good, however it's usage documentation is not yet complete. I would suggest reading the documentation for Microsoft's User Interface Process Application Block (UIPAB) (and here) if you would like further information, however you should not use Microsoft's block as it is going to be replaced in approx. 1 - 2 years for .NET 2.0 and is extremely complicated. You should use Kent's framework instead as it is a simplified version of the UIPAB and is much more clean and consistent. I have full confidence that Kent's Ingenious MVC will be well supported and relevant in the future.

Anyways, that's a good start, and if any of you out there have any questions, please feel free to comment, and I will be happy to respond as I can.


Teddyg2453 said...

Would you be willing to share your code for getting to work with DAAB and the membership/profile providers?
It would be greatly appreciated.

Please email me at using the name teddyg2453.

Thanks in advance!

Jon said...

Hey teddy,

I'll be sending you an e-mail this morning.



J.T. said...

Hi Jon!

Mee Tooo Please!!! :-)

I would love to get your implementation of ODP.NET into the DAAB. I would even bribe you with a new book!


ps...lessons learned would be great to know.