Про мене
Тут я ділюся досвідом, який накопичую, працюючи з .NET та веб-розробкою: навчальні матеріали, пояснення того, що зараз змінюється в розробці, і детальні розбори проблем, з якими стикаюся в роботі, разом із тим, як я їх вирішив.
Пишу для розробників, яким це може знадобитися у власних проєктах. Якщо помітили помилку, пропущену деталь або маєте ідею для статті, залишайте коментар чи пишіть мені напряму.
Про мене
Я - провідний software engineer із понад 10-річним досвідом проєктування та розробки вебзастосунків і розподілених систем. Працюю із сучасною платформою .NET, ASP.NET Core, Entity Framework та TypeScript, створюючи продуктивні API, сервіси й інструменти для розробників. Проєктую cloud-native рішення для Azure та AWS, використовую Docker, Kubernetes, автоматизовані CI/CD-процеси й спостережуваність на базі OpenTelemetry. У розподілених системах застосовую event-driven architecture, RabbitMQ, Azure Service Bus, CQRS і Domain-Driven Design. Окремий напрям моєї роботи - інтеграція AI у прикладні системи, зокрема побудова AI-native сервісів та інструментів на основі Model Context Protocol. Фокусуюся на рішеннях, які залишаються масштабованими, надійними та зрозумілими в довгостроковій підтримці.
Open-source проєкти
Я активно займаюсь розробкою інструментів для покращення якості коду та продуктивності розробників.
AzVault - кросплатформний desktop-клієнт для безпечної роботи з Azure Key Vault. Застосунок побудований на Tauri 2, Rust, React і TypeScript, використовує автентифікацію через Azure CLI та не зберігає значення секретів або refresh tokens локально.
Ключові особливості:
- Перегляд і керування secrets, keys та certificates
- Створення, видалення, відновлення й остаточне очищення секретів
- Імпорт секретів із JSON та безпечні bulk-операції
- Глобальний пошук і command palette
- Локальний audit log із редагуванням чутливих даних
- Підтримка Windows, macOS і Linux
EntityLengths.Analyzer - це Roslyn аналізатор, який допомагає контролювати обмеження довжини рядків у C# коді. Він аналізує присвоєння властивостей та перевіряє їх відповідність обмеженням довжини, визначеним через атрибути або конфігурації Entity Framework.
Що він робить:
- Автоматична перевірка обмежень довжини рядків
- Інтеграція з Entity Framework конфігураціями
- Підтримка атрибутів для визначення обмежень
- Попередження на етапі компіляції
EntityLengths.Generator - це C# генератор вихідного коду, призначений для автоматичного створення констант довжини рядків на основі конфігурацій Entity Framework та анотацій даних. Аналізуючи конфігурації ваших моделей, він усуває потребу в ручному підтримуванні констант та зменшує ризик використання жорстко закодованих значень довжини у вашому додатку.
Що дає:
- Автоматична генерація констант на основі EF конфігурацій
- Підтримка Data Annotations
- Зменшення ризику помилок при рефакторингу
- Покращення підтримки коду
CentralConfigGenerator - dotnet tool для автоматичного створення централізованих конфігураційних файлів для проєктів .NET. CentralConfigGenerator аналізує структуру вашого рішення і створює правильно налаштовані файли Directory.Build.props та Directory.Packages.props для стандартизації налаштувань у всіх ваших проектах.