2012-12-31 3 views
4

저는 breezejs에서 새롭고 몇 가지 질문이 있습니다.breeze js를 사용하여 DBContext와 직접 상호 작용하지 않습니다.

나는 내 자신의 datacontext를 대체 할 수 있도록 breezejs가 매우 멋진 기능을 가지고 있다고 생각합니다. 그러나 breezej가 dbcontext 계층과 직접 상호 작용하는 것을 원하지 않습니다. 실제로, 애플리케이션에서 서비스 레이어는 실제 비즈니스 모델이 아닌 ViewModels 만 컨트롤러에 노출합니다. 따라서 Breeze를 사용하는지 여부는 확신 할 수 없습니다. 일부 Breeze 예제에서는 Breeze가 DBContext와 직접 상호 작용하는 것을 보았 기 때문에 Breeze를 사용할 수 있는지 여부는 확실하지 않습니다.

감사합니다.

=========================================

감사합니다 Ward for the answer,

내가 Breeze에서 좋아하는 기능은 내 클라이언트 측보기 모델을 구축하는 데 많은 시간을 줄이는 데 도움이된다는 것입니다. 또한 SPA를 구축하기 위해 클라이언트 측보기 모델을 유지 관리하는 것이 정말 고통 스럽습니다. 특히 내 응용 프로그램에는 데스크톱 응용 프로그램 클라이언트와 기타 휴대용 장치의 응용 프로그램이 있습니다. 또한 JSon 객체에서 Knockout으로의 매핑을 처리하기 위해 각 뷰 모델을 의미하므로 매퍼도 필요합니다.

현재 내 아키텍처는 다음과 같이이다 :

서버 측 : 저장소 층 < => 서비스 계층 (클라이언트 측에 노출하는 웹 API와) < => 컨트롤러

컨트롤러 만 서비스를 통해 요청을 보내서 뷰 모델의 형식으로 데이터를 가져올 수 있습니다.

제 질문은 Breeze를 쿼리하고 녹아웃과 통합 할 수 있는지 여부입니다.

답변

3

Breeze는 DbContext에서 직접 작동하지 않습니다. 서비스의 끝점 (예 : 웹 API 컨트롤러 메소드)을 통해 노출하는 서비스 모델과 함께 작동합니다. 그러나 클라이언트가 서버의 엔터티와 구조적으로 동일한 엔터티를 쿼리하고 저장할 수있을 때 Breeze에서 최대한의 가치를 얻을 수 있습니다.

Breeze로 ViewModel을 검색 할 수 있습니다. Breeze로 거의 모든 HTTP 서비스 메소드를 호출 할 수 있습니다. Breeze가 클라이언트를 검색 한 후에 Breeze가 클라이언트에서 ViewModel을 관리하는 방법을 명확히 알 수 없습니다.

"매우 좋은"으로 보이는 Breeze의 기능은 무엇입니까? 이 질문에 대한 귀하의 대답은 Breeze가 귀하가 선호하는 아키텍처 스타일에 도움이되는지 판단하는 데 도움이됩니다.

1

DBContext를 직접 사용하는 API 컨트롤러없이 Breeze를 통해 데이터를 쿼리해도 문제가 없어 저장이 어려울 수 있지만 관리가 어려울 수 있습니다. 가장 복잡한 부분은 클라이언트에게 메타 데이터를 가져 오는 것입니다.

this SO answer에 따르면 다른 소스의 메타 데이터를 노출하기위한 샘플은 DBContext가 직접 1 주일 이내에 나옵니다.

한편, 데이터 액세스 설정과 유사한 서버 측 저장소 패턴이 있으므로 BreezeJS spa-template sample을 확인하십시오.