Of course, everyone is entitled to their own opinion and i am certainly not paid by Microsoft to be a “defender of the faith”. Nevertheless, i do come across inane comments that i cannot just ignore. I ended up on the ASP.NET forum by accident today on a topic of Modular ASP.NET architectures when i was looking for some WCSF or DNN related things (i honestly cant remember which). Anyway, this chap made the following comment when asked about frameworks that help promote modularity.

WCSF is a bunch of source code produced by a couple MS developers to promote .Net 3.0. Believe it or not, .Net 3.0 is a failed product, not many acceptance, because it’s not solving any real problems. I don’t think you want to mess up with WWF in your project so far. Once you start to use WCSF, you got sucked into .Net 3.0. You spend 80% of your time to solve all weird technical problems, conventions, and finally you found it’s not
.Net 3.0 problem, it’s your own problem because you didn’t do it in .net 3.0 way. Before you know that, you run out of time, you never have time to look at your real problem: The business problem you want to solve.

Eh? what on earth was that about? So heres my reply in full having asked him not to slag off WCSF in such a way if he couldnt understand it or the concept of software factories

(1) WCSF delivers sorely needed guidance in building nLayered ASP.NET applications. Everyone has their own pet theories and approaches on how things should be done and as the saying goes “one mans meat is another mans poison”. We are rarely, if ever ,going to agree with another developer on the “best” approach to anything because to each of us, our approach is the correct one and the other guy doesnt know what he is talking about. Its time MS made a stand and told us what they think is a good way of using their technology and those who wanna go along can do so. If you dont like it, dont use it.

Yes, it validates the concept of Software Factories, GAT, GAX etc along the way. It is not intended to promote .NET 3.0 but to also show us how WF can be used to do pageflow in a way thats much better than the old UIP block and ultimately even if it does show off the features of .NET 3.0
so what? lots of people want to know how to incorporate .NET 3 into their work now. Besides, nobody claimed that it is perfect or that it is the
only way to do stuff.

(2). NET 3.0 is NOT a failed product because (a) its not a product (sic!) and (b) its been released only just now. Its just more of the .NET framework and its too early to say if that it has succeeded or failed. You obviously havent done much distributed computing or you would appreciate what WCF does in unifying the communications stack and what it brings to the table for SOA and large scale integration. I use Biztalk almost 99% of the time now and i can fully well understand the huge problems that WCF solves and what WF does.  I am not a front end programmer so i dont really have much to say about WPF but from an architects point of view a stack that can help unify the approach to the desktop and the web is definitely valuable. Try building solutions that go beyond a few web forms and incorporate orchestration and integration and then you can see the problems that .NET 3.0 is intending to solve

(3) Every technology/framework will prescribe that you do something in a particular way. Its just part of software development. If you want to use
DNN, you have to buy into their plug-in module concept. You want to use the Ent Lib? then you have to do stuff in a particular way. The point of
WCSF is that it should let you focus on the business problem not the plumbing and wasting time creating skeleton projects, editing config files
to put the same gunk in day after day etc. If its a complex approach, so be it. There are no silver bullets. (And besides, the WCSF team has been asking for feedback and even have a rating system where you get more points for criticising it than if you applaud it).

(4) Finally dont forget that the ASP.NET development team has also been involved in it. Yes, the same folks who wrote the technology that you are
using to solve your “real world problems”. They obviously know what the real world is like. .

Now heres the thing. He probably tried using WCSF is an early CTP and couldnt figure it out and just to give him the benefit of the doubt, lets assume that the problems with it are real and that it is just clunky. Even if that were the case, thats still not an excuse to go to town about .NET 3.0 and call it a failed product! Theres no real correlation between a framework and a factory that implements some of the frameworks features. Factories are new. PAG is doing its best to provide good usable stuff but GAT and GAX are known to be difficult, hardcore technologies now and it isnt easy to understand them either. Im just getting started with automation and code gen the GAT way and its still tough going but that aint .NETs problem.

Anyway, im glad to get that off my chest. As always, feedback is welcome!!