My blog is now officially open....

March 4, 2007 21:22 by garrymc


This is the first of what hope will be many posts. I'll give you a brief run down of who I am and what I might blog about.

I'm a freelance application architect currently living in Sydney, Australia who's about to move to Seattle, WA and always on the look out for interesting projects. Which I'm sure you'll know are few and far between, so if you know of any let me know!! :).

Some of the things I'm working on at the moment which I plan to blog about in detail later are:

Database Explorer API - With the advent of code generation being so popular and MS getting in on the act with their GAX and DSL tools, I thought it was time to have a decent database API. The GAX tools won't come with one so this will hopefully fill that gap. Alternatives do exist such as the one from Code Smtih which isn't bad (though handling of relationships isn't easy!) but its commercial so not good for the free MS tools. This is nearing a first cut - so if anyone is interested in helping me Beta test, drop me a line...

dnp.Framework - This is the core framework I'm working on to try and reduce as much as possible the work we need to do in the UI layer by maximising the reuse of what we've done in the middle tier. The idea is to have business logic flow down to the UI or other layers seamlessly so you only need change the rule once. Also a goal is to have near zero code in the UI pages (ok this is never going to happen - because you may have specific business logic that relates to the UI only). Development is going well and is ready for partial implementation, the UI gadgets still need to be worked on. Microsoft could have made my life easier had they not dumped support for control extenders to apply to more than one control (huge mistake in my opinion - so looking to provide alternative) in the AJAX framework.

Code Generation - This is a very interesting topic and an area I'm doing a bit of work in. The database API mentioned above is central to code generation (as it relates to databases that is). I've found that more projects are starting to use code generation which is a good thing, as it can allow a great deal of flexibility. Most of the code generation scripts don't seem to separate process from data (ie your objects have operations such as Save etc) or produce very heavy entity objects. I'm working on a set of scripts which will address these issues too.

Dynamic Controls - I wrote an article for Visual Studio Magazine on how to dynamically load controls without loosing your view state. However the technique no longer works in ASP.NET 2.0. I've recently written a new server control which fixes this and doesn't require you to do anything special to your user controls (only supports single control at present). Its currently part of my dnp.Framework, but I'll blog about the technique soon and make it a separate solution too.

Sample Book Chapters - Some time back before .NET 2.0 I thought about writing a book for Apress and got about half way before the subject lost a bit of steam. I ended up writing about 6 chapters but couldn't really think of a further 4 that made a lot of sense given the existing chapters. As a result the chapters have been left unread :( So I've decided that I might as well get them out there for people to have a read. The subjects are WMI (2 Chapters), MSMQ (2 Chapters), Event Logging (extended it to be damn useful!) and Profiling. I'll try and clean the roughs up and post them to the site. While the content was written based on 1.1, most of the code/knowledge will be transferable to 2.0 if you've upgraded already.

If you have a particular interest in any of the above and would like me to start with one area over another let me know and I'll see what I can do!

There's a lot of other ramblings I'll be sharing over the course of this blog too - I'll try to keep it interesting and feedback is always welcome!

kick it on
Digg It!DZone It!StumbleUponTechnoratiRedditDel.icio.usNewsVineFurlBlinkList

Currently rated 5.0 by 1 people

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5