Grokking the Business Layer

In line with my new side project, I have ordered two books from Amazon. I’m keen on getting things started on the right foot by following DDD (Domain Driven Design).

Expert C# 2008 Business Objects, which covers CSLA 3.6, written, of course, by Rockford Lhotka.

and Model-Driven Design Using Business Patterns, by Pavel Hruby, which is the best book so far on REA (Resource Event Agent).

Starting a New Trajectory

I’m going analog in fleshing out my ideas with a limited edition Helvetica moleskine. It’s quite pricey for a small notebook, but considering that I’m going to work on this long-term idea, I figured it would justify shelling out a little extra to document my ideas on something “special”. (I’m also waiting for my order of the Maker’s Notebook.)

This is my on-the-go notebook. Currently, at 3 days old, it contains notes on:

You can probably get an idea what I’m coming up with.

On another note, I’ve resumed twitting and bought an MP4 player to listen to DotNetRocks while on the go.

Composite Application Guidance for WPF a.k.a. Prism

I must have been too busy with transitioning at work, this release escaped my radar. I’ve been playing around with the Smart Client Software Factory for Windows Forms and have gotten to like it. However, I found it quite clunky at times. So, I’m quite thrilled that they decided to rebuild the Composite Applications idea from the ground up, and even rebuilt the CAB-version for it, for WPF.

Prism, which is now called the Composite Application Guidance for WPF, is a more streamlined version of its predecessor. It discontinued its quite rigid approach of using WorkItems and Modules and kept it flexible, while at the same time allowing enough guidance for a best-practice approach.

The download package contains not only the framework but a reference implementation as well. The documentation initiates the user with the patterns involved and offers a good introduction to its technical design. No doubt Microsoft has learned from the user community on the steep learning curve of SCSF.

It’s about time that Patterns & Practices released a Composite Application framework that’s natively WPF. I’ve been waiting for it since the announcement of the now-defunct Acropolis.

(And guess what, now that this version has been released, the P&P guys are now working on the next one, which extends the framework to building composite applications on Silverlight!)

NET-DEV, the .Net Developers Network

I created a new social network for .Net Developers, called NET-DEV. The idea is to have a place to simply share what each one is up to and help each other out. Interesting stuff from YouTube, DotNet Rocks, and others are also posted there.

Time to Go XAML

I just moved to a new job, and my first project involves building a Windows Presentation Foundation (WPF) module over a CAB-derived shell. This signals my official entry into .Net 3.5. I always thought my entry into .Net 3.5 at work will begin with Windows Communication Foundaiton (WCF), which, in my opinion, is the most compelling among the new technologies because of its immediate value to enterprise development.

Nevertheless, I am embracing this opportunity to learn XAML and the nuances of developing using WPF. I am going to use SAMS’ Windows Presentation Foundation (Unleashed) as my guide.

Adopting Agility

I’ve been reading around for tips on ways to adopt agile methods, tools and techniques in an organization that already has its own process (and culture) set. A recent article from CoDe Magazine, titled Individuagility, written by Jean-Paul Boodhoo, lists 16 points on how this can be done.

He mentions some good reads, like The Pragmatic Programmer, best practices such as interface-based programming, design pattern refactoring, test driven development, and, of course, tool essentials like Source Code Control, Continuous Integration Server, Automated Build, Unit Testing.

Check it out. 

New Toy, cont’d.

I managed to grab a brief sale of the Toshiba A205-S6810 on Amazon, for $749, with free shipping within US. It was not as low as the $699 when I first spotted it, but it was still much lower than the $979 regular price. I’m happy I made this purchase. (For those in the Philippines who are interested in getting cheap laptops in the US, go for Amazon and have it delivered through Johnny Air Cargo in New York. I learned about this in a post in Tipid PC. You still get a lower price compared to what’s sold locally, even if you pay for more than $100 of shipping.)

So, with a Vista powered toy in hand, I proceeded to install all the software for my new development machine, starting with the latest from my MSDN subscription, stuff which I held up from installing because they were meant for Vistas, multi-core CPUs, and larger RAM. Stuff such as running server products (Sharepoint Server 2007, Visual Studio Foundation Server 2008, and the like) off Windows Server 2008 through a Virtual PC.

Now, I’m ready to set up for my agile development environment, starting with source control through Subversion. I learned that Subversion interfaces with Apache, but not with IIS. A minor setback, but that’s alright. I also learned that my old version of WAMP won’t run on Vista because of tighter security measures (it is unable to write to the registry or start a service on its own). I then went ahead with downloading the newer WampServer 2 and a Subversion version that runs for Apache 2.2. It will be integrated using instructions from this TrajiklyhHip blog entry.

This will be followed by an installation of TortoiseSVN, the Subversion client for Windows, and integrating it into Visual Studio 2008 with guidance from Garry’s Bit Patterns blog entry.

I will proceed with NAnt, NUnit, CruiseControl and BugTracker.Net when I’m done with source control setup.

New Toy

I can’t wait to get my hands on my new toy. I finally managed to get an order for a Core 2 Duo machine from Amazon and have a friend ship it here.

It isn’t the same spec as I initially wanted. The Toshiba Satellite I was eyeing had a sudden jump in price from the discounted $699 to $899.

So, instead, I went for a Compaq Presario V6000T that was offering for $712. Slightly more expensive than the original Toshiba, and lower specification with 2GB RAM and 160GB HD.

I had to choose between this, a Core 2 Duo machine, and a cheaper Athlon 64×2 Dual Core. I’ve read that the Core 2 Duo is faster with the same MHz rating, has longer battery life, and is less hot, so, despite the slightly higher price and limited upgradability (it is maxxed at 2GB RAM), I went ahead and managed to grab the last one in stock, not wanting to miss another sale opportunity.

CNet gave this model a 7.5 rating for its attractive design, respectable application performance, long battery life and configarability.

NHibernate Mapping Concerns

I encountered two errors in my code related to mapping.

First, there was incompatiblitity between IList (which was how I defined my collection properties in the Resume object, like Education History) and NHibernate’s Set mapping. (It turns out that Set derives from a non-native library called Iesi.Collections. I tried referencing Iesi.Collections in my code but it seems that it couldn’t find it in my NHibernate.dll.) It was resolved by changing the <set> tag in my map to a <bag> tag.

The second was some loading problem when my code tried to call the collection values. I learned that the bi-directional association which I set into my mapping doesn’t work for indexed collections like IList. I then took out the many-to-one tag, and it worked.

With these major mapping issues ironed out, I can now proceed with completing the DAO (data access object) implementation of my resume schema, and then move on to creating the UI forms for them.

The 2008 Learning List

Apart from the certifications I’m targetting for this half of the year, I made myself a list of things that I should learn (and use in my mini-projects) this year (in no particular order):

I’m just waiting to get a new laptop before I can start tinkering with these. I’m not too confident of .Net 3.5’s (particularly WPF) performance on Windows XP, and on my sluggish 4 year old laptop. I should also have at least a Core 2 Duo with 3GB RAM to get Virtual PC running smoothly for server instances for Sharepoint (and play around with Windows Server 2008).

« Older entries Newer entries »