Официальный учебник от Microsoft: Документация C# - Введение, учебники, справочники | Microsoft Learn
Видео на Bilibili:
Лю Тай Мэнг "Введение в C#" полный курс_哔哩哔哩_bilibili
Официальный учебник от Microsoft: Создание веб-приложений с помощью ASP.NET Core | Microsoft Learn.NET 6 учебник, видео-уроки по .Net Core 2022, преподаватель Ян Цзюнь Суо_哔哩哔哩_bilibili
Blazor — это фреймворк для создания интерактивных клиентских веб-интерфейсов с использованием C#.- Использует C# вместо JavaScript для создания информативных интерактивных пользовательских интерфейсов.
Обеспечивает совместное использование логики приложения, написанной на .NET, как для серверной, так и для клиентской части.
Представляет UI в виде HTML и CSS для поддержки множества браузеров, включая мобильные.
Интегрируется с современными платформами контейнеризации (например, Docker).
Использует .NET и Blazor для создания гибридных десктопных и мобильных приложений.Использование .NET для клиентской веб-разработки обеспечивает следующие преимущества:
Использование C# вместо JavaScript для написания кода.
Использование существующих .NET библиотек и экосистемы.
Совместное использование логики приложения между сервером и клиентом.
Получение преимуществ от производительности, надежности и безопасности .NET.
Поддержание эффективности работы на Windows, Linux или macOS с помощью сред разработки (например, Visual Studio или Visual Studio Code).
Использование стабильного, функционально богатого и удобного в использовании набора языков, фреймворков и инструментов.
Официальная документация Blazor от Microsoft
Рекомендованные Blazor UI-фреймворки:
GitHub / Web VSCode адрес## Введение в ORMORM Объектно-реляционное отображение (Object Relational Mapping, ORM) — это техника, разработанная для решения проблем, возникающих из-за несоответствия объектно-ориентированного программирования и реляционных баз данных. Проще говоря, ORM использует метаданные, описывающие отображение объектов программы на структуру реляционной базы данных, для автоматической персистентизации объектов в базу данных. Как же осуществляется персистентизация? Одним из простых подходов является использование жесткого кодирования, при котором для каждой возможной операции доступа к базе данных создается отдельный метод. Этот подход имеет следующие недостатки: 1. Отсутствие гибкости в персистентном слое. При изменении бизнес-требований необходимо изменять интерфейс персистентного слоя. 2. Персистентный слой одновременно связан как с доменной моделью, так и с моделью реляционной базы данных. При изменении как доменной модели, так и модели реляционной базы данных, необходимо изменять соответствующие части кода персистентного слоя, что увеличивает трудоемкость поддержки программного обеспечения.
· Простота: моделирование данных в самом базовом виде.
· Доступность: структура базы данных документируется на языке, который может быть понят всеми.
· Точность: создание правильно нормализованной структуры на основе данных модели.### [FreeSql](https://freesql.net/)
мощный компонент объектно-реляционного отображения (O/RM), поддерживающий .NET Core 2.1+, .NET Framework 4.0+ и Xamarin✨
Entity Framework (EF) Core — это легковесный, расширяемый, открытый и кроссплатформенный вариант популярной технологии Entity Framework для доступа к данным. (рекомендовано использовать EF Core, поддерживаемое Microsoft)### Dapper Dapper — это микропроект ORM, созданный командой Stack Overflow. Dapper — это простой объектно-реляционный отображатель для .NET, который по скорости работы считается королем микропроектов ORM, почти так же быстрый, как и использование исходного ADO.NET Data Reader. ORM — это объектно-реляционный отображатель, отвечающий за отображение между базой данных и языком программирования.### SqlSugar SqlSugar — это старая версия открытого ORM-фреймворка для .NET, поддерживаемая и обновляемая командой Fruit Sugar Big Data Technology.
SQL Server — это реляционная система управления базами данных (DBMS), разработанная и распространяемая Microsoft; SQL Server удобен в использовании, имеет хорошую масштабируемость и высокую степень интеграции с связанными программами; SQL Server обеспечивает надежное и безопасное хранение реляционных и структурированных данных.
MySQL — это самая популярная реляционная система управления базами данных, и одна из лучших RDBMS (Relational Database Management System: реляционная система управления базами данных) для веб-приложений.
PgSQL История PostgreSQL. Современное название PostgreSQL — это объектно-реляционная система управления базами данных (ORDBMS), которая ранее называлась Postgres95. Она развивалась из пакета программ POSTGRES, написанного в Беркли. После десятилетий развития PostgreSQL является одной из самых передовых открытых систем управления базами данных, поддерживающей многоверсионное параллельное управление, поддержку практически всех компонентов SQL (включая подзапросы, транзакции и пользовательские определенные типы и функции), а также широкий спектр языков программирования (включая C, C++, Java, Perl, Tcl и Python).## Сервисы промежуточного слоя
Сред间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。它并没有很严格的定义,但是普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。从这个意义上可以用一个等式来表示中间件:中间件=平台+通信,这也就限定了只有用于分布式系统中才能叫中间ware,同时也把它与支撑软件和实用软件区分开来。件是位于应用软件和操作系统之间的一类软件,它利用系统软件提供的基础服务(功能),连接网络上应用系统的各个部分或不同的应用,从而实现资源共享和功能共享的目的。中间件并没有严格的定义,但普遍接受IDC的定义:中间件是一种独立的系统软件服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户端/服务器操作系统之上,管理计算资源和网络通信。从这个意义上,可以用一个等式来表示中间件:中间件 = 平台 + 通信。这也就限定了只有用于分布式系统中才能称为中间件,同时也将其与支撑软件和实用软件区分开来。
MongoDB — это база данных, основанная на распределенном файловом хранилище, написанная на языке C++. Она предназначена для предоставления масштабируемого и высокопроизводительного решения для хранения данных в веб-приложениях.
MongoDB представляет собой продукт, находящийся между реляционными и нереляционными базами данных, и является наиболее функциональным среди нереляционных баз данных, напоминающим реляционные базы данных.### Redis
REmote DIctionary Server (Redis) — это система хранения данных с ключ-значением, написанная Salvatore Sanfilippo, которая является кроссплатформенной нереляционной базой данных.
Redis — это открытая система хранения данных с ключ-значением, написанная на языке ANSI C, которая подчиняется лицензии BSD, поддерживает сеть, может работать в памяти, быть распределённой и иметь опциональную долговременную сохраняемость. Redis также предоставляет клиентские библиотеки для взаимодействия с агентом на различных языках программирования.
Redis обычно называют сервером данных структуры, так как значения могут быть строками (String), хэшами (Hash), списками (List), множествами (Set) и упорядоченными множествами (Sorted Set).
RabbitMQ — это открытое программное обеспечение для сообщений, реализующее протокол передачи сообщений высокого уровня (AMQP). RabbitMQ-сервер написан на языке Erlang, а кластеризация и отказоустойчивость построены на основе открытой платформы связи (Open Telecom Platform). Для всех основных языков программирования существуют клиентские библиотеки для взаимодействия с агентом.
Apache ActiveMQ — это открытое программное обеспечение для сообщений, разработанное Apache Software Foundation. Поскольку ActiveMQ — это чистая реализация на Java, ему требуется только поддержка Java Virtual Machine (JVM) для выполнения.### SkyWalking
Инструмент для мониторинга производительности приложений в распределенных системах, особенно для микросервисов, облачных приложений и систем на основе контейнеров (Kubernetes).
Открытие служб (Service Discovery): Consul предоставляет возможность регистрации и обнаружения служб через DNS или HTTP интерфейсы. Внешние службы могут легко находить службы, на которые они зависят, с помощью Consul.
Проверка состояния (Health Checking): Клиент Consul может выполнять любое количество проверок состояния, как связанных с определенной службой ("возвращает ли веб-сервер OnClickListener 200 OK"), так и связанных с локальным узлом ("не превышает ли использование памяти 90%"). Операторы могут использовать эту информацию для мониторинга состояния кластера, а компоненты обнаружения служб могут использовать её для перенаправления трафика от неработоспособных узлов.
Хранилище Key/Value: Приложения могут использовать хранилище Key/Value, предоставляемое Consul, в соответствии со своими потребностями.Consul предоставляет простой и удобный HTTP-интерфейс, который можно использовать для реализации динамического конфигурирования, флагов функций, выбора лидеров и других функций в сочетании с другими инструментами.
Безопасная служебная связь: Consul может генерировать и распространять TLS-сертификаты для служб, чтобы установить взаимную TLS-связь. Это может использоваться для определения, какие службы могут общаться. Управление разделением служб может быть легко организовано, и его цель заключается в возможности в реальном времени изменять его, а не использовать сложные сетевые топологии и статические правила брандмауэра.
Поддержка нескольких центров обработки данных: Consul поддерживает работу с несколькими центрами обработки данных из коробки. Это означает, что пользователи не должны беспокоиться о необходимости создания дополнительных уровней абстракции для расширения бизнеса на несколько регионов. ### KafkaKafka — это высокопроизводительная распределённая система публикации/подписки, которая может обрабатывать данные потоков действий для сайтов масштаба потребителей. Эти действия (просмотр страниц, поиск и другие действия пользователей) являются ключевым фактором многих социальных функций в современных сетях. Эти данные обычно решаются с помощью обработки логов и агрегации логов из-за требований к пропускной способности. Для систем логов и офлайн-анализа, таких как Hadoop, но требующих реального времени обработки, это является возможным решением. Цель Kafka — это унификация онлайн и офлайн обработки сообщений с помощью параллельной загрузки Hadoop, а также обеспечение возможности работы в кластере для реального времени потребления.
Dapr — это переносимый, событийно-ориентированный runtime, который позволяет любому разработчику легко создавать устойчивые, безсостоятельные и состоятельные приложения, которые могут работать как в облаке, так и на крае сети. Он также поддерживает множество языков программирования и разработочных фреймворков.
Docker — это открытая система контейнеризации приложений, написанная на языке Go и распространяемая под лицензией Apache2.0.Docker позволяет разработчикам упаковывать их приложения и зависимые библиотеки в легковесные, переносимые контейнеры, которые затем можно запустить на любом популярном Linux-сервере, обеспечивая тем самым виртуализацию.
Контейнеры полностью изолированы друг от друга с помощью механизма песочницы, между ними нет никаких интерфейсов (аналогично приложениям на iPhone), а также производительность контейнеров минимальна.
Compose — это инструмент для определения и запуска многоконтейнерных приложений Docker. С помощью Compose можно использовать файл конфигурации в формате YML для настройки всех необходимых сервисов приложения. Затем можно использовать один командный вызов для создания и запуска всех сервисов из конфигурации YML.
Drone — это автономная платформа непрерывной интеграции для занятых команд разработчиков.
CI — Непрерывная интеграция (Continuous Integration) Совместная разработка — это наиболее распространенный метод разработки, когда несколько разработчиков могут одновременно работать над разными модулями или функциями одного приложения.Однако, если компания планирует объединять все ветки разработки в один день, это может занять много времени и привести к множеству повторных действий, что является неэффективным. Это связано с тем, что конфликты кода неизбежны. Если разработчики используют локальную среду, отличную от продакшн-среды, то проблема становится более сложной.Непрерывная интеграция (CI) помогает разработчикам легче объединять изменения кода в основную ветку.
Как только разработчик объединяет изменённый код в основную ветку, система автоматически собирает приложение и выполняет различные уровни автоматизированных тестов (обычно это юнит-тесты и интеграционные тесты), чтобы проверить изменения и убедиться, что они не наносят вред приложению.
Если автоматизированные тесты обнаруживают конфликты между новым кодом и существующим кодом, CI позволяет легко и быстро исправлять эти ошибки.
Непрерывная доставка (Continuous Delivery) После завершения автоматизированных процессов сборки, юнит-тестирования и интеграционного тестирования, непрерывная доставка автоматически публикует проверенный код в репозиторий компании.
Цель непрерывной доставки — создать репозиторий кода, который можно было бы в любое время использовать для развертывания функций разработки в продакшн-среде.
В процессе непрерывной доставки каждый шаг включает автоматизированные тесты и автоматизированное развертывание кода.
Когда процесс завершён, операционная команда может быстро и легко развернуть приложение в продакшн-среде.
Непрерывное развертывание (Continuous Deployment) В рамках полной непрерывной доставки каждый шаг включает автоматизированное развертывание кода в продакшн-среде.
Когда процесс завершён, операционная команда может быстро и легко развернуть приложение в продакшн-среде.Как продолжение непрерывной доставки, непрерывное развертывание может автоматически публиковать приложение в рабочей среде.
В действительности, непрерывное развертывание означает, что изменения, внесённые разработчиками в приложение, становятся активными в течение нескольких минут после завершения написания (при условии, что они прошли автоматизированные тесты). Это делает процесс получения и интеграции обратной связи от пользователей более простым для команд операций.
В целом, все эти шаги, связанные с CI/CD, значительно снижают риски при развертывании приложений.
Однако, из-за необходимости написания автоматизированных тестов, адаптированных к различным этапам тестирования и публикации в CI/CD-канале, начальный объём работы остаётся значительным.
Облачное-ориентированное проектирование (DDD) поддерживает создание моделей, основанных на реальном бизнесе и связанных с сценариями использования. В контексте разработки приложений DDD использует термин "область" для описания проблемы. Оно описывает независимые области как определенные контексты (каждый определенный контекст связан с микросервисом), и акцентирует внимание на использовании общей языковой модели для обсуждения этих областей. DDD также предлагает множество технических концепций и моделей, таких как доменные сущности с "наполненными" моделями (в отличие от "анемичных" моделей), объекты-значения, агрегаты и корневые агрегаты (или корневые сущности), которые поддерживают внутреннюю реализацию. В этом разделе рассматриваются внутренние модели и их реализация.Иногда технические правила и модели DDD воспринимаются как препятствие из-за крутого обучения кривого при внедрении методологии DDD. Однако важнее не сами модели, а то, как код организован вокруг бизнес-проблем и используется одинаковый бизнес-терминологический язык (общий язык). Кроме того, методология DDD должна применяться только тогда, когда требуется реализация сложных микросервисов, использующих важные бизнес-правила. Для более простых функций, таких как CRUD-сервисы, можно использовать более простые методы управления.
При проектировании и определении микросервисов ключевым аспектом является определение границ. С использованием моделей DDD можно лучше понять сложность области. Для модели области каждого определенного контекста необходимо определить и описать сущности, объекты-значения и агрегаты, необходимые для моделирования области. Генерация и оптимизация модели области, ограниченной определенной границей, которая определяет контекст. Если это микросервис, это будет очевидно. Компоненты внутри этих границ в конечном итоге становятся микросервисами, но в некоторых случаях BC или бизнес-микросервисы могут состоять из нескольких физических сервисов. DDD связан с границами, как и микросервисы.
ABP — это открытый и хорошо документированный фреймворк для приложений. ABP представляет собой не только фреймворк, но и предлагает модель архитектуры, основанную на лучших практиках и подходе к доменной моделировке (DDD), поддерживающую как .NET Framework, так и .NET Core.
Основные характеристики фреймворка ABP- Зависимости и внедрение. Эта часть реализуется с помощью Castle Windsor (контейнера внедрения зависимостей), что позволяет использовать IOC для управления зависимостями.
Новый .NET современный фреймворк для разработки приложений, предоставляющий распределённый запуск приложений – на основе Dapr лучших практик облачных технологий, что позволяет быстро создавать распределённые, микросервисные, DDD, SaaS и другие современные приложения.
Что такое OpenIddict?
OpenIddict предназначен для предоставления универсального решения для реализации поддержки клиентов, серверов и проверки токенов OpenID Connect в любом приложении ASP.NET Core 2.1 (и выше) и ASP.NET 4.6.1 (и выше), благодаря нативной интеграции с Microsoft.Owin 4.2.OpenIddict полностью поддерживает потоки кода/скрытого/гибридного, потоки клиентских удостоверений/ресурсов владельцев паролей и потоки устройств.
OpenIddict нативно поддерживает Entity Framework Core, Entity Framework 6 и MongoDB, а также позволяет реализовать пользовательские хранилища для поддержки других провайдеров.
Добро пожаловать, уважаемые разработчики, для дополнения и укрепления экосистемы .NET!
GitHub адрес: dotnet от новичка до продвинутого
Спасибо за использование
Технический обмен: 737776595
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )