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.
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 !
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.
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.
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.
As someone who gets called upon alot for data access issues, but admits to knowing close to nothing about working with Oracle databases, I am glad to see this new article on accessing complex Oracle data types from ADO.NET 1.1
Who says technical superstars don't have any other interest or talents ?!
This is a great piece of work - not just because it is set to the music of my all-time favorite song...
It is worth pointing out that Pat went to great lengths and expense to be sure that this performance was 100% legit in terms of copyrights and royalties.
Also, on Pat's home page you can find another fun performance from TechEd Amsterdam (with a bit more technical content) that he did together with Clemens Vasters and Rafal Lukawiecki. Check it out.
Scoble has reminded me of what my friend Dan Appleman is up to these days. Dan has alot of cool stuff to credit (besides beign a really nice guy), but is probably best known to VB developers as the author of the “bible” for accessing the Win32 API from VB and for the development tools and controls developed by his company Desaware. When we last had a chance to chat, he was preparing to hit the road to promote his new book on computer security Always Use Protection: A Teen's Guide to Safe Computing. For an educational, although perhaps humbling experience, check out his quick security quiz.
Another good source of information on protecting your computer is www.microsoft.com/protect