Net Framework 7263v

  • ed by: Jorge Herrero Fernández
  • 0
  • 0
  • May 2022
  • PDF

This document was ed by and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this report form. Report 3i3n4


Overview 26281t

& View Net Framework as PDF for free.

More details 6y5l6z

  • Words: 29,357
  • Pages: 342


249

ASP.NET Modelo Code Behind  El modelo de code behind o modelo de código subyacente hace referencia al código de una página ASP.NET contenido en un archivo de clases independiente. Esto permite separar con claridad el Lenguaje de marcado de hipertexto (HTML) y la lógica de presentación.  Hay que tener en cuenta que la página de código subyacente hereda de la clase Page, que reside en el espacio de nombres System.Web.UI.  El hecho de heredar de la clase Page proporciona a la página de código subyacente a los objetos intrínsecos de ASP.NET, como Request y Response. Además, la herencia de la clase Page proporciona un marco para controlar los eventos de los controles de la página ASP.NET.

250

ASP.NET Modelo Code Behind CodeBehind.aspx <%@ Language="C#" Inherits=“CodeBehind.Class” %>


251

ASP.NET Modelo Code Behind CodeBehind.cs using using using using

System; System.Web; System.Web.UI; System.Web.UI.WebControls;

namespace MiCodigoAux { public class MiClase : Page { protected System.Web.UI.WebControls.Label MiEtiqueta; protected System.Web.UI.WebControls.Button MiBoton; protected System.Web.UI.WebControls.TextBox MiCuadroDeTexto; public void Click(Object sender, EventArgs e) { MiEtiqueta.Text = MiCuadroDeTexto.Text.ToString(); } } }

252

ASP.NET Controles Web – Controles de exploración  Desde la versión 2.0 de ASP.NET se incluyen controles de exploración que facilitan la creación, personalización y mantenimiento de los menús de desplazamiento. Los controles de exploración son: Menu  Permite definir menús dinámicos y enlace a orígenes de datos.  Contiene un menú principal y submenús. TreeView  Muestra una jerarquía de datos en árbol.

253

ASP.NET Controles Web – Controles de exploración SiteMapPath  Muestra el camino de navegación del y la ubicación de la página actual. El control utiliza los datos proporcionados por el objeto SiteMap proporciona muchas opciones para personalizar el aspecto de los vínculos. Obtiene los datos de desplazamiento de un mapa del sitio. Este datos incluyen información sobre las páginas del sitio Web, como la dirección URL, el título, la descripción y la ubicación en la jerarquía de exploración. El mapa del sitio se puede especificar en un fichero web.Sitemap. <siteMap> <siteMapNode title="Home" description="Home" url="~/default.aspx" > <siteMapNode title="Services" description="Services“ url="~/Services.aspx"> <siteMapNode title="Training" description="Training" url="~/Training.aspx" /> <siteMapNode title="Consulting" description="Consulting" url="~/Consulting.aspx"/>

254

ASP.NET Controles Web – Controles de validación  Los controles de validación permiten comprobar los valores introducidos dentro del formulario. La validación puede realizarse tanto en cliente como en servidor. Los controles de validación incluidos son: RegularExpressionValidator  Somete los datos introducidos en el control asociado para comprobar que cumplen con la expresión regular. Muy útil para validar direcciones de correo electrónico, documentos de identidad, números de teléfono, códigos postales, etc. RequiredFieldValidator  Obliga a introducir algún valor en el control asociado.

255

ASP.NET Controles Web – Controles de validación RangeValidator  Comprueba que los datos introducidos en el control asociado estén dentro de los límites superior e inferior especificados. CompareValidator  Permite comparar los datos introducidos en el control asociado con otro control o con un valor constante. CustomValidator  Verifica la validez de los datos introducidos en el control asociado a través de una función de validación específica.

ValidationSummary  No es un control de validación sino más bien de información. Se usa en conjunción con otros controles de validación para mostrar el listado de errores de validación que se ha producido en un formulario. 256

ASP.NET Controles Web – Controles de validación  Es importante mencionar que cuando se realiza la validación en cliente (con controles AJAX o controles ASP.NET) existe una serie de variables y funciones de validación en lenguaje de script que disparan o cancelan las validaciones que es útil conocer.  Page_ClientValidate() fuerza la validación de la página. Dispara todos los validadotes que estén activos en la página y muestra los resultados de validación. También informa la variable de script Page_IsValid que devuelve trae o false en función del éxito de la validación

257

índice 1. ¿Qué es .NET Framework?

12. Uso de excepciones

2. Orígenes de C#

13. Estructuras de datos

3. Características de C#

14. Ficheros y Streams

4. Sintaxis básica

15. Multitarea en C#

5. Arrays

16. ADO.NET

6. Clases, objetos y constructores

17. Patrones de diseño

7. Interfaces

18. ASP.NET

8. Métodos, propiedades, eventos y delegados

19. AJAX

9. Estructuras y enumeraciones

21. Windows Comunication Foundation

10. Espacios de nombres

22. Enterprise Library

20. LINQ

11. Redefinición de operadores e indizadores 258

AJAX Introducción  Provoca un cambio de filosofía en las páginas Web, tanto a nivel de como a nivel de desarrollo.  Aporta al desarrollo Web las siguientes características:  Dinamiza la navegación Web, se aproxima a las aplicaciones de escritorio.  Permite cargar contenidos en segundo plano  Mejora del aspecto (look&feel) considerable.  Mejora del intercambio de información con el servidor:

 Mejora los tiempos de respuesta  Se reduce el flujo de datos global (mejora de comunicaciones)  La parte del servidor reduce los tiempos de procesamiento 259

AJAX Introducción  Es un conjunto de tecnologías combinadas que permiten la comunicación asíncrona entre el cliente y el servidor. Se basa en cuatro tecnologías existentes:  XML utilizado comúnmente para intercambiar datos entre el cliente y el servidor

 DOM Document Object Model, como JavaScript y Jscript que cubre la interfaz de programación en cliente.  XHTML para la presentación y el diseño de la página Web  El objeto XMLHttpRequest, que permite el intercambio de datos asíncrono con el servidor Web.

260

AJAX Introducción  El flujo de navegación con componentes AJAX cambia frente al modelo de navegación anterior: Modelo anterior

Modelo nuevo

261

AJAX Introducción  Bajo un modelo no basado en AJAX el servidor intercambia con el cliente todo el contenido de la página.  A través de AJAX se carga la página completa al inicio y en cada evento que realiza el cliente asociado a AJAX se envía sólo la información solicitada, no toda la página.

262

AJAX Configurando un sitio AJAX  Se pueden crear dos tipos de sitios basados en AJAX:  Con funcionalidad de servidor  Con funcionalidad de cliente y de servidor  Para crear un sitio con funcionalidad AJAX de servidor basta con crear una aplicación Web y asignar un control ScriptManager.

 El control ScriptManager debe estar asignado a cada página que contenga controles AJAX. Esto puede hacerse de dos formas:  Una control o página primaria (por ejemplo una MasterPage) contiene el control ScriptManager y las páginas o controles contenidos un control ScriptManagerProxy  Cada página con contenido AJAX contiene un solo control ScriptManager.

263

AJAX Configurando un sitio AJAX  Para crear un sitio con funcionalidad AJAX de cliente es necesario realizar los mismos pasos que en la configuración de servidor y además algunas instalaciones y configuraciones.  Para poder utilizar controles de cliente basados en AJAX es necesario instalar ASP.NET AJAX Extensions.

 Tras la instalación podemos descargar el catálogo de controles de cliente disponible desde la página oficial de ASP.NET AJAX. Los controles basados en AJAX están en constante evolución, por lo que hay que descargar la última versión  Cada kit de herramientas está etiquetado con una versión del cambio, donde se describen las nuevas funcionalidades incorporadas y los errores corregidos.

264

AJAX Configurando un sitio AJAX  Una vez descargada y descomprimida la colección de controles de AJAX es necesario integrarlos en nuestro sitio Web.

265

AJAX Configurando un sitio AJAX  También es necesario integrar los controles dentro de la ventana de herramientas de Visual Studio. En la ventana de herramientas creamos una nueva pestaña llamada AJAX toolkit, pulsamos con el botón secundario dentro de esta pestaña y seleccionamos Choose Items…

266

AJAX Configurando un sitio AJAX  Localizamos el ensamblado AjaxControlToolkit.dll

 Una vez realizados todos los pasos se mostrará la lista de controles dentro del . Ahora tenemos preparado el proyecto para incorporar los controles AJAX de cliente. 267

AJAX Controles de servidor  Para trabajar con la funcionalidad de AJAX es necesario utilizar una serie de controles de servidor y de cliente. A continuación se enumeran los controles de servidor: ScriptManager  istra el script de cliente para las páginas ASP.NET. Permite la representación parcial de la página y las llamadas a servicios Web de forma asíncrona. Algunas propiedades son: EnablePartialRendering  Habilita la representación parcial de los Update.

EnableScriptGlobalization  Las funciones de JavaScript globalizadas, como el método Date.localeFormat, muestran la información específica de la referencia cultural del cliente. 268

AJAX Controles de servidor Timer  Permite actualizar la página dentro de un intervalo especificado. Utilizado con controles Update se puede actualizar sólo una parte de la página cada cierto tiempo.

269

AJAX Controles de servidor Update  Es un contenedor que permite actualizar su contenido de forma parcial, sin cargar el resto de la página. Debe utilizarse junto con un control ScriptManager.  Los controles Update se pueden utilizar de forma jerárquica provocando la actualización de controles en cascada, dependiendo de la propiedad UpdateMode.  UpdateMode puede ser „always‟, siempre actualiza el contenido para cada postback, o puede ser „conditional‟, entonces se actualizará si se invoca el método Update() del , un padre tiene su propiedad ChildrenAsTrigger habilitada.  Los desencadenadores permiten asociar un evento concreto a la actualización de un Update.

270

AJAX Controles de servidor UpdateProgress  Informa de las actualizaciones parciales que suceden en un Update. Sólo se muestra el contenido cuando un evento provoca la actualización parcial del Update asociado.

271

AJAX Controles de servidor  Este ejemplo muestra una página con dos listas desplegables. La primera muestra un tipo de producto y en función de esta selección se cargan los subtipos en la segunda lista. La actualización de la segunda lista se realiza de forma parcial en la página mediante un Update lanzado con el evento SelectedIndexChanged de la primera lista: Declaración del control ScriptManager

El Update se actualizará sólo al disparar el evento asociado La actualización del control DropDownList2 es parcial al estar contenido en el Update Se asocia al disparador el evento SelectedIndexChanged del control DropDownList1

272

AJAX Controles de servidor  El código fuente asociado a la página no varía y ejecuta como el modelo antiguo, pero sólo se envía al cliente los datos solicitados.

273

AJAX Controles de cliente  Existe gran variedad de controles y cada día surgen nuevos. A continuación comentaremos algunos de ellos. Accordion  Muestra la información en recuadros que se repliegan. Autocomplete  Es un recuadro de texto que propone palabras en función de lo escrito a través de una lista desplegable

274

AJAX Controles de cliente Calendar  Un control de calendario Collapsible  contraíble, permite ocultar el contenido dejando espacio a otras zonas de la página. Drag  Este puede ser arrastrado dentro de la página.

275

AJAX Controles de cliente MaskedEdit  Un recuadro de texto con máscara de formato HtmlEditor  Un control para edición de texto en formato HTML

ColorPicker  Recuadro de selección de color.

276

AJAX Controles de cliente ValidatorCallOut  Muestra los errores de validación en una viñeta. Tabs  Control de pestañas

ResizeableControl  Permite redimensionar el contenido dentro del control

277

AJAX Controles de cliente ReorderList  Permite ordenar los elementos de la lista arrastrando y soltando. NumericUpDown  Control asociado a un TextBox que aumenta o disminuye el valor del TextBox

278

índice 1. ¿Qué es .NET Framework?

12. Uso de excepciones

2. Orígenes de C#

13. Estructuras de datos

3. Características de C#

14. Ficheros y Streams

4. Sintaxis básica

15. Multitarea en C#

5. Arrays

16. ADO.NET

6. Clases, objetos y constructores

17. Patrones de diseño

7. Interfaces

18. ASP.NET

8. Métodos, propiedades, eventos y delegados

19. AJAX

9. Estructuras y enumeraciones

21. Windows Comunication Foundation

10. Espacios de nombres

22. Enterprise Library

20. LINQ

11. Redefinición de operadores e indizadores 279

LINQ Introducción  Language-Integrated Query (LINQ) es un conjunto de características que agrega capacidades de consulta eficaces a la sintaxis de C#.  LINQ incluye patrones estándar y de fácil aprendizaje para consultar y actualizar datos, y su tecnología se puede extender para utilizar potencialmente cualquier tipo de almacén de datos.

 LINQ es una innovación introducida en .NET Framework 3.5 que elimina la distancia que separa el mundo de los objetos y el mundo de los datos.

280

LINQ Introducción  Tradicionalmente, las consultas con datos se expresan como cadenas sencillas, sin comprobación de tipos en tiempo de compilación.  Es necesario aprender un lenguaje de consultas diferente para cada tipo de origen de datos: bases de datos SQL, documentos XML, servicios Web diversos, etc.

 LINQ convierte una consulta en una construcción de lenguaje de primera clase en C#.  Las consultas se escriben para colecciones de objetos fuertemente tipadas, utilizando palabras clave del lenguaje y operadores con los que se está familiarizado.

281

LINQ Orígenes de datos  Existen diferentes variantes dependiendo del origen de datos a utilizar:  LINQ to Objects: Permite realizar consultas sobre colecciones que implementen las interfaces IEnumerable o IEnumerable así como gestionar los datos que están almacenados en una colección de este tipo.  LINQ to XML: Permite trabajar con datos XML que se almacena en la memoria. Proporciona la funcionalidad que el Document Object Model (DOM) suministra, junto con el apoyo de las expresiones de consulta LINQ.  LINQ to SQL: Utilizado para trabajar con datos que se almacenan en una base de datos SQL Server.

282

LINQ Arquitectura

VB.NET 9.0

C# 3.0

Otros

.NET Language Integrated Query LINQ a ADO.NET LINQ a ADO.NET

LINQ a ADO.NET

LINQ a ADO.NET

LINQ a SQL

LINQ a Dataset

LINQ a Entidades

LINQ a XML

LINQ a XML

LINQ a Objetos

• <precio/> •

283

LINQ LINQ To Objects  Representa una nueva forma de ver las colecciones. De la manera convencional, es necesario escribir bucles foreach complejos que especifican cómo recuperar los datos de una colección. En el enfoque de LINQ, se escribe código declarativo que describe lo que se desea recuperar.  Las consultas LINQ ofrecen tres ventajas principales respecto a los bucles foreach tradicionales:  Son más concisas y legibles, sobre todo al filtrar varias condiciones.  Proporcionan funcionalidad eficaz de filtrado, ordenación y agrupación con código de aplicación mínimo.  Se pueden trasladar a otros orígenes de datos con pocas o ningunas modificaciones.  En general, cuanto más compleja sea la operación que se desee realizar con los datos, mayor será el número de ventajas al utilizar LINQ en lugar de las técnicas de iteración tradicionales.

284

LINQ LINQ To XML  Proporciona una interfaz de programación XML en memoria que aprovecha las características de .NET Language-Integrated Query (LINQ) Framework.  Utiliza las características más recientes del lenguaje .NET Framework y es comparable a una actualizada y rediseñada interfaz de programación XML para el Modelo de objetos de documento (DOM).

285

LINQ LINQ a XML – Jerarquía de clases

XDeclaration

XCData

XText

XObjects

XNamespace

XNode

XAttribute

XComment

XDocument

XContainer

XName

Xdocument Type

Xprocessing Instruction

XElement

286

LINQ LINQ To XML  Generando un árbol: XElement s = new XElement ("s", new XElement ("", new XElement ("Name", "Patrick Hines"), new XElement ("Phone", "206-555-0144", new XAttribute("Type", "Home")), new XElement ("phone", "425-555-0145", new XAttribute("Type", "Work")), new XElement ("Address", new XElement ("Street1", "123 Main St"), new XElement ("City", "Mercer Island"), new XElement ("State", "WA"), new XElement ("Postal", "68042") ) ) ); 287

LINQ LINQ To XML  Este fragmento de código muestra como agregar nodos a un fichero XML: XmlDocument doc = new XmlDocument(); XmlElement name = doc.CreateElement("Name"); name.InnerText = "Patrick Hines"; doc.AppendChild(name);

 Algunos métodos de la clase XElement para editar son:

288

LINQ LINQ To XML  Este fragmento de código muestra como eliminar nodos a un fichero XML: root.Element(“Parent1").Element (“child1").Remove(); root.Element("Parent3").Elements().Remove();

 Algunos métodos de la clase XElement para eliminar son:

289

LINQ LINQ To XML  Este fragmento de código muestra una consulta sencilla dentro de un fichero XML para obtener una tabla con el resultado.

290

LINQ LINQ To SQL  Permite tratar los datos procedentes de base de datos relacionales como objetos.  Las consultas en LINQ se traducen a SQL se ejecutan en base de datos. Los resultados se convierten de nuevo en objetos para realizar su tratamiento.  Para realizar el mapeo de las tablas o procedimientos de la base de datos con nuestro proyecto debemos integrar una clase Linq to Sql. Al incorporar la clase al proyecto se generan 3 ficheros:  LinqDb.dbml – el archivo xml que define el mapeo.  LinqDb.dbml.layout – el archivo xml utilizado por el diseñador de Visual Studio.  LinqDb.designer.cs. - archivo de código donde se definen las clases y el contexto.  Una vez definida la conexión, utilizando el diseñador gráfico se genera el mapeo de tablas que seleccionemos y las clases necesarias para utilizar los objetos conectados a las tablas. 291

LINQ LINQ To SQL  En el siguiente fragmento se muestra como consultar una tabla para mostrar los datos por pantalla: DataContext db = new DataContext(@"c:\Northwnd.mdf"); Table Customers = db.GetTable (); var query1 = from cust in Customers where cust.City == "London" select cust; foreach (var cust in query1) { Console.WriteLine("id = {0}, City = {1}", cust.CustomerID, cust.City); }

292

LINQ LINQ To SQL  Para añadir una conexión de datos desde SQL a través de LINQ hay que seguir los siguientes pasos:  Desde el proyecto en el que queremos agregar la conexión agregamos un nuevo elemento:  Seleccionamos la plantilla de LINQ to SQL, asignamos un nombre y añadimos. Se crearán 3 ficheros dentro de nuestro proyecto.

293

LINQ LINQ To SQL  Para crear la conexión que utilizará LINQ accedemos a las herramientas y seleccionamos “Conectar con base de datos”  Configuramos los datos de conexión a la base de datos y seleccionamos la base de datos.

294

LINQ LINQ To SQL  Podemos arrastrar directamente las tablas dentro del fichero DBML donde se crearán las clases de datos correspondientes.

 Al guardar se crearán automáticamente las clases asociadas para mapear los objetos desde la base de datos.

295

LINQ LINQ To SQL  El fichero designer.cs asociado al fichero dbml contiene las definiciones de las clases creadas y una clase DataContext que utilizaremos para realizar las consultas con LINQ.

296

índice 1. ¿Qué es .NET Framework?

12. Uso de excepciones

2. Orígenes de C#

13. Estructuras de datos

3. Características de C#

14. Ficheros y Streams

4. Sintaxis básica

15. Multitarea en C#

5. Arrays

16. ADO.NET

6. Clases, objetos y constructores

17. Patrones de diseño

7. Interfaces

18. ASP.NET

8. Métodos, propiedades, eventos y delegados

19. AJAX

9. Estructuras y enumeraciones

21. Windows Comunication Foundation

10. Espacios de nombres

22. Enterprise Library

20. LINQ

11. Redefinición de operadores e indizadores 297

Windows Comunication Foundation Introducción  Windows Communication Foundation es una plataforma para crear aplicaciones distribuidas. Podríamos definirlo también como el modelo de programación unificado para crear aplicaciones distribuidas.  Las aplicaciones distribuidas se vuelven cada día más complejas, y es primordial que nuestros negocios estén conectados. Esta globalización informática requiere la interacción y la conectividad entre diferentes plataformas e incontables dispositivos. Windows Communication Foundation fue concebido con el objetivo de simplificar el desarrollo de aplicaciones distribuidas.  Una de sus principales características es que cuenta con un modelo de programación unificado. Es la unificación de numerosas capacidades que antes podíamos encontrar en distintas tecnologías. Esto nos libra de tener que estar utilizando más de una tecnología para cumplir satisfactoriamente los requerimientos. De este modo, los desarrolladores harán una tarea de una única manera.

298

Windows Comunication Foundation Tipos de programas de mensajes  Los programas se comunican a través del intercambio de mensajes. Tenemos tres distintos tipos de programas de mensajes.  Programas cliente  Programas servicio  Programas intermediarios

299

Windows Comunication Foundation Programas cliente  Son los programas que inician los mensajes. Por ejemplo, un programa que envía un mensaje a un servicio para realizar una acción específica. Los clientes, a su vez, también pueden recibir mensajes; por ejemplo, un servicio podría enviarle una respuesta a un cliente. Un cliente determina cuándo un servicio se conecta y cuándo se comunica con él.

300

Windows Comunication Foundation Programas servicio  Son programas que reaccionan a un mensaje. Un servicio procesa determinada acción cuando arriba un mensaje. Éste también podría devolver una respuesta como en el ejemplo anterior, pero, a diferencia de un cliente, el servicio no controla la comunicación. No sabe cuándo un cliente va a enviarle un mensaje, ni cuánto durará el intercambio, ni cuál será el volumen de comunicación.

301

Windows Comunication Foundation Programas intermediarios  Una comunicación entre un cliente y un servicio puede producirse a través de otro programa; cuando esto sucede se está utilizando un programa intermediario. Para los clientes y los servicios, el programa intermediario es totalmente invisible. Éste puede desempeñar distintas acciones:  Comportarse como firewall.  Actuar como un gateway.  Desviar un mensaje.  Monitorear una comunicación.  No tenemos que confundir un intermediario con un cliente. Los intermediarios no consumen mensajes, sino que son un pasaje al destinatario.

302

Windows Comunication Foundation Mensajes  La estructura de un mensaje es sencilla. Está compuesto por un sobre que contiene dos partes principales: encabezado y cuerpo.  El cuerpo es el que contiene la carga fundamental del mensaje.  El encabezado posee información que es de utilidad para las aplicaciones que realizan el intercambio. Un mensaje puede contener más de un encabezado, pero sólo puede contener un cuerpo.  Los mensajes son representados como XML. Están cubiertos por un sobre SOAP específicamente de versión 1.1 o 1.2.  Si bien SOAP y XML están fuertemente relacionados con el transporte HTTP, estos mensajes son independientes del transporte. Sobre SOAP Encabezado Cuerpo

303

Windows Comunication Foundation Activación y alojamiento  Esta capa es donde se alojan (hosting) los servicios. Una de las grandes ventajas de esta capa es que nos da la posibilidad de elegir entre varios entornos para el alojamiento.  Si el alojamiento se realiza sobre IIS, tenemos la posibilidad de registrar nuestros servicios para que la activación de éstos se produzca automáticamente la primera vez que un cliente accede a ellos. Esto quiere decir que si un mensaje llega a un servicio que no está activo, éste se activará automáticamente.  En IIS también tenemos la ventaja de contar siempre con la última versión, ya que si el servicio es actualizado, IIS publicará automáticamente la nueva versión.

304

Windows Comunication Foundation Arquitectura Aplicación Contratos

Data Contract

Service runtime Throtting Behavior

Mensajería

Activación y alojamiento

Service Contract

Policy & Binding

Error Behavior

Metadata Behavior

Instance Behavior

Inspection Facilities

Transaction Behavior

Activation Behavior

Concurrency Behavior

Cmd / Control Facilities

SOAP Security Channel HTTP Channel

Message Contract

SOAP Reliability Channel

Text / XML Encoder

T Channel

UDP Channel

X-Proc Channel

Queue Channel

Binary Encoder

WAS

Avalon

.EXE

NT Service

COM +

305

Windows Comunication Foundation Arquitectura  Activación y alojamiento  Encargada de garantizar el funcionamiento sobre distintos entornos, ya sea sobre Internet Information Services IIS, un EXE, un servicio de NT, Avalon o COM+.  Mensajería  Ésta es la responsable de la comunicación entre los servicios, es quien provee la infraestructura de comunicación. A su vez, se encarga de brindar seguridad entre los mensajes y maneja la cola (encolado de servicios).  Service Runtime  Permite ejecutar y cargar nuestros servicios. También istra los behaviors, maneja la concurrencia, instancias de nuevos servicios, etc.  Contratos  Es donde los servicios serán descriptos. Es la capa visible para las aplicaciones. 306

Windows Comunication Foundation Mensajería  La capa de mensajería es la que provee la infraestructura de comunicación. Esto se permite a través de numerosos canales seguros para el transporte.  Es aquí donde también manejaremos la seguridad del servicio y donde podremos personalizar la seguridad de los mensajes.  Una importante característica de esta capa es que nos permite crear mensajes garantizados. Mediante gestores de errores, que controlan tanto la persistencia como la duplicación, etc., podemos lograr un intercambio de mensajes confiables, teniendo la posibilidad, por ejemplo, de recuperar el estado previo de un mensaje luego de una comunicación fallida.  Accediendo a los gestores que se encuentran en esta capa, es posible enviar y recibir mensajes certificados. Esto quiere decir que sólo los recibirá un destinatario seguro, y éste, a su vez, verificará el emisor del mensaje.  Otra característica que encontramos en esta capa es el manejo del encolado de mensajes, es decir, la istración de la cola.

307

Windows Comunication Foundation Service Runtime  El Service Runtime es el responsable de cargar los servicios y ejecutarlos.  Esta capa que maneja la ejecución de todos los servicios también controla los behaviors.  El behavior de error controla los errores que se producen en el servicio, y los captura e informa al cliente.  El behavior de concurrencia controla la sincronización de los threads. Por ejemplo, este behavior podría indicar qué threads no son seguros.  El behavior de instancias maneja la cantidad de instancias que fueron creadas de un servicio para un cliente determinado.  El behavior de trottling nos permite poner límites a las conexiones, sesiones y threads. Por ejemplo, de esta manera podríamos establecer que se permita una sola instancia por cliente.  El behavior de transacciones istra las transacciones producidas en el servicio.  Esta capa también nos permite desarrollar nuestros propios behaviors. Esto nos otorga flexibilidad a la hora de desarrollar servicios. 308

Windows Comunication Foundation Contratos  En esta capa es donde se describen los servicios: su estructura, sus acciones, de qué manera se enlazan o la estructura de datos.  Dentro de esta capa podemos distinguir cuatro tipos de contratos:  El Data Contract  El Message Contract  El Service Contract  Policy & Binding.  Un servicio debe contener, al menos, un Service Contract.  Un servicio debe contener, al menos, un binding (enlace) para ser accesible, y puede contener múltiples enlaces.

309

Windows Comunication Foundation Contratos – Data Contract  Define las estructuras de datos personalizadas del servicio; por ejemplo, si tenemos un conjunto de datos denominado “cliente” y queremos enviárselo a nuestro servicio para que realice una operación, previamente deberá estar definida la estructura de datos “Cliente”. Esto se debe a que las estructuras de datos son enviadas y recibidas entre los servicios con un esquema XML.

[DataContract] public class ClaseResp { [DataMember] public string idProducto; … }

310

Windows Comunication Foundation Contratos – Message Contract  Define el formato del mensaje enviado y recibido por una operación de un servicio. Por ejemplo, qué datos se esperan en el cuerpo del mensaje o qué datos en el encabezado.

311

Windows Comunication Foundation Contratos – Service Contract  Describe qué es lo que hace el servicio. Dentro del Service Contract se encuentran nombres que definen acciones; este conjunto de nombres se denomina “service operations” u “operaciones del servicio”. Siguiendo con nuestro ejemplo de manejo de clientes, nuestro servicio podría contener en esta capa un Service Contract llamado “ObtenerSaldo”, donde se realizaría la acción de “obtener el saldo del cliente”.

[ServiceContract] interface IMiServicio { [OperationContract] ClaseResp MiMetodo(ClaseReq) … }

312

Windows Comunication Foundation Contratos – Policy & Binding  Aquí se describe cómo se conectará nuestro servicio con el exterior. En este contrato se especificarán los detalles de transporte, requerimientos de seguridad y confiabilidad, o formatos de codificación.

313

Windows Comunication Foundation Web Services - Introducción  Los Web Services son una pieza fundamental en la arquitectura de aplicaciones orientadas a servicios.  Su diseño está basado en la interoperabilidad.  Protocolos de comunicación estándar.  Formatos de representación de datos estándar.  Lenguajes de descripción estándar.  Mecanismos de descubrimiento estándar.  Las tecnologías de invocación remota (Web Services/Remoting) son bloques de construcción de SOA (Services-Oriented Architecture).  Los Web Services representan una revolución basada en XML de tecnologías distribuidas.

314

Windows Comunication Foundation Web Services - Introducción  WCF provee interoperabilidad entre distintas plataformas. Esto se logra gracias a la utilización de protocolos estándar.  WCF puede interactuar e integrarse de manera sencilla con Web Services sin necesidad de utilizar códigos complejos o de realizar grandes cambios.  WCF provee:  Comunicación entre distintas plataformas.  Utilización de protocolos estándar.  Fácil integración.  Compatibilidad con la primera generación de Web Services.

315

Windows Comunication Foundation Web Services – ¿Que son los Web Services?  Aplicaciones o servicios que…  Se comunican por protocolos abiertos de Internet.  Procesan los mensajes XML empaquetados en SOAP.  Describen los mensajes usando un esquema XML.  Proveen una descripción de su interfaz con WSDL.  Pueden ser descubiertos vía UDDI.

316

Windows Comunication Foundation Web Services - Interoperabilidad  Los mensajes SOAP ofrecen distintas elecciones de parametrización. Para que los sistemas puedan integrarse uniformemente, debe existir un “acuerdo” en los parámetros utilizados.

Mensaje SOAP    

Nivel de interoperabilidad. Estilo de documento. Formato de mensaje. Estructura de mensaje.

317

Windows Comunication Foundation Web Services - Interoperabilidad Nivel de interoperabilidad  Los bindings estándar proveen distintos niveles de interoperabilidad. El binding Basirofile interoperability es provisto por el Basirofile binding. Éste permite comunicación independiente entre distintas plataformas y compatibilidad con la primera generación de Web Services .NET (asmx). Muchos bindings como éste brindan interoperabilidad, pero a costa de resignar importantes ventajas como transacciones confiables.

318

Windows Comunication Foundation Web Services - Interoperabilidad Estilo del documento  La descripción de los mensajes se puede representar de distintas maneras en WSDL (Web Services Description Language). Ésta puede ser Document Format o RPC Format.  Document Format tiene dos variantes: document/wrapped, donde el contenido se encuentra “contenido” en un elemento contenedor; y document/bare, donde no existe un elemento contenedor.

319

Windows Comunication Foundation Web Services - Interoperabilidad Formato de mensaje  Los mensajes pueden tener dos formatos: Literal o Encoded. En formato Literal, el cuerpo del mensaje corresponde a un esquema XML. El formato Encoded utiliza codificación SOAP. El formato predeterminado es Literal.

320

Windows Comunication Foundation Web Services - Interoperabilidad Estructura del mensaje  Dado que existen varias maneras de guardar información en mensajes SOAP, es necesario sobrescribir la estructura predeterminada de los mensajes que provee WCF para alcanzar un mayor nivel de interoperabilidad. Es para esto que se utilizan los Message Contracts, los cuales se encargan de describir qué parte del mensaje va en el encabezado, qué parte en el cuerpo, etc.

321

Windows Comunication Foundation Web Services – Perfil básico  Los mensajes se conforman de un empaquetado SOAP compuesto por XML estándar.  Cuentan con un esquema XSD, y sus endpoints son descriptos en el WSDL. UDDI

Registro de endpoints

WSDL

Descripción del endpoint

XSD SOAP XML 1.0 + Namespaces

Portable type system Empaquetado Mensajes serializados

Mecanismo de descubrimiento Lenguajes de definición Estándares de comunicación

322

Windows Comunication Foundation Web Services – Limitaciones del perfil básico  El perfil básico (XSD, SOAP, WSDL, UDDI) permite una comunicación básica.  Intercambios XML simples.  Entre fronteras heterogéneas y servicios autónomos.  Compartiendo esquemas que permiten abstracciones útiles.  La mayoría de las aplicaciones distribuidas necesitan más para cubrir las necesidades del escenario con el que se enfrentan.

323

Windows Comunication Foundation Web Services – Plataforma .NET  ASMX es la plataforma actual de WS  Soporta el perfil básico de servicios simples.  No implementa WS-*.  WSE 3.0 es una extensión  Puede usarse para extender el comportamiento de ASMX.  Puede usarse sin ASMX.  Provee soporte a varias especificaciones WS-*.  WCF es la siguiente generación de WS  Provee una solución completa WS-.

324

índice 1. ¿Qué es .NET Framework?

12. Uso de excepciones

2. Orígenes de C#

13. Estructuras de datos

3. Características de C#

14. Ficheros y Streams

4. Sintaxis básica

15. Multitarea en C#

5. Arrays

16. ADO.NET

6. Clases, objetos y constructores

17. Patrones de diseño

7. Interfaces

18. ASP.NET

8. Métodos, propiedades, eventos y delegados

19. AJAX

9. Estructuras y enumeraciones

21. Windows Comunication Foundation

10. Espacios de nombres

22. Enterprise Library

20. LINQ

11. Redefinición de operadores e indizadores 325

Enterprise Library Introducción  Microsoft Enterprise Library es una colección de componentes de software reutilizables (bloques de aplicación) diseñado para ayudar a los desarrolladores de software en el desarrollo empresarial, tales como validaciones, a datos, manejo de excepciones, y muchos otros.

326

Enterprise Library Objetivos  Tener en cuenta el recibido para los application blocks existentes.  Proporcionar nuevos application blocks para dar soporte a retos adicionales en el proceso de desarrollo de software.  Soportar la integración con las nuevas características más relevantes del .NET Framework 4.0.  Aumentar la experiencia acerca de actividades claves del desarrollo.  Simplificar el desarrollo de nuevos application blocks.  Mantener la compatibilidad con versiones anteriores.

327

Enterprise Library Configuración  Incluye una herramienta de configuración que puede integrarse como plugin a Visual Studio y que también se puede ejecutar como una aplicación independiente.  Usar esta herramienta es la mejor forma para configurar Enterprise Library pues presenta una interfaz fácil de usar y que además valida las configuraciones.  El hecho que pueda usarse como una aplicación la transforma en una herramienta de istración para el personal que opera los servidores de producción.

328

Enterprise Library Configuración     

Todos los bloques son configurables. Controla como el bloque trabaja con la aplicación. Especifica cuales bloques se van a utilizar. Bloques pueden ser utilizados con (o sin) archivos de configuración. Los Factories objects construyen objetos de bloque utilizando datos de los archivos de configuración.  La configuración es almacenada en archivos estándar XML (.config ) de manera predeterminada.  Es posible utilizar “Configuration Sources” alternativos.  System, File, Manageable y SQL.

329

Enterprise Library Configuración  Las herramientas de configuración elimina la necesidad de editar los archivos de configuración.  Rápidamente se añade la configuración predeterminada de un bloque.  Propiedades y providers fuertemente tipados (Strongly typed).  La configuración el validada antes de almacenar los cambios.  Se permite encriptar los archivos de configuración.  Es posible especificar configuraciones que son únicas para diferentes entornos (desarrollo, test, producción, etc.).  Incorpora un editor integrado a Visual Studio y también incorpora una consola de configuración externa.

330

Enterprise Library Arquitectura

331

Enterprise Library Bloques de aplicación  Los bloques de aplicación son un nuevo concepto en el .NET framework; es una iniciativa que implica la construcción de pequeños bloques de aplicación bajo ciertas especificaciones, con el fin de proveer servicios transversales a las aplicaciones de negocio, como por ejemplo el a datos, logging, instrumentación o simplemente el mismo a la configuración.  Existen varios bloques de aplicación construidos y la documentación adecuada para que cada uno pueda construir sus propios bloques. Todo esto ha sido enmarcado bajo el Microsoft Enterprise Library.  Cada bloque de Enterprise Library puede ser extendido para ser adaptado a las necesidades particulares de un proyecto.  Los bloques presentan puntos de extensión bien definidos mediante interfaces y clases base que el debe implementar. Estas extensiones son incorporadas a la aplicación usando el archivo de configuración en el cual se explicita el ensamblado y nombre de clase de la extensión. 332

Bloques de aplicación Caché  Es la implementación de un sistema de gestión de la caché con políticas de recolección y expiración.  Su principal característica es permitir persistencia, por ejemplo una base de datos.  El bloque se encarga de mantener sincronizado el cache en memoria y la copia almacenada, cuando la aplicación se reinicia el cache no se pierde, es recuperado desde el lugar de almacenamiento.

333

Bloques de aplicación Criptografía  Facilita la incorporación de funciones de criptografía presentando una interfaz única que permite realizar encriptación y hashing de datos con diversos algoritmos de clave simétrica.  Además incluye un sistema para istrar y distribuir las claves de encriptación.

334

Bloques de aplicación a datos  Facilita uso de ADO.NET, presenta una interfaz con métodos simples para las tareas mas comunes de a datos.  Incorpora un mecanismo de descubrimiento y caching de parámetros de procedimientos almacenados.  Permite escribir código agnóstico compatible con múltiples bases de datos.

335

Bloques de aplicación Manejo de excepciones  Permite simplificar y estructurar el manejo de excepciones.  El código que va en la clausula catch delega el manejo de la excepción al bloque.  Mediante configuración es posible elegir diferentes comportamientos de tratamiento tales como: logging, reemplazar la excepción y envolver la excepción.

336

Bloques de aplicación Logging  Implementa funcionalidad de logging a diferentes destinos tales como:  Registro de eventos  Archivo de texto plano  Base de datos  Email  MSMQ  WMI  Es posible configurar filtros, formatos, múltiples destinos y categorías.

337

Bloques de aplicación Inyección  Implementa funcionalidad de Programación Orientada a Aspectos.  Mediante un mecanismo de intercepción permite extender la funcionalidad de métodos y propiedades sin modificar el código fuente.  Usualmente se utiliza para incorporar funcionalidad transversal como logging, autorizacion, intrumentacion, transacciones y caching.  La funcionalidad transversal es aplicada como póliticas definidas en el archivo de configuración en el cual se determina mediante wildcards a que métodos y propiedades se aplicara que funcionalidad.

338

Bloques de aplicación Seguridad  Estandariza el código necesario para realizar autorización, (determinar si un tiene a un recurso).  Puede operar con Authorization Manager (AZMAN) o simples reglas definidas en el archivo de configuración.  También incluye funcionalidad de caching de identidades que facilita la Implementación de un sistema de tickets para evitar el impacto de rendimiento de autenticar un cada vez que llama un método.

339

Bloques de aplicación Unity    

Es un contenedor de inyección de dependencias (Dependecy Injection). Soporta inyección de constructores, propiedades y métodos. Facilita el desarrollo de aplicaciones modulares y extensibles. También implementa un mecanismo de intercepción para incorporar funcionalidad transversal.

340

Bloques de aplicación Validación  Facilita la incorporación de lógica de validación a una aplicación.  Muchas de las reglas de validación comunes son encapsuladas en clases reutilizables como: largo de string, rango de un numero o fecha y expresión regular.  Estas reglas se pueden utilizar en el código y también ser asignadas a propiedades de clases mediante atributos o usando el archivo de configuración.  Incluye conectores que hacen posible automatizar la validación de controles de formularios Windows Forms, ASP.NET y parámetros de operaciones WCF.

341

everis.com

342

Related Documents 3h463d

Net Framework 7263v
May 2022 0
.net Framework 4v3yd
March 2021 0
Net Framework Cleanup Tool 116z1u
August 2022 0
Net Compact Framework 3c5ct
December 2019 18
Dot Net Framework(ppt) 2s1m2l
March 2021 0
.net Framework 2.0. Zaawansowane Programowanie 352x5v
October 2021 0

More Documents from "Jorge Herrero Fernández" 3r1762

4p345f
December 2019 114
Ibm Cognos 10 Active Report Cookbook 2q3j3
November 2019 84
Consolo La Soledad 23596l
February 2021 0
4p345f
December 2022 0
Temis.pdf h6t3c
February 2023 0
Criteria For Judging 3q6430
November 2021 0