検索
ホームページバックエンド開発C#.Net チュートリアルインターネット開発に .NET を使用することについての考えと探求

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

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

最近開始された典型的なケースである muban.printhelloworld.com を見てみましょう。これは、

HTML5Bootstrap、EF6 For MySql、Alibaba Cloud RDS、Alibaba Cloud などの新しいテクノロジーを使用しています。 CDN やその他の新しいテクノロジと新しい概念は採用されていますが、開発には .NET を使用し、展開には .NET エコロジカル環境 (IIS、Windows Server) を使用するという基本からは外れていません。ただし、開発プロセス全体は完全に廃止されています。私たちは、WebForm や MVC の開発を実践してきました。まったく新しい .NET 開発モデルにより、開発効率とチームのコラボレーションが大幅に向上し、全体のフロントエンドとバックエンドの管理が大幅に短縮されました。ウェブサイトの構想から設計、開発、デバッグまで 1 人で 3 日で完了。以下に開発モデルの詳細を記載します。また、皆様のご意見を聞きながら改善を続けていきます。

ASP.NET

WebForm の評価については、次の言葉が客観的だと思います: 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を使用する

フロントエンドは従来の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 サービスの需要に応えてです。 , 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 サイトの他の関連記事を参照してください。

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

Char Arrayは文字シーケンスをC言語で保存し、char array_name [size]として宣言されます。アクセス要素はサブスクリプト演算子に渡され、要素は文字列のエンドポイントを表すnullターミネーター「\ 0」で終了します。 C言語は、strlen()、strcpy()、strcat()、strcmp()など、さまざまな文字列操作関数を提供します。

C文字列におけるcharの役割は何ですかC文字列におけるcharの役割は何ですかApr 03, 2025 pm 03:15 PM

Cでは、文字列でCharタイプが使用されます。1。単一の文字を保存します。 2。配列を使用して文字列を表し、ヌルターミネーターで終了します。 3。文字列操作関数を介して動作します。 4.キーボードから文字列を読み取りまたは出力します。

C言語で特殊文字を処理する方法C言語で特殊文字を処理する方法Apr 03, 2025 pm 03:18 PM

C言語では、以下などのエスケープシーケンスを通じて特殊文字が処理されます。\ nはラインブレークを表します。 \ tはタブ文字を意味します。 ESACEシーケンスまたは文字定数を使用して、Char C = '\ n'などの特殊文字を表します。バックスラッシュは2回逃げる必要があることに注意してください。さまざまなプラットフォームとコンパイラが異なるエスケープシーケンスを持っている場合があります。ドキュメントを参照してください。

マルチスレッドと非同期C#の違いマルチスレッドと非同期C#の違いApr 03, 2025 pm 02:57 PM

マルチスレッドと非同期の違いは、マルチスレッドが複数のスレッドを同時に実行し、現在のスレッドをブロックせずに非同期に操作を実行することです。マルチスレッドは計算集約型タスクに使用されますが、非同期はユーザーインタラクションに使用されます。マルチスレッドの利点は、コンピューティングのパフォーマンスを改善することですが、非同期の利点はUIスレッドをブロックしないことです。マルチスレッドまたは非同期を選択することは、タスクの性質に依存します。計算集約型タスクマルチスレッド、外部リソースと相互作用し、UIの応答性を非同期に使用する必要があるタスクを使用します。

C言語でさまざまなシンボルを使用する方法C言語でさまざまなシンボルを使用する方法Apr 03, 2025 pm 04:48 PM

c言語のシンボルの使用方法は、算術、割り当て、条件、ロジック、ビット演算子などをカバーします。算術演算子は基本的な数学的操作に使用されます。割り当てと追加、下位、乗算、除算の割り当てには、条件操作に使用されます。ポインター、ファイル終了マーカー、および非数値値。

C言語でCharを変換する方法C言語でCharを変換する方法Apr 03, 2025 pm 03:21 PM

C言語では、charタイプの変換は、キャスト:キャスト文字を使用することにより、別のタイプに直接変換できます。自動タイプ変換:あるタイプのデータが別のタイプの値に対応できる場合、コンパイラは自動的に変換します。

C言語合計の機能は何ですか?C言語合計の機能は何ですか?Apr 03, 2025 pm 02:21 PM

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

C言語のcharとwchar_tの違いC言語のcharとwchar_tの違いApr 03, 2025 pm 03:09 PM

C言語では、charとwchar_tの主な違いは文字エンコードです。CharはASCIIを使用するか、ASCIIを拡張し、WCHAR_TはUnicodeを使用します。 Charは1〜2バイトを占め、WCHAR_Tは2〜4バイトを占有します。 charは英語のテキストに適しており、wchar_tは多言語テキストに適しています。 CHARは広くサポートされており、WCHAR_TはコンパイラとオペレーティングシステムがUnicodeをサポートするかどうかに依存します。 CHARの文字範囲は限られており、WCHAR_Tの文字範囲が大きく、特別な機能が算術演算に使用されます。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

SublimeText3 中国語版

SublimeText3 中国語版

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

メモ帳++7.3.1

メモ帳++7.3.1

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。