LightSwitch como fonte de dados

Além de usar de LightSwitch para criar aplicativos, você também pode usá-lo como a camada intermediária para fornecer dados para outros aplicativos. Quando você publica dados de aplicativo de LightSwitch a um servidor web ou do Windows para, os dados são expostos como um serviço de abertura do protocolo de dados (OData). OData fornece um padrão de comunicação com os serviços de dados da Web. Muitas empresas hoje usam OData para trocar dados entre sistemas e parceiros, além de fornecer de acesso em seus armazenamentos de dados. Porque OData é um protocolo padrão, outros aplicativos cliente em quase qualquer plataforma ou dispositivo podem acessar os dados que você cria ou exposto através LightSwitch.

Criando serviços de OData

Um serviço de OData é criado automaticamente para cada fonte de dados em seu aplicativo, com um ponto final separado para cada fonte de dados. Esse recurso se aplica não apenas as tabelas que você define no banco de dados intrínsecos mas também a qualquer fonte de dados anexado, como um banco de dados SQL Server, uma lista do SharePoint, ou mesmo outro serviço de OData.

LightSwitch expõe vários pontos de extremidade OData

Toda a lógica comercial e permissões de usuário que você definir para seus entidades serão executados quando o ponto final é acessado, não importa o que o cliente está acessando serviços. Em vez de lógica comercial e gravação das permissões de usuário de definição para cada aplicativo cliente, você pode usar a camada intermediária de LightSwitch como um local para centralizar o seu código.

Acessando serviços de LightSwitch OData

Quando você implantar um aplicativo de LightSwitch em uma configuração em três níveis (que hospeda a camada intermediária em Serviços de Informações da Internet ou no Windows Azure), os pontos de extremidade de serviço são expostas. Os nomes dos serviços correspondem aos nomes das suas fontes de dados. Por exemplo, o aplicativo de exemplo em Passo a passo: Criando o aplicativo de clínica de visão expõe dois pontos de extremidade de serviço como tem duas fontes de dados: o banco de dados de ApplicationData, que é não intrínseco, e o banco de dados de PrescriptionContoso SQL, que é anexado. Se o aplicativo foi implantado em um site que é chamada “www.contoso.com”, os pontos de extremidade de serviço seriam https://www.contoso.com/ApplicationData.svc e https://www.contoso.com/PrescriptionContoso.svc.

Em cada serviço, você pode navegar para todos os conjuntos de entidade que são modelados no designer de dados. OData define um conjunto de operações consulta que você pode executar em um conjunto de dados usando convenções de URI. Você pode ver um serviço com uma solicitação de HTTP-GET , e o serviço retornará um feed com os resultados na resposta. Por exemplo, você pode ver o serviço de PrescriptionContoso de clínica da visão com o URI https://www.contoso.com/PrescriptionContoso.svc/Products para retornar um conjunto de resultados que contém todos os registros de entidade de produtos.

ObservaçãoObservação

Para exibir os dados brutos de avanço no Internet Explorer, você deve desativar a caixa de seleção de Ativar o modo de exibição de leitura de feed .

Consultas de OData diferenciam maiúsculas de minúsculas; se você especificar produtos em vez de produtos, a consulta não retornará resultado. Você refinar mais suas consultas de OData de várias maneiras. Por exemplo, você pode usar a consulta de https://www.contoso.com/PrescriptionContoso.svc/Products(1) para retornar somente o produto que tem um ProductID de 1. Para retornar todos os produtos na lente importam-se a categoria, você pode usar a consulta de https://www.contoso.com/PrescriptionContoso.svc/Products?Category='Lens Care . Todas as regras de negócio ou permissões que você define em LightSwitch ainda se aplicam. Portanto, os usuários que desejam executar consultas anteriores precisam permissão para exibir produtos.

De a mesma forma, o protocolo de OData define uma maneira padrão para navegar relações entre as propriedades de navegação. Por exemplo, você pode usar a consulta de https://www.contoso.com/PrescriptionContoso/Products(1)/ProductRebates para localizar descontos para um produto que tenha um ProductID de 1 na tabela relacionada de ProductRebates. OData suporta muitas outras operações consulta como OrderBy, Top, Skip, e Sort. Para obter mais informações, consulte OData: Convenções de URI.

Protegendo serviços de LightSwitch OData

Em a maioria dos casos, você desejará controlar quem pode acessar e atualizar os dados no serviço de OData. Você pode controlar o acesso para um aplicativo de LightSwitch usando as configurações. LightSwitch suporta três configurações de autenticação: Os formulários do windows, e.

Se você escolher a autenticação de formulários, LightSwitch permite dois modos de autenticação. Um modo é um protocolo personalizado que os usos da caixa de diálogo de login e que usa API personalizado para um serviço da Web passe credenciais e obtenha um cookie de autenticação de formulários. Se uma solicitação para dados não tem um cookie válido de autenticação de formulários, LightSwitch responde com um desafio básico HTTP. Essa resposta permite clientes que não foram desenvolvidos em LightSwitch para passar credenciais sobre um protocolo HTTP padrão. Se você escolher a autenticação do windows, LightSwitch requer um usuário autenticado do windows fornecer credenciais. Para obter mais informações, consulte Autenticação e autorização do LightSwitch.

O mecanismo de autenticação que você usa, você deve considerar usar a segurança de transporte- nível sobre HTTPS para proteger credenciais, tokens, e dados. Sem HTTPS, formulários, as credenciais básicas, e os tokens de autenticação de formulários são transportados como texto sem formatação. A autenticação do windows é mais seguro, mas, sem HTTPS, todos os dados que são passados entre cliente e servidor ainda serão texto sem formatação. Para atenuar isso, LightSwitch tem HTTPS que define o assistente de publicação que faz com que o aplicativo exigir uma conexão se proteger. Com essa configuração ativada, as solicitações HTTP serão redirecionadas a HTTPS, mas você ainda deve obter e configurar um certificado HTTPS em seu site. Para obter mais informações, consulte Considerações de segurança para LightSwitch.

Além de proteger o acesso ao aplicativo, você também pode usar a segurança baseada em LightSwitch para restringir o acesso às entidades específicas. Por exemplo, você pode permitir que todos os usuários autenticados exibe dados do pedido, mas somente os supervisores podem exibir dados de folha de pagamento. Para obter mais informações, consulte Autenticação e autorização do LightSwitch.

LightSwitch não fornece um mecanismo direto para ocultar ou excluir conjuntos de entidade ou propriedades de entidade de ponto de extremidade de OData. O que você se conecta na camada de dados está visível no ponto final do serviço. Você pode controlar o acesso 2 esses recursos usando os métodos internos do controle de acesso em seu código do serviço de dados. Para obter mais informações, consulte Executar tarefas relacionadas a dados por meio de código.

O exemplo a seguir mostra código que impede que um usuário atualizar ou excluir dados em uma entidade de produtos:

Namespace LightSwitchApplication
   Public Class PrescriptionContosoService
      Private Sub Product_CanUpdate(ByRef result As Boolean)
         result = False
      End Sub
      Private Sub Product_CanDelete(ByRef result As Boolean)
         result = False
      End Sub
      Private Sub Product_CanInsert(ByRef result As Boolean)
         result = False
      End Sub
   End Class
End Namespace
namespace LightSwitchApplication
{
   public partial class PrescriptionContosoService
   {
      partial void Product_CanUpdate(ref bool result)
      {
         result = false;
      }
      partial void Product_CanDelete(ref bool result)
      {
         result = false;
      }
      partial void Product_CanInsert(ref bool result)
      {
         result = false;
      }
   }
}

LightSwitch também fornece a filtragem em nível de linha com o método de EntitySet_Filter . Usando o método, você pode retornar um menor conjunto de registros de uma entidade. O exemplo a seguir retorna apenas os registros de clientes que possuem um TerritoryID de 5:

Private Sub Customers_Filter(ByRef filter As Expression(Of Func(Of Customer, Boolean)))
    filter = Function(e) e.TerritoryId = 5
End Sub
private void Customers_Filter(ref Expression<Func<Customer, bool>> filter)
{
filter = e => e.TerritoryId == 5;
}

Consumir serviços de LightSwitch OData

Qualquer aplicativo que ofereça suporte OData em qualquer plataforma pode consumir opção de OData de LightSwitch. Os métodos para se conectar a um avanço de OData variam pelo aplicativo, mas você normalmente fornece apenas o ponto final de serviço de LightSwitch .

A documentação de LightSwitch contém vários exemplos de aplicativos que consomem OData.

Consulte também

Tarefas

Autenticação e autorização do LightSwitch

Passo a passo: Expor e consumir um serviço de OData em LightSwitch

Explicação passo a passo: Como usar dados do LightSwitch em um aplicativo da Windows Store

Passo a passo: Consumindo serviços LightSwitch no Excel usando PowerPivot

Conceitos

Exposição de dados de aplicativos de LightSwitch

Considerações de segurança para LightSwitch

Executar tarefas relacionadas a dados por meio de código