Microsoftは、.NETやC#などのプログラミング言語全体でネイティブのAndroidおよびiOSアプリケーションを開発するためのツールを提供しています。
Microsoft Technology Associateは、ドットネット開発者が最新のBlazorツールキットの可能性を利用してWebアプリケーションまたはネイティブiOS / Androidアプリケーションを作成できるようにすることを目的としています。 Microsoftは、ASP.NETプラットフォームの機能であるBlazorの実験的な「Blazorbuilding」を発表しました。これにより、開発者はJavaScriptではなくC#を使用してインタラクティブなWebアプリケーションとユーザーインターフェイスを作成できます。コンポーネントのこのバインディングにより、AndroidまたはiOS用の.NETまたはC#を使用して、使い慣れたWebプログラミングを使用してネイティブモバイルアプリケーションを作成できます。
2019年、Microsoftは、モバイル向けでダーツで書かれたデスクトップFlutterアプリを開発したのと同じテクノロジーを使用して、代わりにBlazorと.NETの助けを借りてソリューションを披露しました。 Microsoft Blazorは、ASP.NETによる実験的なWebユーザーインターフェイスフレームワークであり、WebAssemblyを介してすべてのブラウザーにアプリケーションを提供することを目的としています。これにより、開発者はプラグインやトランスパイルを必要とせずに、真のフルスタックアプリケーションを作成し、クライアントとサーバー間でコードを共有できます。 Microsoftは、ネイティブアプリケーションを作成するためのWebプログラミングとパターンの基本に精通している開発者の要件を満たすためにプラットフォームを実験しています。この記事では、MicrosoftBlazorが.NETのWebサイト開発サービスにどのように革命をもたらしているかを探ります。
なぜBlazorは新しい誇大宣伝なのですか?
MicrosoftのBlazorは、ASP.NETコミュニティから派生した最新のクライアント側ユーザーインターフェイスフレームワークです。このプラットフォームの最大の販売面は、JavaScriptではなくCSS、HTML、またはC#を使用してリッチWebUIインターフェイスエクスペリエンスを開発できることです。これには、ほとんどの開発者が長い間夢見てきたすべてのものが含まれています。マイクロソフトのWebサイト開発者またはアソシエイトとして、過去数年にわたってASP.NET分野の新しい開発についていくのであれば、間違いなくBlazorのことを聞いたことがあるでしょう。 JavaScriptフレームワークは、フロントエンドWeb開発の開始以来、事実上の手段であり、開発者はそれに満足しているようには見えませんでした。そして、JavaScriptプラットフォームを改善し、より保守しやすくするために、Dart、CoffeeScript、Elm、Scalaなどのように過去数年間に出現した多くのトランスパイルとスーパーセットがありました。ただし、Blazorは、元の設計以外に効率的で生産性の高いプログラミングプラットフォームになる可能性があり、JavaScriptのシングルページアプリケーション開発フレームワークに直接現代的であることが証明されているため、すでにプロセスを開始しています。このフレームワークの主な目標は次のとおりです。
JavaScriptの代わりにC#を使用して、リッチでインタラクティブなWebアプリケーション/ユーザーインターフェイスを作成する
.NETFrameworkで開発されたサーバー側またはクライアント側のアプリケーションロジックを共有または収集する
モバイルブラウザを含むブラウザサポート用のユーザーインターフェイスCSSおよびHTMLのレンダリング
Dockerなどの最新のホスティングプラットフォームを統合します。
Blazorフレームワークは、ユーザーがJavaScriptの代わりにC#を使用してインタラクティブなWebユーザーインターフェイスを構築できるようにする単一ページのアプリケーション開発ソリューションです。 Angular、Vue、ReactなどのJavaScriptフレームワークに触発され、インタラクティブなソリューションを開発するために同様の概念を使用しています。すべてのBlazorアプリケーションは、Razorの再利用可能なコンポーネント、つまりC#およびHTMLのマークアップ構文から開発されています。 Microsoftは、Blazorを使用して、進行中のさまざまな実験を共有し、WebWindowの助けを借りてトップデスクトップアプリケーションとそれをドリルしています。しかし、ネイティブモバイルアプリ開発の最新のものは、BlazorプログラミングがXamarinコントロールとペアになっているところです。
ブログを読む-Microsoft はBlazorでモバイルアプリ開発をターゲットにするための作業を進めています
Blazorを最高のWeb開発会社にとって柔軟なプラットフォームにする理由は何ですか?
Blazorは、変更のレンダリング方法と、ユーザーインターフェイスコンポーネントモデルまたはアプリケーションの変更の計算方法を分離しているため、アーキテクチャです。この機能は、このプラットフォームを同時代のもの、つまり、ユーザーインターフェイスに基づいてのみWebテクノロジーを開発できるReactJS、Angular、ReactNativeなどの他のユーザーインターフェイス開発フレームワークとは一線を画しています。 Blazorは、ソリューションの開発に複数のレンダリングを利用することで、Webベースのコンポーネントを開発できるだけでなく、ネイティブのモバイルユーザーインターフェイスも開発できます。さらに、コンポーネントを別の方法で開発する必要がないため、Webレンダラー用に開発されたコンポーネントを他のネイティブモバイルレンダリングと一緒に使用することはできません。ただし、プログラミングモデルは同じままです。つまり、開発者がこのモデルに慣れると、レンダラーを使用してユーザーインターフェイスを簡単に作成できます。そのアプリケーションモデルのコンポーネントは次のとおりです-
WebAssemblyレンダラー
リモートレンダリング
電子レンダラー
モバイルBlazorバインディングレンダラー
ホスティングモデル-中核となるBlazorのAPモデルは、ASP.NET開発サービス全体のUI変更の計算と維持を担当します。ただし、開発者は、表示と更新を制御するために他のレンダラーを使用することもできます。これらのアプリレンダラーモデルは主にホスティングモデルと呼ばれ、開発時には通常Blazorに4つのモデルがあります。彼らです-
Blazorサーバー
BlazorWebAssembly
ブレイザーエレクトロン
ブレイザーバインディング
これらのモデルのうち、Blazor Serverは、執筆時点でサポートされている製品として分類されている唯一のモデルですが、Blazor BindingsとElectronは、実験的にサポートされているモデルとしてマークされています。
マイクロソフトテクノロジーアソシエイト:Blazorの機能
2020年は間違いなくMicrosoftのBlazorの頂点であり、まもなく主流になることがすでに発表されています。プラットフォームは、Razor(ブラウザー+ Razor)の利便性とASP.NETの概念を組み合わせているため、真にシンプルで使いやすいものです。 Blazorはまた、DotnetコンベンションまたはRazorによって提供されるテンプレートを活用するとともに、ReactやAngularなどの人気のあるJavaScriptフレームワーク全体で信じられないほどのパターンを合理化しました。 Blazorは、ASP.NETフレームワークの助けを借りてインタラクティブなクライアント側のWebユーザーインターフェイスの作成を容易にする素晴らしいプラットフォームです。 Blazorプラットフォームの助けを借りて、開発者はサーバー側アプリケーションの任意のセグメントからライブラリとコードを再利用できます。また、インタラクティブなクライアント側アプリケーションの開発にASP.NETフレームワークを使用するため、すでに強力なフレームワークとライブラリのセットに基づいて構築されています。このプラットフォームを際立たせる便利な機能のいくつかは次のとおりです-
開発者がすばらしいアプリケーションの作成を簡単に開始できるように、事前に作成されたユーザーインターフェイスコンポーネントがたくさんあります。この機能は、すべてのカスタムWeb開発会社または組織に高く評価されています
このパックには、JavaScriptのテクノロジーや機能は必要ありません。代わりに、C#を使用してタスクを簡単に実行できます。これは、開発者または組織の全体的な生産性を向上させるためです
.NETFrameworkのアプリ開発コンポーネントを認証するためのサポートが組み込まれています
開発者は、「JavaScriptの相互運用性」と呼ばれる関数を使用して、ASP.NET手法からJavaScript機能を呼び出すことができます。
Blazorは、WebAssemblyで実行されるクライアント側アプリケーションを作成するためのフレームワークとしてASP.NETコミュニティによって開発されているため、すべてのMicrosoftWebサイト開発者は魅力的だと感じています。これは、ASP.NETテクノロジをエンドツーエンドで使用する最新の豊富なシングルページアプリケーションフレームワークの利点を提供します。また、このフレームワークのアイデアは、C#の効率を組み合わせる可能性があり、Razorは、ブラウザーで完全に実行できるクライアント側のWebプロジェクトです。最新のWebフレームワークを作成するために必要なすべての機能があり、その一部を以下に示します-
構成可能なユーザーインターフェイスを開発するためのモデル
アプリケーション開発段階でのブラウザのライブロード
最新のWeb開発機能を使用する
依存性注入
古いブラウザ間で実行する機能
完全なASP.NETデバッグ
プラグインを必要としないオープンWeb開発プラットフォームの開発されたセグメント
豊富なインテリジェンスとUI開発ツール
サーバー側のレンダリング
ブログを読む-C#、. NET、ASP.NET、Microsoft.NET、およびVisual Studioの違いは何ですか?
MicrosoftBlazorとASP.NETインタラクティブWeb開発の比較
通常のASP.NETは、ユーザーインターフェイスを文字列のブロックとしてレンダリングします。一方、Blazorはツリーを開発またはレンダリングしましたが、文字列はレンダリングしませんでした。このフレームワークは、ドキュメントオブジェクトモデルの表現です。つまり、Blazorが表現を保持している間、コンポーネントをメモリに保持します。これらのコンポーネントで行われた変更または修正は、同じドキュメントオブジェクトモデル要素のユーザーインターフェイスの更新をトリガーする可能性があります。文字列をレンダリングするこれらのプロセスの両方には大きな違いがあります。特に、最高のWeb開発会社はBlazorコードを使用しており、ドキュメントオブジェクトモデルコードに直接アクセスすることはできません。この制限は、インタラクティブアプリケーションのユーザーインターフェイス要素に完全にアクセスするためにJavaScriptフレームワークに依存しているため、ASP.NETCoreとRazorでは動作が異なります。
Blazorリゾートは、ツリーをレンダリングして以前のDocument Object Model(DOM)表現に戻り、同じモデルの特定の部分を探します。後で、このフレームワークはそれに応じてそれらを更新、編集、または削除します。フレームワークは、ドキュメントモデルに加えられた変更を合理化するか、レンダリングツリーを操作して変更を実行します。このメカニズムは、C#言語がクライアント側のインタラクティブなアプリケーションレンダリングで機能することを可能にするものです。クライアント側のBlazorの長所は-
Webサイト開発サービスの場合、Blazorを使用すると、開発者はブラウザーでASP.NETコードを直接実行できます。このフレームワークは、フルスタックプラットフォームでのJavaScriptフレームワークの独占を打ち破ります。これは、その支援により、.NETプロフェッショナルがプログラミングポリグロットになる必要がないためです。また、JavaScriptでコードを記述せずにソリューション全体を開発することもできます
Blazor UIコードは、中間言語としてASP.NETにコンパイルされます。これは、フレームワークがJavaScriptコードと同じ可能性を持っていることを意味します。そのコンパイルモデルは、パフォーマンス重視のブラウザWebソリューションに大きな違いをもたらす可能性もあります。
開発者は、サーバーまたはクライアント側のアプリケーション間でコードを簡単に検証できます。たとえば、 ASP.NET開発サービスプラットフォームには、ブラウザーだけでなくバックエンドにも適用できる検証ロジックがあるとします。 Blazorを使用すると、ASP.NET標準でクラスライブラリを作成し、サーバー側またはクライアント側のアプリケーション間で共有することができました。また、検証ロジックの変更は、これらの各プラットフォームに自動的に適用されます。
Blazorサーバー
このモデルは、現在公式にサポートされているモデルの1つであり、その支援により、アプリケーションはサーバー上で簡単に実行できますが、ブラウザーでは実行できません。 Blazor Serverは、SignalR接続を使用して、サーバーからブラウザーにユーザーインターフェイスの更新を送信します。このサーバーホスティングモデルは、現在、Microsoftの基本的な開発のために本番状態でサポートされているオプションです。このモデルでは、プラットフォーム指向のアプリケーションはサーバー上およびASP.NETランタイム上で実行されます。開発者またはユーザーがこのアプリケーションをロードすると、最初に小さなJavaScriptファイルがダウンロードされ、サーバーとの双方向のリアルタイム接続(SignalR接続)が確立されます。ユーザーとアプリケーション間の対話は、サーバー処理用の接続を使用して、対応するサーバーに即座に送信されます。サーバーの処理が完了すると、ユーザーインターフェイスの更新と変更が同じクライアントに返送され、ドキュメントオブジェクトモデルに適用されます。 Microsoftは、差分を計算してコンパクトなバイナリ形式で転送するために、高性能のアルゴリズムを開発しました。通常ステートレスアプローチを採用する他のほとんどのインタラクティブWebアプリケーションとは異なり、Blazorサーバーアプリケーションモデルはサーバー全体で同じ状態を保持します。
開発者コミュニティの場合、いくつかのケースで再考のアプローチが必要ですが、一般に、ASP.NETコアアプリケーションで使用するのと同様の概念を使用できます。このモデルの最大の利点は、サーバーとクライアントの間で通信するための別のアプリケーションプログラミングインターフェイスを開発する必要がないことです。これは、すべての側面がサーバー上で実行されるため、カスタムWeb開発会社または開発者がロジックに従ってこれらの関数を直接呼び出すことができるためです。サーバー上の計算プロセスにより、Blazor ServerのインタラクティブWebソリューションは、ローエンドデバイスまたはシンクライアントに最適です。
BlazorWebAssembly
ホスティングモデルが増えることは大きな問題ですが、正当な理由があります。このモデルは、React、VueJS、AngularなどのJavaScriptインタラクティブアプリケーション開発と直接競合します。開発者はWebAssemblyを使用して、JavaScriptの代わりにC#を使用して、ユーザーインターフェイスロジックとコードを簡単に記述できます。 Microsoftが最初にBlazorを発表したとき、それは完全にWebAssemblyモデルに関するものでした。このモデルでは、アプリケーションを最初にランタイム形式でロードし、その後、アプリケーションアセンブリ全体とその依存関係をロードしました。 BlazorWebAssemblyの依存関係には、フレームワーク、System.dllなどが含まれますが、ランタイムはバイナリ形式であり、他のアセンブリは同じ形式であるため、開発者は通常のASP.NETアプリケーション開発で使用できます。
Blazor WebAssemblyは、アプリケーションを実行またはロードするためにインタープリターコードを利用します。このモードでは、インタープリターはインタラクティブなアプリケーションユーザーインターフェイスを実行できます。 WebAssemblyモードで結合されるこのプロセスの唯一の部分は、そのモノランタイムです。その主な利点は、パフォーマンスと、大きなファイルまたは大量のファイルとのトレードオフです。 BlazorのWebAssemblyの利点のいくつかは次のとおりです-
静的ファイルをコンパイルします。つまり、開発者はサーバー上のASP.NETランタイムを考慮する必要はありません。
Blazorのほとんどのタスクは、サーバーからクライアントにオフロードされます
アプリケーションは、オフラインモードまたは状態で実行することもできます
サーバーとクライアント間でC#コンポーネントを効果的に共有できるコード共有を容易にします
一般に、ASP.NETアプリケーションでは、ジャストインタイムコンパイラが使用されますが、最近WebAssemblyではサポートされていません。ただし、標準の将来のバージョンで追加される可能性がありますが、現時点では、ASP.NETコードの実行に別のバージョンが使用されています。 Microsoftアソシエイトプラットフォームは、アプリケーションまたはフレームワークアセンブリをWebAssemblyに直接コンパイルするために、計画とAhead Of Timeコンパイル(AOT)に取り組んでいます。このコンパイルにより、効果的な対話型アプリケーション開発時間が得られ、実行時間の観点からパフォーマンス指向であることが証明されます。
結論
.NET開発へのBlazorの参入に関してすでに多くの注目と議論が行われているこの時期に、開発者には多くの選択肢が残されています。この記事では、MicrosoftのBlazor、Sever、WebAssemblyなどの紹介とコアコンセプトについて説明しました。また、ASP.NETプラットフォームでのインタラクティブなWebアプリケーション開発のために、このフレームワークが現在どのように展開されているかについても説明しました。 Blazorはエキサイティングなプラットフォームであり、特に開発とツールの面で、改善の余地が広くなっています。
また、WebAssemblyは、ほとんどのアプリ開発会社やフロントエンド開発者が単純に無視できない主要なテクノロジーです。これはASP.NETプロフェッショナルにとって優れたプラットフォームであり、追加のプログラミング言語を習得しなくても、ASP.NETプロフェッショナルを利用してフルスタック開発者になることができます。このプラットフォームは、単一のプログラミングモデルのユーザーインターフェイスの開発に関して明確であり、フレームワークコンポーネントをどこにでも適用することで簡単に学ぶことができます。