Blazor для разработчиков ASP.NET Web Forms for ASP.NET Web Forms Developers

Важно!

ПРЕДВАРИТЕЛЬНЫЙ ВЫПУСКPREVIEW EDITION

Эта статья содержит предварительное содержимое из книги, которая в настоящее время находится в стадии разработки.This article provides early content from a book that is currently under construction. Если у вас есть отзывы, отправьте их по адресу https://aka.ms/ebookfeedback.If you have any feedback, submit it at https://aka.ms/ebookfeedback.

Снимок экрана, на котором показана обложка электронной книги, посвященной бессерверным приложениям

Можно загрузить по ссылке: https://aka.ms/blazor-ebookDOWNLOAD available at: https://aka.ms/blazor-ebook

ИЗДАТЕЛЬPUBLISHED BY

Подразделение Microsoft Developer Division, команды разработки .NET и Visual StudioMicrosoft Developer Division, .NET, and Visual Studio product teams

Подразделение корпорации МайкрософтA division of Microsoft Corporation

One Microsoft WayOne Microsoft Way

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

© Корпорация Майкрософт (Microsoft Corporation), 2019.Copyright © 2019 by Microsoft Corporation

Все права защищены.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-адреса и другие ссылки на веб-сайты, могут изменяться без уведомления.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.

Microsoft и товарные знаки, перечисленные на странице "Товарные знаки" на сайте https://www.microsoft.com, являются товарными знаками группы компаний Майкрософт.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) , главный руководитель программ в корпорации Майкрософт.Daniel Roth, Principal Program Manager, Microsoft Corp.

Дефф Фриц (Jeff Fritz) , главный руководитель программ в корпорации Майкрософт.Jeff Fritz, Senior Program Manager, Microsoft Corp.

Тейлор Саусвик (Taylor Southwick) , старший инженер по программному обеспечению в корпорации Майкрософт.Taylor Southwick, Senior Software Engineer, Microsoft Corp.

Скотт Эдди (Scott Addie) , старший разработчик содержимого в корпорации Майкрософт.Scott Addie, Senior Content Developer, Microsoft Corp.

ВступлениеIntroduction

.NET уже давно поддерживает разработку веб-приложений через ASP.NET — комплексный набор платформ и средств для создания любых типов приложений..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 имеет собственную линейку веб-платформ и технологий, начиная с классического 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 и более поздняя ASP.NET Core, предоставляют эффективный и функциональный способ создания веб-приложений, подготавливаемых к просмотру на сервере, в которых содержимое пользовательского интерфейса динамически формируется на сервере в ответ на HTTP-запросы.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 ориентирована на определенную аудиторию и подход к созданию приложений.Each ASP.NET framework caters to a different audience and app building philosophy. ASP.NET Web Forms поставляется с исходным выпуском .NET Framework и поддержкой веб-разработки с использованием множества шаблонов, знакомых разработчикам классических приложений, таких как многократно используемые элементы управления пользовательского интерфейса с простой обработкой событий.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 и использовать любые из множества платформ и средств JavaScript, которые набирали и теряли популярность в течение многих лет: jQuery, Knockout, Angular, React и т. д.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.Blazor is a new web framework that changes what is possible when building web apps with .NET. Blazor представляет собой клиентскую платформу веб-интерфейса, основанную на C#, а не на JavaScript. is a client-side web UI framework based on C# instead of JavaScript. С помощью Blazor вы можете писать собственную клиентскую логику и компоненты пользовательского интерфейса на C#, компилировать их в обычные сборки .NET, а затем запускать их непосредственно в браузере с помощью нового открытого веб-стандарта WebAssembly.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. Кроме того, Blazor позволяет запускать интерфейсные компоненты .NET на сервере и гибко управлять всеми взаимодействиями с интерфейсом через подключение к браузеру в режиме реального времени.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 веб-приложения для всего стека.When paired with .NET running on the server, Blazor enables full-stack web development with .NET. Хотя платформа Blazor имеет много общего с ASP.NET Web Forms, например многократно используемую модель компонентов и простую обработку пользовательских событий, она также использует основы .NET Core для создания современной и высокопроизводительной среды веб-разработки.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 Core 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. И хотя она в первую очередь помогает делать новые разработки, в ней также приведены рекомендации и стратегии по модернизации и переносу на Blazor уже существующих приложений на базе ASP.NET Web Forms.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

Книга предназначена для разработчиков ASP.NET Web Forms, желающих познакомиться с Blazor в контексте имеющихся у них знаний и навыков.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.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. Книга также регулярно ссылается на образец полноценного приложения, реализованного как на базе ASP.NET Web Forms, так и на платформе Blazor, чтобы продемонстрировать функции Blazor и представить пример миграции на Blazor с ASP.NET Web Forms.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. Обе реализации образца приложения (версии для ASP.NET Web Forms и Blazor) можно найти на GitHub.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.