> I've been developing applications using Microsoft products 
> for many years and with the .Net framework for 2+ years now. 
> I've been keeping an eye on the features that are supposed to 
> be included in Longhorn, VS.Net and the framework. It's what 
> is don't see mentioned that disturbs me. IMO, there are some 
> noticable gaps/oversights in what MS is promising in the near 
> future that will affect my decision to use keep using their 
> development tools.

        You're not alone. 

> 1.A replacement for COM+ services. It seems to me that a 
> first-class, .Net- based not COM-based, highly-scalable set 
> of component services is very much needed to build 
> applications on a par to that which can be created in other 
> frameworks (namely Java). In order to create these OO 
> applications we need a comprehensive set of top-notch object 
> services (not an ADO.Net Transaction object in a Data Access 
> block or a wrapper around COM services).

        You mean something like the EJB framework? The problem with this
is that the services are a core component of the operating system. This
makes it impossible to replace it with something managed and makes it
automatically a subject for re-use in a managed environment: after all,
why re-implementing an EJB like framework if you already have one. 

        I agree that COM+ is now not that usable in .NET: you have to
inherit from System.ServicedComponent, while it would be more consistent
to supply an interface you have to implement to be able to participate
in COM+ transactions; .NET doesn't have MI so mixin classes are
impossible once you have to inherit from ServicedComponent. AOP can help
here in a great deal.

> 2. .Net is all about OO application designs. However, this 
> paradigm really falls apart when it gets to the data tier 
> because, again, a first-class Object Relational Mapper is not 
> available out-of-box. I know that there are 3rd party 
> solutions for this, free and not free but, come on, a company 
> with Microsoft's $$ should at least supply a very decent ORM. 

        I don't see why they should supply an implementation. I more
want a general specification like JDO or EJB-CMP so every O/R mapper can
implement these specs (eventually with the help of some generic base
classes/interfaces) like which is the case in the Java world. 

        The big problem with an implementation is that the
implementation becomes the 'general specification' while it is just 'an'
implementation, if you don't have a general spec. 

        Microsoft apparently thinks that by supplying Objectspaces and
MBF for free (because they use these for internal products anyway) the
average developer will be very pleased and it truly adds something to
the value of .NET. I think this is a mistake. The average developer is
far better of if .NET has a general specification like EJB-CMP and for
example JDO. The reason for this is that the developer then will be able
to swap tools if they have to and can pick the best implementation of
the spec. Now every O/R mapper has its own specifications, own object
query language, own flaws and strong points and this is also true for
Objectspaces. 

        The idea to have a general spec for this in .NET is not new.
Yours truely and others (Thomas comes to mind) have mentioned this
already in the closed beta newsgroup of objectspaces in 2003 when
whidbey alpha just started (august 2003 if I'm not mistaken). Not a
single word was received from Microsoft on this idea. 

        It's this lack of feedback from Microsoft which is the truly sad
part of the story. There is no dialog, yet Microsoft is working hard to
give the developer Objectspaces without a general specification like
EJB-CMP or JDO. And once the implementation is there, a general
specification is very hard to get accepted. 

        In other words: if Microsoft isn't releasing a general
specification ala EJB-CMP or JDO for .NET with whidbey (and it looks
like they will not do that at all), .NET developers will never have the
joy of a common general specification for persistent objects, which only
brings benefits to the table. (For the people who think a 'standard
specification' brings trouble too: correct, but at least then there is a
standard all tools will adapt; stuff not mentioned in the standard
specification will be added by the various tools themselves). Microsoft
can even peek in what's already been defined for Java for years: the
EJB-CMP and JDO specifications. They don't have to make the mistakes Sun
has with the standard, they can weed through the various feedback java
developers have given during the years on these standards and adapt
these too. 

        It would have been a win-win situation. I really fail to see why
Microsoft is so stubborn not to release a general specification for this
important aspect of .NET. 

> They can jack up the price of VS.Net Enterprise if they did 
> this and I doubt anyone would care. I realize that 
> ObjectSpaces is intented to fill this obvious gap but what 
> I've read about so far it seems like another somewhat hokey 
> attempt to give us "something" but nothing really useful.

        Correct. Although Objectspaces is not that bad, it is just 'an'
implementation, and every flaw in the implementation is automatically a
flaw in the 'standard' it is about to set. Like the schema definition
used for objectspaces is not suitable for databases with solely schemas
and not catalogs (like oracle) nor is the architecture pluggable so for
example Oracle can write its own dynamic query engine for Objectspaces
based on ODP.NET. 

> 3. If Microsoft doesn't want to undertake these development 
> efforts let 3rd parties do it. Why doesn't Microsoft create 
> specifications/open up parts of the framework so that 3rd 
> parties can create, pluggable components to fill these 
> obvious gaps ASAP. Then at least we'll have choices as developers.

        The idea has crossed my mind, but it will be a lot of work and
in the end it still will be a 3rd party spec which will never be THE
standard set by Microsoft. Mind you, by far the most developers using
.NET simply look at what's offered by the framework first, and only the
few who can think out of the box will look further. 

        Why Microsoft isn't releasing a general spec is also for me a
thing I can only guess about. I think it's along the general design
aspects of .NET, which has in no area a general open spec. and only in
some areas (where Microsoft needed flexibilty) the ability to 'plug in'
your own code. A lot of technology in .NET is either the Microsoft way
or the Highway (i.e. you have to build 99% by hand). This can be a good
thing in a lot of cases where teh Microsoft way is sufficient enough.
However in the areas where it isn't you're in trouble. For example, if
you specify an event handler in a class, you suddenly have to fully
implement ISerializable if the class was just marked with [Serializable]
to keep it serializable. Pretty weird design, but nonetheless reality.

> I realize that no development platform is perfect. Does 
> anyone have any hints as to if Microsoft realizes that there 
> are problems in the tools they are providing/not providing 
> and what they are planning to do about it? I can't believe 
> that they don't. Opinions?

        I don't WANT TO believe that they don't but I haven't seen any
evidence that they do (except the SOA related material which will be
addressed in Indigo), more and more I start to believe that they
actually don't care what's about to happen in the persistent object
corner. For some time now all hype, feedback and information about
Objectspaces has ended. The few people asking questions in the
Objectspaces newsgroup don't get replies anymore. I'm guessing here, but
I have the feeling something is going on related to objectspaces but
history tells me it's not going to be something we want (like a general
specification, only a set of base classes to help implementing the spec,
etc.) 

        By the time Objectspaces is released almost all O/R mappers
currently on the market will have all the objectspaces features and
more. They all also will suffer from the same flaw: there is no general
specification, every tool has its own specifications, it's hard for a
customer to swap tools for a specific requirement etc. etc. I really
really fail to see why that is in any advantage of Microsoft, because it
will only be a big burden for developers which can truly hold back
.NET's acceptance in the industry where Java is already a bigger player.


                Frans

--------------------------------------------------------------------
Get LLBLGen Pro, the new O/R mapper for .NET: http://www.llblgen.com
My .NET Blog : http://weblogs.asp.net/FBouma 
--------------------------------------------------------------------

===================================
This list is hosted by DevelopMentorŪ  http://www.develop.com
Some .NET courses you may be interested in:

NEW! Guerrilla ASP.NET, 26 Jan 2004, in Los Angeles
http://www.develop.com/courses/gaspdotnetls

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to