web-dev-qa-db-ja.com

.NET ASP MVCコアは迅速なWeb開発に適していますか?

私は現在、企業や起業家向けのWebアプリケーションを構築する会社で働いています。通常、年間4〜6プロジェクトです。現在、Laravel/PHPを使用しています。これにより、妥当なスケーラビリティ、保守性、セキュリティなどを備えた比較的迅速にアプリを構築できます。

私はPHPは言語として嫌いであり、会社の方向性に強い影響力があるため、最終的にPHPは新しいプロジェクトで使用し、より優れた言語/フレームワークを採用します(これは彼が同意したものです)。

私の上司は大丈夫だったASP.NET Coreを提案しました。私はプラットフォームで最新のプロジェクトの開発を開始しましたが、1週間と開発のスピードを落とすいくつかのハードルがあったため、期限を設けるためにPHP=)に戻ることにしました。

各エンティティが各レイヤー(および複数のビューモデル)にいくつかのコンポーネントを必要とするため、.NETの世界(MVC、サービスレイヤー、リポジトリレイヤー)でかなり標準的なレイヤードアーキテクチャに従っていましたが、as Laravel任意のデータをビューに渡し、リクエストから任意のデータを読み取ることができます。サービス/リポジトリレイヤーは一切使用せず、目的に合ったコントローラーレベルでORMを使用します。

私の最初の考えでは、レイヤードアーキテクチャにダイヤルバックするだけでした(結局のところ、PHP/Laravelではそうしていません)が、私の懸念は、.NET Coreが必要とする冗長性のため、迅速な開発には適していないということです。静的に型付けされた言語。 Ruby/Rails、Python/Django、JS/Nodeの方がラピッドプロトタイピングに適しているようで、そのような場合、ASP=)はほとんど聞こえません。

.NET ASP MVCコアは、迅速な開発とプロトタイピングに適していますか?レイヤードアプローチに従わない.NET Coreでアプリを構築することは可能ですか?前述の言語/フレームワークの1つ?

2
Brad

はい。NetCoreはまだ非常に新しいですが、迅速なWeb開発に適しています。

警告#1:Asp.Net MVC/WebApiは、より成熟したテクノロジーです。下位レベルのタイプの操作を実行している場合は、互換性が高くなる場合があります。

警告#2:あなたはいつもあなたが知っている方法でより速いプログラミングです。

締め切りの厳しいプロジェクトで大きなジャンプをしているように思えます

各エンティティが各レイヤー(および複数のビューモデル)にいくつかのコンポーネントを必要とするため、明らかに時間を追加します。

通常、ビューごとにビューモデルのみが必要であり、それを書き込むのにかかる時間は最大で数分です。

ここで、Laravelとして、ビューに任意のデータを渡し、リクエストから任意のデータを読み取ることができます

あなたは.netでこのようにプログラムできますが、明らかに強力な型の利点を失うため、慣れれば開発がより速くなり、バグが少なくなります。

サービス/リポジトリ層は一切使用せず、目的に合ったコントローラーレベルでORMを使用します。

この場合も、.net内のコントローラーのDBに直接アクセスできます。推奨されません。

私はあなたのスローダウンの原因となっている言語ではなく、すべてのベストプラクティスを同時に実装しようとしていると言っていいでしょう。

強力なタイピング、レイヤーの分離、依存性注入、単体テスト、統合テスト[〜#〜] do [〜#〜]により、全体的に高速になります。

慣れれば余分なタイピングは問題になりませんが、その利点は、コンパイル時間のチェックと単体テストのためにバグを早期に見つけたときに初めて明らかになります。

小さくて重要性の低いプロジェクトから始めて、一度に一歩ずつ進めていきます。

5
Ewan