VBNetIntro

advertisement
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
Introduction to Visual Studio .NET
2
An Overview
Introduction to Visual Studio .NET
3
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
Introduction to Visual Studio .NET
4
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
Introduction to Visual Studio .NET
5
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
Introduction to Visual Studio .NET
6
Application Types
• Console Applications
Introduction to Visual Studio .NET
7
Application Types
• Windows Applications
Introduction to Visual Studio .NET
8
Application Types
• Windows Services
Introduction to Visual Studio .NET
9
Application Types
• Web Applications
Introduction to Visual Studio .NET
10
Application Types
• Web Services
Introduction to Visual Studio .NET
11
Application Types
• Components
Introduction to Visual Studio .NET
12
What is .NET?
Introduction to Visual Studio .NET
13
.NET Framework
Introduction to Visual Studio .NET
14
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
Introduction to Visual Studio .NET
15
The Common Language Runtime
• Takes control of the application and runs
the application under the operating system
• Microsoft Intermediate Language (MSIL)
Introduction to Visual Studio .NET
16
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
Introduction to Visual Studio .NET
17
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
Introduction to Visual Studio .NET
18
What’s New in VB .NET?
Introduction to Visual Studio .NET
19
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
Introduction to Visual Studio .NET
20
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
Introduction to Visual Studio .NET
21
About Object Declarations
• OLD
Dim objCustomer As Store.Customer
Set objCustomer = New Store.Customer
• NEW
Imports Store
Dim objCustomer = New Customer
OR
Dim objCustomer as Customer = New Customer
Introduction to Visual Studio .NET
22
About Scope
• New Block-level Scope
Dim 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!”)
Introduction to Visual Studio .NET
23
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
Introduction to Visual Studio .NET
24
About Loops
• While…Wend changed to While…End
While
Introduction to Visual Studio .NET
25
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!
Introduction to Visual Studio .NET
26
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.
Introduction to Visual Studio .NET
27
About Operators
• New concatenation operators
+, -, *, /, &
intI += 100
intl -= 100
Introduction to Visual Studio .NET
28
About Controls
• Default properties of controls are GONE
• New way to set tab order
• Shape controls are gone
– Use System.Drawing namespace
Introduction to Visual Studio .NET
29
About Menus and Help
• Menu editor
– Create a menu and a context menu
• Help
– Dynamic help is addictive
Introduction to Visual Studio .NET
30
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
Introduction to Visual Studio .NET
31
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
Introduction to Visual Studio .NET
32
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
Introduction to Visual Studio .NET
33
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)
Introduction to Visual Studio .NET
34
Visual Basic .NET
Comprehensive Concepts
and Techniques
The End
Download