Delphi 12.2는 ASP.Net Razor 기술과 유사한 텍스트를 처리하는 스크립트 기반 방법 인 WebStencils를 소개했습니다. 주요 용도는 WebBroker Server 응용 프로그램에서 동적 HTML을 생성하는 것이지만 다른 방법으로는 XML, JSON 또는 템플릿에서 모든 유형의 텍스트 출력을 생성하는 데 사용할 수 있습니다.
이 저장소에는 매우 간단한 Delphi 12.2 Webbroker 응용 프로그램 (웹 브라우저를 시작하는 Windows VCL 프로그램으로 실행)이 포함되어있어 TPageProducer 구성 요소에 사용되는 HTML 스타일 태그와 새로운 TWebStencilsProcessor component에 사용되는 새로운 "@"기호 태그를 비교합니다. 모든 프로젝트 및 HTML 파일은 하나의 폴더에 있으며 두 프로젝트는 Chinook SQLite 데이터베이스 (포함되지 않음)에 액세스하기위한 데이터 모듈을 공유합니다.
각 애플리케이션에는 5 페이지가 있으며 동일하게 보이도록 만들어 져서 템플릿 기술에 집중할 수 있습니다.
두 프로젝트에서 언급 한 HTML 파일은 어떤 프로젝트/기술과 함께 일하는지 명확하게 설명합니다.
기존 PageProducer 템플릿 HTML 파일 :
index-wbroker.htmlloginfailed-wbroker.htmlcustlist-wbroker.htmlcustedit-wbroker.htmlaccessdenied-wbroker.html새로운 WebStencils 템플릿 HTML 파일 :
index-wStencils.htmllogin-failed-wStencils.htmlcustlist-wStencils.htmlcustedit-wStencils.htmlaccessdenied-wStencils.htmlcustlistframework1.htmlWebStencils Collection에는 파일이 하나 더 있습니다. WebStencils 동작에서 생성 된 각 웹 페이지에 대한 프레임 워크 템플릿이며 기존 웹 브로커 프로젝트에 사용되는 페이지 제작자에 포함 된 헤더 및 바닥 글 strings에서 결합됩니다.
컴파일 또는 실행을 시도하기 전에 Chinook 샘플 데이터베이스를 다운로드해야합니다. 이것은 튜토리얼 및 데모에 사용되는 인기있는 데이터베이스이며 여러 곳에서 찾을 수 있습니다. 나는 무료 데이터베이스 도구 인 Dbeaver를 사용하여 그와 함께 배송되었습니다.
프로젝트와 동일한 폴더에 chinook.db 가 있으면 데이터 모듈 (두 프로젝트에서 사용), udmCust , TFDConnection 구성 요소를 수정하여 데이터베이스 파일의 위치를 지정해야합니다. 또한 데이터베이스 도구 또는 Delphi의 데이터 탐색기를 사용하여 데이터베이스에서 테이블을 볼 것을 제안합니다.
Delphi 12.2는이 프로그램을 만들고 테스트하는 데 사용되었습니다 (타사 구성 요소를 사용하지 않음).
두 데모는 웹 서버 Windows GUI 프로그램으로 만들어졌으며, 이는 기본 웹 브라우저를 시작하기위한 버튼이있는 웹 요청을들을 수있는 포트를 열어 줄 작은 Windows VCL 프로그램으로 실행됩니다. PageProducer 버전은 포트 8081에서 리스팅되고 WebStencils 버전은 포트 8082에서 리스팅되므로 원하는 경우 동시에 실행할 수 있습니다.
나열된 첫 페이지는 로그인 페이지입니다. 고객 목록으로 이동하기 전에 유효한 로그인을 입력해야합니다. 유효한 로그인은 직원 테이블의 모든 사용자입니다.
FirstName , Case-Insensentitive입니다.EmployeeId 와 LastName , 대소 문자 를 연결하는 것입니다.예를 들어, 다운로드 한 샘플 데이터베이스의 첫 번째 항목에는 다음 첫 번째 직원이있었습니다.
ID : 1FirstName : AndrewLastName : Adams따라서이 직원과 로그인하려면 :
ANDREW (상단 또는 하단 또는 혼합 케이스)1Adams (정확히)로그인하면 고객 목록이 표시됩니다. 각 고객의 ID (왼쪽 열)는 편집 상자에 모든 고객 필드를 나열하는 "편집"화면으로 이동하는 링크입니다. 제출 버튼은 변경 사항을 저장하거나 고객 목록으로 돌아가는 것 외에는 아무것도하지 않습니다.
나는 두 가지 다른 "Chinook"샘플 데이터베이스를 사용했는데, 하나는 단일 테이블 이름 (예 : "고객"및 "직원")이 있고 다른 하나는 복수 (예 : "고객 " 및 "직원 S ")를 가지고있었습니다. 이 저장소의 것과 다른 경우 테이블 이름과 일치하도록 쿼리를 변경하십시오.
고객 목록은 이전 HTML 테이블 태그 ( <table> , <tr> , <td> 등)를 사용하여 구축되었습니다. 왜냐하면 TDataSetTableProducer 구성 요소를 사용하여 구축 된 기존 웹 브로커 서버 앱이 수행 된 간단하고 기본 방법이기 때문입니다. 새로운 WebStencils 버전은 동일한 HTML 결과를 구축하므로 수행 방식을 비교할 수 있으며 결과 웹 페이지가 거의 동일합니다. 최신 웹 사이트는 일반적으로 CSS 스타일 테이블을 구성하는데, 이는 DataSettableProducers에서 WebStencils로 전환하여 실현할 수있는 이점입니다.
"WebStencils 소개"블로그를 읽으려면 이러한 프로그램의 기술과 WebStencils가 멋진 이유에 대해 자세히 알아보십시오!