How This Book Is Organized

Part I focuses on the details of the VB.NET language. Part II explains how to write .NET programs, and Part III describes how to use Visual Basic .NET with the .NET Common Language Runtime library.

Chapter 1, introduces you to the VB.NET language and the .NET platform.

Chapter 2, presents a simple application that prints the words “Hello World” to a console window, and gives a line-by-line analysis of the code.

Chapter 3, introduces the basic syntax and structure of the VB.NET language, including the intrinsic types, variables, statements, and expressions.

Chapter 4, explains the principles behind and goals of this programming methodology, including the three pillars of object-oriented programming: encapsulation, specialization, and polymorphism.

Chapter 5, introduces the key concepts of programmer-defined types (classes) and instances of those types (objects). Classes and objects are the building blocks of object-oriented programming.

Chapter 6, explores two of the key concepts behind object-oriented programming and demonstrates how you might implement them in your code.

Chapter 7 and Chapter 8 introduce Structures and Interfaces, respectively, both close cousins to classes. Structures are lightweight objects that are more restricted than classes, and that make fewer demands on the operating system and on memory. Interfaces are contracts; they describe how a class will work so that other programs can interact with your objects in well-defined ways.

Object-oriented programs often create a great many objects. It is often convenient to group these objects and manipulate them together. Chapter 9, explores the collection classes provided by the Framework Class Library and how to create your own collection types as well.

Chapter 10, discusses the manipulation of strings of characters, the VB.NET String class, and regular expression syntax.

Chapter 11, explains how to handle errors and abnormal conditions that may arise in relation to your programs.

Both Windows and web applications are event-driven. In VB.NET, events are first-class members of the language. Chapter 12, focuses on how events are managed, and how delegates (object-oriented type-safe callback mechanisms) are used to support event handling.

Part II and Part III will be of interest to all readers, regardless of programming experience. These sections explore the details of the .NET platform.

Part II details how to write .NET programs, both desktop applications with Windows Forms and web applications with Web Forms. In addition, Part II describes database interactivity and how to create web services.

On top of this infrastructure sits a high-level abstraction of the operating system, designed to facilitate object-oriented software development. This top tier includes ASP.NET and Windows Forms. ASP.NET includes both Web Forms, for rapid development of web applications, and Web Services, for creating web objects with no user interface.

VB.NET provides a Rapid Application Development (RAD) model similar to that previously available only in Visual Basic. Chapter 13, describes how to use this RAD model to create professional-quality Windows programs using the Windows Forms development environment.

Whether intended for the Web or for the desktop, most applications depend on the manipulation and management of large amounts of data. Chapter 14, explains the ADO.NET layer of the .NET Framework and explains how to interact with Microsoft SQL Server and other data providers.

Chapter 15, combines the RAD techniques demonstrated in Chapter 13 with the data techniques from Chapter 14 to demonstrate how to build web applications with Web Forms.

Not all applications have a user interface. Chapter 16, focuses on the second half of ASP.NET technology. A web service is a distributed application that provides functionality via standard web protocols, most commonly XML and HTTP.

A runtime is an environment in which programs are executed. The Common Language Runtime (CLR) is the heart of .NET. It includes a data typing system that is enforced throughout the platform and that is common to all languages developed for .NET. The CLR is responsible for processes such as memory management and reference counting of objects.

Another key feature of the .NET CLR is garbage collection. In VB.NET, the developer is not responsible for destroying objects. Endless hours spent searching for memory leaks are a thing of the past; the CLR cleans up after you when your objects are no longer in use. The CLR’s garbage collector checks the heap for unreferenced objects and frees the memory used by these objects.

The .NET platform and class library extend upward into the middle-level platform, where you find an infrastructure of supporting classes, including types for interprocess communication, XML, threading, I/O, security, diagnostics, and so on. The middle tier also includes the data-access components collectively referred to as ADO.NET that are discussed in Chapter 14.

Part III of this book discusses the relationship of VB.NET to the Common Language Runtime and the Framework Class Library.

Chapter 17, distinguishes between private and public assemblies and describes how assemblies are created and managed. In .NET, an assembly is a collection of files that appears to the user to be a single DLL or executable. An assembly is the basic unit of reuse, versioning, security, and deployment.

.NET assemblies include extensive metadata about classes, methods, properties, events, and so forth. This metadata is compiled into the program and retrieved programmatically through reflection. Chapter 18, explores how to add metadata to your code, how to create custom attributes, and how to access this metadata through reflection. It goes on to discuss dynamic invocation, in which methods are invoked with late (runtime) binding, and ends with a demonstration of reflection emit, an advanced technique for building self-modifying code.

The .NET Framework was designed to support web-based and distributed applications. Components created in VB.NET may reside within other processes on the same machine or on other machines across the network or across the Internet. Marshaling is the technique of interacting with objects that aren’t really there, while remoting comprises techniques for communicating with such objects. Chapter 19, elaborates.

The Framework Class Library provides extensive support for asynchronous I/O and other classes that make explicit manipulation of threads unnecessary. However, VB.NET does provide extensive support for Threads and Synchronization, discussed in Chapter 20.

Get Programming Visual Basic .NET, Second Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.