線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4440
推到 Plurk!
推到 Facebook!

各位大大對於初學N-Tier架構有何學習建議?

答題得分者是:pcplayer99
dm228183
一般會員


發表:10
回覆:10
積分:4
註冊:2002-07-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-06-20 23:29:55 IP:220.132.xxx.xxx 訂閱
各位大大好
小弟是個業餘的程式設計者,偶爾替公司寫寫小程式
最近想要用N-Tier方式寫個資料庫相關的小程式
看了看坊間的書,似乎都沒有很詳細的參考
不知道各位大大能否建議該要如何進入 N-Tier 的開發領域
像是該有什麼基礎或有可參考的書籍可供學習
小弟慣用 BCB 開發,對 Delphi 也略有涉獵
希望各位能不吝指導,感謝各位囉
------
Leon.HP
編輯記錄
taishyang 重新編輯於 2007-06-21 09:41:53, 註解 將文章分類成[問題]‧
shunchia63
高階會員


發表:26
回覆:141
積分:198
註冊:2007-05-22

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-06-21 00:17:57 IP:61.64.xxx.xxx 訂閱


若新開發
考慮MS$$ .NET 平台感覺會好一點




Stallion
版主


發表:52
回覆:1600
積分:1995
註冊:2004-09-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-06-21 18:10:03 IP:211.22.xxx.xxx 未訂閱
公司規模很大嗎?Client端有超過200部,網路資料交換非常密集嗎?
如果不是的話,使用2-Tier(Fat Client)需求就夠了,又很好開發。
除非你們公司有連線數的限制,資料交換頻繁重複率又高,才建議使用N-Tier,不過一想到中間那一層多執行緒配合資料庫的寫法,我就頭暈,這條錢!老了!我賺不起來。
===================引 用 dm228183 文 章===================
各位大大好
小弟是個業餘的程式設計者,偶爾替公司寫寫小程式
最近想要用N-Tier方式寫個資料庫相關的小程式
看了看坊間的書,似乎都沒有很詳細的參考
不知道各位大大能否建議該要如何進入 N-Tier 的開發領域
像是該有什麼基礎或有可參考的書籍可供學習
小弟慣用 BCB 開發,對 Delphi 也略有涉獵
希望各位能不吝指導,感謝各位囉
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-06-21 18:59:11 IP:61.222.xxx.xxx 訂閱
感覺有點詭異。
當初工作學 Delphi ,就是從寫N-Tier 開始的。記得那一年是1998,正紅之時。

N-Tier 是一種概念。把握住 User端負責使用介面,頻繁寫入動作在後端程式執行。
有些人都把它搞混了。弄得N-Tier 當2-Tier 用,當然效率很差。

書本介紹很多。像是李維所寫的一些老本。
不過那只是非常陽春的。

奉勸一句,除非你很有把握。否則3-Tier 將帶給你不僅是災難而已。
如何寫的穩定及例外處理,都是必須面臨的課題。
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2007-06-21 19:27:35 IP:220.131.xxx.xxx 未訂閱
算了啦。能動就好了。想那麼多 3-tier? n-tier?
真的要那樣做。不要選 delphi, bcb 這種東西了。
去搞成 web 架構,你也是 3tier 不過就容易多了。

===================引 用 wameng 文 章===================
感覺有點詭異。
當初工作學 Delphi ,就是從寫N-Tier 開始的。記得那一年是1998,正紅之時。

N-Tier 是一種概念。把握住 User端負責使用介面,頻繁寫入動作在後端程式執行。
有些人都把它搞混了。弄得N-Tier 當2-Tier 用,當然效率很差。

書本介紹很多。像是李維所寫的一些老本。
不過那只是非常陽春的。

奉勸一句,除非你很有把握。否則3-Tier 將帶給你不僅是災難而已。
如何寫的穩定及例外處理,都是必須面臨的課題。
wameng
版主


發表:31
回覆:1336
積分:1188
註冊:2004-09-16

發送簡訊給我
#6 引用回覆 回覆 發表時間:2007-06-21 19:37:10 IP:61.222.xxx.xxx 訂閱
是沒錯啦!只是Web架構效率姑且不談,但 DEBUG 有點困難。

===================引 用 暗黑破壞神 文 章===================
算了啦。能動就好了。想那麼多 3-tier? n-tier?
真的要那樣做。不要選 delphi, bcb 這種東西了。
去搞成 web 架構,你也是 3tier 不過就容易多了。

===================引 用 wameng 文 章===================
感覺有點詭異。
當初工作學 Delphi ,就是從寫N-Tier 開始的。記得那一年是1998,正紅之時。

N-Tier 是一種概念。把握住 User端負責使用介面,頻繁寫入動作在後端程式執行。
有些人都把它搞混了。弄得N-Tier 當2-Tier 用,當然效率很差。

書本介紹很多。像是李維所寫的一些老本。
不過那只是非常陽春的。

奉勸一句,除非你很有把握。否則3-Tier 將帶給你不僅是災難而已。
如何寫的穩定及例外處理,都是必須面臨的課題。
pcplayer99
尊榮會員


發表:146
回覆:790
積分:632
註冊:2003-01-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2007-06-21 23:05:31 IP:121.35.xxx.xxx 訂閱
Delphi 下做 N-Tier 其实满简单的。但先要理解 Delphi 的 N-Tier 框架。

普通的 Delphi 的 N-tier ,Server 端是 COM 元件。当你 New 一个 APP Server 的时候,它自动帮你生成的框架,那个 TRemoteDataModule 实际上是工作在 COM 下的。而客户端则是通过调用 COM 的 Interface 来和服务器端通讯。每有一个客户端连接到服务器端,服务器就 Create 一个 COM 的实例来服务这个 Client。

理解了这个,就容易处理那些问题了。

如果要通过 Internet,在 Delphi 下,建议用它提供的 WebService 框架来达到 N-Tier 的效果。

在 Client 和 Server 能够通讯的情况下,对数据库的操作就是在 Server 端把从 DataBase 取来的数据变成 OleVariant 类型的 Data,丢给 Client 端,Client 端拿到这个 Data,把它丢给 ClientDataSet. 这里需要掌握的就是 ClientDataSet 的用法了。

另外,要知道,通常情况下,N-tier 所有的操作,都是通过 Client 调用 Server 输出的 function 来完成的。如果是 WebServices,则是远程调用。

N-tier 的好处是可以支持到更多的 Client,因为 Client 一旦和 Server 连接并完成了需要的操作,就断开连接。另外一个好处大概是更容易通过 Internet ----采用 WebServices 的时候。
dm228183
一般會員


發表:10
回覆:10
積分:4
註冊:2002-07-19

發送簡訊給我
#8 引用回覆 回覆 發表時間:2007-06-21 23:59:08 IP:220.134.xxx.xxx 訂閱
其實會考慮用 N-Tier 的方式除了本身想學用之外另考量的原素有下

1.公司的 client 端數持續增加中
2.因安全因素考量,不願 SQL Server 直接對外連繫
3.希望可以減低資料庫持續連線的 Loading,也避免因網路問題斷開時 client 需重新與 Server 端連結
4.小弟本身也寫 php ,網頁模式也曾考量過,但網頁的操作介面總是不如AP模式來的方便,像是開啟日期選擇的輔助視窗
5.至於 MS$$ 的solution,倒不是有反 x 軟的情結,但總是對 VS 系列的產品不上手

各位大大的建議皆頗受用,是否能建議小弟若要學習 N-Tier 的程式開發
要先學習何種基礎,或有那些書籍或資料可以參考閱讀的

感覺 pcplayer99大大頗有心得,不知是否多介紹些 N-Tier 的概念供小弟學習



===================引 用 pcplayer99 文 章===================
Delphi 下做 N-Tier 其实满简单的。但先要理解 Delphi 的 N-Tier 框架。

普通的 Delphi 的 N-tier ,Server 端是 COM 元件。当你 New 一个 APP Server 的时候,它自动帮你生成的框架,那个 TRemoteDataModule 实际上是工作在 COM 下的。而客户端则是通过调用 COM 的 Interface 来和服务器端通讯。每有一个客户端连接到服务器端,服务器就 Create 一个 COM 的实例来服务这个 Client。

理解了这个,就容易处理那些问题了。

如果要通过 Internet,在 Delphi 下,建议用它提供的 WebService 框架来达到 N-Tier 的效果。

在 Client 和 Server 能够通讯的情况下,对数据库的操作就是在 Server 端把从 DataBase 取来的数据变成 OleVariant 类型的 Data,丢给 Client 端,Client 端拿到这个 Data,把它丢给 ClientDataSet. 这里需要掌握的就是 ClientDataSet 的用法了。

另外,要知道,通常情况下,N-tier 所有的操作,都是通过 Client 调用 Server 输出的 function 来完成的。如果是 WebServices,则是远程调用。

N-tier 的好处是可以支持到更多的 Client,因为 Client 一旦和 Server 连接并完成了需要的操作,就断开连接。另外一个好处大概是更容易通过 Internet ----采用 WebServices? 的时候。
------
Leon.HP
系統時間:2024-04-25 21:54:02
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!