Как стать автором
Обновить
11
Карма
0
Рейтинг
Артем @Legolas

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

  • Подписчики 8
  • Подписки 1
  • Публикации
  • Комментарии

Как работает конфигурация в .NET Core

.NETASPC#
Из песочницы

Давайте отложим разговоры о DDD и рефлексии на время. Предлагаю поговорить о простом, об организации настроек приложения.


После того как мы с коллегами решили перейти на .NET Core, возник вопрос, как организовать файлы конфигурации, как выполнять трансформации и пр. в новой среде. Во многих примерах встречается следующий код, и многие его успешно используют.


public IConfiguration Configuration { get; set; }
public IHostingEnvironment Environment { get; set; }

public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
   Environment = environment;
   Configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .AddJsonFile($"appsettings.{Environment.EnvironmentName}.json")
            .Build();
}

Но давайте разберемся, как работает конфигурация, и в каких случаях использовать данный подход, а в каких довериться разработчикам .NET Core. Прошу под кат.

Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Просмотры52K
Комментарии 24

Волшебная фея для юнит-тестов: DSL в C#

Блог компании Dodo EngineeringПрограммирование.NETC#
Как часто бывало так, что написав рабочий юнит-тест, ты смотришь на его код, а он… плохой? И ты такой думаешь: «Это же тест, оставлю так…». Нет, %username%, так оставлять не надо. Тесты — это значимая часть системы, которая обеспечивает поддерживаемость кода, и очень важно, чтобы эта часть также была поддерживаемой. К несчастью, у нас не так много способов обеспечить это (не будем же мы писать тесты на тесты), но парочка всё-таки есть.

Читать дальше →
Всего голосов 34: ↑27 и ↓7+20
Просмотры9.2K
Комментарии 41

Docker-compose. Как дождаться готовности контейнера

Системное администрирование*nix

Введение


Существует много статей про запуск контейнеров и написание docker-compose.yml. Но для меня долгое время оставался не ясным вопрос, как правильно поступить, если какой-то контейнер не должен запускаться до тех пор, пока другой контейнер не будет готов обрабатывать его запросы или не выполнит какой-то объём работ.
Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Просмотры36K
Комментарии 26

Аутентификация и авторизация в микросервисных приложениях

Блог компании DataArt.NETC#
Tutorial

Автор: Вячеслав Михайлов, Solutions Architect

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

Мы разберемся с процессом аутентификации пользователя, работой технологии единого входа (Single sign-on/SSO), дадим общее представлении о технологии OAuth2 и принципах ее работы, не углубляясь в особенности конкретной технической реализации. В следующей статье в качестве примера удачной реализации мы рассмотрим библиотеку Thinktecture Identity Server v3, подробнее остановимся на ее функциональных возможностях, поговорим, как собрать минимальный набор компонент, необходимый для работы в микросервисной архитектуре и достойный использования в боевой системе. В третьей части мы покажем, как расширять эту библиотеку, подстраиваясь под нужды вашей системы, а завершит цикл статей разбор различных сценариев, встречавшихся в жизни многих разработчиков с рекомендациями для каждого случая.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Просмотры164K
Комментарии 15

ГИС ЖКХ: установка защищенного соединения и подписание сообщений с помощью WCF

.NETC#Разработка под Windows
Tutorial
Сейчас активно дорабатывается государственная информационная система ЖКХ, а с 1 января 2017 года наступает ответственность для управляющих и ресурсоснабжающих организаций за непредоставление информации в системе.

Как показывает практика, разработчики, которые выполняют интеграцию своих информационных систем с ГИС ЖКХ, очень много времени тратят на установление защищенного соединения и подписание сообщений. Несмотря на то, что разработчиками ГИС ЖКХ предоставлено демонстрационное приложение по подписанию сообщений, я опишу как можно решить эту задачу с помощью WCF. Хочу отметить, что в этом случае дополнительное ПО (типа stunnel) для установки защищенного соединения не нужно.

Надеюсь, эта статья поможет разработчикам, которые в будущем будут интегрироваться с ГИС ЖКХ.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Просмотры21K
Комментарии 11

Локализация WPF страниц

.NET
Tutorial
Сегодня существует много способов локализации WPF проектов в основном основанных на биндинге.
В этом подходе есть свои плюсы и минусы. Меня не устраивает в этом подходе это огромное количество биндингов в xaml разметке, дополнительная задержка при загрузке страницы. Так же дополнительное время для поиска строки в исходном коде т.е. когда я вижу строку в запущенной программе, сначала я должен найти эту строчку в resx ресурсах, а после только xaml содержащий этот ключ.

Недавно мы подключили Elas для локализации нашего проекта. Elas вытаскивает из xaml разметки все значения атрибутов элемента помеченного x:Uid и помещает их в xlf файл для последующего перевода. Расскажу на простом примере как это делается.
Читать дальше
Всего голосов 13: ↑11 и ↓2+9
Просмотры7K
Комментарии 2

OSSIM — разворачиваем комплексную open source систему управления безопасностью

Информационная безопасностьOpen source


OSSIM (Open Source Security Information Management) — система управления, контроля и обеспечения информационной безопасности.
OSSIM «из коробки» включает в себя такой функционал как:
  • Сбор, анализ и корреляция событий — SIEM
  • Хостовая система обнаружения вторжений (HIDS) — OSSEC
  • Сетевая система обнаружения вторжений (NIDS) — Suricata
  • Беспроводная система обнаружения вторжений (WIDS) — Kismet
  • Мониторинг узлов сети- Nagios
  • Анализ сетевых аномалий – P0f, PADS, FProbe, Arpwatch и др.
  • Сканер уязвимостей – OpenVAS
  • Мощнейшая система обмена информацией об угрозах между пользователями OSSIM — OTX
  • Более 200 плагинов для парсинга и корреляции логов со всевозможных внешних устройств и служб

Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Просмотры125K
Комментарии 37

Любите ли вы Assert.That так, как его любят некоторые другие или выходу беты NUnit v3 посвящается

Программирование.NETTDDVisual StudioC#
Недавно была выпущена первая бета версия тестового фреймворка NUnit v3. Кроме всего прочего, эта версия реализует параллельное выполнение тестов (практически «из коробки»). Я решил проверить как это работает на одном реальном проекте и обнаружил, что новая версия nunit-а не поддерживает часть используемых вещей предыдущих версий. В частности предлагается вместо аттрибута ExpectedException использовать Assert.Thorws или Assert.That.
Независимо от релиза этой беты, в одном из проектов начал использовать модель Assert.That вместо всех остальных методов и атрибутов nunit-а.

Под катом небольшой опыт перевода аттрибута ExpectedException в модель Assert.That.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Просмотры15K
Комментарии 1

Entity Framework: повышаем производительность при сохранении данных в БД

.NETSQLMicrosoft SQL Server
Из песочницы
При добавлении/изменении большого количества записей (10³ и выше), производительность Entity Framework оставляет желать лучшего. Причиной этому являются как архитектурные особенности самого фреймворка, так и неоптимальный генерируемый SQL. Забегая вперед — сохранение данных в обход контекста сокращает время выполнения на порядки.

Содержание статьи:
1. Insert/Update стандартными средствами Entity Framework
2. Поиск решения проблемы
3. Интеграция Entity Framework и SqlBulkCopy
4. Продвинутая вставка с использованием MERGE
5. Сравнение производительности
6. Выводы
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Просмотры45K
Комментарии 11

T4 в помощь на примере MVVM

.NETVisual StudioGitHub
Tutorial
 Цель статьи: дать пару идей для автоматизации, а может даже и рабочий инструмент для создание T4-болванок под решения типовых задач, производимых с классами/интерфейсами в работе.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Просмотры7.4K
Комментарии 9

Что нового в C# 6.0?

C#
Из песочницы
image

Microsoft выпустила предварительную версию Visual studio 2015 и .Net 4.6 для разработчиков. В новом C# 6.0 несколько новых возможностей, которые могут облегчить кодинг.

В этой статье рассмотрены новые возможности языка C# 6.0. Скачать новую VS можно по ссылке:
Microsoft Visual Studio Ultimate 2015 Preview

Инициализация свойств со значениями


В C# 6.0 мы можем инициализировать свойства со значениями, написав справа от них их значение. Это поможет избежать ошибки с null и пустыми значениями свойства.

Раньше:


public int Id { get; set; }
public string FirstName { get; set; }

Теперь:


public int Id { get; set; } = 1001;
public string FirstName { get; set; } = "Srinivas";
Читать дальше →
Всего голосов 95: ↑81 и ↓14+67
Просмотры143K
Комментарии 133

Raspberry и Telegram: предпосылки создания умного дома

Lua
Перевод


Один итальянский магазинчик нащупал новые способы использования Телеграма (и ранее WhatsApp'а), установив его на одноплатный миниатюрный компьютер Raspberry Pi. Как выясняется, мессенджер можно использовать для удалённого общения с собственной техникой. Ниже – перевод статей (1, 2) с сайта Instructables.com. Если есть уточнения по переводу, напишите об этом в комментариях.

Читать дальше →
Всего голосов 52: ↑44 и ↓8+36
Просмотры84K
Комментарии 62

14 вопросов об индексах в SQL Server, которые вы стеснялись задать

Разработка веб-сайтовПрограммированиеSQLMicrosoft SQL Server
Перевод
Tutorial
Индексы — это первое, что необходимо хорошо понимать в работе SQL Server, но странным образом базовые вопросы не слишком часто задаются на форумах и получают не так уж много ответов.
Роб Шелдон отвечает на эти, вызывающие смущение в профессиональных кругах, вопросы об индексах в SQL Server: одни из них мы просто стесняемся задать, а прежде чем задать другие сначала подумаем дважды.


От переводчика
Данный пост является компиляцией двух статей Роба Шелдона:

Если вы пишите запросы на языке T-SQL, но плохо понимаете откуда берутся данные, то стоит прочитать данный перевод.
Если же вы захотите знать больше, то в конце перевода я даю тройку книг с которых следует двигаться дальше.

Перейти к чтению
Всего голосов 40: ↑37 и ↓3+34
Просмотры720K
Комментарии 44

Вам календарик 2012

Дизайн


И вот опять вам календарик!

По сложившейся традиции канун 31 декабря я провожу поедая мандарины и обновляя календарик для Хабра.

В карман (100×70мм):
pdf, eps, svg или png (1185×836, 300dpi)

На стенку (A4):
pdf, eps, svg или png (3512×2487, 300dpi)

Сделай сам:
Генератор календариков (Python, CC-BY)

Читать дальше →
Всего голосов 160: ↑139 и ↓21+118
Просмотры1.5K
Комментарии 35

Несколько интересных особенностей Windows 8

Разработка под Windows
Tutorial
Так получилось, что в последнюю неделю сентября и первые две недели октября я провёл 6 мастер-классов по Windows 8 для «Кампус-экспертов» — студентов немецких ВУЗов, которые оказывают техподдержку по основным пользовательским продуктам Майкрософт (операционная система, офис и пр.) у себя в ВУЗах. В рамках подготовки к этим мастер-классам я составил небольшой список «особенностей» или фич, показавшихся мне интересными и несколько неочевидными. Еще несколько фич мне подсказали сами студенты. Этот небольшой список со скриншотами я решил оформить в виде небольшого обзора. Конечно, не каждая из этих фич является новой или совсем неизвестной, но я постарался выбрать то. что мне показалось интересным.
Читать дальше →
Всего голосов 118: ↑98 и ↓20+78
Просмотры140K
Комментарии 132

Мгновенный поиск файлов в Windows. Ловкость рук и никакого мошенничества

Разработка под Windows
Если в Windows XP поиск файлов был хоть и медленным, но все-таки работоспособным, то в Windows 7 он превратился во что-то совсем непонятное. Многие успешно пользуются поиском в Far'е или Total Commander'е вместо стандартных средств Windows. Когда на дисках очень много файлов, такой поиск также выполняется медленно. Я бы вряд ли поверил, если бы не попробовал сам, что файлы можно находить мгновенно (!), прямо во время ввода имени файла в строку поиска. Заинтересовались?

Читать дальше →
Всего голосов 106: ↑87 и ↓19+68
Просмотры72K
Комментарии 93

NDIS. NET_BUFFER architecture

Разработка под Windows
Продолжаем начатый цикл статей о NDIS. В этом топике рассмотрим версии NDIS, и принципы передачи пакетов между драйверами «стека» и архитектуру NET_BUFFER. image

Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Просмотры2.5K
Комментарии 10

Ускорение загрузки Windows for fun and profit

Разработка под Windows
image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Всего голосов 532: ↑516 и ↓16+500
Просмотры448K
Комментарии 363

Исследуем базы данных с помощью T-SQL

Microsoft SQL Server
Перевод
Как dba и консультант по оптимизации производительности SQL Server в Ambient Consulting, я часто сталкиваюсь с необходимостью анализа узких мест производительности на экземплярах SQL Server, которые вижу первый раз в жизни. Это может быть сложной задачей. Как правило, у большинства компаний нет документации по их базам данных. А если есть, то она устарела, или же её поиск занимает несколько дней.

В этой статье я поделюсь базовым набором скриптов, раскапывающим информацию о метаданных с помощью системных функций, хранимых процедур, таблиц, dmv. Вместе они раскрывают все секреты баз данных на нужном экземпляре – их размер, расположение файлов, их дизайн, включая столбцы, типы данных, значения по умолчанию, ключи и индексы.

Если вы когда-нибудь пытались получить часть этой информации, с помощью GUI, я думаю вы будете приятно удивлены количеством той информации, которая, с помощью этих скриптов, получается мнгновенно.

Как и с любыми скриптами, сначала проверьте их в тестовом окружении, прежде чем запускать в продакшене. Я бы рекомендовал вам погонять их на тестовых базах MS, таких как AdventureWorks или pubs.

Ну, хватит слов, давайте я покажу скрипты!
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Просмотры243K
Комментарии 11

Настройка WinDbg

C++Assembler
WinDbg — позволяет отлаживать 32/64 битные приложения пользовательского уровня, драйвера, может быть использован для анализа аварийных дампов памяти, WinDbg поддерживает автоматическую загрузку отладочных символов, имеется встроенный скриптовый язык для автоматизации процесса отладки, скачать отладчик можно тут.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Просмотры85K
Комментарии 17

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность