2008-08-27 4 views
16

나는 사용자 정의 (특정 종류의 이벤트, 편집) 달력 시스템이있는 데이터베이스 기반 대화 형 AJAX webapp를 만들고 싶습니다. 여기에는 꽤 많은 자바 스크립트와 AJAX가 포함될 것입니다. 인터페이스 용 Google Web Toolkit과 서버 측 Ruby on Rails에 대해 생각했습니다.새 webapp에 Google Web Toolkit을 사용해야합니까?

Google Web Toolkit은 안정적이고 양호합니까? Google Web Toolkit을 선택하면 숨겨진 위험이 있습니까? 서버 측에서 Ruby on Rails와 쉽게 결합 할 수 있습니까? 아니면 jQuery와 같은 JavaScript 라이브러리를 직접 사용하려고합니까?

일부 HTML을 제외하고는 웹 개발 경험이 없지만 숙련 된 프로그래머 (C++, java, C#)이므로이 프로젝트에만 무료 도구를 사용하고 싶습니다.

답변

12

RoR은 실제로 REST를 올바르게 사용하는 한 GWT가 제대로 작동하도록 만든 것 중 하나입니다. Google Web Toolkit 응용 프로그램 서적에 들어 있으며, 이런 종류의 아이디어 인 here을 사용하여 책에서 데모를 볼 수 있습니다. 그것은 당신이 어떤 문제도 없을 것이라고 말하지는 않겠지 만, 나는 그 지원이 분명히 거기에 있다고 생각합니다.

here (MIT 라이센스)을 쉽게 찾을 수있는 RoR/GWT를 만들기위한 깔끔한 프로젝트가 있습니다. 나는 아직 그것을 시험해 볼 기회가 없었지만 좋은 생각이 들어간 것처럼 보인다. 하나의 캐치 (catch)는 2.1 레일즈에서 완전히 테스트되지 않은 것 같아서 단지 2.0 일 뿐이므로 약간의 (아마도 사소하고 수정 가능한) 오류가 발생할 수 있습니다.

1

GWT를 사용하여 모든 것을 Java로 코딩 할 수 있으며 기존 타사 자바 스크립트 라이브러리를 GWT와 통합 할 수 있습니다. 아주 좋습니다. 나는 RoR을 많이 사용하지 않았으므로 그것에 대해 아무 말도 할 수 없다.

1

Java는 사용하지만 Javascript/CSS는 경험이 없다면 GWT는 (물론 배우고 싶지 않다면) 생명의 은사가 될 것입니다. CSS에는 아주 많은 까다로운 세부 사항이 있습니다. IE6에서만 발생하는 2 픽셀 어긋남을 수정하여 반나절을 보내는 것은 드문 일이 아닙니다.

백엔드에서 ROR을 사용하는 것이 얼마나 쉬운 지 확신 할 수 없습니다. GWT 아약스 통신은 서블릿 일 뿐이므로 가능합니다. 그러나 자바 객체를 앞뒤로 전달하기위한 훌륭한 기능을 제공합니다. 서버가 Java를 사용하지 않는 경우에는 사용할 수 없습니다.

0

레일 프레임 워크와 Java VM 사용의 이점을 제공하는 Grails ("Groovy on Rails")을 고려해 볼 수도 있습니다.

2

JAVA를 알고 있고 Tomcat 또는 glassfish 컨테이너와 같이 호스트 할 수있는 곳이면 Ruby를 백엔드보다 많이 사용하는 것이 좋습니다. 주된 이유는 모든 개체를 공유 할 수 있고 RPC 메커니즘을 사용하기 때문입니다. 나는 많은 프로젝트를 위해이 작업을 수행했으며, 자바 객체를 아무 것도 변환하지 않았고 다시 돌아 가지 않기 때문에 코드가 덜 오류가 발생하는 것은 말할 것도없고 거대한 시간 절약 자입니다.

레일즈에서 to_json 함수를 사용하고 GWT에서 JSON을 읽은 후 레일즈와 내 GWT를 연결했습니다. 모두 지원되지만 JAVA에서 백 엔드를 수행하는 것보다 훨씬 성가시다.

물론 저렴한 호스팅을 사용하는 경우 Java 컨테이너는 거의 문제가되지 않습니다.이 경우 레일스가 차선책이라고 생각합니다.

2

GWT는 훌륭한 커뮤니티이며 매우 우수한 품질입니다. 그러나 당신이 원한다면 CSS는 많은 레이아웃을 할 수 있습니다. 보통 웹처럼 레이아웃을 많이 할 수 있습니다.GWT-ext 또는 ExtGWT와 같은 라이브러리는 외형이 뛰어나지 만 앱 가격이 비싸기 때문에 약간 도움이 될 수 있습니다.

4

GWT를 ROR, PHP 등의 Java가 아닌 백엔드와 통합하려는 경우 GWT 1.5가 이제 JavaScript 오버레이 유형을 지원한다는 점을 명심해야합니다. 이 기능을 사용하면 네이티브 JavaScript 객체의 최상위에 매핑 할 수있는 클래스를 작성하여 해당 객체의 속성 및 기타 확장 된 기능에 대한 접근 자 메서드를 쉽게 제공 할 수 있습니다.

자세한 내용은이 링크를 참조하십시오 : AJAX 호출을 통해 JavaScript Overlay Types

그래서 당신은 당신의 백엔드에서 JSON 인코딩 된 데이터를 반환 할 수를 자바 스크립트 객체로 구문 분석 한 후 오버레이를 사용하여 GWT 자바 코드를 통해 데이터에 액세스 수업을 만들었습니다. 또는 페이지를 렌더링 할 때 정적 구성 데이터를 JavaScript 객체로 렌더링하고 AJAX 호출을 수행하여 데이터를 가져올 필요없이이 메커니즘을 통해 읽을 수 있습니다.

1

최근에 the disadvantages of GWT에 대해 썼습니다. 주로, 단점은 응용 프로그램의 일부 변경에 대한 긴 배포주기와 다소 가파른 학습 곡선입니다. 숙련 된 Java 프로그래머 인 경우 두 번째는 문제가 적고 별도의 백엔드를 사용하면 첫 번째 애플리케이션도 완화됩니다 (응용 프로그램의 '서버'부분을 변경하면 완전한 재배포가 주로 필요합니다).

1

GWT는 많은 잠재력을 지닌 멋진 프레임 워크입니다. 그래도 여전히 아주 새롭다는 것을 명심하십시오. 실제로 당신을 귀찮게 할 수있는 해결되지 않은 버그가 있으며, 일반적으로 과거의 추악한 해결 방법이 필요합니다. 커뮤니티는 훌륭하지만 조만간 Google에서 답변을 드릴 수없는 몇 가지 문제가 발생할 것입니다.

하지만 이봐, 나는 그것을 위해 말한다. GWT의 가능성은 대단하며 미래가 밝을 것이라고 확신합니다.

1

새 프로젝트에는 반드시 GWT를 사용해야합니다 (예전 프로젝트에서도 사용하기 쉽습니다).

제 경험상 배우고 사용하는 것이 매우 빠릅니다. 컴파일 된 자바 스크립트 코드는 손으로 직접 쓸 수있는 것보다 훨씬 뛰어납니다.

또 다른 장점은

1

이 블로그는 GWT의 많은 숙련 된 사용자로부터 입력을 가지고 (단독 자바 스크립트 지옥 인) 당신이있는 거 코드를 디버깅하고 훌륭한 토론 포인트가 할 수있는 기능입니다. 저는 개인적으로 다양한 UI 프레임 워크에 대해 많은 경험을했습니다. 나는 두 센트를 더할 것이다. 근본적인 장점과 GWT

GWT는 자바로 웹 계층 프로그래밍 소요

기본 장점 단점 볼 수 있습니다. 따라서 Java의 명백한 이점이 시작됩니다. 그것은 객체 지향 프로그래밍을 제공합니다. 또한 훌륭한 디버깅 및 컴파일 시간 검사를 제공합니다. HTML과 Javascript를 생성하기 때문에 생성기 내에서 복잡성을 숨길 수 있습니다.

기본 단점

단점은 같은 문에서 시작됩니다. GWT는 웹 레이어 프로그래밍을 JAVA로 가져옵니다. JAVA를 알고 있다면 아마도 비즈니스 로직 작성을위한 대안 언어를 찾지 않을 것입니다. 그것은 스스로 충분하고 훌륭합니다.하지만 자바 애플리케이션을위한 설정을 작성할 때다. 우리는 속성 파일, 데이터베이스, XML 등을 사용합니다. 설정을 JAVA 클래스 파일에 저장하지 않습니다. 열심히 생각해보십시오, 왜 그럴까요?

이것은 구성이 정적 데이터이기 때문입니다. 종종 계층이 필요합니다. 그것은 읽을 수 있어야합니다. 결코 편집 할 필요가 없습니다. JAVA 프로그래밍 언어에 대한 지식이 필요하지 않습니다. 즉, 그것은 다른 볼 게임입니다. 이제 문제는 그것이 우리의 토론과 어떻게 관련이 있는가?

이제 웹 페이지를 생각해보십시오. 우리가 웹 페이지를 작성할 때 우리는 비즈니스 로직을 작성한다고 생각합니까? 절대적으로하지. 웹 페이지는 단지 구성 일뿐입니다. 계층 적 컨테이너 및 필드의 구성입니다. 우리는 웹 페이지에서 캡처되어 표시 될 데이터에 대한 비즈니스 로직을 작성해야하며 웹 페이지 자체는 생성하지 않아야합니다.

이전 단락은 매우 강력한 성명을 제공합니다. 이것은 HTML과 XML 기반 웹 페이지가 여전히 가장 인기있는 웹 페이지 인 이유를 설명합니다. XML은 비즈니스 환경에서 구성을 작성하는 데 가장 적합합니다. 프레임 워크는 웹 페이지를 비즈니스 로직 (MVC 프레임 워크의 목표)과 명확하게 구분할 수 있어야합니다. 이렇게하면 웹 디자이너는 XML을 구성하고 프로그래밍 언어의 복잡함에 신경 쓰지 않고 멋진 웹 페이지를 만들 수있는 시각화 및 예술성 기술을 적용 할 수 있습니다. 개발자는 비즈니스 로직 작성을 위해 비즈니스 Java에서 최선을 다할 수 있습니다.

마지막으로 직접적인 반향에 대해 이야기 해보십시오. GWT는이 주체를 끊어서 실패 할 수밖에 없습니다. GWT 응용 프로그램을 개발하는 데 드는 비용은 매우 높을 것입니다. 왜냐하면 웹 페이지를 작성하기 위해 멀티 캐스케이드 프로그래머가 필요하기 때문입니다. 필요한 룩앤필은 달성하기가 매우 어려울 것이다. 불필요한 편집으로 인해 웹 페이지를 수정하는 데 소요되는 시간이 매우 길어집니다. 마지막으로 JAVA에서 웹 페이지를 작성하기 때문에 비즈니스 로직으로 웹 페이지를 쉽게 손상시킬 수 있습니다. 무의식적으로 피해야 할 복잡성을 소개 할 것입니다.

+4

이 큰 프로젝트에 GWT 사용하는 데 깨진 영어 – Yarin

+0

에 기술을 매가 할 수있는 장소가 아니다, 비즈니스 설정은, 6 개월 난 강력하게 동의합니다. GWT는 FAIL입니다. – rapadura

0

우리 팀은 최근 같은 질문을, 우리는 디자이너 플러그인이 팀이 아닌 자바 전문가에 더 접근 GWT 작업 만든 특히 이후, GWT로 이동하기로 결정했습니다. 누구든지이 선택을하면 GWT Designer 플러그인을 사용하지 마십시오! IE8과 호환되는 GWT 응용 프로그램을 만드는 데는 적어도 1 년 동안 업데이트되지 않았습니다.

Google 팀은 Chrome, FF 및 Safari에서 완벽하게 작동하는 애플리케이션 레이아웃을 거의 완료했습니다. 그런 다음 IE에서 폭발했습니다. IE 7은 부분 페이지를로드하지만 (컴포지트는 포함하지 않음) IE8은 응용 프로그램을로드 할 수 없었습니다. 방금 매달 렸습니다.

Designer 플러그인에는 사용자가 IE 호환이 아닌 CellTable 위젯 (CellTable, DeckPanel, 수평 패널, 수직 패널 등)을 추가 할 수있는 버튼이 있습니다. 디자이너가 도움을받지 않고 자바에서 레이아웃을 다시해야 할 때 이러한 문제가 심하게 나타날 것입니다.

숙련 된 GWT 사용자가 좋아하지만 디자이너 플러그인이 당신을 죽일 것입니다.

관련 문제