-
1 # 一口毒奶2333
-
2 # 雁過無聲song
C指的是client即客戶端,S指的是server即服務端,比B/S架構應用的要早一些。
優缺點要根據具體的使用環境和用途來說。
優點是隨時可以錄入資料,然後透過管理模組上傳到服務端,也可以臨時儲存在客戶端,集中同步上傳,保證資料的備份,共享,防止丟失。
缺點是必須安裝客戶端軟體,通用性差,如果想在不同的電腦上使用,就必須安裝客戶端程式才可以使用。而B/S只要利用瀏覽器(電腦作業系統安裝完成後都自帶瀏覽器),就可以登入客戶端進行資料處理,比C/S更方便。
-
3 # 可愛的萬物相聯
C/S 架構
C/S 架構是一種典型的兩層架構,其全程是Client/Server,即客戶端伺服器端架構,其客戶端包含一個或多個在使用者的電腦上執行的程式,而伺服器端有兩種,一種是資料庫伺服器端,客戶端透過資料庫連線訪問伺服器端的資料;另一種是Socket伺服器端,伺服器端的程式透過Socket與客戶端的程式通訊。
這種架構中,作為客戶端的部分需要承受很大的壓力,因為顯示邏輯和事務處理都包含在其中,透過與資料庫的互動(通常是SQL或儲存過程的實現)來達到持久化資料,以此滿足實際專案的需要。
說到C/S就不得不說下 B/S架構了
B/S架構的全稱為Browser/Server,即瀏覽器/伺服器結構。Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在伺服器端實現,Browser客戶端,WebApp伺服器端和DB端構成所謂的三層架構。B/S架構的系統無須特別安裝,只有Web瀏覽器即可。因為客戶端包含的邏輯很少,因此也被成為瘦客戶端。
如下圖撲軟體 Hightopo 的視覺化案例就是B/S 架構圖:www.hightopo.com圖撲軟體(Hightopo)是由廈門圖撲軟體科技有限公司獨立自主研發,基於 HTML5 標準技術的 Web 前端 2D 和 3D 圖形介面開發框架。自主研發的一款應用於泛工業物聯網場景的 B/S 模式資料視覺化監控軟體,可幫助企業快速搭建自己專屬的物聯網監控平臺。
使用 Hightopo 您可更關注於業務邏輯功能,不必將精力投入複雜 3D 渲染和數學等非業務核心的技術細節。
Hightopo 提供了一套獨特的 WebGL 層抽象,將 Model–View–Presenter (MVP) 的設計模型延伸應用到了 3D 圖形領域。
回覆列表
開發C/S架構可以採用多種語言,包括你提到的Java,C++,C#,以及Dephi等,採用不同的架構要按照你的專案的需要來,下面就你提出的JAVA和C++的優缺點做個分析吧,同時也介紹下C#語言。Java語言是基於Java虛擬機器的,它最大的優勢在於一次編譯,到處執行,它並不需要考慮各種系統之上的不同系統呼叫,所有的系統呼叫都可以透過底層的JVM的封裝來完成,開發者在開發過程中不用考慮作業系統層面的程式設計知識,比如你在windows上開發的一個Java應用程式,在Linux系統上也是可以執行的,只需要給他對應的Java虛擬機器就好了,同時Java的優勢還在於它的開源和封裝,Java提供了強大的類庫支援,包括多執行緒,資料結構,socket程式設計等,讓開發者可以把更多關注放在程式的編寫基礎之上,而不是放在實現一些底層的應用程式。同時Java還提供了垃圾回收機制,眾所周知,在C++等一些需要維護記憶體的語言中,如何分配和釋放記憶體是一個很讓程式設計師頭痛的問題,特別是在有服務的框架上,往往微小的程式洩漏將會帶來巨大的問題,Java的垃圾回收機制很好幫助程式設計師解決這個問題。同時目前Java有比較良好的一些應用框架,可以用來快速搭建網路應用,例如對於企業級的開發,J2EE就是一個很好的選擇。C++的特質在於它的高效性,它是直接和底層打交道的語言,正如樓主所說,在網遊之中,大部分都是採用c++來開發,因為遊戲要求要有較高的執行效率和良好的使用者體驗,這點Java程式支援的並不好,而且往往在要求很高的某些演算法部分還會採用C和彙編等更底層的語言來開發。C++的特性還在於它的面向物件的封裝,這點和Java是類似的,但是它有兼有了C語言快速高效的特性,所以在開發類似網遊,搜尋等專案的時候,通常採用C++,C++和C一樣,他們在跨平臺專案的開發中會遇到一些問題,主要來自各個作業系統的支援和底層api呼叫的差異。再說說C#,這個語言是微軟今年來主推的一個平臺,它是建立在
.NET
Framework之上的,C#在Visual Studio之上的良好相容性讓C#語言獲得了快速上手的特性,同時由於其豐富的控制元件庫,讓C#語言得到很多開發者的青睞,同時C#語言對於製作C/S程式也是非常方便的,很多程式碼都是IDE直接生成的,開發者只需要實現部分邏輯,但是它的缺點也很明顯,需要.NET
Framework協助,否則無法執行,其次基本沒有平臺移植性,同時由於其採用類似Java的中間編碼格式,也讓C#語言執行效率較低。如果想要學習計算機,我的建議是首先學習好相關的數學知識,包括離散數學等,這些知識都是計算機的基礎,同時精通掌握一到兩門語言是必要的,對於初學者建議學習C語言,C語言一方面比較接近底層,可以透過學習C掌握很多系統的底層知識,同時由於它的語法簡單,上手也比較快,加上C語言上並沒有類似Java,C#那樣很多的類庫,讓初學者看起來比較透明,比較乾淨,更能從語言的角度去理解。同時我認為不管學習什麼語言都好,計算機學科中演算法和資料結構是最重要的,都說語言是表層,演算法和資料結構才是核心,把握好了本質就可以以不變應萬變,建議在學習語言的同時好好的掌握這2門基本學科。因為隨著你的學習的深入,你會發現所有的操作都是建立在他們之上的。同時掌握好了C語言,反過來無論是學習Java還是C#都是很容易的,無非只是一個表達語言的轉換。最後,個人認為如果只是要成為一個程式碼的編寫者,學習Java和C#已經足夠,因為他們的快速上手和強大的類庫可以幫助開發者快速實現應用,但是如果要真正成為一名程式高手,良好的資料結構知識和演算法掌握,以及C語言是必不可少的。