2012-04-12 4 views
1

저는 자바 개발자이며 웹용 리치 클라이언트를 개발하고 싶습니다. 내 문제는 자바 스크립트, 플래시 등과 웹 클라이언트에 일반적으로 사용되는 대부분의 프로그래밍 언어가 싫다는 것이다. 나는 일반적인 웹 브라우저에서 사용할 수있는 웹 클라이언트를 개발하기 위해 Java를 계속해서 기쁘게 생각하며, 새로운 패션 모바일 장치에 대해서는 그렇지 않습니다. 좋은 조언을 구하기 위해 몇 가지 조언/경고를 찾고 있습니다.자바 근본 주의자를위한 웹 클라이언트 개발 기술

자바 애플릿은 내 경우에는 완벽 해 보이지만 일부 소문에 따르면 실제로는 지속 가능한 해결책이 아닙니다. JavaFX를 살펴볼 필요가 있습니까? GWT? 다른 가능성이 있습니까?

답변

0

GWT를 시도하고 소위 "슈퍼 dev 모드"로 어려움을 겪은 후 JavaScript 프로그래밍이 너무 고통스럽지 않다는 것을 발견했습니다. 나는 스스로를 배우고 실천해야했고 마침내 그것을 완전히 채택했습니다. 자바 스크립트에는 수많은 훌륭한 것들이 있고 엄청난 수의 라이브러리가 있습니다. 제 경우 사람들에게 제 권고는 예를 들어 w3schools tutorial을 사용하여 JavaScript를 배우는 것입니다.

+0

자바에 익숙하다면 GWT를 사용해야합니다. Java는 엄격한 유형화 된 언어이기 때문에 Java는 JavaScript보다 큰 이점이 있습니다. 따라서 컴파일은 많은 런타임 오류를 방지합니다. JavaScript가 배우는 속도가 빠르지 만 프로젝트가 커질수록 오류가 빠르게 발생합니다. 따라서 GWT를 확실히 사용해야합니다. – confile

1

JSF (JavaServer Faces)에 가장 적합합니다. 네, 그냥 사용해보십시오. 이봐 요, 당신은 그들에 멋져요. JSF의 매력은 1입니다. Java EE 2의 일부인 표준화 된 기술입니다. JavaScript 코딩에 비해 Java 프로그래밍에 많은 부분 의존합니다 (전혀 완료되지 않았습니다). 3. JSF는 잠시 동안 사용되어 왔으며 매우 잘 작동합니다. 또한 JSF는 JavaScript의 단일 음절을 쓰지 않고도 즉시 사용할 수있는 Ajax (추가 보너스)와 함께 작동합니다. 유일한 단점은 일부 html 코드를 작성해야한다는 것이며, "facelets"은 기본적으로 HTML 페이지이며 여기에 배워야 할 몇 가지 추가 태그가 있습니다. 그러나 실제 처리의 대부분은 Java로 수행됩니다. JSF는 Java EE의 추가 부담 없이도 작동합니다. Tomcat과 같은 일반 Tomcat (또는 Glassfish 또는 JBoss 등)과 브라우저 및 Java SE (데스크탑 버전)와 함께 작동하도록 제작되었습니다.

+0

클라이언트의 경우 Java 서버가 사용됩니까? – julien

+0

짧은 대답은 아니요, 모두 서버에 있습니다. 그 페이지 중 하나가 브라우저에 도착하기 전에 실제로 일어나는 일은 바람둥이가 그 중 일부를 번역하고 자바 코드가 일부에서 작동 한 다음 브라우저로 이동한다는 것입니다. 이제 고객이 일부 데이터를 입력하고 "제출"을 누르면 Java 코드가 처리하는 서버로 이동하여 데이터베이스를 업데이트 한 다음 Java 코드가 사용자를 표시 할 다음 페이지와 다음 페이지의 내용을 결정합니다 . 그런 다음 클라이언트로 반환됩니다. 판매 시점은 JSF "구성 요소"가 "스윙"의도로 모델링되었다는 것입니다. – SunKing2

+0

http://component-showcase.icesoft.org/component-showcase/showcase.iface 왼쪽 메뉴에서 "확장 구성 요소"를 클릭 한 다음 해당 메뉴에서 "텍스트 입력"을 클릭하십시오. JSF를 사용하는 것이 일반적입니다. (해당 페이지의 다른 쇼케이스 항목은 좀 더 진보 된 JSF입니다.) – SunKing2

1

JavaFX는 Java 기반 RIA 기술로 매우 유망 해 보입니다. 그래도 최첨단이야. Mac OS X 및 Linux 버전은 아직 미리보기로만 제공됩니다. 모바일 및 기타 장치 지원이 발표되었지만 AFAIK는 아직 출시되지 않았습니다.

1

Vaadin 또한 새 구성 요소 개발의 경우에도 Javascript 또는 HTML이 전혀 필요하지 않습니다. 페이지 레이아웃은 레이아웃 관리자 (예 : 스윙)를 사용하여 수행됩니다. 새 구성 요소는 기존 구성 요소 (Swing과 같은)로 구성되거나 GWT (매우 간단하고 순수한 Java)를 사용하여 처음부터 작성 될 수 있습니다.

핵심 프레임 워크가 아닌 일부 기능을 포함하는 합리적인 선택의 부가 기능이 있습니다.

프레임 워크는 스윙 경험이있는 Java 개발자에게 매우 사용하기 쉽고 세련된 모양과 느낌을 그대로 유지합니다. 그러나 레이아웃 관리자는 CSS를 사용하여 모양과 느낌을 변경하는 것을 어렵게 만듭니다. 테두리 추가와 같은 간단한 작업은 어렵습니다.

레이아웃도 꽤 무거워서 Vaadin 웹 사이트가 약간 느려질 수 있습니다. 내 경험에 비추어 볼 때, 그 느낌은 여전히 ​​무거운 JSF 프레임 워크의 일부보다 낫다.

모든 주요 브라우저와 호환됩니다.

논증 : http://demo.vaadin.com/sampler/

또한 Wicket을 고려할 수 있습니다. 이것은 비슷한 컴포넌트 기반 접근법을 가지고 있지만 컴포넌트는 단순한 HTML 조각을 사용하여 정의되므로 훨씬 가벼운 DOM (그리고 더 나은 브라우저 성능)을 제공하고 모양과 느낌을 훨씬 잘 제어 할 수 있습니다. 그러나 개찰구는 더 가파른 학습 곡선을 가지고 있습니다.

+0

감사합니다. 둘 다 살펴 보겠습니다. 명백하게, vaadin은 GWT를 기반으로합니다. – julien

+0

GWT는 Javascript처럼 클라이언트에서 (애플릿과 거의 같은 방식으로) 실행되어 필요에 따라 AJAX를 서버에 호출합니다. Vaadin은 클라이언트 쪽 렌더링을 위해 자체 GWT 구성 요소를 사용하지만 실제로 모든 논리는 서버에 있습니다. 두 부분은 AJAX를 통해 백그라운드에서 통신합니다. 이것은 큰 차이점이며 각 프레임 워크에 대한 코드를 작성할 때 상당히 다른 경험을한다는 것을 의미합니다. – asquithea

4

무엇을 하시겠습니까? Vaadin은 GWT를 기반으로하므로 Java Applet보다 훨씬 느린 HTML5 + JavaScript를 사용합니다. Swing과 보트 및 애플릿을 사용해 보았습니다. Vaadin보다 더 빨리 입니다.

Java Applets, Swing 및 Hessian을 사용하면 비즈니스 응용 프로그램에 탁월한 성능을 제공합니다. Hessian은 매우 빠른 바이너리 웹 서비스 프로토콜입니다.JavaScript를 사용하면 대개 Json 및 다양한 XML 기반 프로토콜과 같은 텍스트 인코딩 웹 서비스 프로토콜로 제한됩니다. 텍스트 기반 프로토콜은 바이너리 프로토콜과 비교하여 CPU, 메모리 및 대역폭을 많이 소비합니다. 실제로는 이점을 전혀 제공하지 않습니다.

애플릿의 약점은 OpenGL 및 멀티미디어와 같은 하드웨어 가속 그래픽입니다. 게임이나 영화 플레이어 애플릿을 개발하는 경우 그다지 좋지 않습니다.

JavaFX는 하드웨어 가속 그래픽 성능 및 비디오 코덱을 약속합니다. 당신이 그것을 기다릴 필요가 있는지 당신의 설명과 함께 그것은 명확하지 않다.

그러나 표준 애플릿이 웹 시작보다 제공 할 수있는 것 이상을 필요로하는 경우 해결책이 될 수 있습니다. 태양에 의해 서명되거나 사용자에게 질문함으로써 추가 권한을 얻는 서명 또는 서명되지 않은 응용 프로그램이있는 이전 ActiveX와 약간 비슷합니다. 이렇게하면 JOGL 또는 3D 장면 그래프 엔진을 사용할 수 있습니다.

+1

+1 : 나는 vaadin을 사용했으며 매우 느리고 자원을 많이 소비합니다. –

+1

Vaadin이 HTML과 JavaScript를 사용하여 Swing이하는 일을 수행하기 때문에 그게 끔찍한 일입니다. 스윙은 엔터프라이즈이기 때문에 많은 네이티브 데스크톱 인터페이스보다 느립니다. 그러나 Vaadin이나 HTML 및 JavaScript를 사용하려는 다른 시도보다 훨씬 빠릅니다. 일부는 "그렇지만 다른 HTML 프레임 워크는 더 빠릅니다"라고 주장합니다. Vaadin을 제외하고 HTML 용 전체 GUI 프레임 워크가 있습니까? 없음. – user1657170