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