2012-05-17 46 views
0

我正在開始一個單獨項目的工作,將現有產品帶出經典ASP黑暗時代並進入光明階段。在開始這漫長的旅程之前,我做出的最大決定是確定我將爲新設計實施的框架和方法。企業級SaaS - 相關框架和方法

現在我正在尋找MVC或MVVM(從我收集的這只是Silverlight?)的Web界面,實體框架或我自己寫的模型和MSSQL作爲數據。

不幸的是,我只是一個剛剛起步的程序員,我並不特別瞭解編程世界的趨勢。我不知道什麼是流逝的時尚,哪些技術實際上具有持久的潛力。我真的很想用一些可能在一段時間內保持相關性的東西。因此,我期待這裏的專業人士提供有關適合您的想法的意見,需要注意的事項以及需要注意的事項。

我明白任何和所有的建議,牢記使用微軟和.Net是一個先決條件。在開始之前,我確實希望確保我朝着正確的方向前進,因爲這可能需要幾個月的時間。

回答

2

至於框架,我個人建議:

  • ASP.NET MVC 4 MVC 3,根據不同的問題,如果測試軟件是允許的。
  • 實體框架4.3或5.0。 5.0的速度要快很多(有自動編譯功能),但它仍然是一個Release Candidate。
  • AutoMapper在Entities和ViewModels之間映射。
  • Ninject依賴注入(如果你想寫單元測試很有用)。
  • JQuery適合客戶端驗證(與ASP.NET MVC完美集成)。
  • 可能有一些像CSS一樣的CSS框架。
  • 也許RestSharp讓您可以輕鬆執行請求。
  • 如果它是一個雲服務(大多數SaaS),並且您希望將它託管在Azure上(與.NET堆棧的完美集成),您將需要Azure SDK。

至於軟件achitecture:

  • 使用服務層
  • 使用存儲庫模式
  • 使用的ViewModels傳遞到您的視圖,而不是實體
  • 建立一個依賴注入容器

這是我的建議,我個人覺得這個這是構建企業應用程序的黃金組合(雖然不會浪費太多時間來配置大量的東西)。

陷阱:

  • 我不知道,如果單元測試是真的有必要。在建立架構時我應該牢記它,但我個人選擇稍後再做,因爲我甚至不知道我的產品是否會成功,所以我最好花時間構建一個快速的最小可行產品。
  • 不要假設任何事情。您可以浪費幾個月的寶貴時間來開發您認爲每個人都會喜歡的酷炫功能,但通常情況並非如此。只做絕對要求的最低限度,如果用戶喜歡,稍後再改進。
+0

太棒了,感謝您的輸入! – FlyingStreudel

1

我會向@Leon的建議添加更多內容,因爲從應用程序框架的角度來看,這些建議都很棒,而我想從雲方法學的角度來寫這裏。

由於您已經選擇SaaS,所以您完全在雲中移動,同時將您的應用程序和數據整合到一起,非常棒!

對於任何雲應用程序都有幾個層次,並且瞭解讓我們看看雲服務堆棧的樣子。如果我們舉一個Windows Azure的例子:

  1. 你有計算,你的應用程序與Web服務器(或不)運行。
  2. 您有Azure表格存儲,您可以使用它將行中的鍵值對存儲在一行中,然後非常快地訪問它們。
  3. 您有Azure Queue允許將雲應用程序的不同部分分離,使雲應用程序可以使用不同的技術輕鬆構建,並可輕鬆滿足流量需求。
  4. 您有訪問控制服務通過OpenID或AD對用戶進行身份驗證
  5. 您有服務總線來連接雲中的其他服務或第三方的內部部署。
  6. 你有Azure的Blob存儲的基於Web的平面文件服務器使用
  7. 你有Azure的緩存(在內存中緩存構建規模在雲)
  8. 您有SQL Azure中爲您的雲數據庫
  9. 有有很多更多的服務,你可以Explorer和使用

所以,當你決定你的應用程序託管到雲,你真的要看看如何利用這些不同的雲服務優勢,以擴展您的應用程序時,傳統的網絡移動需要併爲您節省大量資金。

與你的雲應用程序,你試一下如下:

  1. 讓你的應用程序邏輯儘可能小
  2. 保持你的靜態內容的計算之外
  3. 基於
  4. 使用雲緩存的快速存取應用程序向外擴展
  5. 將數據從傳統RDBMS數據庫移出到NoSQL Framework(鍵值對,文檔等以節省資金和靈活性),如果可能且適用的話
  6. 採取其他可用的服務優勢,降低應用的複雜性

如果考慮上述方面在你的心中,你將創建一個真正的基於雲的應用程序,它會快速將節省您的錢。

+0

我很欣賞這些建議!不幸的是,基於雲的服務在這一點上真的不是一個選項:( – FlyingStreudel