我們有一個擁有大量動態業務應用程序頁面的企業網站(例如購物車,服務檯,產品/服務管理,報表等)。該網站的構建爲ASP.Net Web Application Project(WAP)。多年來,我們的系統已經發展到使用.NET 4.5和各種自定義業務邏輯DLL(用C#和VB.NET混合編寫)。但是,該網站本身仍在使用VB.NET Web窗體。我們現在已經使用Razor/C#在MVC 4中完成了一些項目,我們希望將這個框架用於未來主要企業網站上的新頁面。最簡單的方法是什麼?如何將新的MVC C#項目與現有的Web窗體VB.NET Web應用程序項目集成?
- 我發現這個不錯的清單steps to integrate MVC 4 into an existing Web Forms app。問題是,因爲我們現有的應用程序是一個VB.NET WAP,它編譯成一個DLL,並且每個DLL只允許一種語言。該網站對我們來說太大了,無法一次性將其轉換爲C#(是的,我已經看過轉換工具,它們很好,但即使99%的準確性也會給我們帶來大量的清理工作。 )
- 我曾考慮過將現有的WAP轉換爲網站項目(WSP)which does allow mixing languages,然後按照上述步驟進行操作,但在幾頁Google搜索結果後,我找不到任何將WAP轉換爲WSP的步驟。 (很多站點都提供了相反的步驟:將WSP轉換爲WAP。)
- 我的另一個想法是創建一個完全獨立的MVC項目,然後將它們一起擠壓到相同的文件夾結構中,在那裏他們將共享bin文件夾,但編譯來分離DLL的。我不知道這是否可能,因爲某些文件會碰撞(例如Global.asax,web.config等)
- 最後,我可以想象一個妥協解決方案,我們將所有MVC的東西保存在它自己的獨立應用程序中在主要解決方案的子文件夾下。我們已經使用了我們自己的自定義會話狀態解決方案,因此在舊網站和新網頁之間傳遞數據並不困難。
您認爲以上哪個想法對我們最有意義?有沒有另一種解決方案,我錯過了?
我想,你煮熟了。首先,將WAP轉換爲WSP是最糟糕的想法。是的,您可以在同一個項目中使用「WebForms」和「MVC」。當然不是,而是一般。您創建proj作爲WAP,然後引用MVC庫。然後轉到'proj'文件並添加模板ID。這樣你就擁有了MVC項目的全部功能。但在你的情況下,你使用2種不同的語言。您可以將這些作爲親子應用程序運行。谷歌關於如何設置父子asp.net應用程序。在父母 - 孩子中,他們可以擁有兩種不同的語言,但共享相同的安全等。 –
有了父母子女,您也可以運行不同版本的.net。只需要一些額外的配置。閱讀ASP.NET 4子應用程序無法在ASP.NET 2.0或ASP.NET 3.5應用程序下啓動時:http://www.asp.net/whitepapers/aspnet4/breaking-changes –
這聽起來基本上就像我列出的第4個選項。對我們來說可能是最痛苦的。謝謝,我會閱讀兒童申請。 –