sábado, 29 de noviembre de 2014
ASP.NET
Usar servicios de aplicación ASP.NET
La primera parte muestra cómo configurar un sitio web ASP.NET para exponer los servicios de aplicación. La segunda parte muestra cómo compilar una aplicación de consola de Windows con acceso a la información de autenticación, rol y perfil de un usuario. En este tutorial generará una aplicación de consola de Windows, pero los servicios de la aplicación ASP.NET están disponibles para todas las aplicaciones cliente que pueden enviar y recibir mensajes en formato SOAP. La parte final describe cómo implementar el sitio web de los servicios de aplicación en Windows Server 2008 e IIS 7.0.
Requisitos previos
Visual Studio 2010. No puede usar Microsoft Visual Web Developer 2005 para este tutorial porque creará una aplicación de consola de Windows, que no se admite en Visual Web Developer Express. Microsoft SQL Server o SQL Server Express Edition instalado en el equipo.
Exponer los servicios de aplicación
Para crear el sitio web de los servicios de aplicación
Abra Visual Studio 2010. En el menú Archivo, haga clic en Nuevo sitio Web.
Aparece el cuadro de diálogo Nuevo sitio web. En Plantillas instaladas de Visual Studio, seleccione Sitio web ASP.NET. En la lista Ubicación, seleccione Sistema de archivos. En el cuadro de texto Carpeta, asigne el nombre WcfApplicationServices al sitio web. Haga clic en Aceptar.
Visual Studio crea un nuevo sitio web ASP.NET y abre la página Default.aspx. En el menú Ver, haga clic en Otras ventanas y, a continuación, haga clic en Ventana Propiedades. En el Explorador de soluciones, haga clic en el nombre del sitio web. En la ventana Propiedades, establezca Usar puertos dinámicos en False.
Esto indica a Visual Studio que especifique un puerto fijo en lugar de un puerto seleccionado de forma aleatoria cuando inicie el servidor de desarrollo de ASP.NET. En este tutorial, debe tener un número de puerto fijo que pueda usar al generar las clases de proxy de cliente y los archivos de configuración. Para obtener más información, vea Cómo: Especificar un puerto para el servidor de desarrollo.
Establezca el Número de puerto en 8080.
Proveedores de Datos en ADO.NET
| Los proveedores de acceso a datos ADO.NET (conocidos como "Managed Data Providers") representa un conjunto especifico de clases que permiten conectarse e interactuar con una base de datos, cada uno utilizando un protocolo particular. El .NET Framework incluye cuatro proveedores de acceso a datos que en conjunto le permiten conectarse e interactuar virtualmente con cualquier base de datos existente en la actualidad: | |
ADO.NET
Polimorfismo en Visual Basic
Cómo proporciona Visual Basic el polimorfismo
La mayoría de los sistemas de programación orientada a objetos proporcionan polimorfismo mediante la herencia. Es decir, las hipotéticas clases Pulga y Tiranosaurio pueden heredar características de una clase Animal. Cada clase invalidaría el método Morder de la clase Animal para aportar sus propias características de mordedura.El polimorfismo proviene del hecho de que puede llamar al método Morder de un objeto que pertenezca a cualquier clase derivada de Animal sin conocer la clase a la que pertenece el objeto.
Proporcionar polimorfismo mediante interfaces
Visual Basic no utiliza la herencia para proporcionar polimorfismo. Visual Basic proporciona el polimorfismo mediante múltiples interfaces ActiveX. En el Modelo de objetos componentes (COM) que forma la infraestructura de la especificación ActiveX, las múltiples interfaces permiten que los sistemas de componentes software evolucionen sin afectar al código existente.Una interfaz es un conjunto de propiedades y métodos relacionados. Gran parte de la especificación ActiveX se ocupa de la implementación de interfaces estándar para obtener servicios del sistema o para proporcionar funcionalidad a otros programas.
En Visual Basic podría crear una interfaz Animal e implementarla en las clases Pulga y Tiranosaurio. Después podría invocar el método Morder de cualquiera de los dos tipos de objeto sin conocer su tipo.
Polimorfismo y rendimiento
El polimorfismo es importante por razones de rendimiento. Para comprobarlo, observe la función siguientePublic Sub Alimentarse(ByVal Critter As Object, _ ByVal Food As Object) Dim dblDistance As Double ' Código para calcular la distancia a la comida '(omitido). Critter.Mover dblDistance ' Enlace en tiempo de ' compilación Critter.Morder Food ' Enlace en tiempo de ' compilación End Sub
Los métodos Mover y Morder son enlaces en tiempo de compilación con Critter. El enlace en tiempo de compilación tiene lugar cuando Visual Basic no puede determinar en tiempo de compilación el tipo de objeto que contendrá una variable. En este ejemplo, el argumento Critter está declarado como As Object, de forma que en tiempo de ejecución pueda contener una referencia a cualquier tipo de objeto, como un Coche o una Roca.
Como no puede saber cuál será el objeto, Visual Basic compila una parte de código adicional para preguntar al objeto si acepta el método llamado. Si el objeto acepta el método, dicho código adicional lo invoca; si no, el código adicional desencadena un error. Todas las llamadas a métodos o a propiedades incurren en esta carga adicional.
Por el contrario, las interfaces permiten los enlaces en tiempo de diseño. Cuando Visual Basic conoce en tiempo de compilación la interfaz que se va a llamar, puede comprobar en la biblioteca de tipos si dicha interfaz acepta el método. Después, Visual Basic puede compilar un salto directo al método, mediante una tabla virtual de funciones (vtable). Esto es muchas veces más rápido que el enlace en tiempo de compilación.
Ahora suponga que los métodos Mover y Morder pertenecen a la interfaz Animal y que todas las clases de animales implementan esta interfaz. Ahora podría declarar el argumento Critter como As Animal y los métodos Mover y Morder se enlazarán en tiempo de diseño:
Public Sub Alimentarse(ByVal Critter As Animal, _ ByVal Food As Object) Dim dblDistance As Double ' Código para calcular la distancia a la comida '(omitido). Critter.Mover dblDistance ' Enlace en tiempo de ' diseño. Critter.Morder Food ' Enlace en tiempo de ' diseño. End Sub
Definiendo Propiedades e Implementando Métodos
Crear una aplicación que contiene una clase de Visual Basic .NET
- Inicie Visual Studio .NET y cree un nuevo proyecto de aplicación de consola de Visual Basic .NET llamado EmployeeProperties.
- En el menú Proyecto, haga clic en Agregar clase. En el cuadro de diálogo Agregar nuevo elemento, escriba Employee.vb en el cuadro Nombre y, a continuación, haga clic en Abrir.
- Examine el código de la nueva clase en la ventana Ver código.
Definir campos, constructores y métodos
- Agregue tres campos Private a la clase Employee de la manera siguiente:
Private Name As String Private Salary As Decimal Private HireDate As DateTime
- Defina un constructor para la clase con el fin de inicializar los campos de la clase Employee:
Public Sub New(ByVal Name As String, _ ByVal Salary As Decimal, _ ByVal HireDate As DateTime) Me.Name = Name Me.Salary = Salary Me.HireDate = HireDate End Sub - Agregue un método Public a la clase:
Public Sub PayRise(ByVal Amount As Decimal) Me.Salary += Amount End Sub
Definir propiedades en la clase
- Agregue el código siguiente para agregar una propiedad de lectura y escritura llamada FullName. El descriptor de acceso Get devuelve el nombre del empleado. El descriptor de acceso Set utiliza el parámetro Value que se pasa en el descriptor de acceso Set para establecer el nombre del empleado.
Public Property FullName() As String Get Return Me.Name End Get Set(ByVal Value As String) Me.Name = Value End Set End Property - Agregue el código siguiente para agregar una propiedad ReadOnly llamada Remuneration. El descriptor de acceso Get devuelve el sueldo del empleado. No hay ningún descriptor de acceso Set porque el sueldo no se puede establecer directamente; la única forma de cambiar el sueldo es llamar al método PayRise.
Public ReadOnly Property Remuneration() As Decimal Get Return Me.Salary End Get End Property - Agregue el código siguiente para agregar otra propiedad ReadOnly llamada DaysSinceJoined. El descriptor de acceso Get calcula cuántos días ha trabajado el empleado para la compañía.
Public ReadOnly Property DaysSinceJoined() As Integer Get Dim timespan As TimeSpan = DateTime.Now.Subtract(Me.HireDate) return timespan.Days End Get End Property
Crear un objeto y utilizar las propiedades
- Muestre el código de Module1.vb en la ventana Ver código.
- En el método Main, utilice el operador New para crear un objeto Employee. Asigne la referencia de objeto a una variable local Employee del siguiente modo:
Dim worker As New Employee( "Jayne Doe", _ 125000, _ New DateTime(1998, 7, 31) ) - Agregue el código siguiente para cambiar la propiedad FullName del empleado. Esto invocará implícitamente el descriptor de acceso Set para la propiedad FullName.
worker.FullName = "Jayne Lafayette"
- Agregue el código siguiente para mostrar los detalles del empleado mediante los descriptores de acceso Get para las propiedades FullName, Remuneration y DaysSinceJoined:
Console.WriteLine("Nombre completo: " & worker.FullName) Console.WriteLine("Remuneración: " & worker.Remuneration) Console.WriteLine("Días trabajados: " & worker.DaysSinceJoined)
Comprobar que funciona
- Genere y ejecute la aplicación.
- La aplicación mostrará la siguiente información en la consola (el valor "Días trabajados" depende de la fecha actual):
Nombre completo: Jayne Lafayette Remuneración: 125000 Días trabajados: 1139
- Vuelva al archivo Module1.vb en la ventana Ver código y agregue el código siguiente al final del método Main:
worker.Remuneration = 1000000
- Pruebe a generar la aplicación. Aparecerá un error de compilación porque Remuneration es una propiedad de sólo lectura.
- Cambie la instrucción de la manera siguiente:
worker.Salary = 1000000
- Pruebe a generar de nuevo la aplicación. Aparecerá otro error de compilación porque el campo Salary está marcado como Private. La única forma de modificar el sueldo del empleado es utilizar el método público PayRise.
NameSpaces
System.Data.SqlClient
El espacio de nombres System.Data.SqlClient es el proveedor de datos de .NET Framework para SQL Server.
Un proveedor de datos de .NET Framework para SQL Server describe una colección de clases utilizada para tener acceso a una base de datos de SQL Server en el espacio administrado. Al utilizar SqlDataAdapter, se puede rellenar un DataSet residente en memoria, que sirve para consultar y actualizar la base de datos.
El espacio de nombres System.Data.SqlClient es el proveedor de datos de .NET Framework para SQL Server.
Un proveedor de datos de .NET Framework para SQL Server describe una colección de clases utilizada para tener acceso a una base de datos de SQL Server en el espacio administrado. Al utilizar SqlDataAdapter, se puede rellenar un DataSet residente en memoria, que sirve para consultar y actualizar la base de datos.
Suscribirse a:
Entradas (Atom)
