ASP.NET Web Forms 開発者向け BlazorBlazor for ASP.NET Web Forms Developers

サーバーレス アプリの e-book のカバーを示すスクリーン ショット。

次の場所でダウンロードできます: https://aka.ms/blazor-ebookDOWNLOAD available at: https://aka.ms/blazor-ebook

エディション v1.0EDITION v1.0

書籍の更新とコミュニティへの投稿については、「changelog」を参照してください。Refer changelog for the book updates and community contributions.

発行者PUBLISHED BY

Microsoft 開発部門、.NET および Visual Studio 製品チームMicrosoft Developer Division, .NET, and Visual Studio product teams

A division of Microsoft CorporationA division of Microsoft Corporation

One Microsoft WayOne Microsoft Way

Redmond, Washington 98052-6399Redmond, Washington 98052-6399

Copyright © 2021 by Microsoft CorporationCopyright © 2021 by Microsoft Corporation

All rights reserved.All rights reserved. 本書のいかなる部分も、書面による発行者の許可なしに、いかなる形式または方法によっても、複製または伝送することを禁じます。No part of the contents of this book may be reproduced or transmitted in any form or by any means without the written permission of the publisher.

本書は "現状有姿" で提供され、著者の見解と意見を表しています。This book is provided "as-is" and expresses the author's views and opinions. URL および他の参照されているインターネットの Web サイトをはじめ、本書に記載されている見解、意見、および情報は、通知なく変更されることがあります。The views, opinions, and information expressed in this book, including URL and other Internet website references, may change without notice.

ここに記載したいくつかの例は、説明のためだけに提供された架空のものです。Some examples depicted herein are provided for illustration only and are fictitious. 実在のものとの関連性または関係性は一切ありません。No real association or connection is intended or should be inferred.

https://www.microsoft.com の "商標" Web ページに記載されている Microsoft および商標は、Microsoft グループの商標です。Microsoft and the trademarks listed at https://www.microsoft.com on the "Trademarks" webpage are trademarks of the Microsoft group of companies.

Mac および macOS は Apple Inc. の商標です。Mac and macOS are trademarks of Apple Inc.

その他のすべてのマークおよびロゴは、該当する各社が所有しています。All other marks and logos are property of their respective owners.

作成者:Authors:

Daniel Roth 、Microsoft Corporation のプリンシパル プログラム マネージャーDaniel Roth, Principal Program Manager, Microsoft Corp.

Jeff Fritz 、Microsoft Corporation のシニア プログラム マネージャーJeff Fritz, Senior Program Manager, Microsoft Corp.

Taylor Southwick 、Microsoft Corporation のシニア ソフトウェア エンジニアTaylor Southwick, Senior Software Engineer, Microsoft Corp.

Scott Addie 、Microsoft Corporation のシニア コンテンツ開発者Scott Addie, Senior Content Developer, Microsoft Corp.

Steve "ardalis" Smith 、ソフトウェア アーキテクトおよびトレーナー - Ardalis Services LLCSteve "ardalis" Smith, Software Architect and Trainer, Ardalis Services LLC

はじめにIntroduction

.NET では、あらゆる種類の Web アプリを構築するためのフレームワークとツールの包括的セットである ASP.NET を利用した Web アプリの開発を長期にわたりサポートしてきました。.NET has long supported web app development through ASP.NET, a comprehensive set of frameworks and tools for building any kind of web app. ASP.NET には独自の系列の Web フレームワークとテクノロジがあり、その原点は代表的な Active Server Pages (ASP) までさかのぼります。ASP.NET has its own lineage of web frameworks and technologies starting all the way back with classic Active Server Pages (ASP). ASP.NET Web Forms、ASP.NET MVC、ASP.NET Web Pages、最近の ASP.NET Core などのフレームワークでは、サーバーでレンダリングする Web アプリを生産的かつ強力な方法で構築できます。サーバーでレンダリングする Web アプリでは、HTTP 要求に応答し、UI コンテンツがサーバー上で動的に生成されます。Frameworks like ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web Pages, and more recently ASP.NET Core, provide a productive and powerful way to build server-rendered web apps, where UI content is dynamically generated on the server in response to HTTP requests. 各 ASP.NET framework は異なる対象ユーザーとアプリ構築方針に対応しています。Each ASP.NET framework caters to a different audience and app building philosophy. ASP.NET Web Forms は .NET Framework の初回リリースに付属しました。再利用可能な UI コントロールと単純なイベント処理など、デスクトップ開発者にとっておなじみのパターンを多く利用する Web 開発を可能にしました。ASP.NET Web Forms shipped with the original release of the .NET Framework and enabled web development using many of the patterns familiar to desktop developers, like reusable UI controls with simple event handling. しかしながら、どの ASP.NET サービスでも、ユーザーのブラウザーで実行されるコードを実行する方法がありません。However, none of the ASP.NET offerings provide a way to run code that executed in the user's browser. それを行うには、JavaScript を記述し、jQuery、Knockout、Angular、React など、ここ数年、人気が上がったり下がったりしているさまざまな JavaScript フレームワーク/ツールのいずれかを使用する必要があります。To do that requires writing JavaScript and using any of the many JavaScript frameworks and tools that have phased in and out of popularity over the years: jQuery, Knockout, Angular, React, and so on.

Blazor は、.NET で Web アプリを構築したときにできることを変える、新しい Web フレームワークです。Blazor is a new web framework that changes what is possible when building web apps with .NET. Blazor は、JavaScript ではなく、C# を基盤とするクライアント側の Web UI フレームワークです。Blazor is a client-side web UI framework based on C# instead of JavaScript. Blazor を利用すると、クライアント側のロジックと UI コンポーネントを C# で記述し、通常の .NET アセンブリにコンパイルしたら、WebAssembly という名前の新しいオープン Web 標準を利用し、ブラウザーで直接実行できます。With Blazor you can write your client-side logic and UI components in C#, compile them into normal .NET assemblies, and then run them directly in the browser using a new open web standard called WebAssembly. あるいは、サーバー上で .NET UI コンポーネントを実行し、ブラウザーとのリアルタイム接続ですべての UI インタラクションを流動的に処理することが Blazor で可能です。Or alternatively, Blazor can run your .NET UI components on the server and handle all UI interactions fluidly over a real-time connection with the browser. サーバー上で実行されている .NET とペアリングした場合、Blazor では .NET によるフルスタックの Web 開発が可能になります。When paired with .NET running on the server, Blazor enables full-stack web development with .NET. 再利用可能なコンポーネント モデルやユーザー イベントを処理する簡単な方法など、Blazor には ASP.NET Web Forms との間にさまざまな共通点があります。また、最新かつ高パフォーマンスな Web 開発エクスペリエンスを提供するために .NET に基づいて構築されています。While Blazor shares many commonalities with ASP.NET Web Forms, like having a reusable component model and a simple way to handle user events, it also builds on the foundations of .NET to provide a modern and high-performance web development experience.

本書をお読みいただくと、ASP.NET Web Forms の開発者は慣れた便利な方法で Blazor を導入できます。This book introduces ASP.NET Web Forms developers to Blazor in a way that is familiar and convenient. 本書では Blazor の概念を ASP.NET Web Forms における類似の概念と一緒に紹介し、さらに、あまり知られていないかもしれない新しい概念について説明します。It introduces Blazor concepts in parallel with analogous concepts in ASP.NET Web Forms while also explaining new concepts that may be less familiar. コンポーネントの作成、ルーティング、レイアウト、構成、セキュリティなど、さまざまなトピックと懸念事項を取り上げます。It covers a broad range of topics and concerns including component authoring, routing, layout, configuration, and security. また、本書の内容は新しい開発を可能にすることを第一としていますが、既存のアプリを最新式にするときのために、既存の ASP.NET Web Forms を Blazor に移行するためのガイドラインと方策についても取り上げます。And while the content of this book is primarily for enabling new development, it also covers guidelines and strategies for migrating existing ASP.NET Web Forms to Blazor for when you want to modernize an existing app.

対象読者Who should use the book

本書は、既存の知識や技能に関連付けて Blazor を説明してくれる文章を探している ASP.NET Web Forms 開発者向けとなっています。This book is for ASP.NET Web Forms developers looking for an introduction to Blazor that relates to their existing knowledge and skills. 本書は Blazor を基盤とする新しいプロジェクトを短期間で始める際や、既存の ASP.NET Web Forms アプリケーションを最新式にするための計画を立てる際に役立ちます。This book can help with quickly getting started on a new Blazor-based project or to help chart a roadmap for modernizing an existing ASP.NET Web Forms application.

本書の使用方法How to use the book

本書の最初の部分では、Blazor の概要を取り上げ、ASP.NET Web Forms による Web アプリ開発と比較します。The first part of this book covers what Blazor is and compares it to web app development with ASP.NET Web Forms. 次に、章ごとに Blazor に関するさまざまなトピックを取り上げ、Blazor の概念を ASP.NET Web Forms においてそれに対応する概念に関連付けます。あるいは、まったく新しい概念であれば、それについて十分に説明します。The book then covers a variety of Blazor topics, chapter by chapter, and relates each Blazor concept to the corresponding concept in ASP.NET Web Forms, or explains fully any completely new concepts. また、本書では、Blazor の機能の実演や ASP.NET Web Forms から Blazor に移行する際の見本として、ASP.NET Web Forms と Blazor の両方で実装されている完全なサンプル アプリがたびたび取り上げられます。The book also refers regularly to a complete sample app implemented in both ASP.NET Web Forms and Blazor to demonstrate Blazor features and to provide a case study for migrating from ASP.NET Web Forms to Blazor. GitHub には、サンプル アプリの両方の実装 (ASP.NET Web Forms 版と Blazor 版) があります。You can find both implementations of the sample app (ASP.NET Web Forms and Blazor versions) on GitHub.

本書で取り上げないものWhat this book doesn't cover

本書は Blazor の紹介文であり、包括的な移行ガイドではありません。This book is an introduction to Blazor, not a comprehensive migration guide. ASP.NET Web Forms から Blazor にプロジェクトを移行する方法に関するガイダンスが含まれていますが、微妙な違いや詳細をあらゆる点で説明する試みはありません。While it does include guidance on how to approach migrating a project from ASP.NET Web Forms to Blazor, it does not attempt to cover every nuance and detail. ASP.NET から ASP.NET Core に移行する一般的な手順については、ASP.NET Core ドキュメントの移行ガイダンスを参照してください。For more general guidance on migrating from ASP.NET to ASP.NET Core, refer to the migration guidance in the ASP.NET Core documentation.

その他の技術情報Additional resources

Blazor の公式ホーム ページとドキュメントは https://blazor.net にあります。You can find the official Blazor home page and documentation at https://blazor.net.

フィードバックの送信Send your feedback

本書と関連サンプルは継続的に更新されるので、お客様のフィードバックを歓迎しています。This book and related samples are constantly evolving, so your feedback is welcomed! 本書を改善する方法についてコメントがある場合、GitHub の問題に関して作成されたあらゆるページの下部にあるフィードバック セクションをご利用ください。If you have comments about how this book can be improved, use the feedback section at the bottom of any page built on GitHub issues.