Computer Science Essays – VB Net
Microsoft VB.NET is part of the .NETframework. Discuss the impact of VB.NET on the Visual Basic programmer.
Abstract
The impact of the introduction of the .NET framework withspecific reference to the effect on the Visual Basic programmer will beconsidered. A brief overview of the development of Visual Basic and the .NETframework will be given and a comparison of the two will be made withparticular focus on object orientation. Changes to web application developmentand database connectivity will be explored. Issues surrounding the portabilityof legacy Visual Basic code will be examined. Conclusions will be drawn onregarding changes to the role of the Visual Basic programmer.
Visual Basic evolved from the Beginner’s All-PurposeSymbolic Instruction Code (BASIC) language created by John Kemeny and ThomasKurtz at Dartmouth College. BASIC began as compiled language and was used for asignificant amount of application development. A BASIC interpreter wasdeveloped by Paul Allen and Bill Gates of the Microsoft Corporation for theAltair. This was released in 1975 and began Microsoft’s long relationship withBASIC culminating in the release of Professional Development System BASIC.(Mack, G. 2004)
In 1989 Bill Gates predicted, Futureversions of BASIC will increasingly provide support for this kind ofprogramming. The programs will look different from the BASIC we’re all used to.A visual BASIC program will be a mixture of code, programmer-written objects,and visually specified objects.” (Jacobson, M) In 1987 Alan Worthcreated Ruby, a graphical programming environment that was combined with PDSBASIC to create Visual Basic. Visual Basic 1.0 was released in 1991 and wentthrough six incarnations leading to Visual Basic 6.0 in 1998. This marked thestart of a phase change in Microsoft’s programming architecture and six yearslater Visual Basic 7 was released as part of the .NET framework (Mack G, 2004,AddressOf, 2003).
The purpose of the history listed above is to give contextto the installed base of Visual Basic code. Visual Basic has been extant for 14years and has remained unchanged for the last 6 of these.
John Kemeny’s vision was to create a language of suchsimplicity that every computer user could write code. While this vision is yetto be realized Visual Basic 6.0 has the best claim on being its inheritor. Dueto its ease of use VB 6.0 has been used to create a vast installed base ofcode. This presents a number of issues to both the VB programmer and to theuser/owner of the system.
VB 6.0
To address an issue like the impact of VB.NET on the VB 6.0programmer it is necessary to consider what purpose VB 6.0 serves. VB 6.0builds applications for the Windows environment. It is a fully-fledgedprogramming language with support for the standard control structures, datastorage and file I/O. VB 6.0 exhibits a degree of interoperability throughMicrosoft’s Component Object Model (COM) specification. VB 6.0 is object awareand can with careful programming be shoehorned into behaving as an objectorientated programming language (Deitel, H 1999).
VB 6.0 is an appropriate language choice to support aproject team engaged in rapid prototyping or in the Windows environment. Theprefabricated components and drag and drop design tools allow GUI constructionin short time frames. VB 6.0 would also be an appropriate tool to supportprojects based Rapid Application Development paradigm for similar reasons. Inthe context of a RAD project other tools will either be integrated with VB 6.0or supplant it as some point in the project cycle.
VB 6.0 has strong support for building web application andweb front-ends to server applications using sockets and TCP/UDP and HTTP. VBScript is supported in HTML. VB 6.0 would be an appropriate tool for e-commerceprojects.
VB 6.0 may be an appropriate choice for SMEs attempting tocode a project in house given the simplicity of the language, the abundance oftutorial information available and the speed of development. SMEs that adoptthis approach may consider that having made the initial investment in VB 6.0technology and training continuing to support VB 6.0 makes good business senseparticularly if initial projects are successful. This attitude may continue,and involve VB 6.0 in project were it is not the most appropriate technologicalchoice.
VB 6.0 excites a range of opinion among its users and thewider programming community. Supporters of VB 6.0 can reach evangelical fervourin its defence, to the extent that Microsoft’s decision to cease supporting VB6.0 resulted in a petition that has garnered close to six thousand signaturessince 8th March 05 including 243 Most Valued Professionals (MVPs)(Whitelist, 2005). Among such gurus VB is generally praised for its simplicityand is credited with encouraging non-programmers to become programmers. This isvery much in line with John Kemeny’s original vision.
.NET
.NET is heavily influenced by the ideas of portabilitygarnered from the Java project of Sun Microsystems. A Java program compiles toan intermediate bytecode that is then interpreted by the Java Virtual Machine(JVM) (Horstmann, C. 2001). .NET adopts a similar strategy of compilation ofcode to an intermediate language – Microsoft Intermediate Language (MSIL). TheCommon Language Runtime (CLR) then compiles MSIL to native code. Where .NETbuilds upon the Java project is by including multiple front-end programminglanguages and giving them all the capability to build MSIL.
With the .NET framework Microsoft has embraced ObjectOrientated philosophy. IL is fully OO compliant and fully supportsencapsulation, inheritance and polymorphism (MSDN 2005a).
VB.NET
Of the various front-end languages of the .NET frameworkVB.NET has undergone the most radical evolution. To take advantage of theinteroperability offered by the CLR (i.e. that code written in one language canfreely interact with code from another language) VB.NET has had to become fullyobject orientated. Comparing this with the previous method of achievinginteroperability, (i.e. COM, DCOM and ActiveX) a platform specific binarystandard, Microsoft considers the advantages of complete interoperabilitysufficient to warrant the wholesale change of the VB paradigm to OO. (Deitel, h1003)
VB.NET introduces exception handling to the VB 6.0programmer. The advantages offered by exception handling are in improving thereadability of code and in improving the efficiency of code. This is in linewith Microsoft’s view that the .NET framework is designed for scalability. Theinline error handling of VB 6.0, particularly in large scale applications willcreate code that is difficult to maintain.
The .NET framework Class Library makes concurrencyprimitives available to the .NET languages. VB.NET therefore allows thecreation of multithreaded applications. This capability represents asubstantial increase in the complexity of software that can be created by VB.NETover VB 6.0.
The VB 6.0 graphics library has been supplanted by GraphicsDevice Interface (GDI)+ API. Although VB 6.0 is unlikely to be the graphicstool of choice it is worth noting that VB 6.0 graphics will not upgrade toVB.NET graphics, and will need to be rewritten in using the GDI+ vectorgraphics tools.
These changes, while not syntactically or conceptuallyproblematic for previously object-oriented languages such as C++, have asignificant impact on VB. VB 6.0 can be described as object aware. It iscapable of creating classes and supports interfaces, but has no support fordirect method implementation inheritance. VB 6.0 is based on an event drivenprogramming model.
In the previous section some of the difference between VB6.0 and VB.NET have been discussed. The following section considers the changebetween the two languages in the context of web development and databaseconnectivity.
One of the most common uses of VB 6.0 was createapplications with database connectivity. Microsoft created a number ofconnection controls (e.g. DAO, RDO, ODBC and ADO). VB 6.0 supports each type ofconnection and the choice of connection is largely based on the supportprovided for it by the database. VB.NET includes a range of support for theseconnection types, with the exclusion of DAO and RDO data binding capability.VB.NET also includes support for ADO.NET. The changes offered by ADO.NET aresummarized in the following paragraph.
The most significant change in ADO.NET the separationbetween the physical data model and the logical model used by the control.ADO.NET thus provides a disconnected programming model allowing for greaterscalability, which is particularly valuable for providing web access. ADO.NETis a rebuild of the ADO control incorporating XML support from the ground upwhich again contributes to its usability over the web. XML can be used to movedata between computer, which contributes to the interoperability of ADO.NETwith non-Windows platform and also solves the problem in ADO 2.0 of having tomove binary (COM) files across firewalls. The following paragraph considers theimpact of these changes on the VB programmer. (McManus, P. 2003)
While ADO is separate from VB, it is included here due to itbeing a common use for VB programmers. The impact of ADO.NET as part of the.NET upgrade will be to allow VB programmers to continue building front-endapplications to databases with the added facility to support many moreconcurrent users and the added flexibility of XML. This provides an opportunityfor VB 6.0 programmers to continue their professional development with familiarsyntax and programming philosophy but at the same time begin to consider objectconcepts.
Another area that has seen significant change with theintroduction of the .NET framework is web programming. ASP.NET now supportsVB.NET code rather than the older model where ASP add-ons would be written inVB Script, a subset of VB 6.0. This gives the VB.NET programmer access to allof the features of the language when running server-side applications.
Additionally, VB.NET can be used to create Web services.These are class libraries that can be access via a Remote Procedure Call (RPC).The VB.NET programmer can therefore produce SOAP (Simple Object Access Protocol- an open XML compliant standard) compliant services or consume them via theInternet (WC3, 2004, Buyens, J. 2002).
VB 6.0 has been around for six years and VB since 1991. Itis arguably the world’s most popular programming language. There is therefore asubstantial volume of VB 6.0 code in use today. VB will continue withoutsupport for some years hence but Microsoft is encouraging users to upgrade toVB.NET. Part of Microsoft’s strategy to facilitate this upgrade is theprovision of a code conversion tool within the VB.NET IDE. Microsoft claimsthat 95% of code will upgrade without difficulty and for that which does notthey have provided a simple to use tagging system with dynamic help to allowthe programmer to refactor the code quickly. The issues raised by the code convertermay be trivial type conversion issues or non-trivial issues such as connectingto legacy COM files. The code converter assumes that the VB 6.0 programmer isready to work in the OO paradigm and leads to an oversimplified view ofconversio (Piquet, L. 2002).
While the automated code converter is a useful tool forquickly arriving at code that will build and run, it does not address issuessuch as the refactoring required to make the original source comply with theprinciples of object orientated design, the extensive retesting of working(possibly mission critical) code that would be required before substitutioncould occur or the extensive retraining program required for VB 6.0 programmerswithout wider language exposure to be confident in using VB.NET (MSDN, 2005b).
Conclusion
For the purposes of this discussion VB 6.0 programmers arecategorised into the following groups; formally trained (Computer Sciencegraduates), work based trained (other graduates/non graduates using VB 6.0 in aprofessional context).
For formally trained graduates in CS then the changes inVB.NET may not be significant. CS graduates are likely to be aware of ObjectOrientation and have had exposure to a variety of programming languages. Theseprogrammers are more likely to view VB as a tool and be using it for what it isbest suited for i.e. prototyping in RAD projects and building desktopfront-ends to other more powerful applications (e.g. databases).
For the second class of programmers with exposure only to VB6.0 there will one of two reactions. Some will see the enhancement to thefunctionality in VB.NET as an opportunity to develop new skills, to integratemore effectively into project teams and to take on more responsibility withinprojects. Others may see the added complexity and conceptual jump to OO asbarriers to productivity, progression and job security.
Microsoft has committed to the .NET framework and looks setto make object orientation the dominant programming paradigm for theforeseeable future.
The impact of VB.NET on the VB 6.0 programmer will besignificant in the medium to long term. RAD will continue to be a widely useddesign methodology and VB.NET programmers with an understanding of OO will havea valuable skill set in rapid prototyping. Microsoft is expecting the marketfor Web services to undergo significant growth. VB.NET will remain a strongcontender for developing web applications and database front ends on thedesktop.
The future of a VB 6.0 programmer is as any other programmerin their ability to adapt to new programming paradigm, learn new skills andfind new opportunities, so the impact of .NET will depend ultimately on whetherthe programmer sees opportunities or barriers.
References and Bibliography
AddressOf.com (2003) Timeline: BASIC to Visual Basic .NEThttp://addressof.com/blog/articles/VBTimeline.aspx(accessed 26/04/05)
Buyens, J. (2002), Web Database Development Step by Step,Microsoft Press, Redmond, Washington
Deitel, H.; Deitel, P. and Nieto, T., (1999), VisualBasic 6 How To Program, Prentice Hall, Upper Saddle River, New Jersey
Deitel, H.; Deitel, P. and Nieto, T., (2002) Visual Basic.NET How To Program, 2nd edition, Prentice Hall, Upper SaddleRiver, New Jersey
Horstmann, C. and Cornell, G. (2001) Core Java Volume 1 -Fundamentals, Sun Microsystems, Palo Alto, California
Jacobson, M. A History of Basic, http://www.softexsolutions.com/crc/programming/historyOfBasic.doc(accessed 26/040/05)
Jones, P. (2003), Visual Basic .NET A Complete Object-OrientedProgramming Course Including Unified Modelling Language (UML), Continuum,York Road, London
Mack, G. (2004), The History of Visual Basic and BASIC onthe PC, http://dc37.dawsoncollege.qc.ca/compsci/gmack/info/VBHistory.htm(accessed 26/04/05)
McManus, P. and Goldstein, J., (2003), Database Accesswith Visual Basic .NET 3rd edition, Addison-Wesley, Boston
MSDN (2005a) Overview of the .NET framework, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpovrintroductiontonetframeworksdk.asp(accessed 27/04/05)
MSDN (2005b) Migrating, http://msdn.microsoft.com/vbasic/using/migrating/default.aspx(accessed 27/04/05)
Piquet, L. (2002), Abandoning the Fantasy of VB MigrationWizardry, http://www.devx.com/vb/article/16822(accessed 27/04/05)
WC3 (2003), SOAP Version 1.2, http://www.w3.org/TR/soap12-part1/(accessed 27/04/05)
(2005) A Petition For TheDevelopment Of Unmanaged Visual Basic And Visual Basic For Applications, http://classicvb.org/petition/(accessed 27/04/05)
Order Now