August 2004 - Posts
The VB Community
area of the MSDN web site is undergoing some major changes. Although this area has been around for a while and contained good content, it now has a new owner - Robert Green
. Robert is a Program Manager on the VB Team (and an all-round great guy :-) ) and is responsible for VB community. Expect to see this area evolve and grow over the coming months.
A while back, an MS Product Manager asked me for my thoughts on the current state of VB.NET migrations and adoption. I thought I would share my thoughts here and see if others think my thoughts are brilliantly insightfull, stupid, or just plain useless...Please let me know what you think !
First – my thoughts on VB adoption. I think that the late (or not-early) adopters are finally getting the message that they had better start making the move, or at least start investigating and giving it some serious thought. When I say "make the move" I don't mean that they need/should migrate all of their existing application. I mean that their development strategy needs to start moving to .NET, and their developers need to start gaining .NET knowledge and experience. It does mean that they should be spending time analyzing their existing apps and deciding what (and how) should be migrated to .NET, what should just be extended by .NET, and what should just be left alone (and/or extended in VB6).
I am also starting to see more ISVs showing more interest in .NET. I always knew this would be a longer/harder sell, since their development cycle is typically much longer than an in-house application, and I think that they are more reluctant to have a "mixed" product, due to the support headaches it could cause. They too are starting to realize that they need to start moving to .NET – although some of them are asking whether they should just wait a little longer until Longhorn. I just tell them that Longhorn won't be a "little" wait … J
I just noticed that my blog is listed on the MSDN Data Access and Storage Developer Center.
If you're not familiar with it, you should definitely check out this very usefull resource, run by Christa Carpentiere
So yesterday I am sitting in the lobby of a building on the Microsoft campus, since I arrived a few minutes early for a meeting. Out of the corner of my eye, I notice what I think is a familiar figure entering the building. Yes, it was Bill Gates - reminding me that this building also has the executive offices. But I've seen Bill up close before, so this is not what this posting is about.
What had me staring in disbelief was what I saw 2 minutes later. Steve Balmer walking across the lobby, smiling and joking with whom seemed to be a good buddy of his - Scott McNealy !!
On Monday night I was the guest speaker at the Seattle .NET Developers VB User Group meeting. This is a group run by Robert Green of the VB team and meets monthly on the Microsoft campus. Robert had asked me to come and speak next time I was in town - so there I was !
My talk was on ADO.NET, along the lines of "something old, something new". The first part was discussions and demos of some more advanced "real-world" techniques with ADO.NET 1.1. Over the past few years I have developed a large set of such techniques and have given many different conference presentations where I choose 3-4 of these techniques to present and demo. These talks have always been well-received, since they are very pragmatic and I spend more time in demos than on Powerpoint slides.
The second part of my presentation was on ADO.NET 2.0. Although I have spoken about this in the past, this was the first time I really developed and showed a set of demos to show off some of the improvements and new programming techniques. This was challenging and fun - especially when the day before the presentation my VPC got trashed and I had to reinstall Whidbey and Yukon (alot more challenging, alot less fun).
The meeting/presentation was a great success. I spoke for 2 hours, all of my demos worked, and I got good feedback and questions. OK, Bill Vaughn tried to hassle me a bit (as he has done before) - but I expected that :-) It was also nice to see some of the VB PMs in the audience.
As many of you probably know, one of my main areas of interest and expertise is migrating both applications and developers from VB6 to VB.NET. It is a topic that I have spent alot of time researching, thinking, and presenting.
Back in November / December, I did a 10-stop VB Upgrade speaking tour for Microsoft throughout Europe, presenting a 1-day (and 1-man) seminar that I prepared. For that tour, we produced a CD that contained the presentation PPTs, demos, and recordings of the presentations. Thanks to Yosi Taguri of Microsoft Israel, the contents of that CD is available online here.
Another neat project I did for Microsoft was to develop a Hands-On Lab (HOL) for Upgrading a VB6 application to VB.NET, to be made available to all of the attendees of TechEd US and TechEd Europe.
I thought I would share with you some of the significant changes that I have encountered in the course of some work that I am currently doing with ADO.NET 2.0.
Goings (as in going, going, gone !)
Already in Beta 1, the following features have been dropped:
(1) Server-side cursors & Paging
I for one, am disappointed to see Server-side cursors (i.e. SQLResultSet) & Paging being dropped. These were both features that were highlighted in the early presentations on ADO.NET (eg at PDC).
Server-side cursors is a feature that developers moving to .NET immediately notice is missing. Part of the problem, and one of the main reasons it has been dropped, is that the current model is far too easy to be misused. The other main reason is that it is hard to scale.
Paging (i.e. Command.ExecutePageReader) was built on top of the server-side cursor technology, so it too is gone. This is a feature that developers (especially web developers) are always asking for. I really thought that this time MS had a very good implementation. It wasn't perfect, but definitely very reasonable and usable.
Hopefully we'll see their return in Orcas (Longhorn version of Visual Studio).
(2) Data Components in the Toolbox
If you are used to building your data access code by starting with the Data Components on the Data Tab of the Toolbox, you may be a little distressed and concerned when you open VS Beta 1 and can't find them there. This of course, is "By Design" J Microsoft clearly wants to nudge us into taking advantage of the new typed DataTables and TableAdapters. If you really, really want to insist on using the old untyped controls and components, you can manually add them back to the toolbox. I strongly suggest that you don't…By leveraging the new partial class technology, the new typed DataSets, DataTables, and TableAdapters are much easier to use and to extend.
You can get more details from Steve Lasker's excellent post.
In the next Community Technology Preview / Beta 2, the following features will be dropped:
(3) Transaction property of TableAdapter. For details see Steve's other post.
If you create a DataTable named XXX and thenlook at the code that is generated for this class, you'll notice an odd (at least to me) implementation fact. Rather than having the XXXTableAdapter class simply implement the defined methods (various Get, Fill, etc.) , an interface named IXXXTableAdapter is defined and then implemented by the XXXTableAdapter class. This interface is not used anywhere else and I really couldn't see any added-value to this extra step. Apparently Microsoft agrees and this approach and interface will be dropped.
Of course, not only are features going away, but lots of features and enhancements are coming along and being added. Many of them are still under wraps, but let's talk about this one.
(5) Name changes for the DataConnector and the DataNavigator
Coming in the post-Beta1 builds you will see the names of the DataConnector and the DataNavigator classes changed to BindingSource and BindingNavigator respectively. This won't be adding any functionality per se, but it will make it much clearer and easier to understand the role of these classes.
When I first started exploring the DataConnector, it was not totally obvious what its purpose was. I was able to pretty much figure it out, but I still thought that maybe I was missing something. I also felt that it would be a bit difficult to explain to others what exactly it was/did. With the upcoming name change it becomes pretty obvious what the DataConnector/BindingSource role is – to be the "binding manger" for a data source. It will also be far easier to use than the 1.1 binding context.
I'll be spending the last 2 weeks of August out in Redmond and I am starting it off by doing the main presentation at the Seattle .NET Developers Association VB meeting on August 23 (at the Microsoft campus). Here are the details:
ADO.NET: Lessons learned with 1.1 and coming attractions in 2.0
In the first hour of this session, we will take an in-depth look and demo many practical and advanced features and programming techniques in ADO.NET. For example: multi-table operations, pessimistic locking techniques, optimistic locking, concurrency conflict detection and resolution, and controlling the XML format of the DataSet. In the next half-hour of this session we will discuss and demo some of the new features of ADO.NET 2.0.
If you are around, please stop by and say Hi !
Two weeks ago I posted a reference to Don Box's thoughts on when to use ASMX, ES or Remoting. Although Don's post included references to several other people, including Rocky Lhotka, Rocky has just come back with another, more extensive posting, outlining his thoughts on the subject. A good read.
Rocky is a real smart and nice guy, who knows his stuff. I don't always agree with him on some issues, but I always enjoy reading/discussing with him and I always learn something new or gain a new insight.
Addy Santo points out a very distrubing proposition by Luke Hutteman - that we should promote a chain letter / spam between blogs in order (ostensibly) to gain visibility for blogs. I agree with Addy, and the numerous commentors on his and Luke's blogs, that this is a bad idea. I do not need more noise and useless emails/postings in my inbox.
Blogs are great for sharing information and even for self-expression. But I see too many blogs out there whose goal is primariliy along the lines of self-aggrandizement ("Look at me, I'm great") and simply an effort to win some virtual popularity contest.
I think this is summed up very well by Jason's comment on Luke's blog:
"Wow, this is a horrible thing to do. It combines all the great features of chain letters and google spamming into one little package. If you want your blog to get noticed, try frequently writing content that lots of people care about."
More Posts Next page »