Download presentation
Presentation is loading. Please wait.
Published byJared Chase Modified over 9 years ago
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.*
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.