是的,這是可能的,但它有很多工作,因爲您必須創建鏈接到新SN 7.0庫的內容處理程序。對於現有的自定義內容處理程序,這是一個簡單的複製/粘貼,並在這裏和那裏進行一些編輯。只需將處理程序的C#代碼添加到新的MVC項目中,並確保它編譯並且沒有錯誤。
這很容易!現在您必須爲存儲庫中引用6.5庫的所有數據創建處理程序。對於我的項目,我不得不移植11個內容處理程序(來自SN安裝)以及另外30多個支持類。
在啓動端口之前,從存儲庫中刪除所有未使用的內容是一個好主意,因爲當MVC應用程序嘗試從存儲庫中提取內容並找不到SN 7.0處理程序時會引發異常。如果不使用Blog
,Wiki
,Journal
等,可以刪除。
編輯:爲了解決來自Miklos的評論,應該說明這個問題來自一個實驗項目,以評估升級到SN 7.0的路徑,而不是推薦的升級方法。啊,開源軟件的美麗!
我打算嘗試通過從6.5存儲庫中將數據導出爲XML來升級自定義內容,然後將其導入到7.0存儲庫中。只要沒有任何內容來自6.5中發現的任何外來內容類型(CTD),而不是7.0,這應該是可行和直接的。
最後,我不同意最好的做法是在6.5框架中爲MVC應用程序使用REST API。我已經做了好幾次了,SN 6.5並不輕易支持MVC。所有的調用都是客戶端的OData Ajax,調試是一件痛苦的事情,沒有服務器端的C#API,並且每次需要查詢存儲庫時寫Ajax調用都是荒謬的。是的,我知道你可以創建來自服務器的OData調用,但它與乾淨而簡單的服務器端API具有良好的智能感知相去甚遠。這是不值得的鬥爭。使用SN 7.0,您可以使用NuGet軟件包在大約10分鐘內運行MVC站點,並支持server side和client side。沒有比較。
對不起Thane的downvoting,但我認爲這不是一個明智的做法:)。請考慮通過REST API訪問6.5,因爲上述解決方案實際上是部分手動升級,這不是受支持的方案,因爲您提到的原因:丟失/更改的內容類型和處理程序以及其他許多原因。 –
Hey Miklos,我會同意這不是大多數SN用戶的最佳方法。話雖如此,主要問題是「是否可能」,答案是「是」。我會編輯我的答案以解決您的疑慮。 –
我真的只想指出,要試驗這個,你必須知道你在做什麼,我知道你會這樣做:) –