Как стать автором
Обновить
0
0
Артур @Dejsving

C# разработчик

Отправить сообщение

Семь бордов и одна таска

Уровень сложностиСредний
Время на прочтение24 мин
Количество просмотров6.2K

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

Полезные борды и другие приёмы из личной практики.

Добро пожаловать на борд!
Всего голосов 14: ↑11 и ↓3+13
Комментарии2

Unit-тестирование средствами .NET

Время на прочтение8 мин
Количество просмотров58K
Основная идея юнит (или модульного, как его еще называют) тестирования – тестирование отдельных компонентов программы, т.е. классов и их методов. Разрабатывать код, покрытый тестами, весьма полезно, потому что при их правильном использовании практически исключается возможность регресии в истории развитии программы – «что-то новое добавили, половина старого слегла». Также сейчас весьма модна методология разработки “TDD” — Test Driven Development. Согласно ей, программист вначале разрабатывает набор тестов для будущей функциональности, просчитывает все варианты выполнения, и лишь потом начинает писать непосредственно рабочий код, подходящий под уже написанные тесты.

Так как существование тестов в программе является не только подтверждением квалификации разработчика, но и зачастую требованием заказчика, я решил заняться этим вопросом и «пощупать» тесты вблизи.
Читать дальше →
Всего голосов 25: ↑16 и ↓9+7
Комментарии23

Как я буду мир спасать

Время на прочтение16 мин
Количество просмотров29K
Примерно год назад я твердо решил спасти мир. Теми средствами и навыками, которые у меня есть. Надо сказать, наборчик весьма скудный: программист, менеджер, графоман и хороший человек.

В нашем мире полно проблем, и мне надо было что-то выбрать. Подумывал о политике, даже поучаствовал в «Лидерах России», чтобы попасть сразу на высокую позицию. Прошел в полуфинал, но поленился ехать в Екатеринбург на очный конкурс. Долго пытался из программистов сделать бизнес-программистов, но они не верили и не хотели, поэтому первым и единственным представителем этой профессии остаюсь я один. Бизнес-программисты должны были экономику спасти.

В итоге, совершенно случайно, ко мне пришла, наконец, нормальная идея. Я спасу мир от очень распространенной и чрезвычайно гадкой проблемы – избыточного веса. Собственно, вся подготовительная работа закончена, и результаты превзошли самые смелые мои ожидания. Пора приступать к масштабированию. Эта публикация – первый шаг.
Читать дальше →
Всего голосов 113: ↑64 и ↓49+15
Комментарии269

Создание инсталлятора с помощью WiX

Время на прочтение9 мин
Количество просмотров103K
Для начала — что такое WiX? Технология WiX (Windows Installer XML) представляет собой набор инструментов и спецификаций упрощающих процесс создания дистрибутивов на базе MSI (Microsoft Installer). Если объяснять проще то это обертка вокруг MSI с человеческим лицом.

На мой взгляд изучать проще всего на простых примерах. В данной статье я приведу пример простейшего инсталлятора.
Читать дальше →
Всего голосов 45: ↑39 и ↓6+33
Комментарии29

ReSpeller — плагин проверки орфографии для ReSharper

Время на прочтение3 мин
Количество просмотров8.8K
Многие разработчики, использующие различные IDE от JetBrains — Idea, PyCharm и т.д, — знают и активно используют встроенный в них спелл чекер. Однако, к несчастью .Net разработчиков, в Решарпере отсутствует подобная функциональность из коробки.
Поэтому я решил написать свой плагин для Решарпера для проверки орфографии в коде.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии9

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

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

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

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

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

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

Ассемблерные вставки… в C#?

Время на прочтение9 мин
Количество просмотров36K
Итак, эта история началась с совпадения трёх факторов. Я:

  1. в основном писал на C#;
  2. лишь примерно представлял, как он устроен и работает;
  3. заинтересовался ассемблером.

Эта, на первый взгляд, невинная смесь породила странную идею: а можно ли как-то совместить эти языки? Добавить в C# возможность делать ассемблерные вставки, примерно как в C++.

Если вам интересно, к каким последствиям это привело, — добро пожаловать под кат.


Читать дальше →
Всего голосов 60: ↑57 и ↓3+54
Комментарии37

Обратная сторона луны

Время на прочтение14 мин
Количество просмотров47K
При написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).

Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

А я скажу как бы ни так!

В данной статье мы рассмотрим:
  • структура организации размещения объектов в памяти
  • CLR 4.5 Background Server GC
  • правильная настройка сборщика мусора
  • эффективный апгрейд приложений до .NET 4.0+
  • правильное ручное управление памятью

Читать дальше →
Всего голосов 138: ↑132 и ↓6+126
Комментарии28

Барьеры памяти и неблокирующая синхронизация в .NET

Время на прочтение7 мин
Количество просмотров59K

Введение


В этой статье я хочу рассказать об использовании некоторых конструкций, применяющихся для осуществления неблокирующей синхронизации. Речь пойдёт о ключевом слове volatile, функциях VolatileRead, VolatileWrite и MemoryBarrier. Мы рассмотрим, какие проблемы вынуждают нас воспользоваться этими языковыми конструкциями и варианты их решения. При обсуждении барьеров памяти вкратце рассмотрим модель памяти .NET.
Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии18

8 фактов, которые вы, возможно, не знали о C#

Время на прочтение7 мин
Количество просмотров195K
Вот несколько необычных фактов о языке C#, о которых знают лишь немногие разработчики.

1. Индексаторы могут использовать params параметры


Мы все знаем, как обычно выглядят индексаторы x = something["a"], а так же код необходимый для его реализации:

public string this[string key]
 {
   get { return internalDictionary[key]; }
 }

Но знали ли вы, что для доступа к элементам вы можете использовать params параметры x = something["a", "b", "c", "d"]?
Просто напишите ваш индексатор следующим образом:
Читать дальше →
Всего голосов 108: ↑88 и ↓20+68
Комментарии66
Большинство управляющих и владельцев бизнеса не до конца представляют себе список факторов, которые должны быть учтены при проектировании беспроводной сети. Да и некоторые системные и сетевые администраторы, привыкшие к работе с проводными сетями, поддерживают мифы и легенды, которыми окутаны беспроводные сети. В данном материале мы попытаемся обозначить основные моменты, на которые стоит обратить внимание на этапе проектирования Wi-Fi сетей. По этому списку можно будет понять, насколько вы подготовлены с технической точки зрения.
Подробности – под катом
Всего голосов 22: ↑22 и ↓0+22
Комментарии6

Два сюрприза с очками

Время на прочтение9 мин
Количество просмотров137K

Вот что будет, если ударить по стеклянным очкам молотком, но про это позже

Чуть больше полугода назад меня вдруг пробило на хорошие очки. Я начал задавать одинаковые тупые вопросы и получать разные ответы. Кого о чём не спросишь — их технология лучшая в мире. Правда, после слов «обоснуйте, пожалуйста», начинаются проблемы с пруфами. В итоге дорога приключений привела меня довольно далеко.

Значит, два важных момента. Первый: оказывается, надо делать полную коррекцию, частичная — в большинстве случаев зло. Доказательство «в Европе уже давно так не делают» меня не устроило, поэтому пришлось копать исследования. Второй момент — долбанный светофильтр «для компьютера», отсекающий синий, всё же нужен. Но только, как мне кажется, не для компьютера. Тоже нашлись результаты, но на животных.
Читать дальше →
Всего голосов 128: ↑125 и ↓3+122
Комментарии330

Мошенники и ЭЦП — всё очень плохо

Время на прочтение5 мин
Количество просмотров238K

Недавно общественность облетела новость о первом случае продажи квартиры мошенниками с помощью ЭЦП и подделки документов. Когда я раньше читал подобные новости, всегда воспринимал отстранённо, как будто со мной этого не может произойти, но я ошибался. И теперь могу заявить, в зоне риска мошенников — каждый, увы, даже хабровчане.

Читать дальше →
Всего голосов 356: ↑356 и ↓0+356
Комментарии780

Обработка больших объемов данных в памяти на C#

Время на прочтение7 мин
Количество просмотров89K
Хочу поделиться недавно приобретенным в C# опытом по загрузке и обработке в памяти больших объемов данных. Все нижеуказанное касается Visual Studio 2008 и .Net Framework 3.5.1, на случай каких-либо отличий в других версиях языка или библиотек.

Итак, у нас возникли следующие задачи:
1. Расположить в памяти до 100 миллионов записей, состоящих из строки, длиной 16 символов (уникальный ключ) и двух целочисленных значений, длиной 4 байта каждый;
2. Быстро находить и редактировать запись по ключу.

Читать дальше →
Всего голосов 110: ↑95 и ↓15+80
Комментарии122

Датчик CO2 — прибор, который подскажет когда проветрить, чтобы думалось эффективнее

Время на прочтение7 мин
Количество просмотров156K
image

Помните, на Хабре в разделе GTD была любопытная статья от BarsMonster о том, что кроме лени, прокрастинации и проблем с планированием времени может мешать эффективной работе и жизни?
Если кто пропустил эту статью — очень рекомендую!

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

В этой статье я поделюсь с вами результатами своих изысканий.
Проводил замеры в небольшой квартире, торговом зале на 100 квадратов, а также в небольшой приёмной одной компании. Кому интересно, добро пожаловать под Cut (осторожно, траффик).
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии56

Будущее C#

Время на прочтение3 мин
Количество просмотров64K
На конференции NDC 2013, недавно прошедшей в Лондоне, Мадс Торгерсен (Mads Torgersen), являющийся одним из разработчиков спецификации языка C#, рассказал в своём докладе “The Future of C#” о возможных нововведениях в нём.
Читать дальше →
Всего голосов 83: ↑78 и ↓5+73
Комментарии145

Тайна прошивок

Время на прочтение11 мин
Количество просмотров29K
Авторы: к.ф.-м.н. Чернов А.В. (monsieur_cher) и к.ф.-м.н. Трошина К.Н.

Как с помощью самых общих предположений, основанных на знании современных процессорных архитектур, можно восстановить структуру программы из бинарного образа неизвестной архитектуры, и дальше восстановить алгоритмы и многое другое?

В этой статье мы расскажем об одной интересной задаче, которая была поставлена перед нами несколько лет назад. Заказчик попросил разобраться с бинарной прошивкой устройства, которое выполняло управление неким физическим процессом. Ему требовался алгоритм управления в виде компилируемой С-программы, а также формулы с объяснением, как они устроены и почему именно так. По словам Заказчика, это было необходимо для обеспечения совместимости со «старым» оборудованием в новой системе. То, как мы в итоге разбирались с физикой, в рамках данного цикла статей мы опустим, а вот процесс восстановления алгоритма рассмотрим подробно.

Практически повсеместное использование в массовых устройствах программируемых микроконтроллеров (концепции интернета вещей IOT или умного дома SmartHome) требует обратить внимание на бинарный анализ встраиваемого кода, или, другими словами, бинарный анализ прошивок устройств.

Бинарный анализ прошивок устройств может иметь следующие цели:

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

Поставленная выше задача анализа бинарного кода может рассматриваться как частный случай задачи анализа бинарника для обеспечения совместимости устройств.
Читать дальше →
Всего голосов 85: ↑83 и ↓2+81
Комментарии96

Я просканировал Украину

Время на прочтение4 мин
Количество просмотров101K
В феврале австриец Christian Haschek в своем блоге опубликовал интересную статью под названием «Я просканировал всю Австрию». Конечно, мне стало интересно, что будет, если повторить это исследование, но уже с Украиной. Несколько недель круглосуточного сбора информации, еще пару дней на то, чтобы оформить статью, а в течение этого исследования беседы с различными представителями нашего общества, то уточнить, то узнать больше. Прошу под кат…
Читать дальше →
Всего голосов 116: ↑106 и ↓10+96
Комментарии230

На что способен формат Mini PCI-e

Время на прочтение2 мин
Количество просмотров175K


Мне очень нравится формат Mini PCI-e. Это крохотный форм-фактор, служащий базовым для mSATA и M.2, но в основном он используется для подключения карт WiFi и Bluetooth в ноутбуках или маленьких ПК. Но по сути это просто PCI-e, поэтому с его помощью можно сделать гораздо больше.

Вот, к примеру, обычная беспроводная карта, используемая с его помощью:

Читать дальше →
Всего голосов 89: ↑83 и ↓6+77
Комментарии154

ASP.NET Core + Docker: готовим вместе

Время на прочтение6 мин
Количество просмотров41K
Мы рады поделиться с вами очередной статьей из серии статей о платформе ASP.NET Core (ранее ASP.NET 5). В этот раз Вячеслав Бобик — .NET-разработчика из компании Radario, продолжит свой рассказ о платформе рассказом про применение ASP.NET с контейнерами Docker. Все статьи цикла вы всегда можете найти тут #aspnetcolumn — Владимир Юнев

image

Кам нам известно, ASP.NET Core, можно(и даже нужно) запускать не только на Windows, но так же на Mac и Linux. Что это нам дает? Например можем запаковать наше приложение со всеми его зависимостями в docker контейнер и удобно разворачивать его на тестовых\рабочих средах. Мы не будем рассматривать о том что такое docker и как его устанавливать, а вместо этого попробуем собрать образ с ASP.NET Core.

Подготавлием тестовое приложение


У нас есть выбор на чем запускать наше первое ASP.NET Core приложение: на mono или на coreclr. Я выберу второй вариант, так как это модно, стильно, молодежно.

По традиции созданим пустой ASP.NET Core проект:
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии2

Информация

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