簡體   English   中英

關於 web 應用架構的決定

[英]Decision about web application architecture

我正面臨一個關於我將要研究的 web 應用程序架構的決定。 我們是一個小團隊,實際上我會獨自工作(每個人都在做其他事情)。

此應用程序將包含基於ExtJS 庫的前端構建,它將使用 model“加載頁面、構建 GUI 和永不刷新”。
在 web“桌面”上會有很多數據 windows、map 視圖(使用 openlayers + GeoExt)和其他東西。
GUI 應該是靈活的,並允許每個用戶修改(並保留)布局以滿足他/她的需要。

應該可以將應用程序划分為模塊/部分/...,然后讓特定組中的用戶僅使用特定模塊。 換句話說,每組用戶可以在 web“桌面”上使用不同的 GUI。

問題是:

  1. 首先,這種方法好嗎?
    會有很多來自客戶端的 AJAX 調用,這可能是個問題。

  2. 如何在客戶端處理代碼復雜性?
    到目前為止,我已決定使用 dojo.require / dojo.provide 功能並將客戶端代碼分成模塊(對於生產,它們將使用 dojo 容器構建系統放在一起)但還不確定是哪一個。
    很有可能我會自己寫一個,用JavaScript這樣的動態語言應該不難。

  3. 如何處理服務器上的 AJAX 調用?
    我應該在服務器端使用 WCF 嗎? 還是只是普通的 ashx 處理程序?

  4. 如何處理服務器端的代碼復雜性?
    我想使用 Spring.NET。 可能這種方法可以幫助解決模塊化問題。

  5. 數據訪問 - 在這里我很確定要使用什么:對於 DAL 類,我將使用 nHibernate。 然后我使用 Spring.NET 將它們與業務類組合在一起。

我真的很感激一些關於 go 的方式的建議。
我知道很多技術,但我只使用了其中的一小部分。
我沒有時間去探索所有這些並接受這個決定。

我們做這種類型的單頁界面,我在其中為我們的客戶進行了相當大規模的工作。 (我們的網站不是互聯網網站)

  1. 這對我們來說似乎工作得很好。 您擁有的 js 越多,維護起來就越困難,因此盡可能多地進行自動化 js 測試,並嘗試以 mvc 方式分解您的 js 邏輯。 4.0 應該使這更容易。
  2. 如果你想限制你下載的代碼,Ext 4.0 內置了這個。 如果您日復一日地擁有相同的用戶,那么我認為最好將所有源關閉(壓縮和縮小)並緩存它。
  3. 我們發現 asmx 工作得非常好。 我對 wcf 沒有任何意見,但最后我看起來這似乎比它的價值更麻煩。 我知道他們最近做了很多改進。 asmx 只是工作(有一些請求 header 更改並在客戶端管理“d.”)。
  4. 我們的服務器端數據訪問層非常復雜,但 ajax 調用的接口非常簡單。 您沒有真正提供足夠的信息來回答這部分。 我會盡可能簡單地開始並經常重構。
  5. 我們也在使用 nHibernate。 對我們來說很好。 我們圍繞它構建了一個 DDD model。 不過,要做到這一點可能需要做很多工作(不確定經過幾個月的工作后我們是否正確)。

如果我是你,我會從 extjs、web 服務技術和 nHibernte 開始。

I would recommend ASP.NET MVC 3 with Razor instead of a lot Javascript and calls to Service you can just do ajax calls to an Action in a Controller and that will let you have more maintainable code and use a IoC like Ninject. EF 代替 NHibernate。 但這是你的決定。

我會考慮使用像Google Closure Compiler這樣的工具,特別是如果您正在處理一個非常大的項目。 我對 ExtJS 沒有太多經驗,但是 JavaScript 中的大型項目很難,像 Closure Compiler 這樣的東西往往會使它變得更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM