Delphi 12.2引入了WebStencils,這是一種基於腳本的方法,用於處理類似於ASP.NET Razor Technology的文本。它的主要用途是從WebBroker Server應用程序中生成動態HTML,但可以通過其他方式使用來生成XML,JSON或從模板中生成任何類型的文本輸出。
該存儲庫包含幾個非常簡單的Delphi 12.2 WebBroker應用程序(作為Windows VCL程序運行,啟動Web瀏覽器),以比較用TPageProducer組件中使用的HTML式標籤製成的模板,以及新的TWebStencilsProcessor Components”中使用的新的“@”符號。所有項目和HTML文件都位於一個文件夾中,兩個項目共享一個數據模塊,用於訪問Chinook SQLite數據庫(不包括)。
每個應用程序中有五頁,看起來相同,因此您可以專注於模板技術:
這兩個項目引用的HTML文件被命名為清楚他們使用的哪個項目/技術:
傳統的PageProducer模板HTML文件:
index-wbroker.htmlloginfailed-wbroker.htmlcustlist-wbroker.htmlcustedit-wbroker.htmlaccessdenied-wbroker.html新的Webscencer模板HTML文件:
index-wStencils.htmllogin-failed-wStencils.htmlcustlist-wStencils.htmlcustedit-wStencils.htmlaccessdenied-wStencils.htmlcustlistframework1.html請注意,WebStencils集合中還有另一個文件,它是從WebStencils Action生成的每個網頁的框架模板,並從傳統網絡代理項目中使用的頁面生產商中的標題和頁腳字符串組合在一起。
在嘗試編譯或運行之前,應下載Chinook示例數據庫。這是一個流行的數據庫,用於教程和演示,可以在許多不同的地方找到。我使用DBEAVER,這是一個免費的數據庫工具,並發現它與此相關。
將chinook.db與項目同一文件夾中的Chinook.db之後,您需要打開數據模塊(兩個項目使用), udmCust ,並修改TFDConnection組件以指定數據庫文件的位置。我還建議使用數據庫工具或Delphi的數據資源管理器查看數據庫中的表。
Delphi 12.2用於創建和測試這些程序(不使用第三方組件)。
這兩個演示都是作為Web Server Windows GUI程序創建的,這意味著它們以一個小的Windows VCL程序運行,該程序打開一個端口,以使用按鈕啟動您的默認Web瀏覽器來收聽Web請求。 PageProducer版本在端口8081上聽,WebStencils版本在端口8082上聽,因此您可以同時運行,如果需要。
列出的第一頁是登錄頁面。必須輸入有效的登錄名,然後才能將您帶到客戶列表。有效的登錄是員工表中的任何用戶:
FirstName案不敏感的名稱;EmployeeId和LastName的串聯,案例敏感。例如,我下載的示例數據庫中的第一個條目具有以下第一位員工:
ID :1FirstName :AndrewLastName :亞當斯因此,與該員工登錄:
ANDREW (上或下箱)1Adams (確切)登錄後,顯示了客戶列表。每個客戶的ID(最左列列)是一個鏈接,它將您進入“編輯”屏幕,該屏幕列出了編輯框中的所有客戶字段。提交按鈕除了將您帶回客戶列表外,不能保存更改或做任何其他操作。
我使用了兩個不同的“ Chinook”示例數據庫,一個具有單數桌名(例如“客戶”和“員工”),而另一個具有復數(例如“客戶s ”和“僱員S ”);如果您得到的一個與此存儲庫中的一個不同,則只需更改表名和查詢以匹配即可。
客戶列表是使用舊的HTML表標籤( <table> , <tr> , <td>等)構建的,因為這是使用TDataSetTableProducer組件構建的舊WebBroker Server應用程序的簡單和默認方法。新的WebStencil版本構建了相同的HTML結果,因此您可以比較它的完成方式,並且結果網頁幾乎相同。現代網站通常構建CSS風格的桌子,這是可以通過從DataSettable Producers切換到WebScence來實現的好處。
閱讀我的“介紹Webscenters”博客,以了解有關這些程序背後的技術以及為什麼WebStenciles很酷的信息!