2012-04-17 4 views
6

저는 모든 서버 측 로직에 .NET MVC를 사용하고 초기 페이지를 제공하지만 클라이언트 측에서는 어플리케이션이 매우 무거워서 Backbone.JS를 사용하고 있습니다. 매우 유용합니다.Serverside MVC와 Backbone.js의 결합

그러나 두 기술을 통합하기 위해 내 시스템을 설계하는 방법을 잘 모르겠습니다. 내가 볼때는 내가 두 가지 옵션

  1. 스크랩 서버 측에 MVC에서 'V'를 가지고 pageload에 클라이언트로 JSON 데이터를 반환하고 GUI에서를 구축하는 백본 클라이언트 측 템플릿을 사용 기본 JSON/백본 모델.

  2. .NET MVC에서 완전히 렌더링 된 서버의 초기 페이지를 반환합니다. 또한 렌더링에 사용 된 데이터를 반환하고 collection.reset({silent: true}) 메서드를 호출하여 반환 된 데이터를 뷰에 연결합니다. 이걸 나중에 보기에서 추가/제거/변경 처리기를 사용하여 변경할 수 있다고 생각합니까?

1 내 핵심 기술이있는 서버 측 MVC의 어느 부분이라도 놓아 두려워서 고생합니다.

2 걱정됩니다. 클라이언트 서버에서 두 가지 다른 렌더링 방법을 사용함으로써 위험을 초래할 수 있습니다.

서버 쪽 MVC를 backbone.js 1 또는 2 또는 다른 방법으로 결합하는 올바른 방법은 무엇입니까?

+1

우리는 require, backbone 및 handlebars와 함께 asp.net MVC를 성공적으로 사용하고 있습니다. 백본을 사용하기 시작했을 때 우리는 서버 페이지를 완전히 사용할 수 없었기 때문에 초기 html을 사용하여 기본 html을 사용하고 강력한 형식의 뷰를 사용하여 특정 모델이나 컬렉션을 부트 스트랩합니다. Google의 자바 스크립트 레이아웃은 서버 측보기의 레이아웃을 대략 반영합니다. 계약서, 제품, 사용자 등 각 섹션에 대한 폴더가 있습니다. 각 폴더에는 각 섹션의 모델,보기 및 템플릿이 포함되어 있습니다. 자세한 질문이나 문제가 있으면 알려주세요. – MrGrigg

+0

참고 : http://stackoverflow.com/a/7711294/48082 – Cheeso

답변

4
  1. 당신은 정말 V을 폐기하지 않는, 당신은 그냥 HTML에서 JSON에 대한 표현의 변화하는 것입니다. 당신은 서버 쪽 물건에 더 편하게 느껴지므로 문제가 있습니다. 그것은 정말로 유효한 관심사가 아닙니다 ... 할 일을 끝내고, 자바 스크립트 패턴을 배우고 만들 수 있습니다.

  2. 이것은 자바 스크립트를 사용 중지 된 대체물이 필요하거나 접근성 가이드 라인을 준수해야하는 경우에 도움이됩니다. 누락 된 부분은 모델을 DOM 요소에 연결하기 위해로드 된 페이지를 다시 렌더링해야한다는 것입니다. 또는이 매핑을 처리하는 도구를 사용할 수도 있지만, 복잡성이 커질수록 자신의 체중을 늘릴 수 있습니다. 백본의 채용 정보 사용에

이, 우리는 자바 스크립트없는 시나리오를 지원하기 위해 바인딩, 우리는 그래서 우리는 단지 초기로드에있는 템플릿 + JS를로드하지 않는 다음 라우터를 통해 많은 시간과 뭔가를 사용하자 너의 첫번째 생각처럼. 처음 시작한 것처럼 들리므로 우리가 실제로 움직이는 데 도움이 된 가장 큰 이유는 way 모델을 변경하고보기가 모델 변경 이벤트에 가입하는 것이 더 쉽다는 것을 깨닫는 것입니다 (다른 방법 대신) 약).

+1

완전히 동의하면 ** 1 ** 점에서 여전히 'V'가 유지됩니다. 또한 서버 측 응용 프로그램 계층과 상호 작용하는 iPhone 응용 프로그램에서와 동일한 방식으로 Backbone 응용 프로그램에 서버 측 언어 도움말을 포기해야한다는 데 동의합니다. – fguillen

1

내가 받아 들일 수있는 방법은 무엇인지 모르겠지만 서버 측에서 V를 결합한 다음 백본 ​​(등)을 짜는 것은 문제가있는 것으로 나타났습니다. 매우 통제 된 상황에서는 문제가 해결 될 수 있지만 응용 프로그램은 클라이언트 측에서 극도로 무거워 질 것입니다. 제 제안은 서버 측에서 렌더링을 잊어 버리고 JSON을 반환하고 Backbone이 템플릿 작성 (콧수염 등)을 통해 콘텐츠 렌더링을 처리하도록하는 것입니다.

예, 백본 이벤트를 완전히 제어 할 수 있으므로 원하는대로 처리 할 수 ​​있습니다.

서버 측에서 설정 한 스킬의 일부를 포기하는 것에 대해 들었습니다. 나는 똑같은 방법 이었지만, 이것이 프로젝트에서 요구하는 것이라면, 서버 측 렌더링이이를 쉽게 처리 할 수 ​​있다고 생각합니다.

행운을 빈다.