Part I Learning the Basics of VB
1 Introducing the .NET Framework 4.5
The .NET Framework Architecture
Differences Between .NET 4.0 and .NET 4.5
Programming Languages Included in .NET 4.5
Additional Tools Shipping with the .NET Framework
Windows Software Development Kit
What’s New in .NET Framework 4.5
How .NET Meets Windows 8 and the Windows Runtime
2 Getting Started with the Visual Studio 2012 IDE
What’s New in Visual Studio 2012
Working with Projects and Solutions
Creating Visual Basic Projects
Accessing Recent and Online Templates
Searching for Installed Templates
Finding Code Samples on the Internet
Creating Reusable Projects and Items Templates
Creating Your First Visual Basic 2012 Project
Debug and Release Configurations
Browsing the Visual Basic and .NET Documentation
Online Help and the MSDN Library
Showing the Hierarchy of Method Calls
3 The Anatomy of a Visual Basic Project
Brief Overview of Types and Members
Visual Basic 2012 Reserved Keywords
Resources and the Resources.resx File
Adding References to COM Libraries
Introducing the Common Type System
Introducing Value Types and Reference Types
System.Object
and System.ValueType
.NET Framework Primitive Value Types
.NET Framework Primitive Reference Types
Differences Between Value Types and Reference Types
What Custom Type Should I Choose?
Converting Between Value Types and Reference Types
Understanding Implicit Conversions
Understanding Conversion Operators
Widening and Narrowing Conversions
Working with .NET Fundamental Types
Working with TimeZone
and TimeZoneInfo
Logical, Bitwise, and Shift Operators
Iterations, Loops, and Conditional Code Blocks
5 Debugging Visual Basic 2012 Applications
Working with Breakpoints and Trace Points
Inspecting Object Details with Debugger Visualizers
Using Debug Attributes in Your Code
6 Handling Errors and Exceptions
Tips for Visual Basic 6 Migration
System.Exception
, Naming Conventions, and Specialization
Handling Exceptions with Try..Catch..Finally
Blocks
Catching Exceptions Without a Variable
Part II Object-Oriented Programming with Visual Basic 2012
Avoiding Ambiguities with Local Variables
Types and Members Visibility: Scope
Executing Actions with Methods
Methods Arguments: ByVal
and ByRef
Marking Assemblies and Types as CLS-Compliant
8 Managing an Object’s Lifetime
Understanding Memory Allocation
Understanding Garbage Collection
Understanding the Finalize
Method
Understanding Dispose
and the IDisposable
Interface
Putting Dispose
and Finalize
Together
Restoring Objects with Object Resurrection
Interacting with the Garbage Collector
Understanding Generations and Operation Modes
9 Organizing Types Within Namespaces
Organizing Types Within Namespaces
Namespaces and Common Language Specification
Global Namespaces and the Global
Keyword
Differences Between Modules and Classes
11 Structures and Enumerations
Assigning Structures to Variables
Inheritance Limitations and Interface Implementation
Structures and Common Language Specification
Useful Methods from System.Enum
Using Enums As Return Values from Methods
Enumerations and Common Language Specification
Illustrating System.Object
in Detail
MustInherit
and MustOverride
Keywords
Accessing Base Classes Members
Practical Inheritance: Building Custom Exceptions
Implementing and Accessing Interfaces
Passing Interfaces as Method Arguments
Defining CLS-Compliant Interfaces
14 Generics and Nullable Types
Creating and Consuming Generics
Combining Delegates: Multicast Delegates
Registering for Events: AddHandler
and RemoveHandler
Declaring Objects with the WithEvents
Keyword
Offering Events to the External World
16 Working with Collections and Iterators
Understanding Collections Architecture
Working with Nongeneric Collections
The OrderedDictionary
Collection
The HybridDictionary
Collection
The StringCollection
Collection
The StringDictionary
Collection
The NameValueCollection
Collection
Working with Generic Collections
Working with Collection Initializers
The ReadOnlyCollection(Of T)
Collection
The Dictionary(Of TKey, TValue)
Collection
The SortedDictionary(Of TKey, TValue)
Collection
The ObservableCollection(Of T)
Collection
The ReadonlyObservableCollection(Of T)
Collection
The LinkedList(Of T)
Collection
The Queue(Of T)
and Stack(Of T)
Collections
Understanding the Benefits of Iterators in Code
Iterators with Try..Catch..Finally
Implementing an Iterator Class
17 Creating Objects: Visual Tools and Portable Libraries
On-the-Fly Code and Object Initializers
Creating a Sample Portable Library
Part III Advanced Language Features
18 Manipulating Files and Streams
Manipulating Directories and Pathnames
The System.IO.DirectoryInfo
Class
Handling Exceptions for Directories and Pathnames
Reading and Writing Text Files
Reading and Writing Binary Files
Retrieving Assembly Information
Deployment and Environment Information
Getting Resources by Name in Code
Extending My.Application
and My.Computer
Extending My.Resources
and My.Settings
Understanding Application Events
Bug Fix: Return Type in Array Literals
Multidimensional and Jagged Arrays
Coding Custom Extension Methods
Type Inference and Lambda Expressions
Part IV Data Access with ADO.NET and LINQ
21 Introducing ADO.NET and DataSets
Understanding Connections and Data Readers
Understanding Deferred Execution
Introducing Standard Query Operators
Prerequisites and Requirements for This Book
Understanding LINQ to SQL Classes
Behind the Scenes of LINQ to SQL Classes
Querying Data with LINQ to SQL
Insert/Update/Delete Operations with LINQ
Handling Optimistic Concurrency
Using SQL Syntax Against Entities
LINQ to SQL with SQL Server Compact Edition 3.5
Building Complex Queries with Anonymous Types
LINQ to DataSets’ Extension Methods
Understanding Field(Of T)
and SetField(Of T)
26 Introducing ADO.NET Entity Framework
Understanding Entity Data Models
Understanding the DbContext
Class: The Visual Basic Mapping
Insert/Update/Delete Operations for Entities
Handling Optimistic Concurrency
Querying EDMs with LINQ to Entities
Introducing the Code First Approach
Downloading Additions to the Entity Framework 5
Generating the Database and Executing Data Operations
Compatibility with the Past and with Other Technologies
27 Manipulating XML Documents with LINQ and XML Literals
Writing XML Markup in VB with XML Literals
LINQ Queries with XML Literals
Understanding Embedded Expressions
Part V Building Windows Desktop Applications
WPF and Windows 8: The Future of Desktop Development
Introducing the WPF Architecture
Building WPF Applications with Visual Studio 2012
Understanding the eXtensible Application Markup Language
Declaring and Using Controls with the Designer and XAML
Understanding Visual Tree and Logical Tree
A More Thorough Discussion: Introducing the Routed Events
Arranging Controls with Panels
Instantiating Windows at Runtime
Introducing the Application
Object
Brief Overview of WPF Browser Applications
Introducing WPF Controls Features
Understanding the ContentControl
Showing Dates with the Calendar
Control
Items Selection with the CheckBox
Control
Selecting Values from a List with the ComboBox
Control
Presenting Tabular Data with the DataGrid
Control
Selecting Dates with the DatePicker
Control
Viewing XPS Documents with the DocumentViewer
Control
Organizing Controls with the Expander
Organizing Controls with the GroupBox
Control
Displaying Images with the Image
Control
Displaying Text Messages with the Label
Control
Presenting Data with the ListBox
Control
Presenting Data with the ListView
Control
Playing Audio and Video with the MediaElement
Control
Building Effective User Interfaces with the Menu
Control
Entering Passwords with the PasswordBox
Control
Showing the Progress of an Operation with the ProgressBar
Control
Accepting User Choices with the RadioButton
Control
Editing Text with the RichTextBox
Control
Extended View with the ScrollBar
Control
Scrolling the Visual Tree with the ScrollViewer
Control
Separating Visual Elements with the Separator
Control
Value Selection with the Slider
Control
Displaying Information with the StatusBar
Control
Organizing User Interfaces with the TabControl
Control
Presenting Text with the TextBlock
Control
Entering Text with the TextBox
Control
Offering Commands with the ToolBar
Control
Presenting Hierarchical Data with the TreeView
Control
Accessing the Web with the WebBrowser
Control
Windows Forms Interoperability with the WindowsFormsHost
Control
30 Brushes, Styles, Templates, and Animations in WPF
Applying a LinearGradientBrush
Applying a RadialGradientBrush
Applying SelectionBrush
and CaretBrush
Rotating Visual Elements with RotateTransform
Dynamically Resizing Visual Elements with ScaleTransform
Changing Visual Elements’ Angles with SkewTransform
Dynamically Moving Visual Elements with TranslateTransform
Creating Animations with Visual Basic
31 Manipulating Media and Documents
Understanding the RichTextBox
Control
Introducing the Data-Binding in WPF
Binding UI Elements with the Binding
Markup Extension
Understanding the DataGrid
and the ObservableCollection
Discussing the Drag’n’Drop Data-Binding
Understanding Views and Binding Lists
Implementing String Formatters and Value Converters
Part VI Building Web Applications
34 Building ASP.NET Web Applications
Understanding State Management
Using Cookies for Saving Information
Creating a Web Application with VB 2012 with Navigation and Data-Binding
New in ASP.NET 4.5: Strongly Typed Data Controls and Model Binding
Configuring a Web Application for Security
35 Publishing ASP.NET Web Applications
Packaging Web Applications for Manual Installation
36 Building Rich Internet Applications with Silverlight 5
Creating Silverlight Projects with Visual Basic 2012
Adding Controls and Handling Events
How Silverlight Applications Are Packaged
Introducing Navigation Applications
Adding the Domain Service Class
Filtering Data with the PivotViewer
Control
Elevated Permissions and Security Considerations
Additional New Features in Silverlight 5
37 Building and Deploying Applications for Windows Azure
Overview of the Windows Azure Platform
Registering for the Windows Azure Developer Portal
Downloading and Installing Tools for Visual Studio
Understanding Web Roles and Web Configuration
Building the Silverlight 5 Project
Testing the Application Locally
Deploying Applications to Windows Azure
Introducing the Windows Azure Management Portal
38 Building Apps for Windows Phone 7.5
Developer Registration to the Windows Phone Marketplace
Downloading the Developer Tools
Training and Learning Resources
The Windows Phone 7.5 Programming Model
Creating Apps with Visual Basic
Starting and Debugging Windows Phone Apps
Understanding Pages, Orientations, and the Navigation Framework
Using System Functionalities with Launchers
Showing Multiple Contents with the Panorama
Control
Understanding the Application Bar
Understanding the Execution Model
Setting Properties, Icons, and Splash Screen
Submitting Apps to the Marketplace
Part VII Networking and Exposing Data Through Networks
39 Creating and Consuming WCF Services
Introducing Windows Communication Foundation
Address, Binding, Contract: The ABC of WCF
Implementing Custom Logic for the WCF Service
Creating the Client and Adding a Service Reference
Invoking Members from the Service
Hosting WCF Services in Internet Information Services
Configuring Services with the Configuration Editor
40 Implementing and Consuming WCF Data Services
Querying Data via HTTP Requests
Open Data Protocol for WCF Data Services
Implementing WCF Data Services
Deploying WCF Data Services to Internet Information Services
Implementing Service Operations
Implementing Query Interceptors
Understanding Query Interceptors
Understanding Change Interceptors
Understanding Server-Driven Paging
Part VIII Advanced .NET Framework with VB 2012
Providing Serialization for Custom Objects
Serialization in Windows Communication Foundation
Serialization in the ADO.NET Entity Framework
42 Processes and Multithreading
Understanding the .NET Thread Pool
Getting and Setting Information in the Thread Pool
The SyncLock..End SyncLock
Statement
Synchronization with the Monitor
Class
43 Parallel Programming and Parallel LINQ
Introducing Parallel Computing
What’s New in .NET 4.5: Custom Task Scheduling
Running Tasks with Parallel.Invoke
Creating, Running, and Managing Tasks: The Task
Class
Creating Tasks That Return Values
Debugging Tools for Parallel Tasks
ConcurrentDictionary(Of TKey, TValue)
Measuring Performances of a Classic LINQ Query
Measuring Performances of a PLINQ Query
AsParallel
and Binary Operators
Before .NET 4.5: Event-based Asynchrony
Before .NET 4.5: The Asynchronous Programming Model
.NET 4.5: Introducing the Async Pattern
When and Why to Use Async/Await
and Comparisons with the TPL
Getting Started with Async/Await
Event-based Asynchrony and Callbacks
How Async
and Await
Work Behind the Scenes
Documentation and Examples of the Async Pattern
Implementing Task-based Asynchrony
Asynchronous Lambda Expressions
Asynchronous I/O File Operations in .NET 4.5
Information Stored Within Assemblies
Assembly Information and Attributes
Understanding Application Domains
Creating Application Domains and Executing Assemblies
Implementing and Requiring Permissions
Migrating from Old CAS-Based Code
Understanding Assemblies’ Metadata
Generating Code at Runtime with Reflection.Emit
Applying Attributes Multiple Times
48 Platform Invokes and Interoperability with the COM Architecture
Importing and Using COM Objects
Importing COM Components into Visual Studio
Exposing .NET Objects to the COM World
References to the Win32 API Calls
49 Documenting the Source Code with XML Comments
Defining Complex Code Documentation
Generating Compiled Help Files
Part IX Applications Deployment
50 Understanding the Global Assembly Cache
Installing and Uninstalling Assemblies
Signing Assemblies with Strong Names
Top Reasons for Installing (or Not) Assemblies to the GAC
51 Setup and Deployment Projects with InstallShield for Visual Studio
Obtaining Your Copy of InstallShield LE
Specifying Environment Variables
Building and Deploying the Windows Installer Package
52 Deploying Applications with ClickOnce
How ClickOnce Handles Applications
Deploying Applications with ClickOnce
Understanding the Structure of a ClickOnce Deployment
Publishing Application Updates
Programmatically Accessing ClickOnce
Part X Mastering the Visual Studio 2012 IDE
Customizing Visual Studio 2012
Customizing Commands and Toolbars
Using, Creating, and Managing Reusable Code Snippets
Creating and Consuming Custom Code Snippets
54 Introducing Visual Studio Extensibility
Introducing Visual Studio Extensibility
About Extensibility with Visual Studio 2012
Building a Visual Studio Package
Deploying Visual Studio Extensions
Managing Extensions with Extensions and Updates
Managing Add-Ins with the Add-In Manager
Profiling External Executables
Historical Debugging with IntelliTrace
Tracking Application Events and Exceptions with IntelliTrace
Using IntelliTrace for Unit Tests
56 Testing Code with Unit Tests, Test-Driven Development, and Code Contracts
Introducing Test Driven Development
A Useful Resources and Tools for Visual Basic 2012
Visual Basic Resources in MSDN
Useful Developer Tools for Visual Basic
18.218.212.102