ホームページ >バックエンド開発 >C#.Net チュートリアル >効率的なインターネット アジャイル開発のための .NET の使用に関する考えと探求

効率的なインターネット アジャイル開発のための .NET の使用に関する考えと探求

黄舟
黄舟オリジナル
2017-02-22 10:18:131215ブラウズ

いつからか、起業は非常に安くなり、インターネット上であらゆることが話題になり、数千万ドルを簡単に調達できるようになりました。この突風は、データ構造をよく勉強しておらず、データベースの原理をしっかりと理解していないプログラマーにも影響を与えているようです。彼らは、github でいくつかのプロジェクトを公開し、nodejs を使用していくつかのサービスを作成しています。そして、H5 を使用して APP を作成すると、私は上級プログラマーの仲間入りをし、インターネット プロジェクトの戦略を立てることができるようになりました。このような勢いのある雰囲気では、明らかにそれは完全に真実ではありません。インターネット Web サイトと APP 一見美しい APP の多くは、単純な http インターフェイスのセキュリティに対処する手段さえ持っていません。多くの美しい応答性の高い Web サイトは、ディレクトリ構造がランダムに積み重なっています。これは、プログラマが依然として維持すべきであると思います。実践的にするには、より多くの理論を学び、より多くのコードを作成し、繰り返し練習してください。

次に、新しいテクノロジーや新しいアイデアは役に立たないのか、という別の疑問が生じます。もちろんそうではありません。新しいテクノロジーや新しいアイデアは、無数の技術専門家が長期的な実践の中で繰り返し再構築してきた勝利の成果です。.NET のベテランとして、私はそう思います。 Microsoft がオープン ソースを受け入れ、長年にわたってコミュニティによってもたらされた変化と進歩を受け入れていることをとても嬉しく思います。そこで、今日は、私と私の会社が長年にわたって .NET の使用について学んだことを皆さんと共有したいと思います。 Web 開発、さらにはインターネット アプリケーション開発における経験とテクノロジー。

最近リリースされた典型的なケース http://www.php.cn/ を見てみましょう。これは、HTML5、Bootstrap、EF6 For MySql、Alibaba Cloud RDS、Alibaba Cloud CDN などの新しいテクノロジーと概念を使用しています。ただし、開発に .NET を使用し、展開に .NET エコロジカル環境 (IIS、Windows Server) を使用するという基礎からは外れていません。ただし、開発プロセス全体は完全に廃止されています。 WebForm と MVC の新しいセットを実装しました。これにより、開発効率とチームのコラボレーションが大幅に向上し、Web サイト全体のフロントエンドとバックエンドの管理が大幅に短縮されました。 、構想から設計、開発、デバッグ、展開まで、1 人で 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. If APP の需要はあり、APP の方が好ましい 5. APP の迅速な起動を追求するために、PhoneGap、AppCan、HBuilder などの HTML5 APP 開発モデルが採用されることがあります。

6. WeChatが必要、WeChatパブリックアカウントに接続する必要がある、WeChatブラウザでのモバイルWeb開発

7.開発サイクルが短く、繰り返しが頻繁

8.データ量が急速に増加しており、レポート表示のニーズが高まっているとデータ分析

9. プロジェクトチームの人員ニーズ Web開発エンジニアから、HTML5フロントエンドエンジニア、JAVA(.NET)エンジニア、データベースエンジニアなどに細分化されます

10. 単体テストは減少し、機能テストは増加しており、インターネットツール(worktileなど)が専門的なテストツールの代わりにさえ使用されています

上記の状況を踏まえて、システム開発に.NETが依然として使用されている場合について考えます。 、その場合、ユーザーの数は

第二に、いくつかの従来の .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 ソース コード管理の使用は、チームのコラボレーションを容易にする tfs.visualstudio.com の空きスペースを申請することもできます。 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 に置き換えられる予定です。 . それもとても簡単になります。

第二に、フロントエンドで純粋なHTML5を使用する

フロントエンドは従来のHTMLを放棄し、可能な限りHTML5テクノロジーを使用します犠牲の中にはIE11以下のブラウザを放棄することもありますが、今日のインターネットの考え方ではそのような考えです。悪い考えではありません。HTML5 テクノロジーがフロントエンドで完全に使用されると、ファイル、グラフィックス、画像、オーディオとビデオ、地理的位置などのさまざまな処理が非常にシンプルかつフラットになり、データベースになります。

3. フロントエンドは成熟したフレームワークを最大限に活用しています

新しい開発モデルを使用した後、明らかな変化の 1 つは、同社のアーティストがフロントエンドのカッティングを行わなくなったか、ほとんど行わなくなり、技術的な要求が生じたことです。この変化の根本的な原因は、先進的で優れたフロントエンド フレームワークが次々に登場していることです。現在、私たちは JQuery、Zepto、JQueryUI を使用しています。 JQueryMobile、Bootstrap、Amaze UI、inoic、Framework7、SUI、MUI など、およびこれらの優れたフレームワークに付随するサードパーティのプラグイン。客観的に言えば、優れたフレームワークを使用することで、フロントエンドのシステムリスクが増加しないだけでなく、オープンソース、明確なアーキテクチャ、安定性などのフレームワークの特性により、より安定性とスケーラブルなフロントエンドが実現されます。が達成された。簡単な例を挙げると、Bootstrap は、多くの Web エンジニアを悩ませている完全互換性のレイアウトとレスポンシブ レイアウトの問題を解決する上で重要な役割を果たしてきました。

4. オブジェクト指向フロントエンド開発

フロントエンドの開発は、JS のオブジェクト指向機能によって単純にカプセル化されます。Dom 要素の操作とビジネス ロジック データ リクエストの処理は、バックエンドのデータ型、エンティティ構造、処理ロジックと一致しているだけではありません。フロントエンド開発者とフロントエンド開発者の距離が近くなります ビジネス ニーズを理解することで、技術トレーニングの敷居が大幅に下がり、チームワークの効率が向上します。

5. CDN サービスを使用する

数年前、CDN サービスは大企業や企業専用でしたが、今では完全に普及し、民間化されつつあります。それよりも重要ですが、実際のビジネスでは、ロジックはわずか数十 K、さらには数 K であることがよくあります。数百 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 プログラマー自身もまだ気づいていないため、この観点からは、全員が協力して研究と探索を続ける必要があります。

上記は、効率的なインターネット アジャイル開発のための .NET の使用に関する考え方と探求です。さらに関連するコンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。