2017-04-18 4 views
1

私はSenseNet 6.5.4から作成されたSenseNetリポジトリを持っており、それぞれ独自のコンテンツハンドラを持つ40以上のカスタムコンテンツタイプ(CTD)を持っています。このリポジトリは1年以上にわたってクライアント用に実行されており、ロットのデータが入っています。SenseNet 7.0 MVCアプリケーションは、データソースとしてSenseNet 6.5リポジトリを使用できますか?

このクライアント用のASP.NET MVCアプリケーションを作成したいと思います。新しいSenseNet 7.0(ベータ版)フレームワークを使用するとかなり簡単に見えます。しかし、私のコンテンツリポジトリはSenseNetの以前のバージョンからのものです。つまり、ハンドラは以前のSenseNetライブラリに依存しています。これはおそらく新しいものと互換性がありません。

これも可能ですか、もしそうなら、このクライアントがある時点でSN 7.0にアップグレードされることを考えればよいでしょうか?

答えて

0

はい、可能ですが、新しいSN 7.0ライブラリにリンクするコンテンツハンドラを作成する必要があるため、多くの作業が必要です。既存のカスタムコンテンツハンドラーの場合、これは単純なコピー/ペーストで、こことそこにいくつかの編集が加えられています。ハンドラのC#コードを新しいMVCプロジェクトに追加し、コンパイルしてエラーがないことを確認してください。

これは簡単な部分です!これで、6.5ライブラリを参照するリポジトリ内のすべてのデータのハンドラを作成する必要があります。私のプロジェクトでは、11個のコンテンツハンドラ(SNインストールから)と30個以上のサポートクラスを移植する必要がありました。

ポートを開始する前にリポジトリからすべての未使用コンテンツを削除することをお勧めします。MVCアプリケーションはリポジトリからコンテンツを取得しようとしたときに例外をスローし、そのためのSN 7.0ハンドラを見つけることができません。 Blog,Wiki,Journalなどは、使用しないと削除することができます。

EDIT:Miklosからのコメントに対処するために、この問題はSN 7.0へのアップグレードパスを評価するための実験プロジェクトから生じたものであり、推奨されるアップグレード方法ではないことを明記する必要があります。ああ、オープンソースソフトウェアの美しさ!

私は、6.5リポジトリからXMLとしてデータをエクスポートし、それを7.0リポジトリにインポートすることでカスタムコンテンツをアップグレードすることを試してみます。 6.5ではなく7.0で見つかった任意のエキゾチックコンテンツタイプ(CTD)に由来するコンテンツがない限り、これは実現可能であり、直観的でなければならない。

最後に、MVCアプリケーション用の6.5フレームワークでREST APIを使用するのが最善のことであるという意見に同意しなければなりません。私はこれを何度もやっており、SN 6.5はMVCを簡単にサポートしていません。すべての呼び出しはクライアント側のOData Ajaxであり、デバッグは苦痛であり、サーバー側のC#APIはなく、リポジトリを照会する必要があるたびにAjax呼び出しを書くことはばかげている。もちろん、サーバーからOData呼び出しを作成できることはわかっていますが、きれいでシンプルなサーバー側のAPIから素晴らしいIntelliSenseを使用することははるかに似ています。それは単に闘争に値するものではありません。 SN 7.0では、NuGetパッケージ(server sideおよびclient sideをサポート)を使用して約10分でMVCサイトを実行できます。ただの比較はありません。

+0

申し訳ありませんが、downvotingのThaneですが、これはお勧めのアプローチではないと思います。上記の解決策は実際に部分的な手動アップグレードであるため、サポートされているシナリオではありません。あなたが言及した理由のために欠落している/変更されたコンテンツタイプとハンドラ、その他多くの理由があります。 –

+0

こんにちはMiklos、私はそれがほとんどのSNユーザーのための最良のアプローチではないことに同意するでしょう。それが言われている、主な質問は "それは可能です"と答えは "はい"です。あなたの懸念に答えるために私の答えを編集します。 –

+0

私は実際にこれを実験するには、あなたがしていることを知る必要があることを指摘したいと思っていました。 –

関連する問題