2017-04-18 41 views
1

我有一個從SenseNet 6.5.4創建的SenseNet存儲庫,它有40多個自定義內容類型(CTD),每個都有自己的內容處理程序。這個存儲庫已經爲一個客戶運行了一年多,並且其中有數據的批號SenseNet 7.0 MVC應用程序可以使用SenseNet 6.5存儲庫作爲其數據源嗎?

我想爲這個客戶端創建一個ASP.NET MVC應用程序,現在使用新的SenseNet 7.0(beta)框架看起來非常簡單。但是,我的內容存儲庫來自早期版本的SenseNet,這意味着我的處理程序依賴於以前的SenseNet庫,這些庫大概與新版本不兼容。

這甚至是可能的,如果是這樣的話,在某些情況下這個客戶端會升級到SN 7.0是否是一個好主意?

回答

0

是的,這是可能的,但它有很多工作,因爲您必須創建鏈接到新SN 7.0庫的內容處理程序。對於現有的自定義內容處理程序,這是一個簡單的複製/粘貼,並在這裏和那裏進行一些編輯。只需將處理程序的C#代碼添加到新的MVC項目中,並確保它編譯並且沒有錯誤。

這很容易!現在您必須爲存儲庫中引用6.5庫的所有數據創建處理程序。對於我的項目,我不得不移植11個內容處理程序(來自SN安裝)以及另外30多個支持類。

在啓動端口之前,從存儲庫中刪除所有未使用的內容是一個好主意,因爲當MVC應用程序嘗試從存儲庫中提取內容並找不到SN 7.0處理程序時會引發異常。如果不使用BlogWiki,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 sideclient side。沒有比較。

+0

對不起Thane的downvoting,但我認爲這不是一個明智的做法:)。請考慮通過REST API訪問6.5,因爲上述解決方案實際上是部分手動升級,這不是受支持的方案,因爲您提到的原因:丟失/更改的內容類型和處理程序以及其他許多原因。 –

+0

Hey Miklos,我會同意這不是大多數SN用戶的最佳方法。話雖如此,主要問題是「是否可能」,答案是「是」。我會編輯我的答案以解決您的疑慮。 –

+0

我真的只想指出,要試驗這個,你必須知道你在做什麼,我知道你會這樣做:) –

相關問題