350 likes | 508 Views
What’s new in VB .NET. adapted from a presentation on Introduction to Visual Basic .NET by Jeff Quasney Course Technology. An Overview. What’s New in Visual Studio .NET?. IDE (Start page, common for ALL .NET languages) Application templates New editing tools (HTML, XML, XSL, CSS…)
E N D
What’s new in VB .NET adapted from a presentation on Introduction to Visual Basic .NET by Jeff Quasney Course Technology
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
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
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
Application Types • Console Applications
Application Types • Windows Applications
Application Types • Windows Services
Application Types • Web Applications
Application Types • Web Services
Application Types • Components
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
The Common Language Runtime • Takes control of the application and runs the application under the operating system • Microsoft Intermediate Language (MSIL)
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
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
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
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
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
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!”)
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
About Loops • While…Wend changed to While…End While
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!
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.
About Operators • New concatenation operators +, -, *, /, & intI += 100 intl -= 100
About Controls • Default properties of controls are GONE • New way to set tab order • Shape controls are gone • Use System.Drawing namespace
About Menus and Help • Menu editor • Create a menu and a context menu • Help • Dynamic help is addictive
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
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
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
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)