ZK(프레임워크)

ZK (framework)
ZK
개발자zkoss.org
안정된 릴리스
2021년 8월 10일 9.6.0, 11개월(2021-08-10)[1]
저장소
운영 체제크로스 플랫폼(JVM)
유형Ajax 웹 프레임워크
면허증.LGPL / ZOL / 커머셜[2]
웹 사이트zkoss.org

ZK는 Java로 [3][4][5]작성된 오픈 소스 Ajax애플리케이션 프레임워크로, 필요한 프로그래밍 지식이 거의 없는 웹 애플리케이션을 위한 그래픽 사용자 인터페이스를 만들 수 있습니다.

ZK의 핵심은 Ajax 기반 이벤트 구동 메커니즘, 123개 이상의 XUL 및 83개 이상의 XHTML 기반 구성 [6]요소 및 사용자 인터페이스 설계를 위한 마크업 언어로 구성됩니다.프로그래머는 기능이 풍부한 XUL/XHTML 컴포넌트로 애플리케이션 페이지를 설계하고 최종 사용자의 활동에 의해 트리거된 이벤트로 조작합니다.데스크톱 GUI 기반 응용 프로그램에서 볼 수 있는 프로그래밍 모델과 유사합니다.

ZK는 컴포넌트의 콘텐츠 동기화 및 클라이언트와 서버 간의 이벤트 파이프라인 처리를 엔진에 의해 자동으로 수행하며 Ajax 배관 코드는 웹 애플리케이션 개발자에게 완전히 투과적인 접근 방식을 사용합니다.따라서 최종 사용자는 데스크톱 애플리케이션과 유사한 인터랙티브성과 응답성을 제공하면서도 프로그래머의 개발은 데스크톱 애플리케이션과 유사한 단순성을 유지합니다.

ZK는 표준 웹 요청 <=> 응답 메커니즘을 사용하지 않으며 GET + 쿼리 파라미터 또는1개의 POST 요청을 사용하여 양식 필드를 서버로 보내지 않습니다.대신 각 화면 위젯의 내부 상태를 업데이트하기 위해 AJAX 요청이 서버로 전송됩니다.브라우저에서 ZK는 웹 페이지의 JSON 설명만 다운로드하고 클라이언트 렌더러를 사용하여 이를 UI로 변환합니다.매우 효율적이며 정밀 검사를 받고 있어 한 번에 모든 것을 다운로드 할 수 없습니다.클라이언트와 서버 간의 트래픽을 보면 페이지 렌더링이 완료될 때까지 클라이언트와 브라우저 간에 여러 가지 요구가 오가고 있음을 알 수 있습니다.

옵션의 클라이언트측 커스터마이즈에 의해 개발자는 클라이언트측 자원을, 이른바 서버+클라이언트 퓨전이라고 불리는 것으로, 커스터마이즈 해 Ajax 트래픽을 삭감할 수 있습니다.

Swing과 유사한 방식의 컴포넌트 기반 프로그래밍 외에 ZK는 ZUML이라는 리치 사용자 인터페이스 정의를 위한 마크업 언어를 지원합니다.

  • ZUML은 프로그래머가 아닌 개발자가 직관적으로 사용자 인터페이스를 설계할 수 있도록 설계되었습니다.
  • ZUML을 사용하면 개발자는 Mozilla XUL 언어나 XHTML과 같은 다른 마크업 언어를 같은 페이지에 심리스하게 결합할 수 있습니다.
  • ZUML을 사용하면 개발자는 스크립트를 순수 Java 언어(BeanShell에서 인터프리터)로 삽입하고 EL 식을 사용하여 컴포넌트를 조작하고 데이터에 액세스할 수 있습니다.

특징들

ZK6의 iDempiere의 webui 인터페이스
  • 심플한 자바ZK는 "Ajax without JavaScript" 접근으로 유명하며 개발자들은 Ajax와 JavaScript에 대한 지식 없이도 풍부한 웹 애플리케이션을 투명하게 구축할 수 있습니다.
  • 응답성이 뛰어난 설계 테마와 부트스트랩 지원
  • HTML 5 및 CSS 3 지원
  • 100개가 넘는 Ajax 컴포넌트가 엔터프라이즈 Ajax 애플리케이션의 요구를 충족시키기 위해 UI 설계자에게 다양한 기능을 갖춘 컴포함된 컴포넌트를 제공합니다.
  • ZUML은 풍부한 사용자 인터페이스의 설계를 HTML 페이지를 작성하는 것과 유사하게 만듭니다.ZUML은 XML에서 사용할 수 있는 모든 기능을 상속하는 XUL의 변형으로 UI 정의와 런타임 로직을 분리합니다.
  • 이벤트 기반 컴포넌트 기반 모델(데스크탑 프로그래밍 모델과 유사)로 여러 이벤트 기반 GUI 설계 [7]패턴을 지원합니다.
  • 모델뷰컨트롤러([8]MVC), 모델뷰프레젠터 및 모델뷰뷰뷰모델[9](MVVM)[10] 설계
  • UI 뷰와 데이터 및 POJO 간의 CRUD 및 상태 동기화를 자동화하는 ZUML 페이지 내 주석을 통한 데이터 바인딩 기능.
  • 스프레드시트, 피벗 테이블 및 캘린더와 같은 응용 프로그램 구성 요소.
  • 자바(Beanshell[11])에 스크립트 지원 내장.이는 사용자 인터페이스와 백엔드 프로그래밍 모두에서 통합 프로그래밍 언어를 사용할 수 있기 때문에 중요한 이점입니다.JavaScript[12](Rino), Ruby[13](JRuby), Python(Jython[14]), Groovy [15]등의 다른 언어로 된 다른 서버 사이드 자바 스크립팅 지원(옵션)
  • JSP 사용자 정의 태그 라이브러리, JSF 지원, 포틀렛 및 서블릿 필터를 통해 기존 웹 프레임워크와의 통합을 지원합니다.스프링 및 휴지 상태를 지원합니다.
  • 프로그래머가 새로운 커스텀 UI 컨트롤을 작성할 수 있도록 확장 가능합니다.컨트롤 그룹은 매크로 구성 요소로 재사용할 수 있습니다.
  • ZK 차트를 사용한 광범위한 차트 작성

ZK 9.5.0

최신 버전 9.5.0은 2020년 [16]9월 29일에 출시되었습니다.80개 이상의 변경 사항과 WCAG의 프리뷰 버전이 포함되어 있습니다.

XUL과의 차이점

  • ZK는 HTML을 내보내는 서버 측 프레임워크이므로 Gecko의 클라이언트 측 존재에 의존하지 않고 어떤 브라우저에서도 휴대할 수 있습니다.ZK는 ZUML(xul 및 xhtml) 서버 사이드 페이지를 입력으로 받아 브라우저용 dhtml을 출력합니다.
  • ZK는 Java에서 서버상의 사용자 인터페이스 로직을 처리합니다.이를 통해 스크립트엔진 및 응용 프로그램라이브러리에서 로직 작성에 사용할 수 있는 선택지가 넓어집니다.프레젠테이션 효과는 클라이언트 측 액션 기능을 사용하여 브라우저에 위임하여 dhtml 효과를 위한 서버 로드를 줄일 수 있습니다.단일 애플리케이션 컨테이너 내의 서버에서 애플리케이션 로직을 실행하면 브라우저에서 DOM을 광범위하게 프로그래밍할 때보다 크로스 브라우저 및 브라우저 버전 테스트의 양이 줄어듭니다.
  • ZK와 XUL에는 중복되는 컴포넌트 서브셋이 있지만 ZK에는 독자적인 컴포넌트 세트가 있습니다.컴포넌트 라이브러리는 커스텀컴포넌트로 확장할 수 있습니다.구성 요소의 복합체인 매크로 구성 요소를 정의할 수 있습니다.
  • ZK는 서버측 데이터에 UI 컴포넌트를 선언적으로 바인드하기 위한 서버측 데이터 바인딩 주석을 제공합니다.
  • 과 필의 차이.

시스템 요건

  • JRE 버전 1.5 이후
  • Servlet 2.3 이후를 지원하는 웹 서버

프로그래밍 스킬의 전제 조건

필수의

선택적.

ZUML(ZK User Interface Markup Language)은 리치 사용자 인터페이스 정의용 마크업 언어입니다.

  • ZUML은 비프로그래머가 ZUML 마크업으로 사용자 인터페이스를 효율적으로 설계할 수 있도록 설계되었습니다.
  • ZUML을 사용하면 개발자는 Mozilla XUL 언어 및 XHTML과 같은 다른 마크업 언어를 같은 페이지에 심리스하게 결합할 수 있습니다.
  • ZUML을 사용하면 개발자는 스크립트를 순수 Java 언어(BeanShell에 의해 해석됨)로 삽입하고 EL 식을 사용하여 컴포넌트를 조작하고 데이터에 액세스할 수 있습니다.
  • ZUML은 ZK에서 지원됩니다.
  • 공식 문서: ZUML 레퍼런스

클라이언트 측 테크놀로지

ZK는 서버 중심의 프레임워크입니다.엄밀히 말하면, 클라이언트측의 실장에 대해서는 알 필요가 없습니다.Java Mobile VM에서 실행되는 ZK Mobile의 방식입니다.

ZK 5.0 이후, 이른바 Server[17]+client Fusion 아키텍처가 도입되었습니다.개발자는 원할 경우 클라이언트 측 위젯에 직접 액세스할 수 있습니다.ZK 클라이언트 엔진은 jQuery를 기반으로 [18]합니다.기술적으로 jQuery 호환 라이브러리와 위젯을 사용할 수 있습니다.

ZK 애드온

ZK 차트
서버 측에서 차트를 표시하고 제어하기 위한 API가 있는 차트 작성 구성요소

ZK 피벗 가능
Ajax 데이터 요약 구성 요소

ZK 스프레드시트
온라인 웹 스프레드시트 구성 요소입니다.경해로[19] 대체

「 」를 참조해 주세요.

레퍼런스

  1. ^ "ZK 9.6.0 release notes". github.com. 2021-03-09. Retrieved 2021-03-10.
  2. ^ ZK 3 이전 버전은 GPL로 라이선스가 부여됩니다.
  3. ^ Chen, Henri (2008). ZK - Ajax without JavaScript. Apress. p. 125. ISBN 978-1-59059-901-3.
  4. ^ Staeuble, Markus (2008). ZK Developer's Guide. Packt Publishing. p. 184. ISBN 978-1-84719-200-4.
  5. ^ Van der Schyff, Andre (2009-03-31). "A look at MVC frameworks". ITWeb. MVC frameworks provide limited functionality when compared to ZK, Echo and other Java Web frameworks.
  6. ^ "ZK Explorer". Zkoss.org. Retrieved 2010-08-25.
  7. ^ Massey, Simon. "Implementing event-driven GUI patterns using the ZK Java AJAX framework". www.ibm.com/. IBM. Retrieved 5 July 2014.
  8. ^ "ZK - ZK Developer's Reference/MVC - Documentation". Books.zkoss.org. 2014-01-27. Retrieved 2014-03-02.
  9. ^ "ZK - Small Talks/2011/November/Hello ZK MVVM - Documentation". Books.zkoss.org. Retrieved 2014-03-02.
  10. ^ "ZK - Small Talks/2011/November/MVVM in ZK 6 - Design your first MVVM page - Documentation". Books.zkoss.org. Retrieved 2014-03-02.
  11. ^ "Lightweight Scripting for Java". BeanShell. Retrieved 2014-03-02.
  12. ^ "Rhino MDN". Mozilla.org. 2012-08-09. Retrieved 2014-03-02.
  13. ^ "Home — JRuby.org". Jruby.codehaus.org. 2014-02-25. Archived from the original on August 30, 2009. Retrieved 2014-03-02.
  14. ^ "Jython : Homepage". Jython.org. Retrieved 2014-03-02.
  15. ^ "Groovy - Home". Groovy.codehaus.org. 2014-02-18. Archived from the original on March 2, 2014. Retrieved 2014-03-02.
  16. ^ "ZK 9.5.0 릴리즈 노트"
  17. ^ Clare, Timothy (2010-02-09). "Server+client Fusion: An Architectural Proposal". Dr. Dobb's. A good framework architecture is flexible empowering developers and architects to implement their applications in a smart and elegant manner.
  18. ^ Mahajan, Sachin (2010-10-19). "Enhance Ajax development with a fusion of jQuery, ZK, and Java code". IBM developerWorks. The marriage between server-side Java code and jQuery can help you tackle the challenges in enterprise Ajax application development.
  19. ^ https://www.zkoss.org/product/keikai - ZK 스프레드시트가 Keikai가 되었습니다.

외부 링크

공식 웹사이트