LightSwitch como origen de datos
Además de utilizar LightSwitch para crear aplicaciones, también puede utilizarla como nivel intermedio para proporcionar datos a otras aplicaciones.Al publicar datos de aplicación de LightSwitch en un servidor web o en Windows Azure, esos datos se expone como servicio abierto de protocolo data protocol (OData).OData proporciona un estándar para comunicarse con servicios de datos sobre el web.Muchas empresas utilizan hoy OData para intercambiar datos entre sistemas y socios, además de proporcionar el acceso en los almacenes de datos.Porque OData es un protocolo estándar, otras aplicaciones cliente en casi cualquier plataforma o dispositivo pueden tener acceso a los datos que crea o expone con LightSwitch.
Crear servicios de OData
Un servicio de OData se crea automáticamente para cada origen de datos, con un extremo independiente para cada origen de datos.Esta funcionalidad no se aplica solo a las tablas que se define en la base de datos intrínseca sino también a cualquier origen de datos adjunto, como una base de datos de SQL Server, una lista de SharePoint, u otro servicio de OData.
Lógica de negocios y permisos de usuario que haya definido para sus entidades se ejecutarán cuando el extremo se tiene acceso, independientemente del cliente obtiene acceso a los servicios.En lugar de la lógica de negocios de escritura y los permisos de usuario de definición para cada aplicación cliente, puede utilizar el nivel intermedio de LightSwitch como un lugar para centralizar su código.
Servicios de acceso de LightSwitch OData
Al implementar una aplicación de LightSwitch en una configuración de tres niveles (que hospeda el nivel intermedio en IIS o Windows Azure), se exponen los extremos de servicio.Los nombres de los servicios corresponden a los nombres de los orígenes de datos.Por ejemplo, la aplicación de ejemplo en Tutorial: Crear la aplicación Vision Clinic expone dos extremos de servicio porque tiene dos orígenes de datos: la base de datos de ApplicationData, que es intrínseca, y la base de datos SQL de PrescriptionContoso, se adjunta que.Si la aplicación se implementa un sitio Web denominado “www.contoso.com”, los extremos de servicio se https://www.contoso.com/ApplicationData.svc y https://www.contoso.com/PrescriptionContoso.svc.
Dentro de cada servicio, puede navegar a todos los conjuntos de entidades que se modelen en el diseñador de datos.OData define un conjunto de operaciones de consulta que puede realizar en los datos mediante un conjunto de convenciones de URI.Puede consultar un servicio con una solicitud de HTTP-GET , y el servicio devolverá una fuente con los resultados en la respuesta.Por ejemplo, puede ver el servicio de PrescriptionContoso de la sesión de Vision con el URI https://www.contoso.com/PrescriptionContoso.svc/Products para devolver un conjunto de resultados que contiene todos los registros de entidad Products.
[!NOTA]
Para ver los datos sin formato de la fuente en Internet Explorer, debe deshabilitar la casilla Activar la vista de lectura de fuentes .
Las consultas de OData distinguen entre mayúsculas y minúsculas; si especifica productos en lugar de productos, la consulta no devolverá ningún resultado.Puede refinar aún más las consultas de OData de varias maneras.Por ejemplo, puede usar la consulta de https://www.contoso.com/PrescriptionContoso.svc/Products(1) para devolver solamente el producto cuyo ProductID de 1.Para devolver todos los productos de la categoría de Lens Care, puede usar la consulta de https://www.contoso.com/PrescriptionContoso.svc/Products?Category='Lens Care .Las reglas de negocios o permiso que todavía definiera en LightSwitch aplican.Por consiguiente, los usuarios que desean ejecutar las consultas anteriores necesitan el permiso para ver Products.
De igual forma, el protocolo de OData define una manera estándar de navegar por las relaciones mediante propiedades de navegación.Por ejemplo, puede usar la consulta de https://www.contoso.com/PrescriptionContoso/Products(1)/ProductRebates para buscar las rebajas para un producto que tiene un ProductID de 1 en la tabla relacionada de ProductRebates.OData admite muchas otras operaciones de consulta como OrderBy, Top, Skip, y Sort.Para obtener más información, vea OData: URI Conventions.
Proteger los servicios de LightSwitch OData
En la mayoría de los casos, es conveniente controlar quién puede tener acceso y actualizar los datos en el servicio de OData.Puede controlar el acceso para una aplicación de LightSwitch utilizando los valores.LightSwitch admite tres valores de autenticación: Ninguno, formularios, y Windows.
Si elige la autenticación de formularios, LightSwitch permite a dos modos de autenticación.Un modo es un protocolo personalizado que las aplicaciones del cuadro de diálogo de inicio de sesión y que usa la API personalizado para que un servicio web pase las credenciales y obtener una cookie de la formulario- autenticación.Si una solicitud para los datos no tiene una cookie válida de la formulario- autenticación, LightSwitch responde con un desafío básico HTTP.Esta respuesta permite a los clientes que no se desarrollaron en LightSwitch para pasar credenciales sobre un protocolo HTTP estándar.Si elige la autenticación de Windows, LightSwitch requiere un usuario autenticado de Windows para proporcionar las credenciales.Para obtener más información, vea Autenticación y autorización de LightSwitch.
Cualquier mecanismo de autenticación utiliza, considere el uso de seguridad de transporte- nivel sobre HTTPS para proteger las credenciales, los tokenes, y los datos.Sin HTTPS, formularios, las credenciales básicas, y los tokenes de la formulario- autenticación se transmiten como texto sin formato.La autenticación de Windows es más segura, pero, sin HTTPS, los datos que se pasa entre el cliente y el servidor seguirá texto sin formato.Para mitigar esto, LightSwitch tiene HTTPS que establece en el Asistente para publicación que hace que la aplicación para requerir una conexión segura.Con este valor habilitado, las solicitudes se redirigidas HTTP a HTTPS, pero todavía debe obtener y configurar un certificado HTTPS en el sitio Web.Para obtener más información, vea Consideraciones de seguridad para LightSwitch.
Además de proteger el acceso a la aplicación, también puede utilizar la seguridad basada en roles en LightSwitch para restringir el acceso a las entidades concretas.Por ejemplo, podría permitir que todos los usuarios autenticados muestran datos order, pero sólo los supervisores pueden mostrar datos de nóminas.Para obtener más información, vea Autenticación y autorización de LightSwitch.
LightSwitch no proporciona un mecanismo sencillo para ocultar o excluir los conjuntos de entidades o propiedades de entidad del extremo de OData.Todo lo que conectar en la capa de datos está visible en el extremo del servicio.Puede controlar el acceso a estos recursos mediante los métodos integrados de control de acceso en el código del servicio de datos.Para obtener más información, vea Realizar tareas relacionadas con datos usando código.
Las escrituras de ejemplo siguientes codifican que impide que un usuario actualizar o eliminar datos en una entidad de Products:
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 también proporciona el filtrado de fila- nivel con el método de EntitySet_Filter .Con este método, puede devolver un conjunto menor de registros de una entidad.El ejemplo siguiente devuelve sólo los registros del cliente que tienen un 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;
}
Utilizar servicios de LightSwitch OData
Cualquier aplicación que admita OData en cualquier plataforma puede consumir las fuentes de OData de LightSwitch.Los métodos para conectarse a una fuente de OData varían por la aplicación, pero se proporciona únicamente el extremo de servicio de LightSwitch .
La documentación de LightSwitch contiene varios ejemplos de las aplicaciones que consumen OData.
Para obtener información sobre cómo utilizar OData de otra aplicación de LightSwitch , vea Tutorial: Exponer y consumir un servicio OData en LightSwitch.
Para obtener información sobre cómo utilizar OData de una aplicación de Tienda Windows , vea Tutorial: Uso de datos de LightSwitch en una aplicación de la Tienda Windows.
Para obtener información sobre cómo utilizar OData de Microsoft Excel, vea Tutorial: Consumir servicios de LightSwitch en Excel usando PowerPivot.
Vea también
Tareas
Autenticación y autorización de LightSwitch
Tutorial: Exponer y consumir un servicio OData en LightSwitch
Tutorial: Uso de datos de LightSwitch en una aplicación de la Tienda Windows
Tutorial: Consumir servicios de LightSwitch en Excel usando PowerPivot
Conceptos
Exponer datos de aplicación de LightSwitch