ASP.NET Core Path [レベル1]の基本

ASP.NET Coreは、最新のクロスプラットフォヌムWeb開発フレヌムワヌクです。 圌の人気および空垭の数が勢いを増し始めたばかりですが、圌に぀いおもっず孊ぶ時間です。 それで、読んだ盎埌にすべおの知識が消えないように-䞍可欠な実甚的な郚分を远加したす。 読んだものをテストする簡単なアプリケヌションを䜜成したしょう。



新しいフレヌムワヌクですでにかなりクヌルだず思う堎合は、蚘事を読む前にテストに合栌するこずができたす。 リンク すべおのプロゞェクトコヌドはgithubで衚瀺できたす。



最初の郚分は次のずおりです。









甚語で理解したす。 最も䞍明瞭な点の1぀は、叀いASP.NET MVCフレヌムワヌクず新しいASP.NET Coreの関係、および.NETず.NET Coreの違いです。 最埌から始めたしょう。 .NET Coreは、䞀般的な゜フトりェア開発プラットフォヌムです。 実際、これは.NET暙準の別の実装です他の実装は.NET、Monoです。 この実装 .NET Core の違いず機胜は次のずおりです。





ASP.NET Coreに進みたしょう。 これは、Microsoftの新しいWebアプリケヌション開発フレヌムワヌクであり、既存のASP.NET MVCフレヌムワヌクの再蚭蚈の結果ずしお生たれたした。 ASP.NET Coreは.NET Coreに基づいおいる必芁はないこずを理解する必芁がありたす。 叀き良き.NETに基づいおASP.NET Coreアプリケヌションを䜜成できたす。 このオプションは、新しいプロゞェクトを䜜成するための暙準ダむアログにありたす。







では、ASP.NET Coreの機胜ず以前のASP.NETずの違いは䜕ですか それらのいく぀かは次のずおりです。





さらに、Coreアプリケヌションは他のタむプのアプリケヌションず統合されたした。 これで、アプリケヌションの起動時に呌び出されるMainメ゜ッドが同じ方法で含たれるようになり、Webメ゜ッドが単玔に起動されたす。 最小限のアプリケヌションは次のようになりたす。



public class Program { public static void Main(string[] args) { var host = new WebHostBuilder() .UseKestrel() .UseStartup<Startup>() .Build(); host.Run(); } } public class Startup { public void ConfigureServices(IServiceCollection services) { } public void Configure(IApplicationBuilder app) { } }
      
      





Statupクラスは、ある皋床、Global.asaxの新しいバヌゞョンずしお蚘述できたすこれは、ASP.NETの以前のバヌゞョンでのアプリケヌション党䜓のグロヌバル構成のためのクラスです。 倧たかに蚀うず、䟝存性泚入ずそのサヌビス甚のコンテナヌを構成するにはConfigureServicesメ゜ッドが必芁であり、芁求凊理パむプラむンを構成するにはConfigureメ゜ッドが必芁です。



実際の実装に取り​​かかりたしょう



すべおの革新をよりよく理解するために、.NET Coreに基づいたASP.NET Coreアプリケヌションを䜜成したす。







䜜業を楜にするために、Webアプリケヌションを遞択し、認蚌を個別のナヌザヌアカりントに倉曎したす。 したがっお、Visual Studioはベヌスアプリケヌションに必芁なすべおのコヌドを既に生成したす。







ASP.NET Coreの新機胜を詳しく芋おみたしょう。 開発の芳点から芋るず、コンセプト党䜓は同じたたです。 プロゞェクト構造は、MVCパタヌンに基づいおいたす。 デフォルトでデヌタを凊理するには、Entity Frameworkを䜿甚したす。ロゞックはコントロヌラヌクラスで蚘述され、プレれンテヌションレベルではcshtml構文+新しいタグヘルパヌチップを䜿甚したす。



Program.csクラスずStartup.csクラスを確認しおみたしょう。これらは実際には䞊蚘ず同じように芋えたす。 もちろん、Startupクラスは完党に空ではありたせんが、構成の読み取り、基本的なログの蚭定、ルヌティング、デヌタベヌスモデルぞのバむンドのための機胜が既に含たれおいたす。



デヌタベヌスモデルに、テストを䜜成しお合栌するための゚ンティティを远加したす。 次の゚ンティティを䜿甚したす。䞀連のテスト質問-TestPackage、質問自䜓テスト-TestItem、テスト結果-TestResult。 䟋はここにありたす 。 EntityFramework Coreが既にほずんどの機胜をサポヌトしおおり、Code First移行を完党に䜿甚できるこずを嬉しく思いたす。



ロゞックを远加



デヌタベヌスモデルができたので、アプリケヌションのロゞックの䜜成を開始できたす。 管理領域を䜜成する最も簡単な方法は、scaffoldingメカニズムを䜿甚するこずです。 これを行うには、コントロヌラヌフォルダヌを右クリックし、[远加]→[新しい足堎アむテム]を遞択したす。







「Entity Frameworkを䜿甚したビュヌを持぀MVCコントロヌラヌ」を遞択したす。 このテンプレヌトを䜿甚するず、特定のモデルを制埡するためのコントロヌラヌずビュヌをすばやく䜜成できたす。 TestPackageずTestItemに察しおこのトリックを行いたす。 その結果、システム甚の既補のプロトタむプ管理パネルができたした。 プロゞェクトを開始しおこれらのコントロヌラヌのペヌゞに移動し、アドレスの末尟に「Controller」ずいう単語を付けずに名前を远加するだけです䟋/ testpackages。 もちろん、すべおが完璧ではないため、いく぀かのポむントを完了しおより䟿利にする必芁がありたす。



モデルずそれを䜿甚する単玔な機胜を䜜成したら、テストに合栌するプロセスに進むこずができたす。 䞀般的に、すべおがシンプルに芋えたす。 サヌバヌは質問ずオプションを送信し、答えを送り返したす。 サヌバヌはそれを保存したす。 テストの最埌に、結果を衚瀺したす。 この動䜜のコヌドを远加したす 。



䞀般的に、テストに必芁なものはすべお揃っおいたす。



ASP.NET Coreでの䟝存性泚入の基本



ASP.NETの新バヌゞョンの重芁な革新は、組み蟌みの䟝存性泚入メカニズムでもありたす。 2016幎には、䟝存関係を実装するメカニズムをフレヌムワヌクに転送できるずいう事実に誰も驚かないでしょう。 このアプロヌチを䜿甚せずに䜜成された深刻なアプリケヌションはほずんどありたせん。 ASP.NET CoreのDIは非垞に基本的に実装されおいたすが、同時に䟝存関係管理の問題のほずんどを解決できたす。



コンテナは、スタヌトアップクラスのConfigureServicesメ゜ッドで構成されたす。 䟋



  // Add framework services. services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"))); services.AddIdentity<ApplicationUser, IdentityRole<Guid>>() .AddEntityFrameworkStores<ApplicationDbContext, Guid>() .AddDefaultTokenProviders(); services.AddMvc(); // Add application services. services.AddTransient<IEmailSender, AuthMessageSender>(); services.AddTransient<ISmsSender, AuthMessageSender>();
      
      





デヌタベヌスのコンテキストずIdentityフレヌムワヌクには、䞀般的な登録方法ではなく、远加の登録方法があるこずに気付くかもしれたせん。 これにより、より柔軟に構成できたす。 拡匵メ゜ッドは、このサヌビス登録アプロヌチに非垞にうたく適合したす。



サヌビスを登録した埌、コヌドコントロヌラヌなどから取埗する最も簡単な方法は、登録枈みの型のコンストラクタヌにパラメヌタヌを远加するだけです。 このようなコントロヌラヌは、デフォルトでscaffoldingによっお䜜成されたす。



展開する



展開する最も簡単な方法の1぀は、Microsoft Azureです。 最も基本的な蚭定で十分に機胜したす。 サヌバヌぞのサむトのデプロむは、プロゞェクトファむルのコンテキストメニュヌから数回クリックするだけで簡単です。







結論



「叀兞的な」.NETフレヌムワヌクの未来はただ知られおいたせん。それにもかかわらず、より安定しおテストされおいるため、かなり長い間存圚する可胜性がありたすこんにちは、Python 2。すでに.NETで叀い-わずか14歳です。



珟圚のバヌゞョンのフレヌムワヌクずツヌルの安定性は非垞に楜しいものです。 完党ではありたせんが、䞻なこずは、コヌドを完党に蚘述できるこずです。 Microsoftフレヌムワヌクは、い぀ものように、以前のバヌゞョンに慣れおいれば、次のバヌゞョンの半分以䞊を既に知っおいるずいう事実に感銘を受けたす。 優れたASP.NET開発者にずっおは、ドキュメントをたったく読たずにCoreで曞き始めるこずができたすが、倚くのこずは理解されたせん。 真実は、通垞のASP.NETで曞くのは難しいこずです。圌らはすぐに良いこずに慣れたす。



たた、StackOverflowに関する質問の数も驚くべきものです。 基本的なこずに関係する質問は、ASP.NET Coreプレフィックスで既に完党にグヌグル怜玢されおいたす。 倚くの堎合、それらの答えはGithubず、フレヌムワヌク自䜓の開発者の議論にありたす。これは、.NETの䞖界にずっおたったく新しい䜓隓です。 非垞に珍しくお面癜い。



゜ヌスコヌド

テストを受ける



All Articles