When it is crunch time: Migrating from Visual Basic 6 to Visual Basic .Net/2005
Abstract
As a Visual Basic 6.0 programmer, what is the roadmap forward for your applications? As Visual Basic 6.0 becomes ‘deprecated technology’ what will you do with your enterprise class applications written in Visual Basic 6.0. This article is the musings of a developer that has been looking at migrating existing enterprise-class Visual Basic 6.0 applications to Visual Basic 2005.
Introduction
If you have been a serious Visual Basic 6.0 programmer with very sizeable code investments in Visual Basic (we have 22 enterprise level applications), at least 18 of which are written with Microsoft Visual Basic, crunch time comes when you begin to think or when you decide to advance your applications to new versions. Crunch time comes when all of a sudden, your Visual Basic 6.0 projects don’t open properly anymore in the Visual Basic 6.0 IDE (especially when running on Windows Vista with Visual Studio 2005 installed). Crunch time comes most especially when it dawns on you that you are basically using ‘deprecated’ technology, that between Visual Studio 6.0 (which contained Visual Basic 6.0) and Visual Studio 2008 (the latest version of Microsoft’s Visual Studio development suite), they have been 4 (four) new versions of Visual Basic.
Crunch time is the realization that for your software business to live, you will have to do something about your existing Visual Basic 6.0 applications. Our purpose in writing this article is to share our experiences of what we found as we endeavored to start to upgrade our Visual Basic 6.0 applications, and to discuss some of the touch decisions and choices that will undoubtedly have to be made.
Appraising the current Visual Basic situation!
What made Visual Basic special was its power, elegance and simplicity! It largely retained the style and syntax of the Basic language as we knew it i.e. if you had been using GW Basic, QBasic, Microsoft Basic Professional Development System (we shall call of these ‘Microsoft’s Basic’), etc, you could look at Visual Basic code and read it and understand it. Changing over from those early flavors of Microsoft’s implementation of the Basic programming language to Visual Basic was thus not difficult. In fact, the skills you learnt from using those early implementations of Basic made it easy and possible to immediately start building Windows database applications on Microsoft Access 2 using then Access Basic as implemented on those versions of Microsoft Access even though you had to learn a few new keywords and perhaps had to deal with the situation that some language features you knew had been removed!
Further developments of the basic implementations of Microsoft ensured that the Basic language, as we knew it and get skills of Visual Basic programmers have to be further improved if the Microsoft Visual Basic
Now coming to Visual Basic 6, the most powerful and elegant release of these flavors (prior to the .NET flavors) of Microsoft’s Basic, the Microsoft Solutions Framework (MSF) emphasized a componentized systems design and development approach in which the meat of your application (data access code, data manipulation code and business rules) could all be built as COM (Component Object Model) components hosted on MTS/COM+. Your application front-end (Visual Basic Forms or ASP Web Pages) could then call these components to obtain any services required. The backend could be any database system that had an ODBC Driver or OLE DB provider. The front-end as already noted could of course be Visual Basic Forms (if you wanted your application to run as a Windows application) or ASP (if you wanted your application to run as a Web application).
Your data-aware classes could easily establish connections to the database and then create recordset objects in its Init event that could then be returned to a calling application by calling the GetDataMember method of such a class.
Even in terms of data access technology, if you did use DAO (Data Access Objects) and RDO (Remote Data Objects) in Visual Basic versions prior to version 6, the changeover was the use of ADO (ActiveX Data Objects) not very difficult, because both technologies had similar terminology and interface (for example, a DAO Recordset object is similar in concept to a Recordset object returned in ADO) and methods for processing the objects.
This then is a general and short summary of what Basic programmers using Microsoft’s implementation of that language have had to deal with until the arrival of Visual Basic .NET flavors of Basic.
What is all the Hullaballoo about?
Visual Basic programmers expected Microsoft to maintain the look and feel of Microsoft’s Basic that we had always known (especially in the language implementation). But behold! What did Microsoft choose to do?? They decided to fulfill the biblical prophecy recorded at Zephaniah 3:9 which states ‘For then I shall give the peoples a change to a pure language, in order for them to call upon the name of Jehovah, in order to serve him shoulder to shoulder’.
The attempt to fulfill this biblical prophecy resulted in Microsoft’s attempt to create the New Jerusalem (the .NET Framework) and of course as we now know it, the .NET Framework languages! The result has been a massive genetic modification of the Visual Basic language and an attempted premature extinction of ‘perceived dianosaurs’ (e.g. Visual FoxPro).
If you are a lover of ‘game meat’ and Visual Basic prior to .NET was a charming wild mountain goat (an Ibex on the Highlands of Ethiopia), and you were then given the ‘new ‘ Visual Basic (i.e. the .NET Flavors of Visual Basic), you would not want to eat the meat at all because the color of the animal has changed, its size has changed (it looks more bloated), its natural smell has changed (it smells not like Basic but like C/C++), even its meat tastes different (not the C/C++ like syntax for writing code)…the grand creator (Microsoft) says it is the same or better but we all (aspiring citizens of the New Jerusalem) can see it is not! You cannot even open a Visual Basic 6.0 project in Visual Basic 2005 and expect it to run…it is that bad!
Crunch Time!
The million dollar question then is ‘If you are a Visual Basic 6.0 Programmer with significant code investments, what would you do?’ Should you migrate to other implementations of the Basic Programming language such as REALbasic 2009 (from Real Software Inc) or Liberty Basic? Should you try Visual Basic 6 lookalikes that also offer multi-platform compatibility such as Jabaco 1.4 (by Manuel Siekmann) or should you just rewrite your code in Visual Basic 2005/.NET? What alternatives did we find and what choices will have to be made?
Jabaco: Jabaco is startlingly like Visual Basic 6.0. Even the startup forms, property windows, toolbox, project explorer are astonishingly like Visual Basic. What is more, even the code syntax you write is pure VB 6-like! We made a copy of our Fixed Assets Software system and then opened it in Jabaco (we are using Windows Vista Home Basic) and the conversion process was seamless. To run the code, we made some minor changes (e.g. Converting Currency to Double) or removing Windows Controls such as the toolbar control and that was that! The structure of the Jabaco code, its keywords, its syntax, the functions and procedures are Visual Basic 6 alike. Even the way you make your Exe’s after writing your program was simple and straight forward. If you are a Visual Basic 6.0 programmer, and you are looking for a secure non-Microsoft way forward for your projects, you will feel instantly at home with Jabaco 1.4 from the very minute you start the application…you can start writing tons of code immediately! When we tried to run our program (both on Windows XP SP2 and Windows Vista Home), we were pleased to see that it could run without hitches! Jabaco would compile your application to Java byte code. In addition, Jabaco is free! The big cat is certainly prowling – power, elegance, speed, simplicity, multi-platform capability by compiling to Java plus a pure preservation of the spirit of Visual Basic…this is Jabaco!
Liberty Basic: Liberty Basic appear to offer a nice RAD look and feel! The method for building your application is reverse to what you normally do with Visual Basic 6 where you would draw your form’s on a Canvas! Liberty Basic is indeed a free-spirit, a true implementation of the Basic Programming Language! We did not test drive this tool! You would definitely have to look at this one for yourself…we have not evaluated this tool closely!
True Basic: True Basic is another viable alternative to Visual Basic! This implementation of the Basic programming language is touted as the true descendant of the original Dartmouth Basic and is available in Silver, Bronze and Gold editions. Again, we could not test drive this tool but product descriptions sure make it look like a powerful alternative to Visual Basic!
REALbasic 2009 R3: What about REALBasic 2009! We had known of this tool for sometime, having come across a white paper that we downloaded on the Internet! We downloaded a 30-day evaluation of the REALbasic 2009 R3 from the product website (www.realsoftware.com)! As with Jabaco, installation was a breeze! If we can consider Visual Basic 6.0 to have been a charming wild mountain goat on the highlands of Ethiopia, you may consider REALbasic as beautiful and dainty wild goat variety such as those found on the forests of Cyprus -? a beautiful and tasty variety indeed! A powerful viable alternative to Visual Basic .NET/2005! A Visual Basic 6.0 programmer could look at REALbasic code and readily enough read it understandably despite some minor differences in code structure! Both languages (Visual Basic 6 and REALbasic 2009) share many keywords and reserved words in common even though! Even though the IDE is different, it is readily enough understandable! Unlike Jabaco, REALbasic will not allow automatic conversion of Visual Basic 6.0 projects (or perhaps we did not look deeply enough) but rewriting your Visual Basic 6.0 code in REALbasic should definitely not be as difficult as doing a rewrite in Microsoft’s own Visual Basic 2005! Another attraction to REALbasic was that it ships with its own Client/Server SQL Database so that you can be up, building database applications quickly! This would mean that if you are using REALbasic, you would be obtaining a complete applications development studio (everything you need in the package)! And then to boot, REALbasic is multi-platform capable, allowing you to compile directly to Machine code (for windows, MAC OS and several other OS’s) thus achieving significant performance gains similar to those of C/C++ flavors that also compile to machine code! We think that the differences between REALbasic and Visual Basic can be accounted for in the motivation behind the creation of the language…the fact that the creators of REALbasic are in this for real…they are offering a genuine, powerful, viable, non-Microsoft alternative to Visual Basic.
Microsoft Visual Basic 2005: And what about Microsoft’s Visual Basic 2005 (this is what we have installed to enable us start conversion of our programs)? We cannot pretend that we are happy with the fact that we are required to re-write major league enterprise applications almost bottom up! As very experienced Visual Basic developers, we had expected to get up and quickly using the new Visual Basic (but that was not to be)!
?Be that as it may, Microsoft’s pioneering efforts in programming language design and innovation cannot be just discounted! The new Visual Basic 2005 is not Visual Basic 6 but it does stand shoulder-to-shoulder with C# (Microsoft’s new toy), J# and Visual C++ in terms of syntax and programming constructs! The New Visual Basic 2005 also includes expanded project types and language capabilities! It also has enhanced language constructs and new data types that will easily put you at par with the C# or C++ programmer while providing tools to rapidly create Web applications and access the latest versions of Microsoft’s own SQL Server 2008 and Oracle 10g/11g.
If it is name recognition that you want (Microsoft is a known name world-wide and their marketing power is unmatched); if you want to be a developer building applications with tools from an ‘approved supplier’ then you will have to embrace the new Visual Basic 2005 (Visual Basic 2008 has already been released as at the time of writing)…learn to eat genetically modified meats with a slightly different taste and feel so that you do not starve to death!
I think it is worth mentioning if you must stick with Microsoft that C#, Microsoft’s new C-like language that Microsoft created specifically for .NET Framework programming can also be a powerful contender! We found that mastering C# was both exciting and fun, probably because I was aware that I was learning a completely new programming language and therefore had no preconceptions of what to expect! On the contrary, learning Visual Basic 2005 was not so much fun perhaps because I approached the language as a Visual Basic programming veteran! I expected the language and keywords to be familiar enough! I expected the program structure to be familiar! I expected programming constructs and abstractions to be familiar! If you are a Visual Basic 6.0 programmer hoping to mater Visual Basic 2005 quickly, be forewarned – simply disabuse your mind! Approach Visual Basic 2005 as if you knew nothing at all about Visual Basic, approach it as if you are learning a completely new language that you have never really used for large-scale commercial projects (like say C/C++)and you will master Visual Basic 2005 soon enough!
Conclusion
All the options I have examined will involve some amount of code re-write! They can be no avoiding that no matter how little and I guess that is the risk attendant to our trade is it not?? If you want to keep your VB6 code almost as pure as it is, Jabaco is it! Otherwise, REALbasic is the next best alternative! If you want to stick with Microsoft, you would have no choice but to go Visual Basic 2005 because alas! Microsoft’s massive marketing machine ensures that most companies requesting new software (especially for those of us in the bespoke) software market are all requesting their projects in Visual Studio .NET! Also, it is a reality that the next generation of programmers being trained are being trained in Microsoft’s Visual Studio .NET as exemplified by the new popularity of C#
And what about us? We are taking a serious look at Visual Basic 2005, learning to like and desire the new meat so to speak! But we plan to also be delivering cross-platform solutions in Jabaco! Our quest for a solution brought us in touch with great tools out there being built by little known companies…it is worth checking out!
Posted in: java training| Tags: Technology Programmer Microsoft Migrating time enterprise article visual studio crunchGiving Visual FoxPro a new lease life
Abstract
I read an article on the Internet about what can be done by both Microsoft Corporation and Visual FoxPro programmers to give Visual FoxPro a new lease of life! For example, that article suggested doing away with the Fox icon at the top of the Visual FoxPro application window, reengineering parts of the FoxPro application including doing away with the Windows 95 dialog boxes and so on. This article seeks to contribute to the debate, suggesting additional ideas that the author considers to be critical to not only reviving VFP but also in attracting new developers to VFP cause. The author believes that a certification program (now discontinued for the VFP track my Microsoft) along with a ‘Built with VFP Standard’ Logo are critical to putting VFP back on the map.
Introduction
It is no longer news that Microsoft has announced that they will be no VFP10! Microsoft has since announced that aside from support through 2014, they will be no active marketing of VFP and Microsoft’s actions speak louder than words! In the interim, many new products and white papers have surfaced, advising VFP programmers on how to make the transition to the .NET Framework as well as products that promise to let you code your application in VFP while compiling to ‘IL’ – the primary executable language that enables .NET programs run.
Many Visual FoxPro Programmers have asked themselves what this means and what this will entail! I believe that events have already answered this question! Even before Microsoft announced their intention to stop making VFP, eligible members of the VFP community had already started building enhancements to VFP with the primary goal of making VFP competitive with other contemporary programming languages. These efforts crystallized themselves as VFPx and VFPy on Codeplex, eventually forcing Microsoft to publish their own efforts (Sedna) also on CodePlex!
Therefore it was with great interest that I read?the many opinions?and?ideas?that VFP Developers have on how to improve VFP. While I will not dispute these ideas, I just want to add to them!
I believe that Microsoft’s strategy to ‘kill’ VFP is simple – if VFP Programmers are give an ultimatum to change to .NET, and marketing, support and further development/enhancement of the VFP product line is discontinued then VFP programmers will have no choice but to change over to VB or C# (i.e the .NET Framework). But as programmers, we must ask critical questions! What are the critical performance benefits of non-.NET Framework applications as opposed to .NET Framework applications? Since the .NET Framework? was touted as a platform independent solution, perhaps comparable to Sun Java’s Byte code, on what additional OS’s or platforms apart from Window is the .NET Framework running since inception?
These questions enable VFP Programmers to realize that there is nothing there are missing on the .NET Framework! (Don’t get me wrong! The .NET Framework is a great effort by Microsoft with some truly great features and promises)! This means that since Microsoft has agreed to at least open-source the VFP Environment, it will be up to the VFP community to keep the flame alive, through advertisements. What form might such advertisements take?
What can be done?
One form would be through the publication of new case studies for Visual FoxPro based projects. The Web provides a ready medium for this purpose. Another way will be to produce a new certification exam for Visual FoxPro programmers to replace the Certification exams now dropped my Microsoft Corporation for the VFP product line. To understand why this is important, consider for example, that if you were delivering an Oracle product, it would do you good to be an OCP or ODBA. Similarly, Microsoft retains certification for its other products apart from VFP. The VFP community could therefore setup new certification exams (considering also that in the developing world, this may be the only qualification available to VFP Programmers who are non-degree holders) that VFP Programmers could take. The aim of the certification exam would be to ascertain that a programmer is qualified to undertake and deliver solutions built primary with VFP as the primary development language.
Such certification exams could be structured to deliver credits earned in three levels viz: Certified Visual FoxPro Professional (CVFP), Certified Visual FoxPro Master (CVPM) and Certified Visual FoxPro Enterprise Architect (CVFPA).
The aim of each certification could be of course? decided at a later stage, but for example, the Certified Visual FoxPro Professional examination could aim to ensure that a Visual FoxPro programmer can write workable VFP based applications and desktop applications using VFP. The? CVPM certification could be used to certify that a VFP Programmer could build full-featured pure fox two-tier client/server applications using VFP as the primary application development environment. The CVFPA certification would test a programmers knowledge on how to use to VFP to build top-notch n-tier distributed web-based or windows based enterprise applications.
These certifications would be designed to give VFP Programmers something to hold onto and also publicized attract new programmers into the VFP fold. The trend we have observed in our part of the world is the importance placed on professional certifications of this type as testimony that the professional does indeed possess the requisite professional skills to deliver a solution based on the stated/proposed technology. We have also observed that most people look upon the availability of certification exams as testimony that the technology is current. Why should this be different in the case of Visual FoxPro? While MSCD on the Visual FoxPro track existed, Microsoft ensured that those for Visual Basic and Visual C++ overshadowed these! Now VFP Programmers can setup something on their own and ensure that it is properly marketed to developers!
Of course setting up certification exams would have to come with the full works such as setting up curricular, courseware and approved training materials that students could use to train. Such materials could also form the nucleus of another marketing ploy….marketing VFP as the principal tool to teach Database concepts at educational institutions and making sure people know that VFP educational licenses are available and very affordable.
Yet again another certification and therefore marketing ploy would be to certify VFP product sites as ‘Powered By VFP’ or ‘VFP Enterprise Approved’ or whatever you would want to call it. This would allow organizations that buy solutions built with VFP to be assured that they have received an enterprise solution engineered to the highest standards much as Lucent used to Certify networks sites for their ‘Systimax’ Structured Cabling standard in those days. Of course anyone who has been around would easily know that other cabling standards such as ‘Belkin Structured Cabling’ existed but who was setting the pace and standards and why?
Who would administer such a program?
Efforts such as VFPx and VFPy have already demonstrated the power that a community will can bring to bear. The same spirit can be brought to bear on the ideas contained herein. Perhaps, I will make bold to say that the VFPx Team can be used as a ‘rallying point’ to nominate imminent members of the VFP community with a sound knowledge of the VFP Product technology line to administer a VFP University Product foundation that could then oversee or implement the ideas contained herein, perhaps of course taking care to structure the organization in such a way that it does not violate Microsoft’s trademarks or copyrights but giving a new lease of life to existing VFP programmers while attracting new talent to take-up building solutions with VFP!
Since some of this programmers required to administer this idea would be working professionals working to make a living, the whose thing could be structured still around the idea of VFPx, with a core of professionals coordinating everything, making sure that certifications are properly gazette with both Microsoft and other professional bodies, while allowing VFP community members to contribute their ideas and thoughts on the curricular and other aspects of the organization to ensure that all certifications actually reflect trainings on current industry standard practice.
The VFP University Product Foundation team could:
- Draw up curricular for VFP Certification examinations and promote such certification examinations world-wide through usual VFP Community site and other amenable technology sites
- Publish Training materials that could be used for such trainings and certification study programs
- Ensure that certifications issued are properly accreddited with both Microsoft Corporation and other industry standard bodies (whoever is taking this should know that it is worthwhile).
- Appoint approved training centers world-wide that could offer such trainings
- Provide a means for such trainings to be taken online (much as with other CBT offerings online)
- Certify and rate project sites implemented with Visual FoxPro to ensure that these meet industry standard practice and upon certification, issue an ‘Powered by VFP’ Logo/seal as a mark of quality
- Set and Publish standards for VFP Programmers
- Provide a forum for publication of new case-studies for VFP Programmers and ensure that these are also published in other technology forums (not just the usual VFP ones).
- Promote VFP to educational institutions and foundation to use as a primary tool in demonstrating Database concepts and teaching programming concepts
- etc
The VFP University Foundation would just be just like Oracle University or Microsoft University! Providing critical lifeline of continuing education on the VFP product line; doing what Microsoft is not now doing for VFP, just as Microsoft University does for other Microsoft products and Oracle does for the Oracle product portfolio!
It takes Money! Where will the Money Come from?
Definitely, managing an initiative of this kind need money and financial resources to setup and create Web sites publish educational material, place ads, printing and mailing certificates, travel, etc., but this is not necessarily an obstacle! If programmers are paid a fee to complete the exam and are required to secure a new examination may be taken every two to three years as an integrated new features into the product VFP through voluntary efforts of the community are funds available. It would also certify sites, speaking at community events and son at a nominal fee that runs the resources to bring in not only the foundation but also a sign of compensation for the core of people who coordinate the activities of the university would have happened Foundation . A seed fund would definitely have to be raised through voluntary contributions to the initial spark for the entire effort.
What it all boils down to!
All of the ideas itemized above will not of course obviate the need for improvements and modernization of the VFP product nor do we as a community need to take Microsoft’s place to advertize a product that it makes. This means that as long as the product remains largely close-sourced, many of the things will depend not on the community but on Microsoft! For example, taking off those Windows 95 dialogs and replacing them with new dialogs and so on. However, because we are the ones that use this product and some of us have too huge an investment in this product to start re-writing in another language, we have to take some action to ensure that the VFP product line is not just casually swept under the carpet like that…we do not have to accept a faith accompli!
?This means that the campaign to get Microsoft to honor its ‘Corporate-community’ responsibility to the many VFP programmers who make a living by writing software with VFP, to open-source all of VFP (not just its environment) must be intensified.? Now is as good a time as any for the VFP community to take a definite stance on their beloved venerable development tool of choice!
VFP has a reputation of having a vibrant active, dedicated and loyal user community; something that is the envy of most other products, including Microsoft’s Visual Basic or C#! Now is the time for this community to show its true mettle, taking the VFP Bull by the horns and doing what must be done to keep the product alive! It will require will on our part as a community and we need not be the underdog always! ?‘Yes we can’!
Posted in: java training| Tags: NET Microsoft Application article visual life foxpro vfp lease authorVSTS 2010, Enhanced User Experience
Microsoft Visual Studio 2010 delivers a modern, enhanced user experience that makes understanding the current context more natural.
* Clear UI Organization
* Reduced clutter and complexity
* Improved editor
* Better support for floating documents and windows
* Enhanced document targeting
* Focused animations for action feedback
Parallel Programming
Parallel programming is simplified, so both native- and managed-code developers can productively build innovative applications.
* IDE support for parallel programming
* Native C++ libraries that use lambda functions and align well with STL
* Parallel Extensions to the .NET Framework offers support for imperative data and task parallelism, declarative data parallelism, and more
* Resource management of the multicore hardware and task scheduling enabled by Concurrency Runtime
* Parallel debugging windows and profiling views
Democratizing Application Lifecycle Management
Democratizing Application Lifecycle Management
Visual Studio Team System 2010 delivers new capabilities for everyone on a project, including architects, developers, project managers and testers.
* Discover existing code assets with the new Architecture Explorer
* Design and share multiple diagram types, including use case, activity and sequence diagrams
* Tooling for better documentation of test scenarios and more thorough collection of test data
* Run tests impacted by a code change with the new Test Impact View
* Gated check-in, branch visualization and build workflow allow for enhanced version control
Inspiring Developer Delight
Visual Studio has made application development more productive, efficient and flexible for both developers and companies. Visual Studio 2010 continues this legacy.
* Contextual support helps developers better understand existing code – and write new code more efficiently
* First class C++ development experience that helps developers navigate and understand complex C++ source bases
* Build new Windows® 7 applications or upgrade existing applications
* Enable Office tools to make your solutions more flexible and productive for specific needs
Web Development
Web Development
With Visual Studio 2010, we're continuing our investment in great Web development tools.
* A high-performance and standards-compliant JavaScript IntelliSense® engine
* "One Click Deployment" that quickly publishes files and configuration settings from development machines to the final deployed site
* Full support for Silverlight™ for cutting-edge, rich Internet applications
Cloud Development
With Windows Azure™ Tools for Visual Studio, it's easy for developers to build, debug and deploy services and applications for Microsoft's new cloud platform.
* C# and VB Project Templates for building Cloud Services
* Tools to change the Service Role configuration
* Integrated local development via Development Fabric and Development Storage services
* Debugging Cloud Service Roles running in the Development Fabric
* Building and packaging of Cloud Service Packages
* Browsing to the Azure Services Developer Portal
More Databases
More Databases
With the Visual Studio partner ecosystem, developers will now be able to work with IBM DB2 and Oracle databases in addition to Microsoft SQL Server™ databases.
IBM has committed to develop, sell and support a Database Schema Provider (DSP) to let developers working with DB2 on the Windows, Linux or Unix platforms do offline design, development, testing and change management using Visual Studio Team System 2010 Development Edition.
Quest Software have made a similar commitment develop, sell and support a DSP which will enable Oracle Developers to work with their databases just as easily.
Posted in: C# and .NET| Tags: Programming Microsoft VSTS 2010 Enhance User Experience Cloud experience user visual enhanced vsts context studio modern