JavaScriptアプリケーション、またはなぜASP.NET MVCでRazorが必要なのですか?

画像



これを書くとは思わなかったが、JavaScriptが勝った。 Razorを使用してWebアプリケーションを構築するのをやめました。 代わりに、JavaScriptフレームワークの別のプロジェクトにフロントエンドを実装します。 ASP.NETに残っているのは、WebAPIと、ユーザーインターフェイスのビジネスロジックとAPIを記述する「エンジン」だけです。







JavaScriptとCSSユニバース





最近、私たちはウェブ技術の爆発的な発展を目の当たりにしています。 HTML / CSS / JavaScript、 Gruntなどのプロジェクト、および数百のJavaScriptフレームワークを操作するための本格的なIDEがあります。 フロントエンドを作成するためのインフラストラクチャは大人になりました。



Githubの統計を見てみましょう。 そもそもJavaScriptスタンドの両方で、プログラミング言語に関する2つの統計情報源を見つけました。



Linguistを使用したGitHubのLanguage Trendsの記事で、JavaScriptはプログラミング言語の中で人気が高いGitHubで最初にランクされました。



画像



GitHutも同様の状況を示しています。



画像



毎週、新しいJavaScriptフレームワークがどこから来るのかがわかりました。 githubでJavaScriptを最初に置いたJavaScriptプログラマーのコミュニティの人件費を想像できます。



クロス機能性の神話





全能のフルスタックWeb開発者を信じることを拒否します。 フルスタックとは、プログラマーが.NETとJavaScript / CSSの両方を理解することを意味します。



これら2つの世界を理解することはどういう意味ですか? これは、ブラウザーでの作業の複雑さを知り、新しいJavaScriptフレームワークで知り、練習すると同時に、C#の新機能、.NETプラットフォームの変更を知り、ASP.NET MVCの新しいバージョンと新しいデータベースを追跡することを意味します。 これは私が最後に見たすべてを知っているフルスタックのWeb開発者です...決して。 これらの2つの分野を受け入れ、専門家になることは、人間の力を超えています。 私は鉄のコアと自由な時間の無制限の供給を持つ人々について話しているのではなく、それは私のような普通の人々についてです。



あなたが私に尋ねると、私はJavaScriptとCSSを知っていますか? 私は知っていると答えます。 しかし、 高品質のフロントエンドソリューションを作成するのに十分なこれらの技術を知っていますか? いいえ、私の知識は十分ではありません。たとえば、当社のフロントエンド開発者と比較して、これらの技術を表面的に知っています。



フルスタックの開発者は複雑なプロジェクトを作成できないという結論に達しました。 複雑なUIと複雑なバックエンドについて話している場合、特殊化が必要です。 フルスタックの開発者をプロジェクトに任せることは、CMSでデザインを引っ張ったり、SharePointでインターフェイスを設定したり、 Bootstrapをカスタマイズしたりするよりも困難です。これはプロジェクトにとって悲惨なことです。



近隣の会社からの話。 リード.NET開発者は、フロントエンドで問題を発見しました。 彼は、UIプロジェクトのアーキテクチャと技術的負債が間違っていると判断したため、クリーンアップに取り組みました。 その結果、JavaScriptアプリケーションを作成できなかったため、さらに悪化しました。



JavaScript開発者がC#にアクセスした場合、同様の状況が発生した可能性があると思います。 違いは、.NET開発者はJavaScript / CSSを正しく修正できると信じていることと、フロントエンド開発者はC#でクロールしない方がよいことを知っているため、クロールしないことです。




相互作用スキーム





作業の開始時に、2つのプロジェクトを行っています。 最初のプロジェクトは従来のVisual StudioのASP.NET Web APIアプリケーション、 Webstormの 2番目のプロジェクトです 。 両方のプロジェクトは同じリポジトリにありますが、これは必須ではありません。



画像



フロントエンド開発者は、2つのアプリケーションが対話するAPIのバックエンド開発者に同意します。



作業プロセス





プロジェクトチームを作成するため、開発者、QA、およびその他のチームメンバーは単一のプロジェクトチームの一部です。 フロントエンドおよびバックエンドの開発者を含むこのチームの一員です。 単一のチームが、 ソフトウェア作成プロセス中に表示されるインパクトマッピング、カスタマージャーニーマッピング、ユーザーストーリーマッピングと連携します



画像



ソフトウェア作成プロセスの観点から、フロントエンド部分とバックエンド部分を分離していないことがわかります。 これは、ビジネス価値の実現に役立つ意識的なステップです。



長所と短所





フロントエンドとバックエンドを2つのプロジェクトに分けると、長所と短所の両方がわかります。





アプローチの選択





CMSを使用する場合、または複雑なビジネスロジックなしで小さなプロジェクトを作成する場合は、ASP.NET MVCアプリケーションを選択し、Razorを通じてHTMLをレンダリングします。 たとえば、これはByndyuSoftのWebサイトの作成方法です。 その他の場合はすべて、フロントエンドをJavaScriptアプリケーションとして選択します。



All Articles