Генерация PDF-отчетов с помощью ASP.Net и React

Не могу не упомянуть про один очень интересный доклад (и open-source шаблон!) с нашего 6-го .NET-митапа.

Коллега Семён Конончук рассказывал про очень часто встречающуюся задачу — генерацию отчетов.

И если отчеты для «внутреннего пользования»/мониторинга вполне можно генерировать какими-нибудь Графанами или другими html-инструментами, то к отчетам для пользователей совсем другие требования.

Они должны быть красивыми, для них создается специальный дизайн, и mrtg-like набор графиков (см ниже :)) вряд ли кого-то устроит

MRTG graph

Для решения задачи создания таких богатых PDF-отчетов (которые можно распечатать, а можно и просто в виде файлика куда-нибудь положить), а также переиспользования в отчетах кода из существующего фронтэнда и был создан шаблон проекта PDFGenerator. Если кратко, он возвращает PDF при вызове метода ASP.Net контроллера по http. Само содержимое отчета — на Реакте, данные для отчета собирает произвольным способом тот же ASP.Net сервис.

А вот и картинка для привлечения внимания, а для детального описания как оно работает — идите сразу на гитхаб.

img

Выложенный проект — это именно пример/шаблон. Если хотите использовать у себя — скачивайте, меняйте namespace на свои, запускайте — и радуйтесь :)

А если хотите узнать как мы к этому пришли и какие альтернативы рассматривали — вот вам и видос доклада. Приятного просмотра!

TomskDotNet #6 — первый пост-коронавирусный митап и выход .NET 5!

Наконец-то! После почти года перерыва митапы потихоньку возвращаются!

22 октября мы провели очередной — и очень неплохой — митап (фото и видео — традиционно на сайте). Лично я был очень удивлен такому большому количеству смельчаков, не побоявшихся прийти к нам в оффлайн. Следуя коронавирусным традициям, в этот раз у нас была и онлайн часть, и даже одному из «удаленных» участников достался сертификат от Jetbrains — наш приятный подарок за активность и хорошие вопросы.

У меня на этом митапе был небольшой вступительный доклад про грядущий выход .NET 5, а сейчас, спустя месяц, я могу поделиться и собственным опытом переезда на новую версию с 3.1. Мои небольшие пет-проджекты и чуть большая open-source библиотека авторизации переехали за пару вечеров без каких-либо проблем. По сравнению с миграцией 2.2 -> 3.0 (которая, пожалуй, заняла недели 2-3) — это просто сказка. Единственный breaking-change с которым мне пришлось столкнуться — это небольшое изменение в контексте авторизации. В остальном обновление свелось к чистке Startup.cs и изменению версий зависимостей в .csproj. Идеально! :)

Так что если задумываетесь над обновлением — не задумывайтесь :) В сети куча статей про 20% рост производительности, так что причин откладывать нет ну вообще никаких (ну, разве что помните, что .NET 5 — не LTS и обновляться до .NET 6 придется оперативно после его выхода).

Ну и смотрите видеозапись доклада, если интересно :)

Второй митап .Net разработчиков TomskDotNet#2

Наш второй митап по .NET состоялся!

Немного митапной статистики:

  • 3 докладчика;
  • 80+ участников;
  • 100 печенек и целая куча других вкусностей;
  • 30 банок колы и других напитков;
  • 5 кружек с лабиринтами;
  • 2 отлично проведенных часа жизни и многое многое другое…

Фоточки и всё такое можно посмотреть в нашей группе ВК.

К сожалению, во время митапа возникли технические сложности, которые не позволили нам записать доклады в полной мере. Зато у нас есть презентации докладчиков.

Вот они:

Присоединяйтесь к нам 31 января, на TomskDotNet #3!

Доклад про Entity Framework Core на TomskDotNet#1

В конце ноября мы открыли сезон митапов TomskDotNet, и на первом из них я рассказал про особенности Entity Framework Core, типичные ошибки при работе с этой ORM, оптимизацию запросов и мониторинг.

Презентацию можно посмотреть ниже или скачать по ссылке.


С удовольствием приглашаю вас на наши последующие митапы (ближайший из которых — 20 марта).

Доклад про WebAssembly на Городе IT

10 сентября выступил на секции Enterprise конференции Город IT с докладом по WebAssembly.
С моей точки зрения, WebAssembly — это очень перспективное направление, хоть и не готовое к продакшену прямо сейчас. Но нам — разработчикам — просто необходимо внимательно следить за технологиями, которые уже в ближайшее время могут радикально изменить ситуацию в мире фронтэнда.
В докладе рассказывал про появление и развитие WebAssembly, языки и фреймворки, которые его используют, и показал возможности применения Майкрософтоской библиотеки Blazor для разработки SPA с использованием любых существующих .net библиотек (netstandard).
Спасибо всем участникам конференции за интерес и плодотворную дискуссию!

Презентация — уже сегодня на Slideshare, надеюсь на скорое появление видео (ждём организаторов!)
WebAssembly.pptx

Семинар по ASP.Net Core в Точке Кипения

14 декабря вместе с коллегой Антоном Финько выступали в Точке Кипения с семинаром по ASP.Net Core.

y_eKgPHhHbs
Очень понравилась сама площадка — Точка Кипения — это отличное место, просторный зал, огромный экран и все пришедшие 60 человек там отлично разместились (и даже если было бы вдвое больше — всё равно всем было бы удобно :)). Фотографии не передадут всего комфрота и уюта (и кофе-брейка с плюшками), но покажут, насколько было хорошо:
4kZgU9Ke01U

nZQgjVYFvvE

F_UDmu7bIW8

Это было первое IT-мероприятие в Точке, и я считаю, оно прошло отлично! Небольшой 40-минутный доклад про теоретические основы и большой практический опыт, и более чем получасовая дискуссия после. Очень порадовал обмен мнениями и опытом использования от многих присутствовавших.

Ну а тем, кто не пришел — видео и презентация ниже :)

AspnetCore.pptx

До встречи на следующих семинарах!

Доклад по кроссплатформенной мобильной разработке на DevPro Красноярск

25 ноября выбрался в Красноярск, чтобы посетить местную конференцию D2D DevPro.
Организовывали её наши коллеги и партнеры из Аспирити, и получилось очень неплохо. 300+ человек, 3 параллельных секции — это первая IT конференция такого масштаба в Красноярске!

С удовольствием выступил и рассказал о подходах к кроссплатформенной разработке, про свой любимый Xamarin, про набирающий популярность React Native. Демо-показ возможностей React Native / Xamarin Forms / Xamarin на сходных примерах очень удачно продемонстрировал development experience при использовании кроссплатформенных фреймворков.

С видео наши красноярские друзья, к сожалению, подкачали, поэтому выкладываю видео с «репетиции» доклада, которая прошла в Томске за пару недель до DevPro :) А вот презентация — уже с самого Красноярска, доработанная и улучшенная.

Слайды:
Cross Platform.pptx

Opensource инициатива Rubius

Мы в компании Rubius активно используем опенсорс и радуемся, когда наши коллеги участвуют в опенсорс проектах.

Ну и решили, как компания, внести свой небольшой вклад в развитие свободного ПО. Поэтому совсем недавно у Рубиус появился аккаунт на гитхабе. Там уже выложены некоторые интересные вещи:

  • Xamarin-контролы: Яндекс-карты, таблицы, MaskEdit, календарь и прочее.
  • Realmius — мощное средство двухсторонней синхронизации БД SQL Server и Realm (убийца SQLite).
  • TFS-task для отправки списка упавших тестов на email

Посмотрите, может быть, вы найдёте что-то новое и интересное для себя.
Надеюсь, со временем проектов в open-source у нас будет всё больше и больше.

Доклад о Realm и самописной бесплатной синхронизации данных Realmius

Выступил на DevPro 2017.
Сделал доклад про новую мобильную БД Realm и как мы написали для неё альтернативный механизм синхронизации с хранением данных в SQL Server.

Всем рекомендую использовать как Realm, так и Realmius :) У нас есть даже документация!

А слайды и видео, как обычно, ниже :)

DevPro 2017

Крупнейшая томская конференция для разработчиков DevPro 2017 состоялась :)
Расширились до трех параллельных треков (в прошлом году было два, и «технический» был весьма скомканный).
Видеозаписи всех докладов смотрите на Ютубе!

Мне посчастливилось поучаствовать в конференции не только в качестве докладчика, но и в качестве «программного директора». Это значит, что все претензии по поводу качества докладов нужно адресовать непосредственно мне :)

По моему скромному мнению (а также по оценкам докладов в мобильном приложении) доклады получились очень хорошие, за исключением откровенно неудачных двух «внешних». Иногородние спикеры обошли жесткую систему предварительных прослушиваний и.. получилось, что получилось. Зато были замечательные доклады от Аспирити про управление, Игоря Бычкова про Микросервисы и лучший по зрительскому голосованию доклад о выводе продукта на рынок — Planyway.

Как обычно, наиболее популярными были «лёгкие» доклады, без глубокого погружения в техническую часть. Но в этот раз и «хардкорные» технические темы были отмечены достаточно высокими оценками. Это и доклад про архитектуру и DDD, и вопросы безопасности, и сравнение языков программирования и интересный и сложный доклад про новую для нас область — BigData и MachineLearning.

И доклады, и развлекательная программа в целом создавали очень динамичную и позитивную атмосферу, от которой, уверен, каждый зарядился энергией на новые подвиги в нашей сложной айтишной сфере :) Собрать талантливых людей вместе, чтобы обменяться опытом и еще больше повысить свой уровень — в этом и есть в первую очередь задача конференции!

Была, конечно, и ложка дёгтя в виде откровенно маленького Синего зала, где зрителям откровенно не хватало места. Что ж — это лишний повод расти и в следующем году занимать залы куда большей вместимости. До встречи на ДевПро-2018!