El documento introduce los conceptos básicos de los web services y .NET remoting. Explica las características y ventajas de ambos, incluyendo que los web services usan HTTP y XML para permitir la interoperabilidad entre lenguajes, mientras que .NET remoting permite la comunicación entre aplicaciones mediante canales y expone objetos .NET de forma remota. También incluye ejemplos simples de "Hola Mundo" para ambos en C#.
7-Unidad 2: Diseños de Vista-2.3 Introducción Web Services-Desarrollo Ejemplos
1. Unidad 2: Diseños de Vista
2.3. Introducción a Webservices
(Desarrollo, Ejemplos)
Autor(es):
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Plataformas de Desarrollo 2
Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
2. “No puedes derrotar a la persona que
nunca se rinde”
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas de Información
Plataformas de Desarrollo 2
3. Resultado de Aprendizaje
• Desarrollar soluciones informáticas mediante metodologías,
herramientas y estándares que satisfagan los requerimientos
de las organizaciones sobre la base de los principios de la
sociedad de la información.
6. Objetivos
• Adquirir los conceptos básicos relacionados con el web
Service
• Reconocer las características del diseño de web Service
7. Modelo de eventos
• Eventos se generan en el cliente, pero
se manipulan en el servidor
ServerCliente Web
parse message
evento
event handler
event
message
response
Llamada al
manipulador
apropiado
8. Resumen de controles del
servidor
• Controles Web Forms en el servidor
• Familias de controles en el Servidor
o HTML
o ASP.NET
o Validation
o User
o Mobile
• Data Binding
• Page Class
o Unión de código y contenido
9. Familias de controles del
servidor 1/2
• Controles HTML del servidor
o asociados directamente con elementos HTML
o Atributos HTML
o Ejemplos: HtmlAnchor (<a>), HtmlTable
(<table>)
• Controles ASP.NET del servidor
o Controles abstractos
No hay asociacion uno a uno con controles html en
el servidor
o Detección automática del navegador
o Conjunto amplio de controles
o Ejemplo: TextBox (<asp:textbox>)
10. Familias de controles del
servidor 2/2
• Controles de validación
o Chequeo de la entrada de datos por el usuario
o Diferentes tipos de validación
Entrada requerida
Comparaciones, chequeo de rangos, matcheo de
patrones
Definidos por el usuario
• Controles de Usuario
o Particion y remodelacion de la funcionabilidad
o Extensión .ascx
o Soporta el modelo de objetos
• Controles para móviles
11. Sintaxis de los Server Controls
• Analizando detenidamente la sintaxis
ASP.NET
o <asp:controlName attributes />
o controlName
TextBox, DropDownList, etc
o attributes
Id=controlID
runat=server
12. Trabajando con datos 1/3
• SQL y XML
o Acceso y manipulación de los datos
• APIs de acceso gestionado a datos
provistas por el runtime
• Objetos esenciales
o SQLConnection, SQLCommand, y DataSet
• Espacios de nombres
o System.Data y System.Data.SQL
13. Trabajando con datos 2/3
• Resumen ADO.NET
o Arquitectura de datos desconectada
o Datasets son vistas de datos completamente
relacionadas
o XML y XML esquemas
Internet
Data Object
Dataset
Windows
Form
Web Form
B2B
XML
14. Trabajando con datos 3/3
using System.Data;
ShoppingCart.CalculateOrderSummary();
DataRow row = ShoppingCart.OrderSummary.Rows[0];
lblSubTotal.Text = System.String.Format(“{0:C}“,
row[OrderData.SUB_TOTAL_FIELD]);
<table width=“100%“>
<tr><td>
<asp:Label id=lblSubTotal runat=server>
</asp:Label>
</td></tr>
</table>
• C#:
• ASP.NET:
15. Trabajando con la caché
• Mejora el desempeño de la aplicación
Web
• Caché de salida
o Almacena y devuelve páginas y objetos
o Cacheo de páginas
o Cacheo fragmentado
• Reglas de expirado
• APIs de la Cache
o Personalizar los principios de la cache
16. Migración desde ASP hacia
ASP.NET
• ASP y ASP.NET pueden coexistir en el
mismo servidor
• Hacer uso de las características
ASP.NET
• Para migrar, los ficheros ASP tienen
que ser modificados
• Desempeño
o Código Gestionado vs. código sin gestionar
o Asociacion temprana vs. tarde
17. Detalles de la migración
• Estructura
o Bloques de código y directivas
• Seguridad
o ASP.NET viene con un modelo de seguridad
comprehensivo
• Lenguajes
o C#, Visual Basic.NET
• Data Access
o ADO hacia ADO.NET
18. Servicios Web XML
• Component Object Model (COM).
• Remote Method Invocation (RMI).
• Common Object Request Broker Architecture
(CORBA).
• Internet Inter-ORB Protocol.
No interoperan fácilmente, debido a las
dependencias de un lenguaje particular o
de un sistema operativo o de protocolos
específicos de modelos de objetos.
19. Qué es un servicio web XML 1/3
• Diseñado para garantizar la interoperabilidad
entre las diversas plataformas de desarrollo de
aplicaciones existentes hoy en día.
20. Qué es un servicio web XML 2/3
• Es una unidad de código que puede activarse a
través del uso de pedidos HTTP.
• Permite además que programas desarrollados
en diferentes lenguajes puedan comunicarse
entre sí de un modo estándar.
21. Qué es un servicio web XML 3/3
• La llave fundamental de su éxito ha sido su
diseño del uso de un modelo de mensajes
basados en texto para implementar la
comunicación.
22. Características principales
• Los servicios Web XML solo pueden ser
accedidos vía HTTP.
• Trabajan en un ambiente sin estado, de forma
que cada pedido origina un nuevo objeto que
se crea para satisfacerlo.
• Solo puede manipular elementos que puedan
ser expresados totalmente en XML.
23. “Hello world” en C#
<%@ WebService Language="C#" Class="Hello" %>
using System.Web.Services;
[WebService(Namespace="urn:Hello")]
public class Hello
{
[ WebMethod ]
public string sayHello(string name)
{
return "Hello " + name;
}
}
24. Definición de .NET Remoting
• Es un sistema genérico cuyo objetivo principal
es la comunicación entre diferentes
aplicaciones.
• Los objetos .NET son expuestos a procesos
remotos, de forma que se potencia la
comunicación interprocesos.
25. Definición de .NET Remoting
• Las aplicaciones que participan en la
comunicación pueden estar en diferentes
máquinas de la misma red e inclusive en
diferentes máquinas en distintas redes.
26. Características principales
• Elimina las dificultades de DCOM mediante el
soporte de diferentes formatos de protocolos
de transporte y de comunicación.
27. Características principales
• Pueden ser usados mediante cualquier
protocolo.
• Soporta opciones de manejo de estado y
callbacks.
• Se basa en la existencia de un common
language runtime que contenga las
informaciones sobre los tipos usados.
28. Características principales
• Requiere que los clientes sean construidos
usando Microsoft.NET o cualquier otro
framework que soporte .NET Remoting (un
ambiente homogéneo).
29. Características principales
• Los objetos remotos son accesibles mediante
los “canales”.
• Existen dos tipos “TcpChannel” y
“HttpChannel”.
30. Hello world
Creando el objeto remoto.
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Tcp;
namespace CodeGuru.Remoting
{
public class SampleObject : MarshalByRefObject
{
public SampleObject()
{
}
public string HelloWorld()
{
return "Hello World!";
}
}
}
31. Hello world
Creando el servidor para exponer el objeto remoto.
public static int Main(string [] args)
{
// Create an instance of a channel
TcpChannel channel = new TcpChannel(8080);
ChannelServices.RegisterChannel(channel);
// Register as an available service with the name HelloWorld
RemotingConfiguration.RegisterWellKnownServiceType(
typeof(SampleObject),
"HelloWorld",
WellKnownObjectMode.SingleCall );
System.Console.WriteLine("Press the enter key to exit...");
System.Console.ReadLine();
return 0;
}
32. Hello world
Creando el cliente para usar el objeto remoto.
public class SampleClient
{
public static int Main(string [] args)
{
// Create a channel for communicating w/ the remote object
// Notice no port is specified on the client
TcpChannel chan = new TcpChannel();
ChannelServices.RegisterChannel(chan);
// Create an instance of the remote object
SampleObject obj = (SampleObject) Activator.GetObject(
typeof(CodeGuru.Remoting.SampleObject),
"tcp://localhost:8080/HelloWorld" );
// Use the object
Console.WriteLine(obj.HelloWorld());
return 0;
}
}