ZK (프레임워크)

AsOf = **ZK**는 자바로 작성된page = 125page = 184url-status = dead 오픈 소스 Ajax 웹 애플리케이션 프레임워크로, 거의 프로그래밍 지식이 필요 없이 웹 애플리케이션용 그래픽 사용자 인터페이스를 생성할 수 있다. ZK의 핵심은 Ajax 기반 사건 기반 메커니즘, 123개 이상의 XUL 및 83개 XHTML 기반 구성 요소,access-date = 2010-08-25 그리고 사용자 인터페이스 설계를 위한 마크업 언어로 구성된다. 프로그래머는 기능이 풍부한 XUL/XHTML 구성 요소로 애플리케이션 페이지를 설계하고, 최종 사용자 활동에 의해 트리거된 이벤트에 따라 이를 조작한다. 이는 데스크톱 GUI 기반 애플리케이션에서 발견되는 프로그래밍 모델과 유사하다. ZK는 구성 요소의 콘텐츠 동기화와 클라이언트 및 서버 간의 이벤트 파이프라인 처리가 엔진에 의해 자동으로 수행되고, Ajax 배관 코드가 웹 애플리케이션 개발자에게 완전히 투명한 서버 중심 접근 방식을 사용한다. 따라서 최종 사용자는 데스크톱 애플리케이션과 유사한 상호 작용 및 응답성을 얻는 동시에, 프로그래머의 개발은 데스크톱 애플리케이션과 유사한 단순성을 유지한다. ZK는 표준 웹 요청-응답 메커니즘을 사용하지 않으며 쿼리 매개 변수가 있는 GET 요청 또는 POST 요청을 통해 서버로 폼 필드를 전송하지 않는다. 대신, 각 화면 위젯의 내부 상태를 업데이트하기 위해 AJAX 요청이 서버로 전송된다. 브라우저에서 ZK는 웹 페이지의 JSON 설명만 다운로드하고 클라이언트 렌더러를 사용하여 이를 UI로 변환한다. 이는 매우 효율적이며 면밀히 검사하면 모든 것을 한 번에 다운로드하지 않는다. 클라이언트와 서버 간의 트래픽을 보면 페이지 렌더링이 최종적으로 완료될 때까지 클라이언트와 브라우저 간에 여러 요청이 오가는 것을 알 수 있다. 선택적 클라이언트 측 사용자 지정은 개발자가 소위 서버+클라이언트 퓨전을 통해 클라이언트 측 리소스를 활용하여 사용자 지정 및 Ajax 트래픽을 줄일 수 있게 한다. 스윙과 유사한 방식의 구성 요소 기반 프로그래밍 외에도, ZK는 ZUML이라는 풍부한 사용자 인터페이스 정의를 위한 마크업 언어를 지원한다. * ZUML은 비프로그래머 개발자가 사용자 인터페이스를 직관적으로 설계하도록 설계되었다. * ZUML을 통해 개발자는 모질라 XUL 언어 및 XHTML과 같은 다른 마크업 언어를 동일한 페이지에 원활하게 혼합할 수 있다. * ZUML을 통해 개발자는 순수 자바 언어(재구성된 BeanShell에 의해 해석됨)로 스크립트를 내장하고 EL 표현식을 사용하여 구성 요소를 조작하고 데이터에 액세스할 수 있다.
# 기능
ZK6 기반 iDempiere의 웹 UI 인터페이스 * 단순한 자바. ZK는 "자바스크립트 없는 Ajax" 접근 방식으로 유명하며, 개발자가 Ajax와 자바스크립트에 대한 지식 없이도 풍부한 웹 애플리케이션을 투명하게 구축할 수 있도록 한다. * 부트스트랩 지원과 함께 반응형 디자인 테마 * HTML 5 및 CSS 3 지원 * 100개 이상의 Ajax 구성 요소는 UI 디자이너에게 엔터프라이즈 Ajax 애플리케이션의 요구 사항을 충족하는 다양한 풍부한 기능 구성 요소를 제공한다. * ZUML은 풍부한 사용자 인터페이스 디자인을 HTML 페이지 작성과 유사하게 만든다. ZUML은 XML에 사용 가능한 모든 기능을 상속하는 XUL의 변형이며, UI 정의를 런타임 논리에서 분리한다. * 다중 사건 기반 GUI 디자인 패턴을 지원하는 사건 기반 구성 요소 모델(데스크톱 프로그래밍 모델과 유사).access-date=5 July 2014 * 모델-뷰-컨트롤러 (MVC),access-date=2014-03-02 모델-뷰-프레젠터access-date=2014-03-02 및 모델-뷰-뷰모델 (MVVM)access-date=2014-03-02 디자인 패턴 지원 * UI 뷰와 데이터 및 POJO 간의 CRUD 및 상태 동기화를 자동화하는 ZUML 페이지 내 주석을 통한 데이터 바인딩 기능. * 스프레드시트, 피벗 테이블 및 달력과 같은 애플리케이션 구성 요소. * 자바 (Beanshellaccess-date=2014-03-02)를 통한 스크립팅 내장 지원. 이는 사용자 인터페이스 및 백엔드 프로그래밍 모두에 통합된 프로그래밍 언어를 사용할 수 있다는 점에서 중요한 이점이다. 자바스크립트 (라이노access-date=2014-03-02), 루비 (JRubyarchive-date=August 30, 2009), 파이썬 (자이썬url-status=dead) 및 그루비archive-date=March 2, 2014와 같은 다른 언어의 서버측 자바 스크립팅에 대한 선택적 지원. * JSP 사용자 지정 태그 라이브러리, JSF 지원, 포틀릿 및 서블릿 필터를 통해 기존 웹 프레임워크와 통합을 지원한다. 스프링 및 하이버네이트를 지원한다. * 프로그래머가 새로운 사용자 지정 UI 컨트롤을 만들 수 있도록 확장 가능하다. 컨트롤 그룹은 매크로 구성 요소로 재사용할 수 있다. * ZK 차트를 사용한 광범위한 차트 작성
# XUL과의 차이점
* ZK는 HTML을 생성하는 서버측 프레임워크이므로 클라이언트측에 게코의 존재 여부에 의존하지 않아 어떤 브라우저에서도 이식 가능하다. ZK는 ZUML (xul 및 xhtml) 서버측 페이지를 입력으로 받아 브라우저용 dhtml을 출력한다. * ZK는 서버에서 자바로 사용자 인터페이스 논리를 처리한다. 이는 논리를 생성하는 데 사용할 수 있는 스크립팅 엔진 및 애플리케이션 라이브러리 선택의 폭을 넓힌다. dhtml 효과에 대한 서버 로드를 줄이기 위해 클라이언트 측 액션 기능을 사용하여 프레젠테이션 효과를 브라우저에 위임할 수 있다. 단일 애플리케이션 컨테이너에서 서버의 애플리케이션 논리를 실행하면 브라우저에서 DOM을 광범위하게 프로그래밍하는 경우에 비해 교차 브라우저 및 브라우저 버전 테스트 양이 줄어든다. * ZK와 XUL은 구성 요소의 중복되는 부분 집합을 가지고 있지만, ZK는 자체적인 고유한 구성 요소 집합을 가지고 있다. 구성 요소 라이브러리는 사용자 지정 구성 요소로 확장될 수 있다. 매크로 구성 요소는 구성 요소의 복합체로 정의될 수 있다. * ZK는 서버측 데이터 바인딩 주석을 제공하여 UI 구성 요소를 서버측 데이터에 선언적으로 바인딩한다. * 룩 앤드 필 차이.
# 시스템 요구 사항
* JRE 버전 1.5 이상 * 서블릿 2.3 이상을 지원하는 웹 서버
# 프로그래밍 기술의 전제 조건

## 필수
* 자바 또는 그루비, 라이노 (자바 자바스크립트), JRuby (자바 루비) 또는 자이썬 (자바 파이썬)과 같은 자바 스크립팅 엔진 언어의 기본 지식 * HTML 및 XUL의 기본 지식
## 선택 사항
* 연결 논리 (서버에서 실행)를 작성하기 위한 스크립팅 언어 지식: ** BeanShell (자바 인터프리터), 자바스크립트, 그루비, 루비, 스칼라 및 파이썬 * 객체 지향 프로그래밍 * 서블릿 프로그래밍 * Ajax * 자바스크립트 (클라이언트 측) * 선언적 데이터 바인딩 * JSTL 스타일 표현 언어
# ZUML
**ZUML** (ZK 사용자 인터페이스 마크업 언어)은 풍부한 사용자 인터페이스 정의를 위한 마크업 언어이다. * ZUML은 비프로그래머가 ZUML 마크업을 사용하여 사용자 인터페이스를 효율적으로 설계할 수 있도록 설계되었다. * ZUML을 통해 개발자는 모질라 XUL 언어 및 XHTML과 같은 다른 마크업 언어를 동일한 페이지에 원활하게 혼합할 수 있다. * ZUML을 통해 개발자는 순수 자바 언어(재구성된 BeanShell에 의해 해석됨)로 스크립트를 내장하고 EL 표현식을 사용하여 구성 요소를 조작하고 데이터에 액세스할 수 있다. * ZUML은 ZK에 의해 지원된다. * 공식 문서: ZUML 참조
# 클라이언트 측 기술
ZK는 서버 중심 프레임워크이다. 기술적으로 클라이언트 측 구현에 대해 알 필요가 없다. 이는 자바 모바일 VM에서 ZK 모바일이 실행되는 방식이다. ZK 5.0부터 소위 **서버+클라이언트 퓨전**quote = A good framework architecture is flexible empowering developers and architects to implement their applications in a smart and elegant manner. 아키텍처가 도입되었다. 개발자는 원하는 경우 클라이언트 측 위젯에 직접 액세스할 수 있다. ZK 클라이언트 엔진은 jQuery를 기반으로 한다.quote = The marriage between server-side Java code and jQuery can help you tackle the challenges in enterprise Ajax application development. 기술적으로 jQuery 호환 라이브러리 및 위젯을 사용할 수 있다.
# 추가 기능