Agenda telefónica 2 en Visual Basic NET

En mi anterior ejercicio "Agenda telefónica 1 en VBasic .NET" se proponía una manera muy sencilla (la que más en el entorno actual de Visual Basic .NET) de conectar con una base de datos de Access, usando el Asistente para Formularios de Datos del propio IDE de Visual Studio. Esta manera de trabajar tiene ventajas evidentes para el principiante:

Pero, junto a esas ventajas, aparecen algunos inconvenientes, de los que, al menos 3, son para tener en cuenta: De todo lo anterior nace la idea del ejercicio actual, esta "Agenda telefónica 2", con 2 premisas fundamentales:

Introducción simple a ADO .NET y DataBinding

Acceso desconectado a datos: En la arquitectura tradicional de tipo cliente / servidor, cada cliente se conectaba a la base de datos, manteniendo la conexión el tiempo necesario para realizar operaciones directamente contra el servidor de base de datos al que está conectado. Obligaba a mantener conexiones de base de datos para todos y cada uno de los usuarios.
Al crecer el tamaño de las bases de datos y el número de clientes (usuarios) potenciales, sobre todo en relación con el fenómeno de Internet, se vio la necesidad de establecer conexiones lo más breves posibles, simplemente para las operaciones inicial (lectura o recuperación de datos) y final (escritura o actualización de datos) sobre el origen de los datos (la base de datos) y trabajar el resto del tiempo sobre una copia desconectada local del origen de los datos (DataSet).
En versiones anteriores de Visual Basic ya existía ADO (ActiveX Data Objects) que permite acceder a todo tipo de bases de datos desde Visual Basic y trabajar en modo desconectado. Visual Basic .NET puede usar ADO, pero ADO .NET es el método preferido por Visual Studio .NET para conectar a bases de datos.
ADO .NET usa clases específicas para efectuar operaciones en bases de datos. Una de las diferencias con respecto a ADO es el uso de comandos específicos de conexión con SQL Server: varias de las clases principales de ADO .NET tienen 2 versiones diferentes, una para conectar a una base de datos SQL Server y otra para proveedores OLE-DB. Como ejemplo, tenemos SQLCommand y OLEDBCommand, SQLConnection y OLEDBConnection, etc. ODBC está desaconsejado, es conveniente usar OLE-DB en su lugar.

DataBinding: es el mecanismo de la plataforma .NET que, en aplicaciones con interfaz WindowsForms, permite crear enlaces entre los objetos que contienen los datos y los controles del formulario. Como ejemplo, se puede enlazar la propiedad Text de un control TextBox con una columna de una tabla del DataSet (la base de datos desconectada), lo que simplifica enormemente las operaciones de navegación por los registros de la tabla.
Objetos importantes del DataBinding:

Pulsa aquí para ver el código completo.