ホームページ >バックエンド開発 >C#.Net チュートリアル >.netを活用した高効率インターネットアジャイル開発について考える
いつからかわかりませんが、私たちが話題にしているものはすべてインターネットのことで、起業が非常に安くなり、数千万ドルを簡単に調達できるようになりました。この突風は、データ構造をよく勉強しておらず、データベースの原理をしっかりと理解していないプログラマーにも影響を与えているようです。彼らは、github でいくつかのプロジェクトを公開し、nodejs を使用していくつかのサービスを作成しています。そして、H5 を使用して APP を作成すると、私は上級プログラマーの仲間入りをし、インターネット プロジェクトの戦略を立てることができるようになりました。このような勢いのある雰囲気では、明らかにそれは完全に真実ではありません。インターネット Web サイトと APP 一見美しい APP の多くは、単純な http インターフェイスのセキュリティに対処する手段さえ持っていません。多くの美しい応答性の高い Web サイトは、ディレクトリ構造がランダムに積み重なっています。これは、プログラマが依然として維持すべきであると思います。実践的にするには、より多くの理論を学び、より多くのコードを作成し、繰り返し練習してください。
次に、別の疑問が生じます。新しいテクノロジーや新しいアイデアは、無数の技術専門家が長期にわたる実践の中で繰り返し構築してきた勝利の成果であることは明らかです。 Microsoft がオープン ソースを採用し、長年にわたってコミュニティによってもたらされた変化と進歩を受け入れていることを非常に嬉しく思います。そこで、今日は、私と私の会社が Web 開発にどのように使用してきたかについて、いくつかの経験を共有したいと思います。開発の技術概要、さらにはインターネット アプリケーション開発についても説明します。
HTML5、Bootstrap、EF6 For MySql、Alibaba Cloud RDS、Alibaba Cloud CDN などの新しいテクノロジと概念を使用する最新の典型的なケース。ただし、.NET の使用から脱却するわけではありません。 NET エコロジカル環境 (IIS、Windows Server) の開発と導入が必要ですが、開発プロセス全体で WebForm や MVC さえも完全に排除し、開発効率と大幅に向上した新しい .NET 開発モデルのセットを実装しました。この場合、Web サイト全体のフロントエンドとバックエンドの管理は、構想から設計、開発、デバッグ、展開まで 3 日で完了しました。以下に開発モデルの詳細を記載します。また、皆様のご意見を聞きながら改善を続けていきます。
ASP.NET WebForm の評価に関しては、次の言葉が客観的だと思います: ASP.NET WebForm のドラッグとイベント駆動型の Web 開発モデルの革新により、多くの .NET 初心者の学習と理解が促進されましたが、結局、.NET の普及と商用利用が大きく妨げられました。長い間、.NET の優れた言語機能は真剣に受け止められず、代わりに非効率的で拡張が難しく、商用開発には不向きであるというレッテルを貼られていました。 . 、ASP.NET WebForm にはこれに関して避けられない責任があります。
2006 年と 2007 年を振り返ってみても、UpdatePanel のパワーと便利さに驚きました。今振り返ってみると、この開発モデルは間違いなく HTTP と Web の性質に対する開発者の理解に霧を投げかけています。その後、ASP.NET MVC の時代になっても、Microsoft の上級プログラマーの悪い習慣は改善されませんでした。MVC はオープンソースですが、依然として、ASP.NET MVC で考えられたさまざまな独善的な機能が満載です。開発者向けの高度な機能、バインディング、ショートカット メソッドなど、これらは若手開発者にとっては非常に便利かもしれませんが、商用プロジェクトのアーキテクチャと開発に従事したことのある技術マネージャーなら誰でも、堅実なプロジェクトでは実際にそれが重要であると深く感じていると思います。安定性を必要とする場合、これらの小さな賢さは役に立たないだけでなく、拡張するのが難しく、制御が難しいバグや脆弱性を容易に引き起こす可能性があります。
幸いなことに、ナデラ氏のリーダーシップと、技術顧問として復帰したビル・ゲイツ氏の指導の下で、.NET は言語において大きな進歩を遂げていることに加えて、エコロジカルな構築においてもその方向性をますます明確にしてきました。私は、vNext (MVC6.0) が登場するまで、同社が作成した .NET アジャイル開発モデルが進歩の現れであるかどうか疑問に思っていましたが、異なる道が同じ目標につながっていることに突然気づきました。そして、マイクロソフトはついにそれを実現しました。正しい道を歩みました。
開発モデルについて話す前に、次のことについて話したいと思います:
1. 現在のインターネットプロジェクトまたは従来の Web プロジェクトのいくつかの新しい傾向と特徴
1. WebService を使用しなくなり、大量のデータとして HTTP を使用します。通信方法
2. データキャリアは XML を使用しなくなり、代わりに JSON を使用します
3. Web フロントエンドは Bootstrap、JQueryUI、EasyUI などのサードパーティの HTML5 フレームワークを使用します
4. APP のニーズがあります、アプリの優先順位のニーズさえも、アプリはさまざまなサードパーティのプラグインと接続する必要があります
5. アプリの迅速な起動を追求するために、場合によっては、PhoneGap、AppCan、 HBuilderなど
6. WeChatが必要な場合は、WeChatパブリックアカウントに接続し、WeChatブラウザでモバイルWeb開発を行う必要があります
7. 短い開発サイクルと頻繁な反復
8.データ量は急速に増大しており、レポート表示やデータ分析の需要が高まっています
9. プロジェクトチームの人員ニーズはWeb開発エンジニアによって決定され、HTML5フロントエンドエンジニア、JAVA(.NET)エンジニア、データベースエンジニアに細分化されています。 、など
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. Server 2003 の IT アーキテクチャは、IIS7 に遅れている IIS6.0 の HTTP 要求処理モデルであっても、Server 2008 や 2012 に遅れている Server 2003 の安定性や拡張性であっても、IT アーキテクチャは放棄されるべきです。 Server 2003 および 2012 に基づく IIS6 の .NET 展開は考慮すべきではありません。
いくつかのことは放棄されていますが、結局のところ Microsoft は Microsoft です:
3. いくつかの .NET 機能を強化する必要があります
1. Visual Studio 2015 開発ツールを徹底的に活用する VS2015 はユニバースレベルの開発ツールです。言うまでもなく、フロントエンドコーディング(CSS、JS、HTML)でも、エンジニアに適したカスタム設定とサードパーティのプラグインを使用すると、さらに強力になります
2. TFS Express バージョンを内部的にインストールする場合でも、tfs.visualstudio.com の空きスペースを申請する場合でも、TFS ソース コード管理を使用すると、チームのコラボレーションが容易になります。Git モードにとらわれないでください。実際、TFS 管理モードは .NET 開発に最も適しています
3 を理解した上で、.NET 固有の高品質な言語を上手に使用できる場合は、.NET の高位言語機能をより集中的に使用する必要があります。 Linq、Lamda式、リフレクション、タスク並列プログラミングなどの機能やメソッドを活用することで、開発効率が大幅に向上し、開発期間が短縮されます。
4. IIS の高度な機能と動的管理を強化する必要があります。IIS 7 以降、IIS サーバーは高性能 Web ミドルウェアの代名詞となり、Server 2008 および 2012 のコア モードでは、IIS の動的管理と構成が大幅に強化されます。 Web処理効率を向上させます。
5. Server 2012 R2 オペレーティング システムの使用を強化する必要があります。クロスプラットフォームは .NET の方向性であり、モノラルでもよく実践されていますが、PC サーバーやクラウド サーバーがどんどん安くなっている今日、それはそうです。最新バージョンの Windows サーバー オペレーティング システムを使用することをお勧めします。
上記を理解した上で、現在の .NET 開発モデルを次のように簡単に要約できます:
1. フロントエンドとバックエンドが高度に分離されている
最初にやるべきことは、ASP を完全に放棄することです。 NET WebForm および MVC モデルでは、フロントエンドとバックエンドが高度に分離されており、フロントエンドのすべてのロジック処理 (Dom 要素のレイアウト、描画、データ要求など) が JS を使用して処理されますが、バックエンドは純粋なビジネス ロジックです。ロジック処理とデータ処理を含む処理。現在、私たちのプロジェクトは ASP.NET のルーティング機能を使用しており、理論上は引き続き ASP.NET モデルと IIS をホストしていますが、近い将来、純粋な HTML5 および HTMl5 キャッシュをホストするために、Linux 上の Core IIS または Nginx に置き換えられる予定です。 . それもとても簡単になります。
2. フロントエンドは純粋なHTML5を使用します
フロントエンドは従来のHTMLを放棄し、可能な限りHTML5テクノロジーを使用しますが、犠牲の中にはIE11以下のブラウザを放棄することもありますが、今日のインターネットの考え方ではそのような考えはありません。フロントエンドが HTML5 テクノロジーを使用すると、ファイル、グラフィックス、画像、オーディオとビデオ、地理的位置などのさまざまな処理が非常にシンプルかつフラットになり、データベースになるでしょう。
3. フロントエンドは成熟したフレームワークを最大限に活用しています
新しい開発モデルを使用した後、明らかな変化の 1 つは、同社のアーティストがフロントエンドの描画を実行しなくなったか、ほとんど行わなくなったことであり、テクニカル アーティストの需要が生じています (この変化の根本的な原因は、現在、JQuery、Zepto、JQueryUI、JQueryMobile、Bootstrap、Amaze を使用していることです。 UI、inoic、Framework7、SUI、MUI など、およびこれらの優れたフレームワークに付随するサードパーティのプラグイン。客観的に言えば、優れたフレームワークを使用することで、フロントエンドのシステムリスクが増加しないだけでなく、オープンソース、明確なアーキテクチャ、安定性などのフレームワークの特性により、より安定性とスケーラブルなフロントエンドが実現されます。が達成された。簡単な例を挙げると、Bootstrap は、多くの Web エンジニアを悩ませている完全互換性のレイアウトとレスポンシブ レイアウトの問題を解決する上で重要な役割を果たしてきました。
IV. オブジェクト指向フロントエンド開発
フロントエンド開発は JS のオブジェクト指向機能によって単純にカプセル化され、Dom 要素の操作とビジネス ロジック データのリクエストの処理はバックエンドと一貫しています。エンド データ タイプ、エンティティ構造、処理ロジックの全会一致により、フロントエンド開発者とバックエンド開発者の間でビジネス ニーズの理解が近づくだけでなく、技術トレーニングの敷居が大幅に下がり、チームワークの効率が向上します。
5. CDNサービスを使用する
数年前、CDN サービスは大企業や企業のみに限定されていましたが、現在では完全に普及し、民間化されています。Web フロントエンドがますます重要になってきているのは疑いの余地のない事実ですが、実際のビジネス ロジックは多くの場合重要です。数百 K のページは 90% が JQuery などのサードパーティ フレームワークで構成されているため、CDN アクセラレーションを適切に使用すると、ユーザー エクスペリエンスが向上するだけでなく、負荷容量も直接増加します。 HTTP アーキテクチャに基づく Web サービスの割合は 5 ~ 10 倍以上です。
6. HTTP サービスベースのビジネス ロジック
この文はあまり適切な説明ではないかもしれませんが、Alibaba Open Platform などの高度なインターネット アーキテクチャを学習した後、これは新しい .NET 開発モデルにおける最も重要なリンクでもあります。最後に、構造化されているが緩やかなビジネス ロジック処理モデルを形成しました。つまり、各ビジネス ロジック動作には一意のルーティング名が付けられます。ビジネス ロジックはルーティング名のみを担当し、ルーティング名にはフローの方向などの上位レベルの要件があります。 、パフォーマンス、権限、セキュリティに責任を負います。この利点は、3 ~ 5 年の経験を持つ開発者 (ほとんどの企業では開発の主力でもあります) をフル活用できるため、ビジネス ロジック以外の開発には必要な作業が必要な一方で、開発者はビジネス ロジックの作成に集中できることです。レベルは他のコントローラーによって解決され、大規模な .NET プロジェクトはさまざまな方法でサブモジュールに柔軟に分割することもできます。 HTTP サービスの実装には、ASP.NET ASHX プロセッサ、Windows サービス HOST WCF サービス、および ASP.NET Web API を試しました。もちろん、HTTP サービスの需要に応えて、より安定したバージョンは Web API です。 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 プログラマー自身もまだ気づいていないため、この観点からは、全員が協力して研究と探索を続ける必要があります。