2010-01-30 1 views
18

Apache Wicket과 Apache Click의 차이점은 무엇입니까? Apache 클릭은 유지 관리됩니까? 최신 출시 버전은 2008 년 11 월에 출시 된 것 같습니다. 감사합니다. AchilleasApache Wicket 대 Apache Click

답변

41

클릭이 활발하게 개발되어 최근 Apache Top Level Project로 졸업했습니다. 현재 새 도메인으로 이동 중 : http://click.apache.org. 마이그레이션이 완료되면 다음 버전 2.1.0이 릴리스됩니다.

Click과 Wicket을 비교하기 전에 Apache Click에서 커미터임을 알아 두십시오. 몇 년 전에 Wicket을 평가 했으므로 작동 원리에 대해 상당히 좋은 생각을 가지고 있습니다.

클릭 수는 상태 유지 프레임 워크이며 상태는 Wicket입니다. 클릭에서 페이지와 구성 요소는 각 요청마다 다시 만들어지며 Wicket에서 페이지와 구성 요소는 세션에 저장되고 후속 요청에서 다시 사용됩니다.

Wicket은 모든 GUI 상태가 저장되고 관리되는 복잡한 응용 프로그램 (데스크톱 사용)을 만들기위한 것입니다. 클릭은 페이지를 렌더링하는 데 필요한 거의 또는 전혀 필요없는보다 전통적인 웹 애플리케이션을위한 것입니다. 상태를 저장해야하는 경우 세션에서 추가/제거하여 상태를 직접 관리해야합니다. Wicket이 상태 비 저장 페이지를 지원하고 Click이 상태 저장 페이지를 지원한다고 언급 할만한 가치가 있지만 이러한 프레임 워크의 표준은 아닙니다.

또 다른 차이점은 클릭 컨트롤에서는 렌더링 방법을 알고 있기 때문에 페이지 템플릿에서 마크 업을 반복하지 않아도된다는 것입니다. 원하는 경우 수동으로 템플릿을 레이아웃 할 수 있지만 반드시 필요한 것은 아닙니다. Wicket에서 마크 업은 페이지에 생성 된 구성 요소를 반영해야합니다. Wicket의 아이디어는 자바 개발자가 실제로 템플릿을 생성하거나 유지하지 않고 대신 디자이너가 처리한다는 것입니다.

종류의 개찰구와

+4

+1 : 좋은 균형 잡힌 답변입니다. 그들은 둘 다 강점을 가지고 있으며, 당신은 멋지게 그것을 잡았습니다. –

+1

개찰구가 반드시 상태 저장 될 필요는 없습니다. 기본적으로 개찰구 웹 은 상태가없고 개찰구는 필요한 경우에만 상태 상태로 전환됩니다. 웹 페이지에서 상태 비 저장 구성 요소 (예 : org.apache.wicket.markup.html.form.StatelessForm) 만 신중하게 사용하는 경우 응용 프로그램은 상태 비 저장됩니다. 응용 프로그램에 StatelessChecker를 추가하여 statelessnes를 시행 할 수도 있습니다. 검사기는 문제가되는 상태 보존 구성 요소에 대한 예외를 throw합니다. 다른 게시물을 참조하여 필요한 경우 설정하는 방법을 참조하십시오. –

2

당신이 순수 HTML과 속도 또는 클릭을하는 것처럼 JSP 등 어떤 템플릿 언어를 사용 간주한다. 이것은 html과 java뿐만 아니라 툴링 (디버깅 등)을 배우는 프로그래머에게만 유용하지 않습니다.

더 나은 사용자 인터페이스와 로직 분리를 시행합니다. 클릭당 수와 다른이 개찰구에는 xml이 필요하지 않습니다.

더 많은 차이점 : 개찰구의 메일 링리스트 트래픽이 더 높습니다. 클릭 한 번에 개찰구에 대한 더 많은 출판물 (예 : 책)이 있습니다. 개찰구를 코딩하는 개발자가 더 많습니다. (thisthis)

+2

예, Wicket은 ~ 850.000 줄의 코드로, Click에는 ~ 50.000 줄의 코드 만 포함되어 있습니다. 그것은 복잡성에 대해서도 말해야합니다. 이 정보에 관해서는 클릭이 훨씬 간단합니다. – Palesz

2

개찰구는 개개인의 페이지 작성 방법에보다 많은 유연성을 제공합니다. 전체 응용 프로그램에 대한 구성 요소로 구성된 단일 페이지를 만들거나 원하는대로 여러 페이지를 만들 수 있습니다. 클릭은 페이지 기반입니다. 개찰구는 아약스를 즉시 지원합니다. 개찰구의 아약스 구성 요소 대부분은 브라우저가 아약스를 지원하지 않는 경우 일반 페이지 새로 고침으로 되돌아갑니다. Wicket에는 수십 개의 구성 요소와 관련 프로젝트의 수십 가지 구성 요소가 있습니다. 개찰구에서 발견 할 수있는 훌륭한 특징 중 하나는 자세한 정보입니다. 즉, 내 응용 프로그램의 모든 기능은 내가 만든 것입니다. 나는 아무것도 생성되지 않고 HTML과 CSS로 전체 프리젠 테이션을 쓴다. 마술의 부족은 경험에서 나를 위해 큰 플러스입니다. 마지막으로 그리고 적어도, 많은 대기업들이 개찰기를 사용하고 있습니다. Walmat 모바일 및 Wellsfargo 모바일은 개찰 장치로 수행됩니다.

+0

"내 응용 프로그램의 모든 기능은 내가 만든 것입니다." 아니, 그것은 당신이 wicket 페이지에서해야하는 html에서하는 모든 것을 의미합니다. 주어진 컴포넌트와 관련된 html 요소를 찾거나 그 반대의 경우에 문제가 발생하면 더 좌절하지 않습니다. 코드와 마크 업을 동기화 상태로 유지하는 것은 유지 보수의 악몽입니다. – Gilberto

1

개찰구의 가장 큰 단점은 statefull 자연입니다. 테스트 및 디버그 상태 문제를 단위 화하는 것이 어려울 수 있습니다.Statefull 특성은 더 많은 메모리를 사용하고 하드웨어 예산에 영향을 줄 수 있음을 의미합니다. 개찰구의 상태에 따른 부작용은 수시로 해당 주를 구할 수 있어야 함을 의미합니다. 그렇게하기 위해서는 모든 객체를 직렬화 할 수 있어야합니다.

방금 ​​클릭을 보았습니다. 나는 그 무국적 본성을 좋아한다. 웹은 요청/응답이므로 상태가 없어야합니다 (가능한 한 많이).

나는 또한 apache cayanne와 잘 통합되는 방법을 좋아합니다.

+5

상태가 필요한 경우 상태 기반 자연은 더 이상 단점이 아닙니다. –

+3

나는 그것이 항상 사실이라고 생각하지 않습니다. 작은 webapp에 좋은 개발자는 아마 작은 webapp에 복잡한 상태를 유지하려고하는 많은 문제가 없을 것입니다. 구축 할 대규모 프로젝트 (10 명 이상의 개발자)가있는 경우, 나는 무국적 솔루션으로 몰입 할 것입니다. 빌드, 테스트, 디버그 및 유지 관리가 훨씬 쉬워졌습니다. – clarson

+0

wicket을 사용하여 Stateless 웹 응용 프로그램을 만들 수 있습니다. 저는 개찰구가 달린 무국적 웹샵을 작성했습니다. 내 다른 게시물을 참조하여 무국적자를 시행하는 방법 –