- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Delphi XE程式設計系列 1-主從架構,?多層到JSON和REST
從桌面開發,主從架構,一直到多層架構,雖然都是廣泛被接受的觀念和技術,但在資訊技術的實作上卻從 不是開放,相容的世界。Delphi從桌面開發到主從架構都是使用自己的資料傳遞格式以及通訊傳遞架構,到了多層架構雖然使用了Windows平台上的通 訊協定,例如COM/DCOM/COM+,但是在傳遞的資料格式方面仍然是使用自己的架構,COM/DCOM/COM+也是MS專屬的通訊協定,和其他平 台上使用的通訊協定也不一樣。當然,不光是Delphi/BCB,大部份的開發工具也是採用類似的方式,那就是都支援桌面開發,主從架構或是多層架構等通 用觀念的架構,但使用來傳遞資料和溝通通訊協定都是封閉的架構。
直到JSON和REST的出現以及Delphi/BCB確定走向原生,跨平台的道路之後,Delphi/BCB 從2010版便開始走向以JSON封裝資料,以REST做為通訊架構的方向。因此Delphi/BCB除了仍然支援原有的資料封裝格式以及通訊協定之外, 也允許開發人員選擇使用JSON和REST,使用JSON和REST的好處是除了可以讓JSON和REST擁抱最新的資訊技術之外,也可以讓 Delphi/BCB在不同的平台中使用相同的技術來開發主從架構,分散式多層以及Web應用,也可以更容易的和其他的程式語言,框架和技術整合在一起。
現在讓我們重溫舊夢一下,看看如何把一個簡單的主從架構應用程式轉換為使用JSON的架構。
主從架構
下圖是一個簡單的主從架構的主表單,
它藉由下圖的dbExpress元件從資料庫的FishFacts資料表中取得資料,並且使用資料感知元件顯示在應用程式的主表單中。
雖然從BDE到dbExpress都使用專屬的格式封裝資料,但BDE和dbExpress也可以把資料封裝成較開放的XML格式,因此要把上圖中TClientDataSet中的資料轉換為XML的格式,我們只需要存取它的XMLData特性值即可:
dssmFishFact.cdsFishFact.XMLData;
XMLData特性值會回傳以下面格式封裝的XML資料:
?xml version=』1.0″ encoding=』UTF-8″ standalone=』yes』?? DATAPACKET Version=』2.0″METADATAFIELDSFIELD attrname=』Category』 fieldtype=』string』 WIDTH=』15″/FIELD fieldname=』Species Name』 attrname=』Species_Name』 fieldtype=』string』 WIDTH=』40″/FIELD fieldname=』Length (cm)』 attrname=』Length__cm_』 fieldtype=』r8″/FIELD attrname=』Length_In』 fieldtype=』r8″/FIELD attrname=』Common_Name』 fieldtype=』string』 WIDTH=』30″/FIELD attrname=』Notes』 fieldtype=』string』 WIDTH=』50″/FIELD attrname=』Graphic』 fieldtype=』bin.hex』 SUBTYPE=』Binary』 WIDTH=』1″/FIELD fieldname=』Species No』 attrname=』Species_No』 fieldtype=』r8″//FIELDSPARAMS LCID=』0″//METADATAROWDATAROW Category=』Triggerfish』 Species_Name=』Ballistoides conspicillum』 Length__cm_=』50″ Length_In=』19.68503937007874″ Common_Name=』Clown Triggerfish』 Notes=』Also known as the big spotted triggerfish.? Inhabi』…
然而BDE/dbExpress雖然能夠把資料封裝成XML格式,但使用XML封裝資料時仍然會因為不同的資料存取使用不同的XML元素來封裝資 料,因此在交換資料時仍然會造成許多的困擾,而且使用XML格式封裝資料的成本比起JSON來要昂貴許多(XML使用較多元素,較為複雜的規則封裝資料所 致)。
因此Delphi/BCB要支援JSON/REST技術,其中一個工作就是必須能夠把資料封裝成JSON的格式,因此從Delphi/BCB 2010版開始便在VCL和RTL中加入了許多和JSON相關的類別
您可能关注的文档
最近下载
- Unit 4 The Earth 大单元教学设计 2025沪教牛津七年级英语上册.docx
- 江苏开放大学管理学060935过程性考核作业(二).docx VIP
- 2025在线网课《信息检索与科技写作( 理大)》单元测试考核答案.pdf VIP
- power up1英语书单词表.docx VIP
- 4.2按劳分配为主体+多种分配方式并存课件(共18张PPT)中职高教版(2026)中国特色社会主义.pptx VIP
- 钢拱架支护操作规程.docx VIP
- 镁法脱硫技术方案.docx VIP
- 人体生物电现象.ppt VIP
- JB T 10192-2012小型焚烧炉技术条件.docx VIP
- 02R111 小型立、卧式油罐图集(OCR).pdf VIP
文档评论(0)