2008-12-12 34 views
3

我的朋友和我在應用程序開發問題上存在分歧。這是一個簡單的生產管理應用程序。使用C#前端和Java後端進行編程:好還是壞實踐?

據我的朋友介紹,前端存儲XML數據,一個Java程序將讀取XML文檔,存儲它(在後端),並應用一些業務邏輯並將結果存儲到另一個XML文檔。而C#前端將顯示結果(他希望使用套接字來傳遞XML的狀態)。

我認爲這是一個壞主意。我建議整個應用程序應該用C#或Java編寫。

注意:該應用程序是獨立的。它不是通過網絡使用的。

有沒有人試過這個?請分享您的想法:)

+0

只是爲了澄清:建議在Java中完成的唯一事情是重新格式化XML? – 2008-12-12 19:06:37

回答

10

你是對的,你的朋友提出了一個壞主意。另外,從你的問題來看,我發現有幾個問題,我不知道從哪裏開始,所以我只列出它們,但沒有列出。但是你閱讀的基本原則是你必須認同,愛因斯坦所說的「事情應該儘可能簡單但不簡單」(或者類似的東西,我不記得確切的引用),簡單更好。

  1. 前端和後端的概念並不真正適用於桌面應用程序。相反,你想使用MVC模式來分離問題。維基百科可能是開始學習或評論的好地方。
  2. 爲什麼使用套接字(這是完全不必要的),如果你不需要。這是第一個原因,它是一個壞主意,因爲如果一切都是用語言完成的,在同一個進程空間中運行(您的應用程序是桌面應用程序或獨立應用程序),則不需要使用套接字。
  3. 同樣,爲什麼XML(再次不必要)。不需要,因爲您可以傳遞Java或C#對象。對於XML,首先存在信號噪聲問題,因爲標籤被添加到真實數據中。然後有時間來分析,構建XML,潛在的其他庫等。這就是所有在你的朋友的方法中引入的代碼。

這些是最明顯的原因。從經理或公司的角度還有其他原因:

  1. 要維護此應用程序,經理或公司需要僱用2個不同的技能組。這可能不是真的,因爲大多數程序員都是多語言的。但情況並非總是如此。
  2. 就部署而言,現在您強制用戶同時安裝JRE和.NET框架,以便能夠運行您的應用程序。而其中的任何一個都不是一個小小的佔地面積。
+0

你甚至不知道他的問題是什麼,並且你提出了一個模式?還有一個非常模糊的名字(http://tinyurl.com/5gjfjt)。否則,我同意你的看法。 – 2008-12-14 22:53:06

2

這是一個桌面應用程序,「不通過網絡使用」...我沒有看到需要一個真正的「後端」。

用單一語言編寫桌面應用程序,並將數據存儲在XML中。

1

你的朋友建議什麼是保持事物模塊化。使用哪種語言並不重要,但是如果把它放在一個大項目中,你可能會使它不是模塊化的。

1

對於那種類型的應用程序,我只使用一種語言。

5

談論讓它變得複雜。 Java或C#。一個真的不是另一個的後端。他們都「和語言做同樣的事情」。唯一的區別是你是否想要利用.NET的強大功能,或者是巨大的Java框架的強大功能。

2

因此,您的應用程序是獨立的,不需要通過網絡工作,但您的朋友堅持使用套接字連接應用程序的前端和後端?這個設置有些不對,似乎是more complicated than it needs to be

這聽起來像你的朋友想要使用Java,因爲他更好地理解Java的XML處理框架。就我個人而言,我認爲Java和.NET之間的互操作性過大。通過用您選擇的單一語言編寫應用程序,您將節省大量工時和挫折。

+0

該鏈接是完美的。我打算給他發送那個鏈接並說服:) 感謝一個負載 – udpsunil 2008-12-12 19:29:52

1

可能可以利用前端的C#桌面應用程序的強大功能,並在後端使用Java Ejb + Web服務(Jax-ws)。 C#應用程序可以讀取SOAP wsdl以創建存根和接口,以訪問由Jax-ws實現的Java後端。

相關問題