2011-08-19 5 views
8

Vaadin을 약 1 주일 재생 한 후 Vaadin이 GWT를 사용하는 방법에 대해 궁금합니다. GWT는 Javacode를 Javascript로 컴파일합니다. 재배포 할 때마다이 작업을 수행해야합니다.Vaadin이 GWT를 사용하는 방법을 알지 못합니다.

Vaadin은 Clientside에서 실행되는 코드 작성의 융통성을 없애고 모든 것을 서버로 옮기는 (실제보다 나쁘게 들린다) 서버 통합 프레임 워크로 이해해야하므로 GWT 컴파일러는 한 번만 실행됩니다 시간. 예를 들어 이것은 vaadin 웹 사이트에서 플러그인을 가져올 때 발생합니다.

하지만 쉽지 않을까요? 자바 스크립트 플러그인 코드 만 컴파일하면 이전에 할 수 있었을 것입니다.

그래서, 내 질문은 :

때 Vaadin이는 GWT 컴파일러를 사용합니까하고 JS하기 위해 컴파일 이외의 그 시점에서 무엇을해야합니까?

답변

14

기본적으로 당신이 옳은 것을 가지고 있으며, 주로 스스로 질문에 대답합니다.

  1. 서버 측 "컴포넌트"JDK는
  2. 클라이언트 측

이러한 부품 GWT을 사용하여 컴파일 '위젯 "하여 컴파일 상기 사용자 인터페이스 구성 요소는 두 부분으로 구성 만약 angel에서

HTTP를 통해 서로 통신하고 필요에 따라 자동으로 상태를 동기화합니다. 서버 측 부분은 사용자 인터페이스 구성 요소의 상태를 유지 관리하고 클라이언트 측 위젯은 해당 상태를 렌더링합니다.

응용 프로그램 개발자는 일반적으로 응용 프로그램을 작성하는 데 서버 측 구성 요소 만 사용하며 실제로 클라이언트 측 작동 방식을 신경 쓸 필요가 없습니다. angel이라는 일반적인, 새로운 구성 요소에서

두 가지 방법으로 개발 될 수있다 : GWT/자바 스크립트 (+ 다른 클라이언트 측 기술)와 새로운 위젯을 만들기

  1. 작곡 기존 구성 요소
  2. 여기서 첫 번째 방법은 기존 클래스를 사용하며 GWT로 위젯을 다시 컴파일 할 필요가 없습니다. 응용 프로그램 코드 만 컴파일됩니다 (JDK 컴파일러 사용). 그러나 두 번째 시나리오에서는 클라이언트 측 클래스가 변경되어 다시 컴파일해야합니다. GWT 컴파일러가 필요할 때입니다.

    GWT 컴파일 된 자바 스크립트의 모 놀리 식 특성 (GWT의 새로운 코드 분할 기능에 관계없이 네임 스페이스는 전역 적입니다)로 인해 Vadin은 위젯 집합의 개념을 사용합니다. 이것은 애플리케이션에 필요한 모든 위젯을 포함하는 GWT 모듈입니다. 즉, 새로운 (클라이언트 측) 위젯을 응용 프로그램에 추가하여 GWT 재 컴파일이 필요합니다. 또한 위젯을 제거 할 때 위젯 세트를 다시 컴파일하여 위젯 세트 크기를 최적화하는 것이 좋습니다.

    GWT 컴파일 단계 자체는 특별한 것이 아닙니다. 그러나 Vaadin 자체에는 위젯에서 적용하고 사용하는 GWT 클래스에 대한 추가 기능, 도우미 및 해결 방법이 많이 포함되어 있습니다.

    Vaadin 애드온 (http://vaadin.com/directory 참조)을 사용할 때이 모든 것이 잘 보입니다.추가 기능조차도 단지 jar 파일 일뿐입니다. 새로운 클라이언트 측 위젯 코드가 포함되어있는 경우 프로젝트에 추가 할 때 GWT를 사용하는 위젯 세트 컴파일이 필요합니다.