EvereQ Micro-Blog

Did you check Patterns & practices Web Client Developer Guidance?…

Web Client Software Factory latest release was one year ago…, but Web Client Developer Guidance still in development… and very interesting! If you not check it before - do it right now! In latest version (15 Jan 2010) a LOT of updates!

More on Distributed Cache in .NET

Actually I know by now following solutions (except to write own sure) to build real Distributed Cache in .NET applications:
1) Open Source / Free Memcached Client or Client / Server port to .NET, for example: http://www.codeplex.com/memcachedproviders or http://sourceforge.net/projects/memcacheddotnet/ or http://www.codeplex.com/EnyimMemcached or http://code.google.com/p/beitmemcached/ etc (probably exists more implementations for both clients / servers… I list here all I know on C#)
Such solutions looks like good option if you have enough time to “Hack” :) but potentially you can build very cheap / scalable / performance solution!
2) Commercial distributed cache solution like NCache (http://www.alachisoft.com/ncache/) or ScaleOut (http://www.scaleoutsoftware.com/). For NCache exists implementation to integrate with Enterprise Library 3.x - 4.x. For ScaleOut I write this implementation myself about year ago and it works great for now (I develop it for EntLib 4.x). I don’t have enough experience with NCache, but about ScaleOut I can say something like “Amazing performance!” - I see project where developers put to session state everything that they can (huge DataSets, etc) and ScaleOut still works fine, except some problems when size of DataSet is more then 100Mb :D) Potentially such commercial solution can give you amazing performance / stability (more so, ScaleOut have servers implementation for Sun Solaris, so you also save a lot on Windows licenses!)
3) Use Microsoft Velocity (http://msdn.microsoft.com/en-us/data/cc655792.aspx, currently in CTP). Exists also some attempts to attach it to EntLib 4.x for example http://blogs.microsoft.co.il/blogs/gilf/archive/2009/07/26/creating-a-simple-enterprise-library-cache-provider-for-velocity.aspx, http://blogs.microsoft.co.il/blogs/gilf/archive/2009/07/27/how-to-create-a-simple-enterprise-library-cache-manager-provider-for-velocity.aspx etc
I like this solution (and probably going to use it in my future projects) because of:
- it’s Free
- it’s going to be “De facto” standard for .NET distributed cache implementation from MS. Probably some day it will be shipped as part of .NET framework X (just take a look to namespace: Microsoft.Data.Caching) …
- it’s simple to attach it to EntLib like we can see in blog posts above
What is not yet included:
- GUI to make monitoring / configuration etc (for now only available administration using PowerShell)
- release :) (i.e. currently it’s only CTP)

Conclusion: I suggest everybody to take a closer look into Velocity project for future projects. For current projects I would recommend to use Memcached ports or if you have enough budget use commercial solutions NCache / ScaleOut.

Note: Code is relatively old (use ASP.NET 3.5, but not ASP.NET MVC…), but still make sense to review if not see this sample before (use services, workflows etc) !

From site:

Layered Architecture Sample is created to demonstrate how to apply some of the available .NET technologies of today with the Layered Architecture design pattern. It is a simple example that illustrates the factoring of responsibilities and separation of concerns into multiple layers in an enterprise application.

As the name implies, the main focus of the sample is “How to code the layers?” and not the actual functionality of the chosen Expense application. The Expense Business Process Flow was chosen simply because it is widely used and easiest to understand.

“Sculpture is a .NET open source Model-Driven Development code generation framework ideal for creating and managing .NET Enterprise Applications.”

My comments:
1) Open Souce - can’t found source code on they site…. On CodePlex I found only old version 1.0 (http://www.codeplex.com/Sculpture)… On dawliasoft site you can currently download only executable, but not source code… strange…
2) I did not review generated code yet, but not sure now anybody can implement Application level code generator for real complex projects development (but it’s sure thing good that such attempts exists)… Yes, exists now a lot of code generators for DataLayer for example, but for total application looks like it’s too complicated tasks (as most of applications have big differences in requirements / architectures / platforms etc) …

Inspired by Watir development of WatiN started in December 2005 to make a similar kind of Web Application Testing possible for the .Net languages. Since then WatiN has grown into an easy to use, feature rich and stable framework. WatiN is developed in C# and aims to bring you an easy way to automate your tests with Internet Explorer and FireFox using .Net.

Check Out also:
1) WatiN Test Recorder (http://sourceforge.net/projects/watintestrecord/) - useful to automatically write tests (NUnit, MbUnit and VS Unit tests frameworks are supported)
2) WatiN Blog (http://watinandmore.blogspot.com) - a lot of useful examples!