Pull to refresh
35
Karma
0.1
Rating

Пользователь

  • Followers 25
  • Following 20
  • Posts
  • Comments

О классах Program и Startup — инициализация ASP.NET приложения. Часть I: Program и IHostBuilder

.NETC#

Не так давно на Хабре я увидел статью с многообещающим названием "Что из себя представляет класс Startup и Program.cs в ASP.NET Core". Меня всегда интересовало и интересует, что именно происходит под капотом той или иной библиотеки или фреймворка, с которыми мне доводится работать. И к веб-приложениям на ASP.NET Core это относится в полной мере. И я надеялся получить из этой статьи новую информацию о том, как работают упомянутые классы при запуске такого приложения. Та статья, к сожалению, меня разочаровала: в ней всего лишь в очередной раз был пересказан кусок руководства, никакой новой информации я оттуда не получил. И при чтении ее я подумал, что, наверное, есть и другие люди, которым, как и мне, интересно не просто знать, как применять тот или иной фреймворк (ASP.NET Core в данном случае), но и как он работает. А так как я по разным причинам последнее время довольно сильно углубился во внутреннее устройство ASP.NET Core, то я подумал, что теперь мне есть много что рассказать о нем из того, что выходит за рамки руководств. И вот потому я решил для начала написать статью про то, что действительно представляют из себя классы Startup и Program - так, чтобы рассказать не о том, как ими пользоваться, а о том, как работают эти классы, причем - в контексте работы всего веб-приложения на ASP.NET Core. Однако поскольку необъятное объять нельзя, то предмет этот статьи ограничен. Прежде всего, она ограничивается рассказом только про веб-приложения, созданные с использованием нового типа шаблона приложения - Generic Host. Во-вторых, статья будет посвящена только тому, как происходит инициализация веб-приложения, потому что основная роль рассматриваемых классов именно такова - инициализация и запуск размещенного приложения.

И ещё - предупреждение, судя по одному из комментариев - необходимое, чтобы не вводить в заблуждение потенциальных читателей: эта статья не предназначена служить руководством, она не содержит рецептов "как это использовать на практике". Такая информация есть в многочисленных уже написанных другими руководствах, и я не вижу для себя смысла писать еще одно. Да и объем статьи и без того велик.

Итак, кому рассматриваемая тема, даже в столь ограниченном объеме, интересна - добро пожаловать под кат.

Читать далее
Total votes 14: ↑13 and ↓1+12
Views8.6K
Comments 4

Металлическая миссия: следующим летом НАСА отправляет аппарат с двигателями Холла к железному астероиду ценой $10¹⁹

Selectel corporate blogPopular scienceAstronauticsThe future is here

Астероид «Психея» внимательно смотрит на тебя, %username%

О некоторых научных проектах можно писать романы, настолько они интересны. Ну а фактуру для этих романов стоит брать прямо здесь, на «Хабре». Отличный пример — миссия «Психея» (Psyche), история которой началась в 2014 году, когда группа ученых предложила НАСА отправить роботизированную станцию на очень необычный металлический астероид Psyche.

Почему необычный? Ну, его диаметр составляет 250 км, и это один из самых больших астероидов в нашей Солнечной системе. А состоит он, как выяснилось, почти полностью из железа. Скорее всего, астероид является металлическим ядром протопланеты, каменная оболочка которой была разрушена из-за катаклизма или целой их серии.
Читать дальше →
Total votes 90: ↑89 and ↓1+88
Views25K
Comments 75

Когда нужно сделать PDF документ

Lumber room
Если перед Вами стоит задача — создавать простенькие (или не совсем) pdf документы в вашем приложении — это могут быть и отчеты и рецепты, ну либо вы захотите печатать так информацию о ваших объектах, то для решения этой задачи можно воспользоваться, к примеру, установленным OpenOffice и его возможностями (это тяжеловестно), а можно библиотекой iTextSharp (Free C#-PDF library), вот про это я и хочу поведать небольшой пример, при помощи которого я создам такой вот документ:

Читать дальше →
Total votes 7: ↑6 and ↓1+5
Views3.2K
Comments 15

Сети для самых маленьких. Часть седьмая. VPN

System administrationNetwork technologies
Tutorial


Покупка заводов в Сибири была стратегически правильным решением для компании “Лифт ми Ам”. После того, как лифты стали ездить не только вверх, но и вниз, дела компании пошли… нет полетели, вверх. Лифты начали разбирать, как горячие пирожки со стола. Название уже не соответствовало действительности и было принято решение о ребрендинге. (На самом деле их замучила судебная тяжба с Моби).
Итак, под крыло ЛинкМиАп планируется взять заводы в Новосибирске, Томске и Брно. Самое время подумать о том, как это хозяйство подключить к имеющейся сети.

Итак, сегодня рассматриваем
1) Возможные варианты подключения, их плюсы и минусы
2) Site-to-Site VPN на основе GRE и IPSec
3) Большая тема: динамическая многоточечная виртуальная сеть (DMVPN) в теории и на практике.

В традиционном видео лишь ёмкая выжимка из статьи, посвящённая работе и настройке DMVPN.

Читать дальше →
Total votes 118: ↑118 and ↓0+118
Views528K
Comments 43

Детальная настройка браузера Firefox

FirefoxBrowsers
Sandbox

Вот уже пару лет, как я рекомендую всем моим знакомым использовать Firefox, как браузер для повседневного серфинга в интернете. Я люблю этот браузер за его гибкость в настройке, скорость и заботу о приватности. Много раз на форумах меня спрашивали про какие-то отдельные случаи по настройке, поэтому я решил написать статью с подробным описанием настроек, как шпаргалку для себя и чтобы делится ею, в случае новых вопросов.

Надеюсь она немножко поможет в популяризации этого чудесного браузера.

Читать далее
Total votes 53: ↑50 and ↓3+47
Views53K
Comments 91

Доступны бесплатные уроки видеокурса по Apache Kafka

Southbridge corporate blogHigh performanceSystem administrationIT InfrastructureApache


Мы открыли доступ к базовым темам курса по Apache Kafka.


В программе две теоретические темы «Введение» и «Базовые основы технологии» и практическая тема «Установка Kafka». В ней поработаем с технологией руками:


  1. Развернём Kafka в самом простом её варианте — с одним брокером и одной нодой ZooKeeper.
  2. Запишем и прочитаем сообщения, посмотрим в конфиги и увидим, как данные хранятся на диске.
Читать дальше →
Total votes 18: ↑15 and ↓3+12
Views6.6K
Comments 2

Пентест-лаборатория Test lab 15 — ху из зэ н0в1ч0к?

Pentestit corporate blogInformation SecurityIT systems testingWeb services testing

Ежегодно Pentestit выпускает уникальные лаборатории тестирования на проникновения. По своей сути, Test lab являются реальными копиями корпоративных сетей, которые содержат различные ошибки конфигураций. Каждый желающий может попробовать свои силы на практике совершенно бесплатно. Лаборатории разрабатываются с учетом наиболее распространенных уязвимостей. В Test lab используются различные сетевые сервисы (Mail, DNS, AD, VPN, WAF, и т.д), веб-приложения, API и прикладные программы, а также дополнительные вспомогательные элементы инфраструктуры для придания реалистичности.

В статье мы вспомним, какие задания встречались в предыдущей лаборатории, и поможем подготовиться к предстоящей Test lab 15.

Читать далее
Total votes 10: ↑10 and ↓0+10
Views5.4K
Comments 0

«Осторожно, печеньки!»: советы начинающим тестировщикам в сфере безопасности

red_mad_robot corporate blogInformation SecurityIT systems testingWeb services testing

Привет, меня зовут Вика Бегенчева, я QA-инженер в Redmadrobot. Я расскажу, как злоумышленники крадут наши данные, и что можно сделать, чтобы от этого защититься. Статья написана для начинающих тестировщиков безопасности и тех, кому непонятно, что за «фрукты» эти хакеры и чем они там занимаются.

Читать далее
Total votes 9: ↑6 and ↓3+3
Views14K
Comments 7

Фантастика 2020 года, которую стоит почитать

Science fiction


Под конец года принято подводить итоги и кажется стоит вспомнить, что же было в этом непростом году хорошего. Например, я читал много отличных книг (что еще делать дома?). Вот немного про самые примечательные из них или, по крайней мере, те, которые сильнее всего запомнились мне.
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Views73K
Comments 109

Greenplum DB

TINKOFF corporate blogPostgreSQLBig Data
Продолжаем цикл статей о технологиях, использующихся в работе хранилища данных (Data Warehouse, DWH) нашего банка. В этой статье я постараюсь кратко и немного поверхностно рассказать о Greenplum — СУБД, основанной на postgreSQL, и являющейся ядром нашего DWH. В статье не будут приводиться логи установки, конфиги и прочее — и без этого заметка получилась достаточно объёмной. Вместо этого я расскажу про общую архитектуру СУБД, способы хранения и заливки данных, бекапы, а также перечислю несколько проблем, с которыми мы столкнулись в ходе эксплуатации.



Немного о наших инсталляциях:

  • проект живёт у нас чуть больше двух лет;
  • 4 контура от 10 до 26 машин;
  • размер БД около 30 Тб;
  • в БД около 10000 таблиц;
  • до 700 queries per second.

За тем, как оно работает, прошу под кат!
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Views59K
Comments 25

Киберграмотность сотрудников: флаеры и шаблоны писем, которые они захотят прочитать

Varonis Systems corporate blogInformation SecuritySystem administrationAntivirus protectionReading room
Translation


Все мы знаем, насколько важно обучать сотрудников кибербезопасности. Чтобы помочь вам запустить или разнообразить мероприятия по информированию сотрудников, мы подготовили комплект шаблонов и памяток по кибербезопасности. Эти памятки касаются таких «вечных» тем, как пароли, доступ к файлам и папками, фишинг и whailing (уэйлинг). Кроме того, в комплект вошли памятки для сотрудников с разными уровнями опыта.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Views5.9K
Comments 2

Программирование квантовых компьютеров: джентльменский набор издательства «Питер»

Издательский дом «Питер» corporate blogProfessional literatureResearch and forecasts in ITThe future is hereQuantum technologies

Мы очень стараемся отслеживать тренды ещё на этапе их формирования и готовить для русскоязычных читателей наиболее актуальные книги. Сегодня я покажу, как это происходит. Для примера возьму довольно необычную тему – программирование квантовых компьютеров.

Эта история началась 4 года назад и теперь, в конце 2020, у нас уже сформирован небольшой, но весьма доступный и актуальный портфель.

Вот как это было
Total votes 22: ↑22 and ↓0+22
Views8.4K
Comments 3

PostgreSQL Antipatterns: убираем медленные и ненужные сортировки

Тензор corporate blogHigh performancePostgreSQLSQLDatabase Administration
«Просто так» результат SQL-запроса возвращает записи в том порядке, который наиболее удобен серверу СУБД. Но человек гораздо лучше воспринимает хоть как-то упорядоченные данные — это помогает быстро сравнивать соответствие различных датасетов.

Поэтому со временем у разработчика может выработаться рефлекс «Дай-ка я на всякий случай это вот отсортирую!» Конечно, иногда подобная сортировка бывает оправдана прикладными задачами, но обычно такой случай выглядит как в старом анекдоте:
Программист ставит себе на тумбочку перед сном два стакана. Один с водой — на случай, если захочет ночью пить. А второй пустой — на случай, если не захочет.
Давайте разбираться — когда сортировка в запросе точно не нужна и несет с собой потерю производительности, когда от нее можно относительно дешево избавиться, а когда сделать из нескольких — одну.

Читать дальше →
Total votes 29: ↑28 and ↓1+27
Views10K
Comments 14

Фишеры icloud и где они обитают

Information SecurityGadgetsSmartphones
🔥 Technotext 2020
Внимание! Несмотря на то, что для работы над этой статьей я потратил не один десяток часов, но ты все еще можешь в ней поучаствовать.

Если у тебя чешутся руки — попробуй осилить этот текст.

История больше похожа на комикс, так как содержит более 50 изображений, поэтому аккуратнее, если ты с мобильного. А ещё — тут скорее всего нарушается 152-ФЗ, поэтому я не удивлюсь, если её удалят, так что читай быстрее. Эта история пока не имеет конца, но у нее есть начало…
Читать дальше →
Total votes 263: ↑262 and ↓1+261
Views48K
Comments 78

Простое обнаружение проблем производительности в PostgreSQL

PostgreSQLSQL
Translation
Recovery mode
Существует ли в мире очень большая и крупная база данных, которая время от времени не страдает от проблем с производительностью? Держу пари, что их не так уж много. Поэтому каждый DBA (администратор базы данных), отвечающий за PostgreSQL, должен знать, как отслеживать потенциальные проблемы производительности, чтобы выяснить, что на самом деле происходит.

Повышение производительности PostgreSQL после настройки параметров


Многие думают, что изменение параметров в postgresql.conf — это реальный путь к успеху. Однако это не всегда так. Конечно, чаще всего хорошие параметры конфигурации базы данных очень полезны. Тем не менее, во многих случаях реальные проблемы будут возникать из-за странного запроса, скрытого глубоко в некоторой логике приложения. Даже вполне вероятно, что запросы, вызывающие реальные проблемы, не являются теми, на которые вы обратили внимание. Возникает естественный вопрос: как мы можем отследить эти запросы и выяснить, что на самом деле происходит? Мой любимый инструмент для этого — pg_stat_statements, который всегда должен быть включен по моему мнению, если вы используете PostgreSQL 9.2 или выше (пожалуйста, не используйте его в более старых версиях).
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Views19K
Comments 6

Разработчики — никакая не элита, а голые короли индустрии

Personnel ManagementIT career
Recovery mode

ЛОЛШТО?


Пожалуйста, не поймите меня неправильно. Я профессиональный разработчик с 30-летним стажем. Я могу читать и понимать почти двадцать языков, полных по Тюрингу. Я могу писать ясный и выразительный код на доброй дюжине из них. В языках, которые я действительно люблю и использую ежедневно — мое имя можно увидеть на доске почета StackOverflow (топ-20 в мире: ruby, elixir). Я по-настоящему люблю писать код, и я отклоняю все предложения «вырасти» по должностной лестнице, будь то руководство проектами, CTO, или что угодно в этом направлении, несмотря на потенциальное увеличение дохода в разы.


professional beggars were often seen as people not deserving of aid
— Abraham Willemsens (Metropolitan Museum of Art)


Но я как никогда убежден, что отрасль страдает от самого страшного заболевания за всю свою историю. Для этого есть много причин, и я собираюсь высказать свое очень предвзятое и скромное мнение по этому поводу.

Читать дальше →
Total votes 649: ↑387 and ↓262+125
Views155K
Comments 1985

Тестирование двухфакторной аутентификации и возможные варианты обхода

Information SecurityWebsite developmentIT systems testingProgrammingWeb services testing
🔥 Technotext 2020


Еще до того, как я начал постигать сложную науку информационной безопасности, мне казалось, что 2FA аутентификация — это гарантированный способ защитить свой аккаунт и никакие «эти ваши хакеры» не смогут, скажем, увести мою внутреннюю валюту для покупки одежды персонажам на игровом аккаунте. Но с течением времени опытным путем было доказано,  — система двухфакторной аутентификации может иметь большое количество уязвимостей. 
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Views23K
Comments 10

Пропаганда тоталитарного режима, антисемитизм и гомофобия в учебнике по программированию 2019 года? — Это возможно

PythonProfessional literature
Кликбейтный заголовок? К сожалению, всё указанное и даже более в обозреваемой ниже книге есть. Что за книга? «Простой Python просто с нуля».
Читать дальше →
Total votes 336: ↑261 and ↓75+186
Views81K
Comments 192

.Net Meetup в Райффайзенбанке 28/11 + трансляция

Райффайзенбанк corporate blog.NETConferencesMicroservices
Приглашаем на .Net Community Meetup 28 ноября. На митапе поговорим о проектировании desktop-приложений и рассмотрим вызовы, с которыми сталкивается любая компания на пути к микросервисам.

Подключайтесь к трансляции!


Читать дальше →
Total votes 12: ↑10 and ↓2+8
Views1.5K
Comments 0

Логическая репликация между версиями PostgreSQL

Southbridge corporate blogSystem administrationServer AdministrationDevOps
Translation


Есть разные подходы к обновлению PostgreSQL, но некоторые приводят к простою приложения. Если нужно избежать простоя, используйте для обновления репликацию — логическую или физическую (потоковую), в зависимости от сценария. В этой статье мы рассмотрим разницу между логической и физической репликацией в PostgreSQL. Затем подробно поговорим, как обновить версию с помощью логической репликации и при этом избежать простоя приложения. В следующей статье обсудим репликацию физическую.


В предыдущих статьях мы уже говорили о методах обновления PostgreSQL (Обновление версии PostgreSQL с помощью pg_dumpall и Обновление версии PostgreSQL с помощью pg_dump/pg_restore) в рамках серии Обновление или миграция старых версий PostgreSQL в новые. Но оба этих метода не исключают простоя.

Читать дальше →
Total votes 18: ↑17 and ↓1+16
Views10K
Comments 6

Information

Rating
2,237-th
Registered
Activity