いつからか、起業は非常に安くなり、インターネット上であらゆることが話題になり、数千万ドルを簡単に調達できるようになりました。この突風は、データ構造をよく勉強しておらず、データベースの原理をしっかりと理解していないプログラマーにも影響を与えているようです。彼らは、github でいくつかのプロジェクトを公開し、nodejs を使用していくつかのサービスを作成しています。そして、H5 を使用して APP を作成すると、私は上級プログラマーの仲間入りをし、インターネット プロジェクトの戦略を立てることができるようになりました。このような勢いのある雰囲気では、明らかにそれは完全に真実ではありません。インターネットの Web サイトとアプリ 一見美しいアプリの多くは、簡単な httpインターフェースセキュリティさえも対処することができず、多くの美しいレスポンシブ Web サイト、ディレクトリ構造が勝手に積み上げられています。これは実に不健全です。プログラマーはもっと現実に即した理論を学び、より多くのコードを書き、繰り返し練習する必要があると思います。
次に、別の疑問が生じます。新しいテクノロジーや新しいアイデアは、無数の技術専門家が長期にわたる実践の中で繰り返し構築してきた勝利の成果であることは明らかです。 Microsoft がオープン ソースを採用し、長年にわたってコミュニティによってもたらされた変化と進歩を受け入れていることを非常にうれしく思っています。そこで、今日は、私と私の会社が長年にわたって .NET をどのように Web 開発に使用してきたかを共有したいと思います。開発、さらにはインターネットアプリケーション開発の経験と技術概要。 最近開始された典型的なケースである muban.printhelloworld.com を見てみましょう。これは、HTML5、Bootstrap、EF6 For MySql、Alibaba Cloud RDS、Alibaba Cloud などの新しいテクノロジーを使用しています。 CDN やその他の新しいテクノロジと新しい概念は採用されていますが、開発には .NET を使用し、展開には .NET エコロジカル環境 (IIS、Windows Server) を使用するという基本からは外れていません。ただし、開発プロセス全体は完全に廃止されています。私たちは、WebForm や MVC の開発を実践してきました。まったく新しい .NET 開発モデルにより、開発効率とチームのコラボレーションが大幅に向上し、全体のフロントエンドとバックエンドの管理が大幅に短縮されました。ウェブサイトの構想から設計、開発、デバッグまで 1 人で 3 日で完了。以下に開発モデルの詳細を記載します。また、皆様のご意見を聞きながら改善を続けていきます。
ASP.NETWebForm の評価については、次の言葉が客観的だと思います: ASP.NET WebForm のドラッグと event 駆動の Web 開発モデルの革新により、多くの .NET 初心者の学習が容易になりました。 .NET の優れた言語機能は長い間重視されず、代わりに効率が低く、開発が難しいと見なされてきました。これに関しては、ASP.NET WebForm には避けられない責任があります。 2006 年と 2007 年を振り返ると、私は依然として Update
Panel の威力と利便性に驚嘆していました。今振り返ると、この開発モデルは間違いなく HTTP と Web のこの層の性質に対する開発者の理解を曖昧にしてきました。その後、ASP.NET MVC の時代になっても、Microsoft の高レベル プログラマの悪い習慣は改善されていません。MVC はオープンソースですが、依然としてあらゆる種類の独善的な試みに満ちています。開発者に事前情報を提供するために、よく考えられた機能、バインディング、ショートカットなどが非常に便利だと感じるかもしれませんが、商用プロジェクトアーキテクチャや開発に携わった技術マネージャーであれば誰でも深い感情を持つでしょう。安定性が本当に必要な場合、堅固なプロジェクトでは、これらの小さなトリックは役に立たないだけでなく、拡張するのが難しく、制御が難しいバグや抜け穴が発生する可能性が高くなります。 幸いなことに、ナデラ氏のリーダーシップと、技術顧問として復帰したビル・ゲイツ氏の指導の下で、.NET は言語において大きな進歩を遂げていることに加えて、エコロジカルな構築においてもその方向性をますます明確にしてきました。私は、vNext (MVC6.0) が登場するまで、同社が作成した .NET アジャイル開発モデルが進歩の現れであるかどうか疑問に思っていましたが、異なる道が同じ目標につながっていることに突然気づきました。そして、マイクロソフトはついにそれを実現しました。正しい道を歩みました。
開発モデルについて話す前に、まずそれについて話したいと思います:1. 現在のインターネットプロジェクトや伝統的な Web プロジェクトのいくつかの新しい傾向と特徴
1. WebService はもう使用されていませんが、HTTP はデータ通信の方法として広く使用されています
2. データキャリアはもう使用されていません XML 、JSON
に切り替える 3. Web フロントエンドは、Bootstrap、JQueryUI、EasyUI などのサードパーティを使用します。 HTML5 フレームワーク
4. APP のニーズがある場合、または APP の優先順位のニーズがある場合、APP はさまざまなサードパーティのプラグイン
に接続する必要があります。 5. APP の迅速な起動を追求するために、PhoneGap、AppCan、HBuilder などの HTML5 APP 開発モデルが採用される場合があります。は WeChat のニーズであり、WeChat パブリック アカウントに接続し、WeChat ブラウザーでモバイル操作を実行する必要があります。 Web 開発
7. 短い開発サイクルと頻繁な反復
8. データ量は急速に増加しており、レポート表示やデータ分析の需要が増えています
9. プロジェクトチームの人員要件は、Web開発エンジニアエンジニア、JAVA(.NET)エンジニア、データベースエンジニアなどによりHTML5フロントエンドに分かれています
10.
単体テストは減少し、機能テストは増加しており、インターネット ツール (worktile など) が専門的なテスト ツールの代わりに使用されることさえあります 上記の状況に基づいて、システム開発に .NET をまだ使用している場合は、ユーザー数が 500,000 人以下のアジャイル プロジェクト:
2 番目に、いくつかの従来の .NET Web 開発モデルとメソッドは放棄されるべきです
1. ASP.NET WebForm と MVC モデルはどちらも深刻な問題を抱えています。 -エンドとバックエンドの結合の問題により、単純なプロセスが複雑になり、フロントエンドを .NET アーキテクチャから切り離すことはできません。
2. SQL Server データベースはもはや適切ではありません SQL Server 2014 の機能は魅力的ですが、パブリック クラウドの使用がますます一般的になるにつれて、他のデータベースと比較して、サイズ、価格、拡張性、さらにはパフォーマンスのすべてにおいて優れています。いくつかの点で、SQL Server は不利な立場にあります。
3. 従来の 3 層アーキテクチャはもはや適していません。多くのインターネット プロジェクトでは、設計の最初から複数のサービス ノードをサポートし、さまざまなアプリケーション シナリオに応じてさまざまなデータベースを使用する必要があります。さらに、3 層アーキテクチャは、パフォーマンスを犠牲にしてコードを増やすためにリフレクションを広範囲に使用するため、アジャイル開発にはもはや適していません。
4. IIS6.0 の HTTP 要求処理
モデルが IIS7 に遅れているのか、Server 2003 の安定性と拡張性が Server 2008 や 2012 に遅れているのか、Server 2003 の IT アーキテクチャは放棄されるべきです。 2003 および IIS6 では、サーバー ベースのアーキテクチャを考慮する必要はなくなりました。いくつかのことは放棄されていますが、結局のところ Microsoft は Microsoft です:
3. いくつかの .NET 機能を強化する必要があります
1. Visual Studio 2015 開発ツールを徹底的に活用する VS2015 は宇宙レベルです。開発ツールは言うまでもなく、フロントエンドのコーディング(CSS、JS、HTML)も、エンジニアに適したカスタム設定とサードパーティのプラグインを使用すると、さらに強力になります
2. TFS ソース コード管理の使用 (内部インストール
TFS) Express バージョンまたは tfs.visualstudio.com の空きスペースの申請は、どちらもチームのコラボレーションを促進します。Git モードに夢中にならないでください。 . 実際、.NET 開発には TFS 管理モードが最適です3. Linq、Lamda を上手に使いこなすことができれば、.NET の高級言語機能の使用を強化する必要があります。式、リフレクション、タスク並列処理
プログラミングなど.NET独自の高品質な言語機能とメソッドにより、開発効率が大幅に向上し、開発期間が短縮されます。 4. IIS の高度な機能と動的管理を強化する必要がある IIS7 以降、IIS サーバーは、Server 2008 と 2012 の Core モードの追加により、動的管理とIISの設定を強化することでWeb処理効率を大幅に向上させます。 5. Server 2012 R2 オペレーティング システムの使用を強化する必要があります。クロスプラットフォームは .NET の方向性であり、モノラルでもよく実践されていますが、PC サーバーやクラウド サーバーがどんどん安くなっている今日、それはそうです。最新バージョンの Windows サーバー オペレーティング システムを使用することをお勧めします。
上記を理解すると、現在の .NET 開発モデルは次のように簡単に要約できます:
1. フロントエンドとバックエンドが高度に分離されています
まず最初に行うことは、ASP.NET WebForm と MVC モデルを完全に放棄することです。フロントエンドとバックエンドは、Dom 要素のレイアウト、描画、データ要求など、すべて JS を使用して処理されます。一方、バックエンドは論理処理とデータ処理を含む純粋なビジネス ロジックです。現在、私たちのプロジェクトは ASP.NET のルーティング機能を使用しており、引き続き ASP.NET モデルと IIS をホストしていますが、理論上は、近い将来、純粋な HTML5 と Linux 下の Nginx に置き換えられる予定です。 HTMl5 キャッシュも非常に簡単になります。 第二に、フロントエンドで純粋なHTML5を使用する オーディオビデオ、地理的位置などのさまざまな処理が非常にシンプルかつフラットになり、データベースになります。 3. フロントエンドは成熟したフレームワークを最大限に活用しています レスポンシブ レイアウトの問題を解決する上で重要な役割を果たしてきました。 4番目、フロントエンド開発オブジェクト指向化 データ型とエンティティと組み合わせることで、構造と処理ロジックの一貫性により、フロントエンド開発者とバックエンド開発者間のビジネスニーズの理解が近づくだけでなく、技術トレーニングの敷居が大幅に下がり、パフォーマンスが向上します。 チームワークの効率。 5. CDN サービスを使用する 6. HTTP サービスベースのビジネス ロジック 動作 には一意の ルーティング 名があり、ビジネス ロジックはルーティング名のみを担当し、ルーティング名はフローを担当します。方向性、パフォーマンス、権限やセキュリティなどの上位レベルの要件を担当します。この利点は、3 ~ 5 年の経験を持つ開発者 (ほとんどの企業では開発の主力でもあります) をフル活用できるため、ビジネス ロジック以外の開発には必要な作業が必要な一方で、開発者はビジネス ロジックの作成に集中できることです。このレベルは残りの コントローラー によって解決され、大規模な .NET プロジェクトはさまざまな方法でサブモジュールに柔軟に分割することもできます。 HTTP サービスの実装には、ASP.NET ASHX プロセッサ、Windows サービス HOST WCF サービス、ASP.NET Web API を試しました。もちろん、HTTP サービスの需要に応えてです。 , Wen APIも少し重いですが、今後も改善していきます。つまり、この変更プロセスにより、開発効率とテスト効率が実際に少なくとも 3 倍向上しました。これについては後の章で詳しく説明します。 7. 分散型およびホットローディング型HTTPサービスの構築 インターネットアプリケーションでは、アジャイル開発と繰り返しの反復が必要であり、同じ論理アーキテクチャの下で異なるリクエストが異なるサーバーとデータベースを使用することが一般的であるため、プロジェクト設計の初期段階では、分散HTTPサービスの構築が重要です。 更新 .NET システムでは、動的ロードと DLL マネージ コードの使用がさらに必要になります。残念なことに、同社の既存のプロジェクトでは大規模な分散シナリオが見られません。より効率的なものはまだ開発されていません。安定した DLL 動的読み込みアーキテクチャについては、次の章で詳しく説明します。 8. Alibaba Cloud を使用してビッグデータの問題を解決する Alibaba Cloud やその他のクラウド サービスを使用したことのある IT アーキテクトなら、Alibaba Cloud がすでに他のクラウドよりも 1 つ以上の位置にあることを深く実感していると思います。実際、特に RDS、DRDS、KVStore などの Alibaba Cloud のデータベース関連機能は、実際に従来の要件の多くの複雑で困難な点を実際に解決しています。具体的な詳細については後で詳しく説明しますが、誠実に述べます。一言、急いで Alibaba Cloud を使ってください。少なくとも現段階では、Alibaba Cloud はあなたを誘拐しているのではなく、あなたを助けています。 今日はたくさん書きましたが、一般的に、.NET はインターネットベースのアジャイル開発を実行できるだけでなく、大規模なプロジェクト、大規模なデータ、大規模なロジックも処理できるということをお伝えしたいと思います。私はこれを実践しており、15 年以上 Pascal データ構造を書いてきたプログラマーとして、さまざまな新しいテクノロジーにも興味を持ち、試してみました。他の言語からの批判を恐れることはありません。他の言語は、総合的な観点 (言語、開発環境、開発効率、技術コミュニティ、チームのコラボレーション、アプリケーションの機能) から見て、.NET に大きく遅れをとっているとさえ言えます。アプリケーションレベルの開発の分野では、NET プログラマー自身もまだ気づいていないため、この観点からは、全員が協力して研究と探索を続ける必要があります。
以上がインターネット開発に .NET を使用することについての考えと探求の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。