Presentation is loading. Please wait.

Presentation is loading. Please wait.

Visual Basic.NET Preview David Stevenson Consulting Software Engineer, ABB

Similar presentations


Presentation on theme: "Visual Basic.NET Preview David Stevenson Consulting Software Engineer, ABB"— Presentation transcript:

1 Visual Basic.NET Preview David Stevenson Consulting Software Engineer, ABB dsteven8@rochester.rr.com

2 How to Get Visual Basic.NET w Requires Windows 2000, IE 5.5 (helpful to install IIS 5 on Win2K Pro) w NET Overview: msdn.microsoft.com/netmsdn.microsoft.com/net w Download NET: http://msdn.microsoft.com/downloads/defau lt.asp?URL=/code/sample.asp?url=/msdn- files/027/000/976/msdncompositedoc.xml http://msdn.microsoft.com/downloads/defau lt.asp?URL=/code/sample.asp?url=/msdn- files/027/000/976/msdncompositedoc.xml

3 Visual Basic.NET Goals w Rapid Application Development of Enterprise Web Applications w Language Interoperability w Improved Object Oriented Features

4 Modern Language Features w Free Threading w Structured Exception Handling w Type Safety w Shared Members w Initializers

5 Object Oriented Features w Inheritance w Encapsulation w Overloading w Polymorphism w Parameterized Constructors

6 Disclaimer w Syntax subject to change in released product. w Most of the following is a summary of Microsoft’s article: Visual Studio Enables the Programmable Web. Examples may be changed slightly.

7 OOP: Inheritance w Ability to reuse code via Inherits keyword. w Derived class inherits all methods and properties of the base class. w Derived class can override methods defined in the base class using the Overrides keyword. w The derived class can extend the base class by adding new methods and properties.

8 Inheritance Example Public Class MyBaseClass Function GetCustomer () Console.WriteLine ( "MyBaseClass.GetCustomer" ) End Function End Class Public Class MyDerivedClass : Inherits MyBaseClass Function GetOrders ()... End Function End Class Public Module modmain Sub Main() Dim d As MyDerivedClass d.GetOrders () End Sub End Module

9 Overrides Example Class MyVeryDerivedClass Inherits MyDerivedClass Overrides Function GetOrders ( )

10 OOP: Encapsulation w New Protected keyword. w Hides properties/methods except for derived classes. Protected cName as string Protected Function ChangeName ( NewName ) Me.cName = NewName End Function

11 OOP: Overloading w VB6: Overloading via Implicit Auto- Conversion was potentially dangerous. w VB.NET: Creating two or more functions with the same name, but with different function signatures (parameters). w Overloaded functions can process data differently.

12 Overloading Example Overloads Sub Display ( theChar As Char ) … Overloads Sub Display ( theInteger As Integer ) … Overloads Sub Display ( theString As String ) …

13 OOP: Polymorphism w Ability to process an object differently depending on its data type or class. w Ability to redefine methods for derived classes.

14 Polymorphism Example Class Employee Overridable Function PayEmployee () As Decimal PayEmployee = Hours * HourlyRate End Function End Class Class CommissionedEmployee Inherits Employee Overrides Function PayEmployee ( ) As Decimal PayEmployee = BasePay + Commissions End Function End Class

15 OOP: Parameterized Constructors w VB6: Unparameterized Class_Initialize w VB.NET: Allows the creation of a new instance of a class while passing arguments for initializing the data of the new class. w VB.NET: Simultaneous creation and initialization of an object instance.

16 OOP: Parameterized Constructors Public Class Test Private i as Integer Overloads Public Sub New() MyBase.New i = 321 End Sub Overloads Public Sub New ( ByVal par as Integer ) MyClass.New() i = Par End Sub End Class

17 Interfaces w Abstract classes without implementation. w Can inherit from other interfaces. w Concrete classes can singly inherit, but have multiple interface implementations.

18 Interface Example Part 1 Public Interface IDog Function Barks ( ByVal strBark As String ) End Interface Public Interface IDog2 : Inherits IDog Function Bites ( ByVal intNumBites As Integer ) End Interface

19 Interface Example Part 2 Public Class Dogs Implements IDog Implements IDog2 Public Function Bites ( ByVal intNumBites As Integer ) _ Implements IDog2.Bites Console.WriteLine ( "is worse than {0} bites.", intNumBites ) End Function Public Function Barks ( ByVal strBark As String ) _ Implements IDog.Barks Console.Write ( "A Dog's bark {0} ", strBark ) End Function End Class

20 Free Threading w Concurrent processing improves scalability. w Can start a thread and run asynchronously.

21 Free Threading Example Sub CreateMyThread ( ) Dim b As BackGroundWork Dim t As Thread Dim b = New BackGroundWork () Set t = New Thread ( New ThreadStart ( AddressOf b.DoIt ) End Sub Class BackGroundWork Sub DoIt ( ) … End Sub End Class

22 Structured Exception Handling w VB6: On Error Goto Problem: Goto Error Handling routine, Goto Central Error Processing Routine, Exit out of procedure. w VB.NET: Try… Catch… Finally

23 Structured Exception Handling Example Sub SEH ( ) Try Open “TESTFILE” For Output As #1 Write #1, CustomerInformation Catch Kill “TESTFILE” Finally Close #1 End try

24 Try, Catch, Finally Syntax Try tryStatements Catch exception1 [ As type ] [ When expression ] catchStatements [ Exit Try ] Catch exception2 [ As type ] [ When expression ] catchStatements [ Exit Try ] Finally finallyStatements End Try

25 Type Safety w VB6: Implicit Auto-Conversion on subroutine/function calls. Fails during run- time if data loss occurs. w VB.NET: Option Strict generates compile- time errors if a conversion is required. Option Strict Off.

26 Data Type Changes w Decimal data type replaces Currency data type. w Long is 64 bits. Integer is 32 bits. Short (new) is 16 bits.

27 Shared Members w Data and method members of classes that are shared by all instances of a class. w A shared data member is one that all instances of a class share. w A shared method is a method that is not implicitly passed an instance of the class. (consequently, access to class data members is not allowed).

28 Initializers w Initialization of variables on the lines they are declared. Dim X As Integer = 1 w Equivalent to: Dim X As Integer X = 1 w VB6 Recommendation: Dim X As Integer : X = 1

29 Namespaces w For organizing code hierarchically. w Example: Namespace UserGroups.NewYork.Rochester.VDUNY... Insert your code here End Namespace

30 Namespaces w Always public. w Components within the namespace may have Public, Friend or Private access. w Default access type is Friend. w Private members of a namespace are accessible only within the namespace declaration they were declared in.

31 Imports Statement w Imports namespace names from referenced projects and assemblies. w Syntax: Imports [aliasname = ] namespace Imports System Imports Microsoft.VisualBasic

32 Common Language Run-Time w System.* w “This changes everything.” Dodge Intrepid Commerical

33 Hello World! ' Allow easy reference System namespace classes Imports System ' Module houses the application’s entry point Public Module modmain ' "Main" is application's entry point Sub Main() ' Write text to the console Console.WriteLine ("Hello World using Visual Basic!") End Sub End Module

34 Migrating from VB6 or VBScript to VB.NET w Following information from A Preview of Active Server Pages+, Appendix B, Moving from VBScript or VB6 to VB7 w Set and Let keywords no longer supported in VB.NET. w Set objVar = objRef ‘ VB6 w objVar = objRef‘ VB.NET w Class property syntax changes in VB.NET.

35 VB 6 Class Property Syntax Private mstrString As String Public Property Let MyString ( ByVal NewVal As String ) mstrString = NewVal End Property Public Property Get MyString () As String MyString = mstrString End Property

36 VB.NET Class Property Syntax Private mstrString As String Public Property MyString As String Get MyString = mstrString End Get Set mstrString = Value End Set End Property

37 ReadOnly and WriteOnly Properties in VB.NET Private mstrReadOnlyString As String ReadOnly Public Property MyReadOnlyString As String Get MyReadOnlyString = mstrReadOnlyString End Get End Property

38 Method, Function and Subroutine Calls Require Parenthesis w VB.NET requires parenthesis around method, function and subroutine call parameters. MyFunction ( “Param1”, 1234 ) objRef.MyMethod ( “Param1”, “Param2” ) Response.Write ( “ Some Text ” ) w VB6: Use: Call MyFunction ( “par1” )

39 Parameters Default to ByVal w VB.NET defaults to ByVal for all parameters that are intrinsic data types. w Previously(VB6), the default was ByRef. w VB6 Recommendation: Explicitly declare all parameters to ByVal or ByRef. w References to objects, interfaces, array and string variables still default to ByRef.

40 Declarations in VB.NET w Variables declared in the same statements must be the same type. No longer allowed: Dim a As Integer, b As String w Variables can be initialized in the same statement they are declared: Dim a As Integer = 123 Dim intArray ( 3 ) = ( 12, 34, 56 )

41 Default Values and Optional Parameters w Default values can be supplied in function parameters. Sub MySubr ( ByVal intParam1 As Integer = 123 ) w Optional parameters must always supply a default value. Function MyFunction ( Optional ByVal strParam As String = “MyString” ) w IsMissing keyword is no longer supported.

42 Explicit Casting Now Required w VB6 Sometimes did implicit auto- conversion of data types. w VB.NET now requires explicit casting. Response.Write ( CStr ( intLoop ) ) Trace.Write ( CStr ( intLoop ) )

43 Shorthand assignments w VB6: intVar = intVar + 1 w VB.NET: intVar += 1 intVar -= 1 intVar *= 2 intVar /= 2

44 Short Circuited Conditional Statements w Conditional expressions with And or Or: if first test fails, following expressions won’t be executed: if ( a = b ) And ( c = d ) Then … If a is not equal to b, then the test for c = d will not be executed.

45 References w Visual Studio Enables the Programmable Web, http://msdn.microsoft.com/vstudio/nextgen/techno logy/language.asp http://msdn.microsoft.com/vstudio/nextgen/techno logy/language.asp w Joshua Trupin, The Future of Visual Basic: Web Forms, Web Services, and Language Enhancements Slated for Next Generation, http://msdn.microsoft.com/msdnmag/issues/0400/ vbnexgen/vbnexgen.asp http://msdn.microsoft.com/msdnmag/issues/0400/ vbnexgen/vbnexgen.asp

46 References w Introducing Win Forms, http://msdn.microsoft.com/vstudio/nextgen/technology/win forms.asp http://msdn.microsoft.com/vstudio/nextgen/technology/win forms.asp w Visual Studio Enables the Programmable Web Web Forms, http://msdn.microsoft.com/vstudio/nextgen/technology/we bforms.asp http://msdn.microsoft.com/vstudio/nextgen/technology/we bforms.asp

47 References w Richard Anderson, Alex Homer, Rob Howard, Dave Sussman, A Preview of Active Server Pages +, Appendix B, Moving from VBScript or VB6 to VB7.A Preview of Active Server Pages +,

48 Resources w Microsoft.NET & ASP+ Resources and Information, http://www.devx.com/dotnet/resources/ http://www.devx.com/dotnet/resources/ w News Server: news.devx.com News Group: vb.vb7 w News Server: msnews.microsoft.com News Group: microsoft.public.net.*


Download ppt "Visual Basic.NET Preview David Stevenson Consulting Software Engineer, ABB"

Similar presentations


Ads by Google