1. ホーム
  2. asp.net

[解決済み] ASP.NET Core 2.0 Razor と Angular/React/etc の比較

2022-08-27 08:17:14

質問

私のチームと私は、エンタープライズ レベルの Web アプリケーション (何を行うかの詳細には触れません) の開発を開始するための資金を受け取りました。 アプリケーションは多くの別々の Web ページを持ちますが、それらのページのうちの 2 つはより集中的で非常に重いものです - 多くのユーザーとの対話、大量のデータを表示するモーダル、Web ソケット接続、チャットなどにおいて重いものです。

私はこのプロジェクトのチーフアーキテクトに任命されたので、最新の Web フレームワークについて調査しています。 バックエンドについては、いくつかテストを行い、Azure SQL プラットフォームを使用することにしました。 今のところ、ASP.NET with Core 2.0に加えられた改良が気に入っています。 特に Razor エンジンは、以前のバージョンの ASP.NET MVC よりも優れています。

Razor と Angular/React などの比較について、専門家の意見を聞きたいと思いました。 私は特にパフォーマンスについてより関心があります。 Core 2.0 Razor は、クライアントサイドのレンダリングフレームワークに対して、どのような位置づけなのでしょうか? その差は無視できるものなのでしょうか? 私たちのアプリは、潜在的な 1,000,000 人のユーザー (およそ 100,000 人の同時使用) を対象としています。

事前にありがとうございます。

どのように解決するのですか?

私たちは最終的に、Angular フロントエンドと ASP.NET Core API バックエンドを採用し、Azure SQL を使用することにしました。 Core Razor をテストしましたが、レガシー Razor よりも優れているものの、最終的には Angular の方がはるかに高速でした。 ユーザーエクスペリエンスに関しては、Angular(またはReact)の方がパフォーマンス面ではるかに優れています。 Angularのモデルバインディングは、サーバーサイドレンダリングの大きな利点であることがわかりました。 しかし、Razor(あるいは一般的なサーバーサイドレンダリング)を使うと、データの整合性が向上し、フロントエンドからバックエンドへのデータの移行がよりスムーズになります。 フロントエンドのフレームワークとAPIの間には、真の意味での断絶が存在します。 サーバに渡されるデータはすべて型付きオブジェクトにキャストされなければならない。これは、2つの別々のPOCOモデル・セットを管理しなければならないことを意味する。 これは、サーバーオブジェクトとフロントエンドオブジェクトが一致しない場合に問題を引き起こす可能性があります。 現時点では、Entity Framework Coreはあまり成熟していないので、オブジェクトの更新、オブジェクトへの問い合わせ、子オブジェクトを含む、などの問題があります。

全体として、このセットアップは今のところ私たちにとって素晴らしいものです。もしあなたがより快適であるなら、React は Angular と同様の置き換えになると想像しています。私は Angular を学ばなければなりませんでしたが、これは非常に簡単な移行で、今では大好きです!