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

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

Feb 22, 2017 am 10:18 AM

いつからか、起業は非常に安くなり、インターネット上であらゆることが話題になり、数千万ドルを簡単に調達できるようになりました。この突風は、データ構造をよく勉強しておらず、データベースの原理をしっかりと理解していないプログラマーにも影響を与えているようです。彼らは、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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

タスクバーにインターネット速度を表示する方法[簡単な手順] タスクバーにインターネット速度を表示する方法[簡単な手順] Aug 01, 2023 pm 05:22 PM

インターネット速度は、オンライン体験の結果を決定する重要なパラメータです。ファイルをダウンロードまたはアップロードする場合でも、単に Web を閲覧する場合でも、私たちは皆、適切なインターネット接続を必要とします。このため、ユーザーはタスクバーにインターネット速度を表示する方法を探しています。タスクバーにネットワーク速度を表示すると、ユーザーは、実行中のタスクに関係なく、状況をすばやく監視できます。タスクバーは、全画面モードでない限り常に表示されます。ただし、Windows には、タスクバーにインターネット速度を表示するネイティブ オプションがありません。そのため、サードパーティのツールが必要です。最適なオプションについてすべて学びましょう。 Windows コマンドラインから速度テストを実行するにはどうすればよいですか? + を押して「ファイル名を指定して実行」を開き、「power Shell」と入力して、++ を押します。窓

修正: Windows 11 セーフ モードでインターネットにアクセスできないネットワーク接続の問題 修正: Windows 11 セーフ モードでインターネットにアクセスできないネットワーク接続の問題 Sep 23, 2023 pm 01:13 PM

セーフ モードとネットワークの Windows 11 コンピューターでインターネットに接続できないと、特にシステムの問題の診断とトラブルシューティングを行うときにイライラすることがあります。このガイドでは、問題の潜在的な原因について説明し、セーフ モードでインターネットにアクセスできるようにするための効果的な解決策をリストします。セーフ モードでネットワークを使用するとインターネットが利用できないのはなぜですか?ネットワーク アダプターに互換性がないか、正しく読み込まれていません。サードパーティ製のファイアウォール、セキュリティ ソフトウェア、またはウイルス対策ソフトウェアが、セーフ モードでのネットワーク接続を妨害する可能性があります。ネットワークサービスが実行されていません。マルウェア感染 Windows 11 でセーフ モードでインターネットが使用できない場合はどうすればよいですか?高度なトラブルシューティング手順を実行する前に、次のチェックを実行することを検討する必要があります。

インターネット上のすべてのホストには、と呼ばれる固有のアドレス識別子があります。 インターネット上のすべてのホストには、と呼ばれる固有のアドレス識別子があります。 Aug 22, 2022 pm 03:24 PM

各ホストには、「IP アドレス」と呼ばれる固有のアドレス識別子があります。 IP アドレスは、IP プロトコルによって提供される統一されたアドレス形式であり、物理アドレスの違いを防ぐために、インターネット上の各ネットワークおよび各ホストに固有の論理アドレスを割り当てます。この一意のアドレスにより、ユーザーは接続されたコンピュータ上で操作する際に、数千台のコンピュータから必要なオブジェクトを効率的かつ便利に選択できるようになります。

C# の雇用の見通しはどのようなものですか? C# の雇用の見通しはどのようなものですか? Oct 19, 2023 am 11:02 AM

初心者でも経験豊富なプロフェッショナルでも、C# をマスターすることでキャリアへの道が開かれます。

いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する いくつかの .NET オープンソース AI および LLM 関連プロジェクト フレームワークを共有する May 06, 2024 pm 04:43 PM

現在、人工知能(AI)技術の開発は本格化しており、さまざまな分野で大きな可能性と影響力を発揮しています。本日、Dayao は、参考にしていただけるよう、4 つの .NET オープン ソース AI モデル LLM 関連プロジェクト フレームワークを共有します。 https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel は、OpenAI、Azure などの大規模言語モデル (LLM) を統合するように設計されたオープン ソース ソフトウェア開発キット (SDK) です。

C# 開発経験の共有: 迅速な開発とアジャイル開発方法論 C# 開発経験の共有: 迅速な開発とアジャイル開発方法論 Nov 23, 2023 am 09:37 AM

C# 開発のプロセスでは、特に今日の急速に変化する市場では、迅速な開発とアジャイル開発手法が非常に重要です。この記事では、迅速な開発とアジャイル開発方法論に焦点を当てた、私の C# 開発経験を共有します。 1. 迅速な開発とは何ですか? 迅速な開発とは、市場の需要に迅速に対応して、製品をできるだけ早く発売できるようにすることです。この開発方法により、プロジェクトの開発サイクルが大幅に短縮され、コストが削減され、ユーザーのニーズに基づいた迅速な反復開発が可能になります。迅速な開発には、次のような特定の技術的手段が必要です。

Robloxが動作しない: 修正方法 Robloxが動作しない: 修正方法 Jul 28, 2023 pm 06:23 PM

Roblox が機能しない: なぜですか?有名なオンライン ゲーム プラットフォーム Roblox は、幅広いゲームの選択と活発なコミュニティにより、世界中で何百万ものファンを獲得しています。ただし、他の複雑なデジタル プラットフォームと同様に、Roblox でも技術的な問題が発生することがあります。以下では、Roblox が動作しないエラーを修正するために考えられる修正をいくつか見ていきます。では本題に入り、まず最初のことから始めましょう。 Roblox サーバーのステータスを確認する Roblox はオンライン ゲームであるため、サービスが中断されると起動が困難になる場合があります。 Roblox の現在のサーバーのステータスと操作が適切に機能するようにします。サーバーがメンテナンスのためにオフラインになっている場合は、サーバー側の問題が解決されるまで待ちます。持っている

Microsoft の新しいホット ペーパー: Transformer が 10 億トークンに拡大 Microsoft の新しいホット ペーパー: Transformer が 10 億トークンに拡大 Jul 22, 2023 pm 03:34 PM

誰もが独自の大規模モデルのアップグレードと反復を継続するため、コンテキスト ウィンドウを処理する LLM (大規模言語モデル) の能力も重要な評価指標になりました。たとえば、スター モデル GPT-4 は 32,000 のトークンをサポートしており、これは 50 ページのテキストに相当します。OpenAI の元メンバーによって設立された Anthropic は、Claude のトークン処理能力を 100,000 (約 75,000 ワード) に増加させました。 「ハリー・ポッター」をワンクリックで要約するのと同じ「まず。 Microsoft の最新の調査では、今回は Transformer を 10 億トークンまで直接拡張しました。これにより、コーパス全体やインターネット全体を 1 つのシーケンスとして扱うなど、非常に長いシーケンスをモデル化するための新しい可能性が開かれます。比較のため、一般的な

See all articles