utiliza que objetivos objetivo general funciona definicion como caracteristicas javascript breeze

objetivos - que es html y javascript



¿No es peligroso tener información de consulta en javascript usando breezejs? (3)

¿Qué pasa cuando expones los metadatos? ¿No es eso considerado peligroso? En mi humilde opinión no es seguro exponer los metadatos de DbContext. Sé que puedes construir metadatos en el cliente, pero el punto es hacer las cosas lo más rápido posible (si es seguro).

Comenzando a jugar con breeze.js debido a las ganancias obvias en el tiempo de codificación, es decir, administrar el acceso directo a los datos del modelo desde Javascript (soy un novato aquí, así que obviamente no tengo nada que ver).

En el pasado, he usado las llamadas ajax de inventario para obtener / publicar datos en el servidor, y en el pasado he usado algunas herramientas de cliente diferentes para proporcionar ayuda en la consulta de datos locales, como jLinq .

Mi pregunta es la siguiente. ¿No es peligroso tener acceso de consulta de modelo esencialmente completo en Javascript? Debo estar perdiendo algo porque parece una herramienta muy bien pensada. En el pasado, al menos he controlado lo que se puede enviar al cliente a través del proceso de consulta de back-end, y nuevamente utilizando algo como jLinq, etc., podría filtrar los datos, etc. También puedo entender la compensación tal vez obteniendo la consulta directa / ¿No se duplica el problema del modelo local, por lo tanto, si alguien pudiera proporcionar alguna información sobre esto?

¡Gracias!

EDITAR Obviamente no soy el único, sin embargo, supongo que hay una respuesta razonable, ¿tal vez limitar los datos solicitados utilizando métodos DTO o algo así? La otra pregunta publicada está aquí.


Breeze no pretende ser tu lógica de negocios en ese sentido. Teniendo en cuenta la regla de oro de que si haces algo en Javascript, cualquiera puede hacerlo, debes restringir la visibilidad de tus propios datos de servicio según sea necesario.

En otras palabras, es útil para usted si desea hacer que los datos sean públicamente visibles de todos modos. Pero solo exponga las entidades con las que está contento exponiendo y permitiendo que cualquiera consulte; Otra forma de verlo es que su API se convierta en una API pública para su sitio web (pero no una que usted anuncie y diga a todos que usen).

Personalmente, no soy un fanático de hacer las cosas de esta manera, ya que existe una dependencia creada en el esquema de la implementación del servidor. Si quiero realizar cambios en las tablas de mi base de datos, ahora debo tener en cuenta mi Javascript. También me falta en cuanto a integración y pruebas unitarias.

Sin embargo, puede tener sus usos si desea construir rápidamente una función de sitio web en datos no confidenciales sin tener que construir los métodos de servicio y varias capas de implementación de los mismos.


Puede ser peligroso exponer el modelo de negocio completo. Puede ser peligroso permitir la consulta sin restricciones incluso de esa parte del modelo que desea exponer al cliente. Esto es cierto si ofrece una API fácil de consultar o una que es difícil de consultar.

Es por eso que nuestros equipos tienen cuidado de cómo construimos nuestros servicios.

Solo debe exponer los tipos que su aplicación cliente necesita. Si desea limitar el acceso a las instancias autorizadas de un tipo, puede escribir métodos de servicio no consultables cuidadosamente prescritos. Brisa puede llamarlos bien. No tiene que utilizar las funciones de consulta de Breeze para cada solicitud. Aún se beneficiará del almacenamiento en caché, la navegación de entidades relacionadas, el seguimiento de cambios, la validación, la agrupación de guardado, la consulta de caché y el soporte sin conexión.

Repita: sus métodos de servicio no tienen que devolver IQueryable. Incluso cuando devuelven IQueryable, puede escribir fácilmente el método de servicio para restringir los resultados de la consulta a aquellas entidades que el usuario está autorizado a ver.

Afortunadamente, puede combinar los dos enfoques en el mismo servicio o en los servicios de colaboración.

La brisa te da opciones. Depende de usted ejercer esas elecciones sabiamente. Salga y diseñe sus servicios para satisfacer sus necesidades.