web services
TRANSCRIPT
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Sumário
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Introdução
• Os WebServices são serviços disponíveis como aplicações Web
• Usam os mesmos meios que as aplicações Web (HTML)• Baseiam-se em XML e o padrão SOAP• É uma tecnologia universal que visa estabelecer
interoperabilidade entre sistemas de natureza diferente
• Basicamente, na pratica, visa permitir a execução remota de procedimentos e funções via HTTP
• A .NET Framework oferece suporte a este tipo de tecnologia desde as suas primeiras versões
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Especificações
• SOAP – Oferece o suporte às mensagens trocadas via HTTP ou HTTPS para implementação do serviço
• WSDL – Especifica a forma como devem ser descritos Web Services. É através desta especificação que, por exemplo, é possível que métodos determinado WebService disponibliza
• UDDI – É um protocolo para publicação de Web Services, ou seja, funciona como as páginas amarelas dos Web Services
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Exemplo Prático em C#
• Objectivo: implementar um simples serviço web para leitura e escrita de registos de vendas
• Dadas as semelhanças, os Web Services são implementados num ambiente similar ao usado em aplicações Web
• A arquitectura caracteriza-se basicamente numa aplicação windows que interage com os dados de uma Base de Dados remota através de Web Services:
-
WS
WinForm r10
SOAP
HTTP HTTP HTTP
SOAP SOAP
HTTP HTTP HTTP
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Exemplo Prático - Servidor
• Servidor (Web Service):1. Criar um projecto do tipo Web Application, Web Service2. Configurar a ConnectionString no ficheiro web.config:
Exemplo:<connectionStrings> <add name="defaultConnectionString" connectionString="Data Source=.\
SQLEXPRESS;Initial Catalog=dbtest;Integrated Security=True" /></connectionStrings>
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Exemplo Prático - Servidor
3. Função GetVendas – Destina-se a devolver um DataSet com uma única tabela, correspondente à lista de vendas
[WebMethod]
public DataSet GetVendas()
{
SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["defaultConnectionString"].ConnectionString);
connection.Open();
DataSet ds = new DataSet();
da = new SqlDataAdapter("SELECT * FROM VENDAS", connection);
da.Fill(ds, "Vendas");
connection.Close();
return ds;
}
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Exemplo Prático - Servidor• Função SetVendasChanges – Recebe uma tabela com as alterações. As alterações
na Base de Dados são realizadas pela aplicação de um Command Builter (SqlCommandBuilder):
[WebMethod]public void SetVendasChanges(DataSet inputds){ SqlConnection connection = new
SqlConnection(ConfigurationManager.ConnectionStrings["defaultConnectionString"].ConnectionString);
connection.Open(); da = new SqlDataAdapter("SELECT * FROM VENDAS", connection); if (da == null) return; SqlCommandBuilder cb = new SqlCommandBuilder(da); da.Update(inputds,"Vendas"); inputds.AcceptChanges(); connection.Close();}
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Exemplo Prático – Cliente
• A ligação de um cliente ao Serviço Web faz-se pela adição de uma referência Web, de forma idêntica à adição de uma referência a uma outra assembly
• Deve ser espefificado o url referente ao serviço (que deve estar a correr)
Hélder Oliveira [email protected] ASP .NET – Conceitos Básicos
C# Exemplo Prático – Cliente
• Estabelecida a ligação ao servidor via Web Service, todos os objectos aí disponíveis podem ser instanciados de forma transparente – sem qualquer procedimento adicional além do procedimento normal
• Exemplo:
localhost.Service srv = new localhost.Service();DataSet ds = new DataSet();ds = srv.GetVendas();