People and code: The two poles of .NET migration

原创 2002年03月27日 17:57:00

People and code: The two poles of .NET migration<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


By David Chappell


Moving to the .NET framework is a "when," not an "if," decision for most Windows development organizations. Two aspects of this migration deserve particular attention because they're likely to take the lion's share of the total effort and expense. The first is moving people: What will this transition look like? The second, which is no less important, is moving code. When does it make sense to adapt existing Windows applications to the .NET framework?


Let's start with people. There's no way around it: Every developer who will work on the .NET framework will require extensive retraining. And while there are an army of training companies out there that hope you will hire them for the task, none of them is cheap. Retraining your entire development staff isn't a small undertaking, and will not be inexpensive. The good news is that once your staff is up to speed in the new world, they should be significantly more productive. The .NET framework provides a much more consistent environment than the world of Windows DNA, and it also offers more services through the .NET framework class library. Yet more services implies more time to learn those services, so expect the bulk of the retraining effort to focus on this class library. Learning a new language is relatively easy, but learning a large new library will take some time.


Actually, learning a new language might not be all that easy. Today's Windows developers work mostly in C++ and Visual Basic, and Microsoft clearly intends these two groups to migrate to C# and VB.NET, respectively. These two new languages provide almost exactly the same set of features, so the primary factor in making the choice will likely be which syntax seems more natural. If you imagine a continuum of developer skills, ranging from the rankest beginner to the most highly technical savant, C++ programmers are all bunched up near the top. C++ is a hard language, so people who use it will have no trouble migrating to the similar but significantly simpler C#. Today's Visual Basic developers, however, are spread throughout that skill continuum. Those at the top will have no trouble learning VB.NET (in fact, they'll welcome its enhanced power). Those in the middle will largely make the switch, too, although you can expect some whining from them. But some of those at the bottom of the development skill ladder won't be able to make the switch—VB.NET will just be too hard for them. If you have a significant number of these people, prepare to hire new staff.


Moving people to the .NET framework is simple in one way: You know what you have to do. But our second problem, moving code, presents more options. Existing C++ applications will still compile with the version of C++ provided by Visual Studio.NET, so there's no immediate need to worry about migration. But existing VB6 applications can't be compiled using Visual Studio.NET; the changes to the language and the environment are too great. What should you do with this code?


One choice is to port current VB6 applications to the .NET framework. Yet I don't believe this is worthwhile for most existing code. What's the business case for doing it? Imagine requesting funding for moving a working VB6 application to the .NET framework with this (quite correct) argument: "I want to modify this app to work in the new world of .NET. When I'm done, it will have the same features as it does now, but it will run more slowly." The people who control your company's purse strings are unlikely to be moved by this kind of reasoning.


Some apps, of course, are worth porting. ASP applications will run faster on the .NET framework, not slower, and it's entirely possible to add new features, such as Web services, to an application as it is ported. But I think it will be difficult to construct a compelling business case for moving most existing VB6 applications to the .NET framework. Instead, new framework-based code can be attached to the application using the COM interoperability support the framework provides.


This means organizations will need to maintain both Visual Studio 6 and Visual Studio.NET environments for some time. Both can be installed at once on a single machine, but maintaining parallel worlds is not desirable. And while Microsoft promises to support Visual Studio 6 for a good while, it's not yet clear exactly how long this will be. Microsoft presents itself as an enterprise vendor, so this period should be measured in years, perhaps even decades. If the people in Redmond fail to understand this and drop support for Visual Studio 6 too soon, they will demonstrate that Microsoft is not the enterprise vendor it claims to be.


Moving people and perhaps some code to the .NET framework is essential, and the process is bound to be more expensive and painful than we'd like. Yet there isn't really much choice—moving to the Java environment would be even more difficult and expensive for Windows development organizations—and, in the end, the result should be worth it. As the arrival of .NET demonstrates, a willingness to learn new things is an essential attribute for anybody who wants to be successful in software.

David Chappell is principal at Chappell & Associates, an education and consulting firm focused on enterprise software technologies. He can be reached via E-mail at

HDU2056 Rectangles 【矩形面积交】

Rectangles Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...
  • u012846486
  • u012846486
  • 2015年01月19日 10:26
  • 1225

UVA 12034 Race (递推神马的)

Disky and Sooma, two of the biggest mega minds of Bangladesh went to a far country. They ate, coded ...
  • u013582254
  • u013582254
  • 2014年10月12日 01:28
  • 2170


目录 1、编号3 Longest Substring Without Repeating Characters 2、编号6 ZigZag Conversion 3、编号20 Valid Parent...
  • wangxiaojun911
  • wangxiaojun911
  • 2014年02月07日 08:09
  • 2823

[Azure] Windows Azure and ASP.NET MVC Migration (英文版)

  • 2013年07月29日 17:49
  • 8.14MB
  • 下载

giuseppe zanotti sneakers men bus and truck collision 19 people were injured two drivers were insis

,giuseppe zanotti sneakers men there has been no light. 5:40 yesterday evening, reporters at the sc...
  • u020175731
  • u020175731
  • 2014年09月13日 11:23
  • 9

An example code in .net of AWS EC2

using System; using System.Configuration; using System.Collections.Specialized; using System.IO; usi...
  • solaris_navi
  • solaris_navi
  • 2011年09月29日 20:59
  • 724

Wrox.Code Leader.Using People Tools and Processes to Build Successful Software.2008.pdf

  • 2009年06月02日 11:44
  • 1.59MB
  • 下载

The Secrets of Oracle Row Chaining and Migration   The Secrets of Oracle R...
  • loryliu
  • loryliu
  • 2015年12月08日 21:28
  • 270

Displaying a Sorted, Paged, and Filtered Grid of Data in ASP.NET MVC

A Multipart Series on Grids in ASP.NET MVC Displaying a grid of data is one of the most common ...
  • chengly0129
  • chengly0129
  • 2012年08月17日 17:00
  • 1267

A Comparison of and HTTPClient

A Comparison of and HTTPClient Since and HTTPClient...
  • fyfcauc
  • fyfcauc
  • 2015年01月22日 22:20
  • 278
您举报文章:People and code: The two poles of .NET migration