2016-08-21 17 views
4

asp.net 5.0とAngular 2.0を使用してWeb APIに移行したい、非常に大きなasp.net MVC 4.0アプリケーションがあります。既存のASP.NET MVCアプリケーションにAngular 2.0を追加する方法

主な理由は、将来の校正を開始し、いくつかの新しいコンポーネントをより現代的なSPAアーキテクチャに設定することです。

私の計画では、MVCコントローラと機能ではなく、データのWeb APIを呼び出すAngular SPAアプリをルーティングするときに表示する既存のサイトの小さなセクションを作成することです。このセクションでは、共有レイアウトページ、バンドル、ルーティングなどのASP.NET MVC機能を使用することを計画していません。

既存のMVCプロジェクトと新しいWeb APIプロジェクトの両方で、EFを使用するデータレイヤプロジェクト/リポジトリを使用します。

私の質問は以下のとおりです。

  1. どのようにこの音がしますか?既存のアプリケーションに角を導入する方法に関する多くの文献を見つけることができませんでした
  2. 同じデータベースにアクセスする新しいドメインでは、別々のプロジェクトを使うべきですか?つまり、移行するのではなく、ASP.NET 5.0の新しいソリューションを開始する
  3. 認証と承認をどのように処理するのですか?私はID v2.0を使用していますが、MVCサイトのページにアクセスしているユーザーが標準フォームベースの認証を使用するように混在させることはできますが、Angular/API部分にアクセスする際にはトークンを使用しますか?

お時間をいただきありがとうございます。

答えて

4

このプロセスは過去6ヶ月間行われています(唯一の違いは角度2ではなく角度です)。そして、ここに非常に私の意見...

小さな代わりに、MVCコントローラの角度SPAアプリがデータ用のWeb APIを呼び出すディスプレイにルーティングされ、既存のサイトのセクション、および機能

ですASP.NET CoreはMVC 4とは根本的に非常に異なるため、難しくはありませんが、難しくありません。私は、CoreとAngularを実行する別のサイト(別のポート)を用意することをお勧めします。

共有レイアウトページ、バンドル、ルーティングなどのASP.NET MVC機能を使用する予定はありませんが、代わりにこれを角張った状態にすることをおすすめします。

これは私たちの最初のアプローチでしたが、それを達成するために、たくさんのJavascriptライブラリをあらかじめロードするか、動的ロードのためにスマートなものを実行する必要がありました。 Angular2(インフラストラクチャに動的ロードを組み込むことができるSystemJS)は簡単です。代わりに、アプリケーションを約半ダースの機能に分割しました。各機能には.NETコントローラと単一のビュー(Index.cshtml)があります。この機能では、ルーティング、ビューなどのために角度機能を使用しています。このアプローチはまた、強く型付けされたビューを持つのにも役立ちました。

同じデータベースにアクセスする新しいドメインで、別々のプロジェクトを使用するか、別のソリューションを使用する必要がありますか?

エンティティフレームワークもかなり異なっています。古い(非常に古い)ソリューションでは、EFをまったく使用しなかったため、より簡単な決定でした。しかし、を実行してものEFを現在のソリューションで使用しても、EFコアは移行方法を含めて異なる動物です。クリーンなカットを取ることはずっと簡単でした。

認証と認可の処理方法を教えてください。

以前のシステムではメンバーシップフレームワークを使用していましたが、OAuthに精通したチームには誰もいませんでした。したがって、IdentityServer 4(ドキュメントはほとんどない)を待つ間に、StormPathやAuth0(StormPathが大好き)などのSaaSソリューションを検討することをお勧めします。 IdentityServerの経験があれば、IdentityServer 4に飛び込むことができます.MVCを使用しているため、認証は非常に簡単です。 AJAXベースの認証はそれほど難しくありません。

希望に役立ちます。 SOは「意見に基づく」質問が好きではありませんが、この種の移行に苦労しているチームがたくさんいると思います。この質問と回答は適切です:

+0

ありがとう、役に立った – Evonet

+0

だから...ああ、以前のmvcプロジェクトに角型アプリケーションを追加したことがありますか? –

+0

試してみることにしました – Felix

関連する問題