35
Visual Basic .NET Comprehensive Concepts and Techniques What’s new in VB .NET adapted from a presentation on Introduction to Visual Basic .NET by Jeff Quasney Course Technology

Visual Basic.NET Comprehensive Concepts and Techniques What’s new in VB.NET adapted from a presentation on Introduction to Visual Basic.NET by Jeff Quasney

Embed Size (px)

Citation preview

Visual Basic .NETComprehensive Concepts

and Techniques

What’s new in VB .NETadapted from a presentation on

Introduction to

Visual Basic .NET

by

Jeff Quasney

Course Technology

2Introduction to Visual Studio .NET

3Introduction to Visual Studio .NET

An Overview

4Introduction to Visual Studio .NET

What’s New in Visual Studio .NET?

• IDE (Start page, common for ALL .NET languages)

• Application templates• New editing tools (HTML, XML, XSL,

CSS…)• Cross-language debugging, Multiple

languages per “Solution”• New sample apps and documentation• Strong focus on XML

5Introduction to Visual Studio .NET

What’s New in Microsoft Visual Basic .NET?• VB .NET was a rewrite, not an update

• New/changed data types– No Variant, CTS

• New/changed syntax– Dim, assignment, arrays, keywords…

• Application distribution

6Introduction to Visual Studio .NET

What’s New in Microsoft Visual Basic .NET? (continued)• Inheritance• Exception handling (Structured exception

handling)• Overloading• Multithreading• Web development

– Web services– Web applications (ASP.NET)

• ADO.NET

7Introduction to Visual Studio .NET

Application Types

• Console Applications

8Introduction to Visual Studio .NET

Application Types

• Windows Applications

9Introduction to Visual Studio .NET

Application Types

• Windows Services

10Introduction to Visual Studio .NET

Application Types

• Web Applications

11Introduction to Visual Studio .NET

Application Types

• Web Services

12Introduction to Visual Studio .NET

Application Types

• Components

13Introduction to Visual Studio .NET

What is .NET?

14Introduction to Visual Studio .NET

.NET Framework

15Introduction to Visual Studio .NET

Why .NET?

• Common classes

• Common security model– DLL “H E double-toothpicks” gone?– Side-by-side execution

• Garbage collection

• Multi-platform?

• New application types

• Language interoperability

16Introduction to Visual Studio .NET

The Common Language Runtime

• Takes control of the application and runs the application under the operating system

• Microsoft Intermediate Language (MSIL)

17Introduction to Visual Studio .NET

The Common Language Runtime

• MSIL is CPU/OS independent

• Compile once for multiple CPU’s/platforms– Take an EXE and run it on Linux– Ximian (?) is working on this

• Assembly and manifest concept– Xcopy installs– Side-by-side execution– Logically, all EXEs and DLLs act as DLLs

18Introduction to Visual Studio .NET

The Common Language Runtime

• Registration info no longer in registry– Meta data stored in assemblies– Only distribute assembly

• .NET Framework required on user’s system

• Memory management• Exception handling• No IDL, no registration, no HRESULTS, no

GUIDs, • Replaces all COM plumbing

19Introduction to Visual Studio .NET

What’s New in VB .NET?

20Introduction to Visual Studio .NET

About Procedures• Subs and functions need parentheses

Use

MyProc(“A parameter”)

Not

MyProc “A parameter”

• ByVal is now the default!• Optional arguments need a default value

– Sub DoWork(Optional ByVal i As Integer = 1)

• Return is used in Functions to return a value

21Introduction to Visual Studio .NET

About IF Statements

• AndAlso and OrElse do short-circuiting

If intX = 1 AndAlso intY = 2 Then

In above example, second expression is not evaluated if intX is not 1

22Introduction to Visual Studio .NET

About Object Declarations

• OLDDim objCustomer As Store.CustomerSet objCustomer = New Store.Customer

• NEWImports StoreDim objCustomer = New Customer

ORDim objCustomer as Customer = New Customer

23Introduction to Visual Studio .NET

About Scope

• New Block-level ScopeDim intX As Integer

For intX = 1 To 5

Dim intZ As Integer

MessageBox.Show(“Scope is important.”)

Next intX

MessageBox.Show(“intZ is out of scope!”)

24Introduction to Visual Studio .NET

About Arrays• Lower bound is always zero

– Dim intA(5 To 8) no longer is possible– Option Base is gone as well

• Arrays have VERY useful methods• Declare arrays by upperbound, not size – Same

as VB6– Dim strX(10) As String contains 11 elements

• Setting an array to another array is now done by reference– In VB6, this was done by value– Use Copy method of arrays to make an actual copy

25Introduction to Visual Studio .NET

About Loops

• While…Wend changed to While…End While

26Introduction to Visual Studio .NET

About Data Types• All variables are objects. Variants are gone.• Type a period after any variable in the IDE to

see methods/properties• Strings are never fixed length. They are

destroyed and recreated by the CLR when value changes– Only one type of string variable for ALL languages

• No Currency data type. Now decimal.• UDTs are gone

– Use structures instead• Structure statement replaces Type• Structures support methods!

27Introduction to Visual Studio .NET

Useful Options

• Option Strict On– Forces declarations– Forces data types to be same on both sides

of =– Use it always. Get in the habit. Force your

students to use it in assignments.

28Introduction to Visual Studio .NET

About Operators

• New concatenation operators+, -, *, /, &

intI += 100

intl -= 100

29Introduction to Visual Studio .NET

About Controls

• Default properties of controls are GONE

• New way to set tab order

• Shape controls are gone– Use System.Drawing namespace

30Introduction to Visual Studio .NET

About Menus and Help

• Menu editor– Create a menu and a context menu

• Help– Dynamic help is addictive

31Introduction to Visual Studio .NET

Misc

• New control alignment tools • New properties

– Anchoring and AutoSize– Opacity of forms

• Printing– Several new, powerful printing controls– Print controls/objects get more complicated, but more

powerful– Crystal Reports is included with

Professional/Academic versions• New way to set tab order

32Introduction to Visual Studio .NET

What’s new in OO?

• Too much to mention• Inheritance• Polymorphism• New syntax for creating properties• Read-only, Write-only properties• Aggregation is weird, though (just in VB)• Constructor = Sub New() : Destructor = Sub

Finalize()– Don’t assume you know when destructor is called

33Introduction to Visual Studio .NET

What’s new in Databases?

• Too much to mention

• ADO.NET

• SqlClient namespace vs. OleDB namespace

• DataSet and DataTable

• DataReader

• Plea/Editorial: Please don’t use Data controls

34Introduction to Visual Studio .NET

What will make you scratch your head?• Line numbers are messed up

• Can’t print a form in design mode for a Windows form, but you CAN for a Web form

• Value of True (non-zero, not 1)

Visual Basic .NETComprehensive Concepts

and Techniques

The End