2013/11/18

分享基於 SOAP 的 3-Tier 開發範例 及 觀後心得

某個日本公司寫的一個關於 SOAP 的分散式開發專案範例
網址:3層スタイルC/Sアプリ作成術サンプルソース

目前看了下範例後有一些簡單的想法。

  • 充分利用 ClientDataSet 的 XML 特性,與 SOAP 完美搭配。
  • 一樣是 C/S ,更重要的是已經 3-Tier 化了。傳統 2-Tier 下資料庫裸露在外的問題已不復見了。
  • 開發上也不需考慮 DCOM +Socket / HttpSrvr 等搭配技術的實現,架構上顯得是相對乾淨,以及在Delphi 3 - XE n 都能夠被實現的技術。
  • 標準的無狀態 (Stateless) 的 3 層架構。(不過 SOAP 是允許有狀態 (Stateful) 實現的)
  • SOAP 是非常成熟的 Web Service ,也就表示它的問題和 DataSnap 相比下顯得較無缺失些。
  • 多種連線方式成為可能,只要重載函式 (overload) ,就能夠讓後端使用多種 DataSet ,不論是 ADO, DBX 還是未來的 FireDAC 都能夠銜接這個框架。
  • SOAP 的效率實在是很差,連接的成本太高,還沒開始傳封包呢!
  • 按照範例中的 Readme.txt 解釋,在多人連線上似乎會有衝突,還有調整的必要性,畢竟只是 DEMO 。可能還有些關鍵被隱藏起來了吧。
  •  在不考慮 Socket / HttpSrvr 的問題 (?) 下,DataSnap 開發無狀態的應用程式還是相對簡單。
不過好像沒有文獻顯示SOAP Service可以承載多少 Client 同時在線。這部份可能完全取決在 HTTP Service 上?

2013/11/04

Day11 RAD Studio XE5 iOS / Android Message Alert 的三種方法

按照 Embarcadero 公司所提供的 Demo 中,有一個 MessageAlerts 的範例。

很好奇的打開來看,居然是以前在 Win32 中的:
1. ShowMessage
2. MesssageDlg


和以前 VCL framework 的呼叫方式如出一轍

這樣學習壓力就降低很多了啊!


緊接著還有自製的訊息視窗:
3. RAD Studio XE5 -- Creating a custom MessageBox

於是便如法泡製的接在原來的 Demo 後面。






 實際呈現效果還蠻炫的!有機會可以多多嚐試看看。  ^____^

2013/11/03

Day10 RAD Studio XE5 的 DataSnap

今天原本是想寫個 DataSnap 的 Demo
可是無意間找到了這個網站:
iOS Apps 分散式系統建置興導入

於是今日一整天就在這個網站研習囉~~~ ^_^

2013/11/02

Day9 RAD Studio XE5 FireMonkey 兩種 Layout 的方法 -- Grid 和 Flow

Grid 和 Flow 兩個都是擺放多個物件對齊的好工具,這兩個容器最大的不同點在於:

Grid: 可擺放多個相同大小的物件容器。
Flow: 擺放多個,但寬度不一定相同的物件容器。

原廠的教學在此:
Tutorial: Using Grid and Flow Layouts in FireMonkey FM2

實際成果圖如下:



2013/11/01

Day8 RAD Studio XE5 為 App 加入手勢功能

承襲VCL的手勢功能
讓 TabControl 和 GestureManager 及 TAction 綁定,再決定要使用什麼樣的手勢。

實作上意外的很簡單的手勢功能。 ^___^

How to use URLEncode in Delphi

URL編碼,也稱【百分號編碼(Percent-encoding)】 由於 URL 不能直接接受 UTF8 文字,所以要先轉成百分號編碼後,如此網址才能順利送給 HTTP Server 從 Indy 加入 Delphi 後,就可以用 IdURI.TIdURI 單元進行編碼 ...