大規模なSilverlightビジネスアプリケーションを新しい生活技術に移行するタスクがあります。私はasp.net MVCとweb apiを選択しました。
ご存知のように、silverlightはMVVMデザインパターンを使用していますが、asp.net mvcは明らかにMVCパターンを使用しています。silverlightロジックをmvcに移行するのは簡単ではないようです。
MVCで知っているように、HTMLを取得するだけなので、クライアントで取得したデータを操作することはできません。私はMVCを使用したことがないので、違いがわかりません。
mVCで同様のロジックを実現できますか? b。他に必要なフレームワークはありますか? c.XAMLバインディングとsvlightからのデータ操作は、mvcで、背後のコードから行われますか?
他に何か提案はありますか?
基本的な問題は、クライアントテクノロジーが根本的に異なるということです。Silverlightの進化の主要なドライバーの1つは、ブラウザーに「豊富な」クライアント機能を組み込むことでした。
これが実際に意味することは、比較的静的なページを提供している場合(少なくとも概念的には)、リッチクライアントアプリのインタラクティブな性質は単純なMVCアプリでは利用できないことです。
ただし、Silverlightが廃止された理由の1つは、JavaScriptおよびMVVMパターン/フレームワークを使用して、ブラウザーでリッチクライアントアプリケーションを構築できるようになったことです。したがって、アプリケーションは、JavaScript(またはC#開発者の場合はより優れたTypeScript)フロントエンドSPA(シングルページアプリケーション)となり、Web APIバックエンドと通信します。
フロントエンド(Aurelia、Angular、EmberおよびブラウザーでMVVMを実行するために必要なレイヤーの一部またはすべてを含む他の多く)を構築するための恐ろしい数の選択肢があります。
サーバーに属しているロジック(Silverlightクライアントにあったロジックを移動する必要があるかどうか)と、今は何を書き換える必要があるかを検討する必要があります。
補遺
また、「単一のページ」は必ずしもすべてが単一のページ/アプリ内にあるであることを意味するわけではありません-論理的な分離がある場合1セットの機能をカプセル化した、小さくて複雑でない部品を構築できます。
また、会社のライトスイッチアプリをアップグレードする方法についても調査しています。どうやら MVCとlightswitchを結合する はできるが、それはlightswitch 2013以降でなければならない。私は完全にMVCに変換することを検討しているため、このソリューションをまだ試していません。 MVCを組み込んだ後でも、モデル、コントローラー、ビューを再度作成するための追加作業を行わずに完全な変換を行う簡単な方法はないようです。幸運を。
クライアントで同様の問題に直面しました-生のMVC.NETは優れたツールですが、古いSilverlightクライアントとはかなり異なります-特に気になるのは、ほとんどの開発者がJavascriptに慣れておらず、パフォーマンスの低下と互換性の問題を招いていることです。 。最終的に、ほとんどの決定がサーバーで行われ、JSON-rest-apiを介して通信されるSilverlightと比較して、かなり「ダム」なクライアントを使用することにしました。
クライアント自体は、データを表示するように設計されたシンクライアントです。操作はサーバーに送信され、そこで評価されます。このテクノロジーは、TypeScript、angular js、d3、およびテスト用のchuzpahに基づいています。開発者はプラットフォームを好んでいますが、フレームワークコードをたくさん書く必要があり、学習曲線はでした。 ...不愉快。
私たちにとってうまくいったのは、チームの他のメンバーを刺激する2人の「Web担当者」を雇うことでした。また、非常に優れたアーキテクトがいて、より複雑な問題の解決に貢献しました。