Nuevo

Clases parciales en VB.NET

Clases parciales en VB.NET

Las clases parciales son una característica de VB.NET que se usa en casi todas partes, pero no se ha escrito mucho al respecto. Esto podría deberse a que todavía no hay muchas aplicaciones obvias de "desarrollador". El uso principal es la forma en que las soluciones ASP.NET y VB.NET se crean en Visual Studio, donde es una de esas características que normalmente está "oculta".

Una clase parcial es simplemente una definición de clase que se divide en más de un archivo físico. Las clases parciales no hacen una diferencia para el compilador porque todos los archivos que componen una clase simplemente se fusionan en una sola entidad para el compilador. Como las clases se fusionan y compilan, no puede mezclar idiomas. Es decir, no puede tener una clase parcial en C # y otra en VB. Tampoco puede abarcar conjuntos con clases parciales. Todos tienen que estar en la misma asamblea.

Visual Studio lo usa mucho, especialmente en las páginas web donde es un concepto clave en los archivos de "código subyacente". Veremos cómo funciona esto en un Visual Studio, pero comprender qué cambió en Visual Studio 2005 cuando se introdujo es un buen punto de partida.

En Visual Studio 2003, el código "oculto" para una aplicación de Windows estaba en una sección llamada Región marcada como "Código generado por el Diseñador de formularios de Windows". Pero todavía estaba todo allí en el mismo archivo y era fácil ver y cambiar el código en la Región. Todos del código está disponible para su aplicación en .NET. Pero como parte de él es un código con el que nunca deberías meterte, se mantuvo en esa Región oculta. (Las regiones todavía se pueden usar para su propio código, pero Visual Studio ya no las usa).

En Visual Studio 2005 (Framework 2.0), Microsoft hizo aproximadamente lo mismo, pero ocultó el código en un lugar diferente: una clase parcial en un archivo separado. Puede ver esto en la parte inferior de la ilustración a continuación:

--------
Haga clic aquí para mostrar la ilustración.
Haga clic en el botón Atrás en su navegador para volver
--------

Una de las diferencias de sintaxis entre Visual Basic y C # en este momento es que C # requiere que todos las clases parciales se califican con la palabra clave Parcial pero VB no. Su formulario principal en VB.NET no tiene ningún calificador especial. Pero la declaración de clase predeterminada para una aplicación de Windows vacía se ve así usando C #:

clase parcial pública Form1: Formulario

Las opciones de diseño de Microsoft en cosas como esta son interesantes. Cuando Paul Vick, el diseñador de VB de Microsoft, escribió sobre esta elección de diseño en su blog Panopticon Central, el debate al respecto en los comentarios continuó por páginas y páginas.

Veamos cómo funciona todo esto con código real en la página siguiente.

En la página anterior, se explicó el concepto de clases parciales. Convertimos una sola clase en dos clases parciales en esta página.

Aquí hay una clase de ejemplo con un método y una propiedad en un proyecto VB.NET

Public Class CombinedClass Private m_Property1 As String Public Sub New (ByVal Value As String) m_Property1 = Value End Sub Public Sub Method1 () MessageBox.Show (m_Property1) End Sub Property Property1 () As String Get Return m_Property1 End Get Set (ByVal value As String) m_Property1 = valor End Set End Property End Class

Se puede llamar a esta clase (por ejemplo, en el código de evento Click para un objeto Button) con el código:

Dim ClassInstance como nuevo _ CombinedClass ("Acerca de las clases parciales de Visual Basic") ClassInstance.Method1 ()

Podemos separar las propiedades y métodos de la clase en diferentes archivos físicos agregando dos nuevos archivos de clase al proyecto. Nombra el primer archivo físico Partial.methods.vb y nombra el segundo Partial.properties.vb. Los nombres de los archivos físicos deben ser diferentes, pero los nombres de las clases parciales serán los mismos para que Visual Basic pueda fusionarlos cuando se compila el código.

No es un requisito de sintaxis, pero la mayoría de los programadores siguen el ejemplo en Visual Studio de usar nombres "punteados" para estas clases. Por ejemplo, Visual Studio usa el nombre predeterminado Form1.Designer.vb para la clase parcial para un formulario de Windows. Recuerde agregar la palabra clave Parcial para cada clase y cambiar el nombre interno de la clase (no el nombre del archivo) al mismo nombre. Usé el nombre interno de la clase: PartialClass.

La siguiente ilustración muestra todo el código del ejemplo y el código en acción.

--------
Haga clic aquí para mostrar la ilustración.
Haga clic en el botón Atrás en su navegador para volver
--------

Visual Studio "oculta" clases parciales como Form1.Designer.vb. En la página siguiente, aprendemos cómo hacerlo con las clases parciales que acabamos de crear.

Las páginas anteriores explican el concepto de clases parciales y muestran cómo codificarlas. Pero Microsoft usa un truco más con las clases parciales generadas por Visual Studio. Una de las razones para usarlos es separar la lógica de la aplicación del código UI (interfaz de usuario). En un proyecto grande, estos dos tipos de código pueden incluso ser creados por diferentes equipos. Si están en diferentes archivos, se pueden crear y actualizar con mucha más flexibilidad. Pero Microsoft da un paso más y también oculta el código parcial en el Explorador de soluciones. ¿Y si quisiéramos ocultar los métodos y propiedades de las clases parciales en este proyecto? Hay una manera, pero no es obvia y Microsoft no te dice cómo.

Una de las razones por las que no ve el uso de clases parciales recomendadas por Microsoft es que todavía no se admite muy bien en Visual Studio. Para ocultar las clases Partial.methods.vb y Partial.properties.vb que acabamos de crear, por ejemplo, se requiere un cambio en vbproj archivo. Este es un archivo XML que ni siquiera se muestra en el Explorador de soluciones. Puede encontrarlo con el Explorador de Windows junto con sus otros archivos. Un archivo vbproj se muestra en la siguiente ilustración.

--------
Haga clic aquí para mostrar la ilustración.
Haga clic en el botón Atrás en su navegador para volver
--------

La forma en que haremos esto es agregar una clase "raíz" que esté completamente vacía (solo quedan el encabezado de clase y la instrucción End Class) y hacer que nuestras dos clases parciales dependan de ella. Entonces agregue otra clase llamada PartialClassRoot.vb y nuevamente cambie el nombre interno a PartialClass para que coincida con los dos primeros. Esta vez tengo no usó la palabra clave Parcial solo para que coincida con la forma en que Visual Studio lo hace.

Aquí es donde un poco de conocimiento de XML será muy útil. Dado que este archivo tendrá que actualizarse manualmente, debe obtener la sintaxis XML correcta. Puede editar el archivo en cualquier editor de texto ASCII (el Bloc de notas funciona bien) o en un editor XML. Resulta que tienes uno excelente en Visual Studio y eso es lo que se muestra en la siguiente ilustración. Pero no puede editar el archivo vbproj al mismo tiempo que está editando el proyecto en el que se encuentra. Así que cierre el proyecto y abra solo el archivo vbproj. Debería ver el archivo que se muestra en la ventana de edición como se muestra en la siguiente ilustración.

(Nota la Compilar elementos para cada clase. Depende de los subelementos deben agregarse exactamente como se muestra en la siguiente ilustración. Esta ilustración se creó en VB 2005, pero también se ha probado en VB 2008).

--------
Haga clic aquí para mostrar la ilustración.
Haga clic en el botón Atrás en su navegador para volver
--------

Para muchos de nosotros, probablemente sea suficiente saber que hay clases parciales, solo para saber cuáles son cuando estamos tratando de localizar un error en el futuro. Para el desarrollo de sistemas grandes y complejos, podrían ser un pequeño milagro porque pueden ayudar a organizar el código de formas que antes hubieran sido imposibles. (¡También puede tener estructuras parciales e interfaces parciales!) Pero algunas personas han concluido que Microsoft las inventó solo por razones internas, para que su generación de código funcione mejor. El autor Paul Kimmel incluso llegó a sugerir que Microsoft realmente creó clases parciales para reducir sus costos al facilitar la externalización del trabajo de desarrollo en todo el mundo.

Tal vez. Es el tipo de cosas que podrían hacer.

Ver el vídeo: Qué son las clases parciales en C# .Net? Partial Class (Julio 2020).