.NET 3.0 feedback & criticism

.NET 3.0 feedback & criticism

Old forum URL: forums.lhotka.net/forums/t/1163.aspx


SonOfPirate posted on Friday, September 08, 2006

I participated in the web seminar presented by Dr. Dobb's Journal and others yesterday discussing .NET 3.0 entitled, ".NET 3.0: It's Just Down the Road".  From this came three key points that I'll toss up for discussion:

1. .NET 3.0 isn't really an upgraded version of the .NET framework and, in my opinion, needs to be renamed back to it's original name: WinFX.  This name is misleading to the developer community who are going to think that this replaces .NET 2.0 as we have all become accustomed to with traditional software versioning practices.  Instead, .NET 3.0 ADDS to .NET 2.0 and actually relies upon .NET 2.0 - can't run it without .NET 2.0.  This is a marketing ploy by MS that I strongly disagree with.

2. WCF, WPF and WCS portions of .NET 3.0 should be made part of the base framework (and may eventually be) as they are the new API's for dealing with the new Windows platforms starting with Windows Vista.  WCF replaces COM, etc.; WPF provides support for the new graphics engine; and, WCS is the new security model.  These are natural extensions to the existing framework and fit within the intent of the framework.  My guess is that they will be there eventually but MS needed to get this out to us (developers) now to coincide with the release of Vista and couldn't wait for the REAL .NET 3.0 to be ready.

On the other hand, the WF portion of .NET 3.0 doesn't belong there.  I believe WF is an SDK and should be relegated as such.  Or even an Enterprise Library component.  this is MS trying to dictate HOW to build an application rather than providing the building blocks for us to use as we see fit.  It is inconsistent with the rest of the framework and should not be directly coupled with it.

3. Finally, a comment by presenter Juval Lowy who stated emphatically and repeatedly that under NO circumstances should we make use of remoting in our applications.  (This is what lead me to posting this.)  Obviously this hits home with CSLA and the entire data portal concept is based on remoting.  So, aside from the expected banter about the agreement or disagreement with my assertions in the first two points, I would like to throw this one into the foray for discussion.  If not remoting, then what are we supposed to use?  WCF?  What about prior to WCF?  And, Rocky, do you have plans to upgrade CSLA to make use of these new "tools"?

Thanks in advance for your comments.

ajj3085 replied on Friday, September 08, 2006

SonOfPirate:
1. .NET 3.0 isn't really an upgraded version of the .NET framework and, in my opinion, needs to be renamed back to it's original name: WinFX.  This name is misleading to the developer community who are going to think that this replaces .NET 2.0 as we have all become accustomed to with traditional software versioning practices.  Instead, .NET 3.0 ADDS to .NET 2.0 and actually relies upon .NET 2.0 - can't run it without .NET 2.0.  This is a marketing ploy by MS that I strongly disagree with.


Rocky does blog about this, and I agree with him.  Its confusing, but not as confusing as keeping the WinFX name.. many people were thinking .Net was going to be obsoleted by WinFX, which isn't the case.

SonOfPirate:
2. WCF, WPF and WCS portions of .NET 3.0 should be made part of the base framework (and may eventually be) as they are the new API's for dealing with the new Windows platforms starting with Windows Vista.  WCF replaces COM, etc.; WPF provides support for the new graphics engine; and, WCS is the new security model.  These are natural extensions to the existing framework and fit within the intent of the framework.  My guess is that they will be there eventually but MS needed to get this out to us (developers) now to coincide with the release of Vista and couldn't wait for the REAL .NET 3.0 to be ready.

They're extensions to the framework, and I'd guess would be in the GAC and ngened etc. just like the framework.  One purpose of the GAC is to allow the framework to be extended.. PF and CF may very well be included in the 'base' .Net 4.0, but calling them .Net 3.0 now makes sense too.  Instead of saying your app requires .Net 2 framework, you say it needs .Net 3.0 framework.. which is simpler to understand than .Net 2 + WinFX extensions.

SonOfPirate:
On the other hand, the WF portion of .NET 3.0 doesn't belong there.  I believe WF is an SDK and should be relegated as such.  Or even an Enterprise Library component.  this is MS trying to dictate HOW to build an application rather than providing the building blocks for us to use as we see fit.  It is inconsistent with the rest of the framework and should not be directly coupled with it.

You could argue the WebServices is an SDK as well.  At any rate, WF is I believe going to be a core part of the platform, just like CF and PF are.   I don't think MS is dictating anything; you don't have to use portions of the framework which you choose not to.

SonOfPirate:
3. Finally, a comment by presenter Juval Lowy who stated emphatically and repeatedly that under NO circumstances should we make use of remoting in our applications.  (This is what lead me to posting this.)  Obviously this hits home with CSLA and the entire data portal concept is based on remoting.  So, aside from the expected banter about the agreement or disagreement with my assertions in the first two points, I would like to throw this one into the foray for discussion.  If not remoting, then what are we supposed to use?  WCF?  What about prior to WCF?  And, Rocky, do you have plans to upgrade CSLA to make use of these new "tools"?

Well the presenter can say whatever he wants; no one has to listen.  Smile [:)]  FWIW though, the DP ISN'T based on remoting; remoting is just ONE channel that is utilized (and the most common at this point).  But that doesn't mean there aren't other channels, like WebServices.  Indeed, Rocky has a beta version of a DP channel which uses CF, although he hasn't released it because CF hasn't been RTMed yet.  Obviously if you're targeting .Net 1.1 or .Net 2.0 as the lowest framework your application will run on, you can't leave remoting for CF, as CF isn't even there!  The DP channel you decide to use when targeting .Net 3.0 may very well be CF, but if you're not targeting .Net 3.0 its not even a choice.

Personally I'm looking forward to .Net 3.0; I'd like to use PF in my application, assuming the graphics cards in our workstations here can handle it. Wink [;)]  It should be noted that .Net 3.0 WILL be available on WinXP as well.

In case you haven't been let in on the secret, .Net is the new Win32!  Think of the framework now as Win32s from the Win3.1x to Win9x days.

DavidDilworth replied on Tuesday, September 12, 2006

I recently went to the Microsoft MSDN Roadshow in Reading (Microsoft's UK HQ) where they covered a whole load of new technologies (WCF, WPF, WWF, Atlas, Office 2007).

From what I saw of the .NET 3.0 stuff, it all looks very slick and is built directly on top of the .NET 2.0 framework.  So the fact that they've re-branded it as .NET 3.0 instead of WinFX I think is a good move.  My personal opinion.

And yes, these technologies now have great-sounding marketing names (Windows Presentation Foundation - wow Wink [;)]) and a great-sounding marketing umbrella name (.NET 3.0 - wow Wink [;)]).

But I think that gives a much clearer picture than the "WinFX" name did.

And don't forget that these "brand names" are not just aimed at the developer community, they're aimed at IT infrastructure support people as well.  So for support teams it is an easy concept to pick up as a simple progression of version numbers (.NET 1.0 => .NET 1.1 => .NET 2.0 => .NET 3.0).

I don't think the developer community will get confused with the name change either, since we're already used to working with the 3 existing different flavours of the .NET framework.

And at the end of the day, the framework is only there as a starting point.  If you don't want to use Windows Workflow Foundation (WWF) then don't use it.  It's the same as the System.CodeDom namespace in the current .NET framework - it's there if you want, but you don't have to use it.

Personally, I'm quite excited by the idea of a workflow engine where you can "draw" the workflow relationship between "workflow entity" classes that you've built yourself.  It certainly offers up the potential to model Business Processes more flexibily than we can currently.

 

vbLuis replied on Tuesday, September 12, 2006

My vote is for a $15 e-book detailing changes from 2.0 to 2.1 and an updated $50 book for the upcoming VS 2007--I'm sure that's what it'll be called. As you say, LINQ will be quite compelling and will result in a lot of changes. A new book will be warranted by then.

RockfordLhotka replied on Friday, September 08, 2006

SonOfPirate:

3. Finally, a comment by presenter Juval Lowy who stated emphatically and repeatedly that under NO circumstances should we make use of remoting in our applications.  (This is what lead me to posting this.)  Obviously this hits home with CSLA and the entire data portal concept is based on remoting.  So, aside from the expected banter about the agreement or disagreement with my assertions in the first two points, I would like to throw this one into the foray for discussion.  If not remoting, then what are we supposed to use?  WCF?  What about prior to WCF?  And, Rocky, do you have plans to upgrade CSLA to make use of these new "tools"?



Juval and I are good friends, and we tend to agree on most things in principle and disagree on most things in detail Smile [:)]  We have some of the best discussions!

It is important to remember that mobile objects is not the trendy thing right now. Service-orientation is the trendy thing. Fortunately for SO, no one can define it, so no one knows how limited it really is in practice and so it appears to be the "silver bullet". Like all technologies, SO will mature to the point that it becomes defined, and then used, and then its limitations will be all too clear.

Juval happens to be an SO junky - and there's absolutely no room in the SO universe for concepts like mobile objects... Wink [;)]

In general terms he's right. Remoting isn't the recommended technology by Microsoft, primarily because it doesn't do SO very well. And honestly, the WCF counterpart (NetDataContractSerializer) gets sneered at by a lot of 'softies too - again, because it is the non-SO part of WCF. But the important thing to realize is that the NDCS is part of WCF, and there is a contingent within the Connected Systems team at Microsoft who still think there's a role for client/server in the world of the future.

I specifically rearchitected the data portal in CSLA .NET 2.0 to accomodate other protocols beyond Remoting. Partially to get at the much faster EnterpriseServices option, but mostly to pave the way for WCF.

As has been noted, you can download a preliminary version of a WCF data portal channel from my web site. In general, it is a drop-in addition to the three existing channels - though you can not use the new DataContract concept as yet.

A future version of CSLA .NET (2.2 or 3.0 or something - I haven't decided) will provide full support for WCF, including the DataContract concept. That's a slightly bigger deal, because it means globally switching from the BinaryFormatter to the NDCS, because the BinaryFormatter doesn't support DataContract.

(which, btw, I find a bit odd, because WF uses the BinaryFormatter, so presumably there'll be issues saving workflows that use DataContract-style objects...)

So I rambled a bit here.

In summary: heavy use of Remoting should be avoided - specifically any alteration of Remoting with custom channels, formatters, etc. CSLA .NET uses Remoting in a pluggable, replacable manner and is largely immune to the "horror stories" people tell about Remoting.

I have a preliminary WCF data portal channel, and I am working with the Connected Systems team at Microsoft to ensure that there's a smooth transition to a future version of CSLA .NET that fully supports WCF, including the DataContract concept.

JonM replied on Sunday, September 10, 2006

   One of the worst things about .NET 3.0 is the compatiblity, from what I understand it will support Windows XP SP2 and up.  Whereas, the current 2.0 supports 98 SE and up.  While this isn't that important to most of us, I do think it is pretty awesome that my clickonce application with integrated sql server reports works just as well on Windows 98 as it does on XP (I actually tested it and nearly crappy my pants when ClickOnce actually worked and deployed the framework, the report viewer and my application on Windows 98, the only real pre-requisite was IE6).

   Also, I think you are all missing the best part about .NET 3.0.   Now authors can rerelease all of their .NET 2.0 books with .NET 3.0 on the cover and charge another $50 bucks! (cough.. Rocky).  See, just chuck a chapter about the WCF channel and call it CSLA.net 3.0 Ultimate Edition 2007 for Windows Vista.

RockfordLhotka replied on Sunday, September 10, 2006

JonM:

   One of the worst things about .NET 3.0 is the compatiblity, from what I understand it will support Windows XP SP2 and up.  Whereas, the current 2.0 supports 98 SE and up.  While this isn't that important to most of us, I do think it is pretty awesome that my clickonce application with integrated sql server reports works just as well on Windows 98 as it does on XP (I actually tested it and nearly crappy my pants when ClickOnce actually worked and deployed the framework, the report viewer and my application on Windows 98, the only real pre-requisite was IE6).

It is my plan (we'll see if it works out) to create a version of CSLA .NET that you can use under .NET 2.0 and 3.0 without change. I believe I can pull this off, due to the fact that .NET 3.0 is purely additive - so if you don't use any 3.0 features then neither .NET nor CSLA will try to load .NET 3.0 assemblies. My goal is to offer the smoothest upgrade path possible in this regard.

The primary points to deal with is the DataContract concept from WCF, and a new list changed event mechanism from WPF. I have a good plan for WCF that I'm pretty confident will work - requiring a new config file setting that is only required if you actually use WCF. The WPF list event is a harder nut to crack, and make require some conditional compilation (which is not my favorite way to solve problems).

JonM:

   Also, I think you are all missing the best part about .NET 3.0.   Now authors can rerelease all of their .NET 2.0 books with .NET 3.0 on the cover and charge another $50 bucks! (cough.. Rocky).  See, just chuck a chapter about the WCF channel and call it CSLA.net 3.0 Ultimate Edition 2007 for Windows Vista.



We'll see. My current plan is to release an ebook covering CSLA .NET 2.1 later this year. If that does reasonably well (I'm not planning to use DRM, so it could do badly due to piracy Sad [:(]), then I think it quite likely that I'll do a series of small "ebooks" covering .NET 3.0 - perhaps one for WCF, one for WPF and one for WF - or maybe one for all three - I don't know yet.

On the other hand, it may be the case that I need the marketing engine of a publisher to get decent sales and/or piracy of an ebook will be a too great - in which case I really might end up updating my book for .NET 3.0. That is a very real possibility.

To be clear, my preference is to not update the book just for .NET 3.0. I personally think that is a bit unfair to everyone who bought the current book - to come out with an update just a year later. That said, the only revenue I generate from all my work on the framework flows from book sales, so everything hinges on finding a successful model for either an ebook or a paper book.

dean replied on Monday, September 11, 2006

Rocky - if you don't mind sharing - as a point of reference about how many csla 1.0 books did you sell?

Dean

figuerres replied on Monday, September 11, 2006

RockfordLhotka:

then I think it quite likely that I'll do a series of small "ebooks" covering .NET 3.0 - perhaps one for WCF, one for WPF and one for WF - or maybe one for all three - I don't know yet.

On the other hand, it may be the case that I need the marketing engine of a publisher to get decent sales and/or piracy of an ebook will be a too great - in which case I really might end up updating my book for .NET 3.0. That is a very real possibility.

To be clear, my preference is to not update the book just for .NET 3.0. I personally think that is a bit unfair to everyone who bought the current book - to come out with an update just a year later. That said, the only revenue I generate from all my work on the framework flows from book sales, so everything hinges on finding a successful model for either an ebook or a paper book.

 

about the "e book" side of things.

I have 2 pocket pc's that I have used to read stuff while traveling etc...

the current book as ebook is a pdf file.

it did not go over well to the pocket pc - text formating and line breaks were kinda - ugly -

i would look at using one of the e-reader formats or the msft word to ebook tools or get the publishers to update the pdf converter to add the tags that adbobe looks for in converting to the pdf format used on a ppc acrobat reader.

just my $0.2 on this as a buyer of ebook stuff - and yes even w/o drm i'd buy again if I could read it on my ppc!

MBonner replied on Tuesday, September 12, 2006

i would look at using one of the e-reader formats or the msft word to ebook tools or get the publishers to update the pdf converter to add the tags that adbobe looks for in converting to the pdf format used on a ppc acrobat reader.

>>>>>>>>>>>>>>>>>

I'd vote for the mobi-pocket format so I can read it on my Palm PDA.

skagen00 replied on Monday, September 11, 2006

Here's my two cents on the e-book vs. release of a new physical 3.0 book...

I can pay $10/$20 for an e-book detailing changes from 2.0 to 2.1, essentially having a 2.0 book that is "pretty close" to what the live framework is but with a supplementary read of the e-book necessary to really have the full picture.

Or, I can pay $50 for a book that has the entirety of the content of the CSLA framework up to date (at that point :)) in one instructional flow. A relatively fast read for someone like me who has read the CSLA 1.x book and skimmed the 2.x book but more importantly a comprehensive read for other programmers at my location who may be coming to CSLA anew. When I need to reference back myself, I don't have two sources (the book and e-book) to reconcile, I only have one.

I'm sure a lot of people here would prefer the e-book, but I'd have to say I'd gladly shelve out $50 for another book for the "single-source" reference that an updated book would provide.

My two cents!

 

RockfordLhotka replied on Monday, September 11, 2006

If .NET 3.0 were more "intrusive" I would go the physical book route with no question. But .NET 3.0 is a pure add-on to .NET 2.0, not changing any existing .NET 2.0 functionality.
 
As such, my existing 2005 books would be almost entirely unchanged by going to .NET 3.0 - with the exceptions of making all use of the BinaryFormatter switchable with the NDCS, and the new list changed event for WPF.
 
To put it another way - the changes in CSLA .NET 2.1 due to CSLA enhancements are more intrusive to the existing book than the changes I anticipate making for .NET 3.0.
 
And that's why I'm hoping to avoid doing another paper book in this case.
 
When we get to .NET 3.5, the changes are more intrusive again - some of the new language features on which LINQ is built are quite compelling, and they may result in some deeper changes within the implementation of CSLA itself. If that turns out to be true, I may end up updating the books for VS 2007 (or whatever they call it) at that time.
 
Rocky

Brian Criswell replied on Monday, September 11, 2006

For the version 2.1 ebook, are you planning to release just a chapter or integrate it into the 2.0 book?  I know that I would really like (and would immediately purchase) an ebook that integrated all of the 2.1 changes and all of the errata, but I will certainly purchase the ebook regardless to support the work and experience that you have poured into CSLA.

RockfordLhotka replied on Monday, September 11, 2006

Well here you get into copyright issues.
 
Apress owns publication rights to the existing books, and rightly so. But as a result, I can't just take that exact content as-is and republish it - even with the alterations for version 2.1.
 
So what I am doing is writing completely standalone content covering version 2.1. While this content is of less value without the pre-existing book, it is a seperate work and thus avoids copyright issues.
 
Rocky

For the version 2.1 ebook, are you planning to release just a chapter or integrate it into the 2.0 book?  I know that I would really like (and would immediately purchase) an ebook that integrated all of the 2.1 changes and all of the errata, but I will certainly purchase the ebook regardless to support the work and experience that you have poured into CSLA.

Brian Criswell replied on Monday, September 11, 2006

RockfordLhotka:
Well here you get into copyright issues.
 
Apress owns publication rights to the existing books, and rightly so. But as a result, I can't just take that exact content as-is and republish it - even with the alterations for version 2.1.
 
So what I am doing is writing completely standalone content covering version 2.1. While this content is of less value without the pre-existing book, it is a seperate work and thus avoids copyright issues.
 
Rocky

For the version 2.1 ebook, are you planning to release just a chapter or integrate it into the 2.0 book?  I know that I would really like (and would immediately purchase) an ebook that integrated all of the 2.1 changes and all of the errata, but I will certainly purchase the ebook regardless to support the work and experience that you have poured into CSLA.

Fair enough.  I forgot that you were going to do the addendum apart from Apress.

Copyright (c) Marimer LLC