모든 GWT 전문가에게 궁금한 점이 있습니다. 최고의 GWT 위젯 라이브러리는 무엇입니까? 그리고 왜?
답변을 바탕으로 목록을 작성하십시오.
- 기본
- 센차 GXT
- 스마트 GWT
- 바딘
- GWT 부트 스트랩
- GwtBootstrap3
- 로켓 GWT (비활성)
- 다다미 (비활성)
- ErraiFramework
- GWTMaterialDesign
JsInterop : наконец- новое поколение основанное на :
모든 GWT 전문가에게 궁금한 점이 있습니다. 최고의 GWT 위젯 라이브러리는 무엇입니까? 그리고 왜?
답변을 바탕으로 목록을 작성하십시오.
JsInterop : наконец- новое поколение основанное на :
답변:
이러한 라이브러리에 자신을 구속하지 마십시오. Vanilla GWT를 사용하여 프로젝트 구조를 만드십시오. 특히 MVP 패턴과 이벤트 버스를 사용하십시오. GWT를 사용하여 클라이언트 응용 프로그램을 가장 잘 설계하는 방법을 알아 보려면 Google 기사를 참조하십시오. MVP 앱 빌드
그런 다음 이러한 라이브러리의 위젯 (예 : 테이블 또는 콤보 박스, 날짜 선택기 등)을 사용하여 프로젝트에 통합 할 수 있습니다. 바닐라 GWT로 확장 구성 요소를 사용하는 방법이 보이지 않는 경우에만 확장 구성 요소를 사용하십시오. 이 방법으로 데모 응용 프로그램에 나타나지 않고 많은 버그가 포함되어 있으며 지원이 가장 좋지 않은 무언가를하려고 할 때 항상 고통스러운 라이브러리에 자신을 묶지 않습니다.
위젯을 찾는 방법은 다음 순서를 따라야합니다.
다른 도서관들과 조심스럽게, 나는 그들과 함께 일했고 (여전히 악몽이 있습니다).
"최고"의 의미에 따라 다릅니다. 가장 잘 보입니까? 최고의 API? 자신 만의 맞춤형 요구에 맞게 확장 할 수 있습니까?
예를 들어, 응용 프로그램에서 사용할 테이블 클래스를 평가하고있었습니다. 우리는 GWT-Ext를 사용하고 있지만 많은 성능 문제가 있으며 필요한 테이블 크기를 얻는 것이 매우 어렵습니다. 나는 GWT-Mosaic 과 매우 가까워 졌지만 대신 GWT 인큐베이터 에서 위젯을 만들기로 결정했습니다 .
왜 내가 이것을 선택 했습니까? 더 나은 단어, 수하물이 없기 때문에 너무 많은 도서관에 자체 라이브러리가있는 것처럼 보입니다. 전체 코드를 일부 MVC 프레임 워크 (나머지 코드베이스의 일부와 완전히 호환되지 않을 수 있음)로 다이빙하거나 누군가의 새로운 얽힌 레이아웃 시스템을 채택해야하거나 그렇지 않은 사실에 따라 살아야합니다. JSNI 래퍼 때문에 코드를 실제로 디버깅하십시오.
틀리지 말아요, GWT 인큐베이터는 완벽하지 않습니다 ... 위젯에는 약간의 흐름이 있습니다. 제 경우에는 이것이 최선의 선택이었습니다. 그것은 나에게 좋습니다 (그러나 완벽하지는 않습니다) :
그래서 ... (나에게) 대답은 다음과 같은 조합입니다.
(제가 언급 한 "수하물"은 반드시 나쁜 것은 아닙니다. 그러나 위젯을 두 개만 원한다면 작업을 수행하는 데 필요한 사항과 방법에 대한 기준을 높일 수 있습니다 잘 했어.)
이 구성 요소 라이브러리를 참조 GWT 부트 스트랩 이 트위터 부트 스트랩의 GWT의 구현입니다.
GWT만으로는 꽤 좋은 라이브러리입니다.
언급 된 것을 모두 사용하지는 않았지만 Ext GWT를 추천 할 수 있습니다 .
언급 된 대부분의 라이브러리는 오픈 소스가 아니며 더 나쁜 것은 JavaScript 라이브러리 위에 래퍼입니다. GWT의 힘은 응용 프로그램이 다른 브라우저에서 작동한다는 사실에 있습니다 ( "큰"브라우저의 코드 생성으로 인해). 이러한 JavaScript 기본 라이브러리는 많은 문제를 일으킬 수 있습니다.
나는 jgindin GWT Incubator와 GWT Mosaic이 지금까지 최고라고 동의합니다.
"최고"라고 말하지는 않지만 요즘 직장에서 GWT-Ext 를 사용 하고 있습니다. 몇 가지 장단점이 있습니다.
장점 :
단점 :
내 경험에 따르면 타사 라이브러리에는 항상 많은 문제가 있습니다. 가장 좋은 방법은 잘 알려진 기술과 자체 구성 요소를 사용하는 것입니다. 작성하고 유지하는 데 시간이 오래 걸릴 수 있지만 TCO는 항상 낮은 수준입니다.
타사 라이브러리는 종종 계획을 예기치 않게 중단시킬 수 있습니다. 그리고 문제의 원인을 찾아서 고치기는 어렵습니다.
따라서 일반 GWT를 사용하는 것이 좋습니다.
나를 위해 EXT-GWT (일명 GXT)는 현재 사용 가능한 최고의 라이브러리이며 6 개월 프로젝트에서 사용하며 그리드, 나무와 같은 미리 정의 된 많은 구성 요소로 많은 도움이됩니다 .... 아름답습니다.
gwt-mosaic의 사용자 그룹이 매우 활동적이지 않아서 Wiki 스 니펫 외에 사용자 설명서를 찾을 수 없습니다. gwt-mosaic은 저에게 두 가지 흥미로운 도구를 소개했습니다.
1) gwt-mosaic에는 앱의 JS 부분 (RPC 처리기, 위젯 콜백, 위젯 설정 기)에 대한 게시 / 구독 도구 인 Tibco의 PageBus 래퍼가 포함되어 있습니다. 이것은 gwt의 이벤트 버스에 대한 대안입니다.
2) gwt-mosaic은 데이터를 위젯에 바인딩하고 위젯을 검증하기 위해 Beans Binding (http://code.google.com/p/gwt-beans-binding/)을 사용하도록 권장합니다.
smartgwt는 전체 기능 세트 및 지원에 비해 저렴하지 않습니다. 사용하지 않는 테마 파일을 제거하지 않으면 jar이 appengine에 너무 큽니다. 그들은 서버 측에도 엔지니어링을 투자합니다.
ext-gwt가 느리고 JS 파일이 크다고 들었습니다.
gwt 위젯 인큐베이터는 더 이상 사용되지 않습니다. 디럭스 그리드는 새로운 gwt와 함께 릴리스 될 것이라고 믿습니다.
룩앤필, 바인딩 및 유효성 검사 표준이 없기 때문에 위젯 라이브러리의 상호 운용성이 저해됩니다.
확실히 SmartGWT가 아닙니다. 그들의 틀은 부풀어 오르고 매우 반 구운 성질을 가지고 있습니다. 그들은 백만 개의 위젯을 가지고 있지만, 프로젝트를 위해 그것들을 작동시키는 것은 쉽지 않습니다. 데이터 소스는 데이터 관리 프로세스를 복잡하게 만듭니다. 예를 들어 데이터 소스에서 데이터를 얻으려면 fecth를 사용하고 자주 검사해야합니다. 결과를 캐시 할 수는 있지만 항상 조사하기가 쉽지는 않습니다.
RPC는 또 다른 약하고 복잡한 영역입니다. 문서와 포럼에 모순되는 정보가 있습니다. 설명서에는 ds의 일부로 사용자 지정 작업을 거의 사용하지 말아야한다고 말하지만 포럼에서는 완벽하게 훌륭하다고 알려줍니다. 이러한 도구를 효과적으로 사용하는 방법은 며칠 동안 오르막길을 오르는 것입니다.
그들은 제품을 과매도 할 것입니다. 예를 들어, 차트 / 분석 패키지에는 그래프가 포함되어 있습니다. 그러나 이러한 그래프에는 음수 값이 표시되지 않거나 의미있는 방식으로 축 레이블을 조작 할 수 없습니다. 그리고 그들은 포럼에서 "그렇게 무엇을"태도로 이에 대한 질문에 공개적으로 응답합니다. "우리는 이것이 판매 포인트 중 하나이지만 로드맵에있는 3.0x에 추가 할 계획은 없습니다." 그들이 나에게 패키지를 팔았을 때, 그들은 음수 값을 표시 할 수 없다고 언급하지 않았습니다. 정말? 음수 값을 표시 할 필요가없는 그래프는 무엇입니까? 나는 불행한 동형 고객의 수를 묘사하는 사람 중 하나만 생각할 수 있습니다.
이 사람들을 멀리하고 ExtJS, JQuery, quxdoo와 같은 경쟁사 사이트로 향하십시오. 실제로 발전하고 있으며 실제로 좋은 솔루션을 제공하는 몇 가지 프로젝트가 있습니다.
이 제품을 평가할 때는 각별히주의하십시오. 멋지게 보이지만 그것을 사용하는 프로젝트에 약 2 주가 걸리면 무슨 뜻인지 알기 시작할 것입니다. 위젯은 반으로 구워지고 데이터 소스는 매우 복잡합니다. 포럼 지원 비용을 지불했다고해서 실제로는 snide 이외의 다른 것을 얻게된다는 것을 의미하지는 않습니다. 당신은 그들이 일반적으로 매우 거만하지 않았습니다.
개발 시간과 유지 관리 성을 중요하게 생각한다면이 제품을 사용하지 마십시오. 아, 그리고 마지막 것. 웹 사이트에서 MVC 예제를보십시오. 레이블 "MVC"이외의 다른 MVC와는 아무런 관련이 없습니다. 그들은 그러한 프레임 워크가 경험이없는 개발자를위한 것이며, 그러한 개념이 실제 프로그래밍에는 적용되지 않는다는 것을 확신 시키려고 노력할 것입니다.
Google의 기본 라이브러리는 가장 강력한 라이브러리입니다.
Ext GWT 는 종소리와 휘파람을 추가하지만 Google과 비슷합니다.
우리는 현재 GWT Mosaic 위젯을 좋아합니다 . 우리는 ext-JS와 함께 일했으며 과거에 자체 위젯을 굴 렸습니다. ext-JS 라이센스 및 대량 문제는 우리에게 문제였습니다. 우리 자신을 굴리는 것은 우리가 원하는 것이 아닙니다. 모자이크는 우리에게 프로젝트가 성숙함에 따라 더 행복한 가운데 땅이 될 것이라고 생각하는 행복한 가운데 땅을 제공합니다.
smartGWT는 느리고 예제가 부족하며 기본적인 질문에 대한 답변을 찾기가 매우 어렵습니다. 예를 들어이 포럼에서 답변되지 않은 모든 질문을 확인하십시오. smartgwt를 덤핑하고 있습니다.
우리는 GWT 포틀릿을 사용하여 큰 HR 포털과 몇 개의 작은 응용 프로그램을 구축했습니다 . 프로젝트의 초점은 위젯 모음을 만드는 것이 아니라 간단한 프로그래밍 모델을 만드는 데 있습니다.
웹 사이트에서 :
GWT 포틀릿은 GWT (Google Web Toolkit) 애플리케이션을 빌드하기위한 무료 오픈 소스 웹 프레임 워크입니다. 이 모듈은 매우 단순하고 생산적이지만 강력한 프로그래밍 모델을 정의하여 멋진 모듈 식 GWT 응용 프로그램을 구축합니다.
프로그래밍 모델은 포털 서버 (Liferay, JBoss Portal 등) 용 JSR168 포틀릿을 작성하는 것과 다소 유사합니다. "포털"은 GWT 포틀릿 프레임 워크를 라이브러리로 사용하여 빌드 된 애플리케이션입니다. 응용 프로그램 기능은 선택적 서버 측 DataProvider를 사용하여 느슨하게 결합 된 포틀릿으로 개발되었습니다.
SpiffyUI를 확인하십시오 : www.spiffyui.org
단순한 위젯 라이브러리가 아니라 복잡한 UI / UX GWT 프레임 워크입니다.
두 가지 중요한 점과 대부분의 라이브러리에서 놓친 부분은 단위 테스트 및 디버깅입니다. GWT가 빛나는 곳입니다. vanilla js를 기반으로하는 라이브러리를 사용하는 경우 프로젝트를 단위 테스트하고 디버그 할 수 있습니다. GWT 개발자는 이러한 점을 고려하여 js 종속성이 없거나 최소 인 라이브러리를 사용해야합니다.
우리는 2 년 이상 gwt 프로젝트를 해왔으며 기본 위젯을 고수합니다. 우리는 기본 라이브러리 또는 자체 위젯 확장을 자동으로 채우기 위해 자체 오픈 소스 라이브러리를 만들었습니다. gwt-jet 이라고 확인하십시오 . 대규모 프로덕션 환경에서 사용하기 때문에 테스트를 거쳤으며 시간이 지남에 따라 안전하게 성장하기를 바랍니다.