문제

저는 현재 JSF와 아이스 공간을 많이 사용하는 웹 앱에서 작업하고 있습니다. 우리는 다른 프레젠테이션 계층으로 이사하는 것에 대한 토론을했으며, 토론을 통해 전문가들이 어떻게 생각하는지 볼 것이라고 생각했습니다.

다른 Java 프리젠 테이션 레이어 기술의 장단점에 대해 누군가가 무게를 측정 할 수 있는지 궁금합니다. 당신이 하나와 함께 일했다면, 왜 그것을 좋아하거나 미워하는지 말하십시오. 여러분이 여러분과 함께 일했다면, 그들이 서로 쌓이는 방법에 대한 인상을주십시오.

고려중인 우리의 기술은 다음과 같습니다.

  • 얼음
  • JSF (얼음 공간 없음)
  • GWT (Google 웹 툴킷)
  • 창구
  • 태피스트리

그리고 내 목록에서 아무것도 놓치면 알려주세요.

감사!

도움이 되었습니까?

해결책

JSP 광산을 너무 많이 넘어간 후 한동안 사용해 왔기 때문에 내 의견은 개찰구를 향해 상당히 편향되어 있습니다.

개찰구 :

  • 레이아웃 및 코드의 진정한 분리.
  • 사이트 요소의 높은 재사용 성을 의미하는 구성 요소 기반; 예를 들어 자동 라벨링 및 CSS 스타일 및 모든 것을 사용하여 예열 형 양식을 만들 수 있으며 구성 요소 생성자의 DAO 객체를 변경하면 다른 프로젝트에서 완전히 재사용 할 수 있습니다.
  • Ajax, Portlets 및 다양한 프레임 워크와 같은 일반적인 제품에 대한 탁월한 지원은 Box 외부에서 직접적으로 직접적으로 제공되며 더 중요한 것은 SLF4J/LOG4J 이외의 다른 것에 의존하지 않으며 모든 것이 선택 사항입니다!

개찰 단점 :

  • 개발은 일반적으로 사물에 대해 약간의 혼란을 겪고 있으며 개찰 제네릭은 1.4에서 많이 청소되었지만 지금은 약간 엉망입니다.
  • 일부 구성 요소 (같은 Form.onSubmit()) 거동을 쉽게 주입하기 위해 광범위한 서브 클래싱 또는 익명 방법이 필요합니다. 이것은 부분적으로 개찰구의 강력한 이벤트 기반 디자인 때문이지만 불행히도 개찰구와 함께 코드를 쉽게 만들 수 있습니다.

임의의 단점 : (즉, 나는 사용하지 않았지만 이것들은 내 오피오언 및/또는 내가 들었던 것들입니다)

  • GWT는 JavaScript 기반으로 나에게 멍청하게 들립니다. 주요 문제는 JSP : S와자가 생성 클래스를 너무 많이 상기시켜줍니다.
  • 태피스트리는 두 가지 사이에 쉽게 검증 될 수있는 방식으로 마크 업과 코드를 올바르게 분리하지 않아 향후 문제를 일으킬 수 있습니다.

다른 팁

나는 몇 가지 작은 프로젝트에 GWT를 사용했습니다. 여기에 내가 좋아하는 것들이 다음과 같습니다.

  1. 기본적으로 Ajax이므로 필요하지 않았습니다. 만들다 그것은 ajax를하고 GWT를 사용하는 것과 함께왔다.
  2. 클라이언트와 서버 측 코드를 잘 분리합니다.
  3. Junit을 사용하여 클라이언트 코드를 통합 할 수 있습니다
  4. 그것은 당신이 ajax이기 때문에 바삭 바삭하고 칙칙한 앱을 구축 할 수 있습니다.

내가 싫어하는 것 :

  1. 어떤 것들은 예상대로 작동하지 않습니다. 예를 들어, 클릭 이벤트가 예상대로 발사되지 않은 경우를 보았으므로 해결 방법을 수행해야했습니다.
  2. Eclipse에서 실행되는 Tomcat에 자동으로 배포하면 때때로 작동이 멈추고 왜 그런지 알 수 없었습니다.

내가 묻는 가장 큰 질문은 왜 프레젠테이션 계층을 바꾸는가? 그것은 매우 비싼 비용이며 한 기술의 이점이 변경 비용만큼이나 다른 기술을 능가하는 것을 볼 수 있습니다 ...

요컨대 :

= JSF =

장점 :

  • 구성 요소 아키텍처;
  • 많은 라이브러리 및 도구;
  • 다소 좋은 IDE 지원

단점 :

  • CPU/메모리에서 중량 그리고 학습 곡선;
  • 예상대로 작동하지 않으면 디버깅하기가 어렵습니다.

= 개찰 =

장점 :

  • 가벼운 중량;
  • 현명한 템플릿 시스템;
  • 좋은 튜토리얼;

단점 :

  • 참조 문서화는 튜토리얼만큼 잘 정리되어 있지 않습니다.
  • 개발 팀은 특히 프로젝트가되고 배양 할 때 심각한 어려움을 겪었습니다. 이것은 프레임 워크의 중요한 측면에 대한 혼란을 초래합니다. 당시 나는 이것 때문에 다른 프레임 워크로 전환해야했습니다 ...

는 어때 ?

내 선택이 될 것입니다 창구. 그것을 사용했으며 탁월한 재사용 가능성을 제공합니다. 가장 활기찬 포럼/메일 링리스트 중 하나가 있습니다. 질문으로 몇 분 안에 대답 할 것입니다. Ajax에 대한 탁월한 지원이 있습니다. 개찰에 기인 한 일반적인 단점 중 하나는 가파른 학습 곡선입니다. 글쎄, 그것들은 더 이상 가치가없는 노년 단점 중 하나였습니다.

JSF : 더 나은 것을 멀리하십시오. JSF에서 프로젝트를 개발 한 다른 팀은 이제 우리의 성공 후 개찰구로 전환 할 생각입니다.

@Megadix : 당신이 말한 것처럼 문서는 처음에는 열악했지만 더 이상은 아닙니다. 개찰구 개발자들이 쓴 개찰구 (Wicket in Action)라는 훌륭한 책이 있습니다. 사이트에 제공된 샘플 코드는 또한 시작하고 배울 수있는 좋은 장소입니다.

웹 클라이언트와는 다른 서비스 계층이 있는지 궁금합니다. 웹 컨트롤러가 단순히 작업을 수행하기 위해 호출하는 것입니다.

그렇다면 웹 UI 기술의 선택은 백엔드에서 분리 될 수 있습니다. 계약 첫 번째 웹 서비스로 노출 된 경우 다른 앱이 공유 할 수 있습니다. 고객이 XML을 보내고받을 수있는 한 서비스와 상호 작용할 수 있습니다. Flex로 전환하고 싶습니까? 걱정하지 마십시오 - 서비스를 가리키고 XML 응답을 렌더링하십시오.

개찰구와 태피스트리 5를 비교하십시오. 5 : Apache Tapestry와 Apache 개찰구의 차이.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top