To Be Or Not To Be,,,
As any ardent fan of Shakespeare does, I too like the soliloquy of Hamlet – To be or not to be – very much. That universally acclaimed verbal frustration captures the essence of being in ambiguous state, unambiguously
. Such ambiguity not only haunted the medieval prince but continues to haunt even modern-time technical people, albeit in different context. Undergoing mental agony, when you are trying to answer certain close-ended as well as technology options related technical queries, is no way less painful one than what Hamlet had to endure
.
A few such queries in .NET domain, relentlessly raised by people, for sample, given below:-
- Does GC indeed solve all memory allocation related issues automatically?
- Does it make sense to use .NET Remoting, when the entire world talks about Web Services?
- Will we ever work, dealing only with managed code?
- Are web services at their current state really interoperable with disparate platforms and technologies?
- Can I go for ASP.NET Web Service or .NET Remoting?
- Can I always use asynchronous pattern, as it is being considered to improve the performance, scalability and user experience of the application?
- Tell me now, which one is better – smart client or web based application?
- Can I go for WF or for BTS?
While it is true that these questions can not be reciprocated by starting with categorical yes or no, , these questions can be answered satisfactorily, if listener is willing to convert these queries into bit open ended and patient enough to lend his/her ear to some amount of technical detail. If you observe closely, you would realize that answers are inundated with various hypothetical scenarios and situations to nail down the points to be made.
We all know this is how it is going to be and hope only technological advancements in future will make us to be more unequivocal in our replies. As I have been working on .NET Framework 3.0 technologies, I wanted to revisit those questions to see whether answer pattern changes to some extent, now. Not so surprisingly, they are not. But surprisingly (and unfortunately) new technologies accentuate the ambiguities further.
In .NET Framework 3.0 (earlier named as WinFX technologies), we do come across set of technologies such as WPF (Windows Presentation Foundation), WCF (Windows Communication Foundation), WF (Windows Workflow Foundation) and WCS (Windows CardSpace).
Central theme for introducing these technologies is, to provide single, flexible and extensible programming model to achieve diverse things. For example, WCF is nothing but the unification of various technologies (ASP.NET Web Services, .NET Remoting, Enterprise Components, Messaging and Web Service Enhancements) under a singular programming model which closely resembles ASP.NET Web Service programming model. The same theme can be applied to WPF too, as WPF supports developing both desktop and browser based application using a single programming model (but WPF provides much more, and here I don’t intend to downplay all of its other significant changes that are to create stunning user experience applications by just highlighting this theme). Similarly, in WF, you can follow the same flexible programming model to handle and implement various types of workflow logic whether it involves only systems or combines the human factors with system centric tasks.
Now, .NET Framework 3.0, has not really discarded any of those which are part of .NET Framework 2.0, but adds the above mentioned exciting technologies into its repertoire. That, in fact, really accentuates certain ambiguities as I had mentioned earlier. Still it (or any other technology, for that matter) has to go a long way, to elicit categorical answers on close ended questions related to features such as whether GC is all that robust. For those technology options related questions, now, context of question might slightly shift from “ASP.NET Web Service Vs .NET Remoting” to “WCF Vs ASP.NET Web Service Vs .NET Remoting” or from “Smart Client Vs Web based app” to “Smart Client Vs Web based app and if Smart Client, is it by using WPF or Win Form”. But answers loaded with “depends on a scenario” remain largely same but they become bit bloating now, because more scenarios need to be discussed
. It means, more patience and inclination to listen to technical details are to be expected from the people who raise the queries (if they do care for answers
).
BTB, sometimes, the name of the technology itself will be the provenance for ambiguity, as in the case of .NET Framework 3.0. Personally, I would like to totally agree with what Shakespeare had told, “what is in a name; that which we call a rose, by any other name would smell as sweet”, but unfortunately would not, in the case of naming of .NET Framework 3.0. It should have been left as WinFX technology. Main reason for that, I think is, you can really then distinguish the technologies of .NET Framework and WinFX (WinFX as next generation technologies but being supported in a few existing OSs such as WinXP and Win2K3). And another fact that .NET Framework 3.0 is not supported in Windows 2000 is a bitter capsule to swallow. But truth is .NET Framework 3.0 still can be supported in Windows 2000 if WinFX technologies have been left as they were, and as extra features to .NET Framework 3.0 (which as an improved version).
Anyway, not only we but software technologies too are such stuff that dreams are made on. Not a big deal even if they are bit quirky in their names and concepts.


