I have just released a work-in-progress version of my Layered Architecture Sample for .NET 3.5. I have been toying with the .NET 3.5 technologies such as the new WorkflowServices and LINQ for quite a while, so I guessed it is time to push something out to the public. You can grab the source code here.
Be reminded that I'm still working on it. There are many bits that are incomplete, particularly with the client applications. I was working on a WPF client earlier on but was distracted by work to do something else. Recently, I was learning the Smart Client Software Factory (SCSF) and needed a base for my experiments. So, I developed a SCSF client for the sample just for the kicks.
It made me realized that there is another dimension that I could cover which is demonstrating how to integrate those published software factories with the Layered Architecture. If time permits, I may look at the Web Client Software Factory next.
I know some of you may be confused as to what is this Layered Architecture Sample thing. It is not a framework like my previous project - Paladin. That's history as far as I'm concern with the emergence of LINQ and I kinda gave up on building anymore frameworks for now.
Layered Architecture Sample, as the name implies is just a sample application with the emphasis on 'Layered Architecture' which means how we separate all our code into layers (like onions). Although it takes the form of an Expense application, the jewels are actually in the code and design (so don't bother about the functionality of the sample).
With so many .NET technologies available today (and many more little add-ons coming along), how are we supposed to know how to hack-up all of them into our enterprise applications? How are we supposed to upgrade to newer stuff without killing our existing applications?
Most of the samples I find out there are technology centric. They usually demonstrate all the capabilities and strong points of a particular technology i.e. User experience samples will move in with jazzy-snazzy front-ends but weak back-ends, web-services samples will go into an SOA over-drive (SOAP this, WSDL that) and O/RM samples will demo its own thing and etc. Now I'm not sure about you, when I see all these I either go into fits or give a blank DuH!
So, in my quest to explore how to put all these technologies together (little by little), I started the Layered Architecture Sample project and made it public to share with everyone. By layering my application, I can easily place and replace pieces of my code as new technologies are introduced.
The 3.5 preview release is a good example of how I could ripped out Enterprise Library from my data layer and replace it with LINQ without affecting my application. I converted my workflow without killing my client applications. And I also build a SCSF client on top of my application without breaking my workflows, business components, data components and so on. All the changes were isolated (to some extend). I also get the chance to experience what works with what.
So, that's what Layered Architecture Sample is all about. :)
Wednesday, May 28, 2008
LayerSample.for.NET.3.5
Saturday, May 17, 2008
Duh.Power.of.x64
I have recently converted my Lenovo ThinkPad T61p (company asset) into a super workstation by installing Windows Server 2008 64-bit and I must say it is awesome!
The thought came a few months ago, when I learned that all Core 2 Duo processors are 64-bit (ok, I know I'm a bit dumb when it comes to hardware) and that the T61p is really a kick @$$ notebook with support for Intel Virtualization Technology (which means it could run Hyper-V!). And after getting 4GB RAM, I discovered that my 32-bit Vista can only use up to 3GB of RAM (although SP1 detects 4GB) - What a waste?!
So I went on with Windows Server 2008 x64 and since then, I have been very happy with it. On boot up it takes lesser resources than Vista and performs faster. Lenovo has all the drivers available for 64-bit - just download the ones for Vista 64-bit.
For my work, I have installed SQL Server 2005 x64 and Visual Studio (2005 and 2008) and they all worked fine. Infact, I felt that my code compiles faster! (or maybe it is just psychological).
Note: There is no 64-bit Visual Studio but there is 64-bit .NET Framework.
I also enabled the 'Desktop Experience' a.k.a. 'Aero Glass' and did some performance tuning to make it behave like a workstation. I also got Windows Sidebar working but not without some registry hacks.
Out of curiosity, I enabled Hyper-V to checkout the new virtualization technology and it is pretty cool with the ability to assign number of virtual processors (CPU), support for 64-bit guest OS and make full use of hardware virtualization. Hyper-V is still in RC now at the time of this post. My virtual machines run as fast as my host eventhough they are on external hard drives connected through USB.
So if you are thinking of reformatting your notebook, do consider Windows Server 2008 64-bit if your hardware supports it!
TFS.2008.Installation.Lesson.Learned
The beta release of Service Pack 1 for Visual Studio 2008 and Team Foundation Server 2008 were released a few days ago and I was looking forward to the promise of supporting SQL Server 2008 February CTP in this service pack release. So, I gave it a shot.
As usual, everything installed well except for TFS 2008. I got the same problem I had before. This time round I didn't configure a WSS site myself. I realized that the problem isn't really with the 8080 port. It was due to me naming the TFS web site as "Team Foundation Server".
Note: Configuring the port 8080 will allow the installation to succed but will cause Team Project Creation to fail later on.
Therefore, if you are installing TFS, make sure you don't name your extended web site "Team Foundation Server" during the stsadm command line step. Call it something else like "Team Foundation Web Site".
Now, that's really a lesson learned!