Pull to refresh
31
0

User

Send message

Готовим ASP.NET Core: подробнее про работу с модульным фреймворком

Reading time 9 min
Views 12K
Мы продолжаем нашу колонку по теме ASP.NET Core очередной публикацией от Дмитрия Сикорского ( DmitrySikorsky) — руководителя компании «Юбрейнианс» из Украины. В этот раз Дмитрий продолжает рассказ о своем опыте разработки модульного кроссплатформенного фреймворка на базе ASP.NET Core. Предыдущие статьи из колонки всегда можно прочитать по ссылке #aspnetcolumn — Владимир Юнев
В предыдущей статье я уже рассказывал об ExtCore — небольшом фреймворке для разработки модульных и расширяемых приложений на ASP.NET Core. В этой статье я постараюсь более подробно остановится на процессе разработки приложения на его основе.

Основное приложение


Первым делом создадим новый пустой проект на ASP.NET Core 1.0:

Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Comments 11

Внедряем StyleCop в MSBuild

Reading time 6 min
Views 13K
Всё чаще возникают задачи автоматизации разных процессов в рамках CI. Поковырявшись с MSBuild, я всё больше убеждаюсь, что это довольно мощный инструмент. При желании, им много чего можно сделать. Однако ни в рунете вцелом, ни конкретно на хабре я не нашёл статей по нему и решил позаполнять этот пробел по мере сил и наличия свободного времени.
Итак, сегодня мы будем готовить

StyleCop



Задача: реализовать тотальную принудительную проверку кода (C#) на соответствие правилам оформления.

Условие: тотально, принудительно. Т.е. весь код, попадающий на сборку, должен быть проверен в обязательном порядке. В случае обнаружения нарушений — build error и вперёд, рефакторить.

Инструменты: StyleCop, MSBuild (TFS или TeamCity — неважно).
Читать дальше →
Total votes 19: ↑18 and ↓1 +17
Comments 7

Отъявленный программист: лайфхакинг из первых рук

Reading time 4 min
Views 48K
Привет, Хаброжители!
У нас вышла новая книга Игоря Савчука

image

Сделать карьеру программиста намного тяжелее, чем просто быть им. Специфического склада ума, умения мыслить абстрактно, развитой логики мало, главное — сознавать, что работа это не только способ зарабатывания денег. Не так уж много людей соответствуют всем условиям, и именно об этом меньшинстве пойдет речь. Перед вами — сборник откровенных бесед с известными программистами, системными администраторами и другими «айтишниками». Герои книги исповедуют разные взгляды, относятся к разным социальным группам, могут оперировать миллионами долларов, быть героями гламурных тусовок или простыми офисными трудягами-программистами. Объединяет этих людей умение использовать свои увлеченность, страсть и любовь к профессии как рычаг, позволяющий достигнуть принципиально новых вершин в развитии себя и своего бизнеса. Мы постарались найти самых ярких «звезд» компьютерно-сетевой субкультуры и донести до вас максимально разнообразные мнения, дабы читатель, какие бы ни сложились у него личные вкусы, не скучал в этом пестром калейдоскопе персонажей.
Читать дальше →
Total votes 28: ↑22 and ↓6 +16
Comments 24

Релиз Visual Studio 2015 и .NET 4.6

Reading time 6 min
Views 96K
Мы рады вам сообщить что Visual Studio 2015 и .NET 4.6 доступны для загрузки. Эти два релиза являются большим шагом вперед и предоставляют разработчикам новые инструменты, которые повышают их производительность и дают возможность создавать различные приложения для множества платформ. Уже сейчас вы можете загрузить Visual Studio 2015 и узнать возможности этого инструментария с помощью 60+ видео.



Читать дальше →
Total votes 54: ↑50 and ↓4 +46
Comments 71

Запускаем docker compose в Windows

Reading time 3 min
Views 55K
Docker-compose — это утилита, позволяющая запускать одновременно несколько контейнеров, используя при этом единый файл конфигурации всего стека сервисов, нужных вашему приложению. Например, такая ситуация: запускаем node.js webapp, которому нужна для работы mongodb, compose выполнит build вашего контейнера с webapp (традиционный Dockerfile) и перед его запуском запустит контейнер с mongodb внутри; так же может выполнить линк их между собой. Что крайне удобно как в разработке, так и в CI самого приложения. Так сложилось, что Windows пользователи были обделены возможностью использовать столько удобное средство, ввиду того, что официальной поддержки данной ОС все еще нет. А python версия для *nix не работает в окружении windows cmd, ввиду ограничений консоли Windows.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Comments 3

Основы многопоточности в .NET Framework

Reading time 15 min
Views 121K


Многопоточность — одна из самых сложных тем в программировании, с ней постоянно возникает масса проблем. Без четкого понимания внутренних механизмов будет очень трудно предсказать результат работы приложения, использующего несколько потоков. Мы не будем здесь дублировать массу теоретической информации, которой очень много в сети и умных книгах. Вместо этого сконцентрируемся на конкретных и наиболее важных проблемах, на которые нужно обращать особое внимание и обязательно помнить о них в процессе разработки.
Читать дальше →
Total votes 41: ↑39 and ↓2 +37
Comments 15

Высокопроизводительный код на платформе .NET

Reading time 16 min
Views 34K
Здравствуйте, дорогие читатели!

Не так давно мы занялись проработкой книги "Writing High-Performance .NET code", которая до сих пор не переведена на русский язык, хотя ей и скоро год.



Нас, конечно, не удивило, что такую книгу уже растаскивают на цитаты, однако выяснилось, что уважаемый автор Бен Уотсон даже выложил на сайте «Codeproject» целую статью, написанную по мотивам одной из глав. К сожалению, объем этого материала слишком велик для хабропубликации, однако мы решили все-таки перевести первую часть статьи, чтобы вы могли оценить материал книги. Приглашаем к прочтению и к участию в опросе. Кроме того, если все-таки целесообразно перевести и вторую часть — пишите в комментариях, постараемся учесть ваши пожелания.
Читать дальше →
Total votes 31: ↑30 and ↓1 +29
Comments 12

Поиск четырёхугольников документов на мобильных устройствах

Reading time 6 min
Views 13K


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

Постановка задачи

Для начала определим, какую информацию мы можем использовать в своих целях.
В приложениях достаточно жёстко заданы предполагаемые типы документов. Будем считать, что никто всерьёз не пытается распознать паспорт приложением для банковских карт или наоборот, а значит нам известны, как минимум, пропорции искомого объекта. Также заметим, что абсолютное большинство мобильных девайсов имеет камеры с фиксированным фокусным расстоянием.
Читать дальше →
Total votes 17: ↑16 and ↓1 +15
Comments 4

Разработка ММО РПГ – практическое руководство. Сервер (часть 1)

Reading time 10 min
Views 45K
Турель Аннигилятор
  • Игровой backend: из каких модулей он должен состоять?
  • Расчет параметров персонажа: виртуальные методы или сложение массивов?
  • Логика поведения: на каком уровне она должна находится?
  • Перемещение персонажей: кто этим должен управлять?

        Сегодня мы продолжим знакомиться с разработкой и проектированием он-лайн игры на примере космической ММО RPG «Звездные Призраки». В этой статье речь пойдет о backend'е на С++ и она будет насквозь техническая.

        В тексте будет много отсылок к функционалу «Звездных Призраков», но я постараюсь излагать материал так, чтобы вам не было нужды вникать (и играть) в наш продукт. Однако, для лучшего понимания материала желательно потратить пару минут и посмотреть, как это все выглядит.

        В статье мы сосредоточимся именно на архитектурных решениях применительно к backend'у MMO RPG в реальном времени. Исходного кода будет не много и он точно не будет содержать таких специфических для С++ вещей как множественное наследование или шаблоны. Задача данной статьи помочь в проектировании игрового сервера и ознакомить всех желающих со спецификой игрового backend'а.

        Описываемые решения достаточно универсальны и вполне подойдут для многих RPG. В качестве иллюстрации в конце статьи я приведу пример использования описанной архитектуры в игре «про эльфов».
Далее
Total votes 33: ↑29 and ↓4 +25
Comments 29

Централизованый сбор Windows event логов, без установки агента, с последующей визуазизацией средствами ELK

Reading time 6 min
Views 45K
Задача по централизованой обработке логов достаточно просто формулируется и возникает, когда требуется отслеживать работу большого количества серверов. Думаю, не стоит упоминать о том, что из логов можно получать массу информации о жизнедеятельности и самочувствии систем. О том, что писать и читать логи столь же важно как и уметь писать программы.

Соответственно для реализации такой системы перед администратором ставятся задачи: во-первых, каким образом эти логи собирать, во-вторых, каким образом с ними удобно и централизованно работать. Благодаря достаточно развитой связке ELK (Elasticsearch + Logstash + Kibana), уже не раз описанной на Хабре, у администратора имеются инструменты для удобного поиска и отображения всей присутствующей в логах информации. Поэтому ответ на вторую задачу имеется изначально, и остается лишь решить задачу по сбору логов.

Так как в моем случае требованием к системе было отсутствие клиента на серверах, и то, что логи требовалось вытаскивать с Windows-серверов, то в качестве инструмента сбора был выбран родной для Windows — powershell.
Исходя из этого была составлена следующая модель сбора и отображения информации из логов: логи удаленно собираются с серверов powershell-скриптом, после чего складываются в виде файлов на хранилище, далее средствами ELK (Elasticsearch + Logstash + Kibana) происходит их обработка и отображение.

Пример работы всей связки представлен на изображении:


Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 16

Французский телеканал был взломан после интервью сотрудника на фоне стикеров с паролями

Reading time 2 min
Views 84K
Вот уже несколько дней развивается история со взломом внутренней сети и аккаунтов в социальных сетях французского телеканала TV5Monde, работа которого на некоторое время была просто парализована в результате деятельности хакеров, причисляющих себя к сторонникам Исламского государства. Были выведены из строя служебные серверы, отвечающие за обработку электронной почты, видеомонтаж, трансляцию сигнала.
Нападение на ресурсы TV5 Monde анонимные взломщики начали в среду вечером около 22:00 по Парижу(/23:00 мск), вскрыв защиту официального сайта телеканала и его страниц в социальных сетях. Ближе к полуночи было прервано и телевещание — канал пропал из эфира, вместо изображения на несколько часов на частотах TV5 Monde был черный экран без звука, изредка переключавшийся на заставку с логотипом канала.
Некоторое время в аккаунте TV5 Monde в Facebook можно было наблюдать фотографии людей в черной одежде и арабских платках с подписью «Киберхалифат» и «Я — ИГ». Среди сообщений были опубликованы угрозы в адрес французских военнослужащих, участвующих в операциях против исламистов в Африке и на Ближнем Востоке.
Как признал генеральный директор компании Ив Биго, в течение нескольких часов специалисты были «не в состоянии передавать сигнал ни по одному из каналов». «Постепенно мы начинаем восстанавливать вещание в ряде регионов, — сообщил он агентству France-Presse. — Наши системы крайне серьезно пострадали, речь идет об атаке невиданной мощности. На полное восстановление уйдут многие часы, если не дни». ТАСС
Чуть позднее стали выяснятся интересные подробности, свидетельствующие о том, что отправной точкой для атаки на TV5Monde могло стать интервью с репортером Дэвидом Делосом, где невольно засветили по крайней мере один пароль компании в социальных сетях. Дело в том, что он был снят на фоне стола сотрудника бюро, который буквально утопал в стикерах с паролями к учетным записям канала в популярных социалках.
Читать дальше →
Total votes 58: ↑54 and ↓4 +50
Comments 104

Microsoft представляет новые контейнерные технологии для следующего поколения облака

Reading time 4 min
Views 14K
В современном мире, когда облачные технологии выходят на первое место, бизнес-индустрия особенно полагается на приложения, которые будут способствовать развитию инноваций и продуктивности. С развитием облака, контейнеры становятся привлекательным способом для разработчиков быстро и эффективно создавать и разворачивать приложения на нужной для бизнеса скорости. Предлагая разработчиками и IT-профессионалам возможность развернуть приложения с рабочей станции на сервер в считанные секунды, контейнеры переносят разработку приложений на совершенно новый уровень.

Из-за стремления разработчиков использовать возможности контейнеров для более широкого набора приложений возникают новые требования. Например, для корпоративных систем или же для размещенных сред могут понадобиться повышенные уровни доверия. Кроме того, разработчики часто разворачивают приложения в смешанных средах, где они могут не иметь возможности контролировать платформу, на которой размещено приложение. Виртуализация исторически предоставляла значительный уровень изоляции, который позволял такие сценарии, но сейчас существуют возможности объединения эффективности и плотности модели контейнера с правильными уровнем изоляции.


Читать дальше →
Total votes 20: ↑17 and ↓3 +14
Comments 4

ASP.NET 5 Middleware или куда же пропал мой HTTP модуль?

Reading time 5 min
Views 32K
Новая версия ASP.NET 5 переписана почти с нуля и включает в себя существенные изменения по сравнению с предыдущими версиями. Одно из самых больших изменений — это конвейер обработки (HTTP Pipeline). В этой статье описано, как эти изменения влияют на проектирование и внедрение компонентов, которые раньше были представлены как Http модули.

Поведение HTTP модулей раньше было схожим с поведением фильтров запросов, вплоть до ASP.NET 5. Это функционал, который можно внедрить в конвейер запросов и описать некоторую задачу для выполнения, например, отреагировать на событие в приложении. Модули используют для аутентификации, глобальной обработки ошибок и логгирования. Также их часто используют для перехвата и изменения серверного ответа, например, удаления пробелов или компрессии. Они реализуют интерфейс IHttpModule, который определен в сборке System.Web, которая, в свою очередь, не является частью нового ASP.NET.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 20

Гомоморфное шифрование

Reading time 3 min
Views 49K

Что это такое?


Полностью гомоморфное шифрование (Fully Homomorphic Encryption) очень долго было самым ярким открытием в молодой и бурно развивающейся области Computer Science — криптографии. Вкратце, такой тип шифрования позволяет делать произвольные вычисления на зашифрованных данных без их расшифровки. Например, гугл может осуществлять поиск по запросу не зная, что это за запрос, можно фильтровать спам, не читая писем, подсчитывать голоса, не вскрывая конверты с голосами, делать DNA тесты, не читая DNA и многое, многое другое.
image
То есть, человек/машина/сервер, производящий вычисления, делает механические операции с шифрами, исполняя свой алгоритм (поиск в базе данных, анализ на спам, и т.д.), но при этом не имеет никакого понятия о зашифрованной внутри информации. Только пользователь зашифровавший свои данные может расшифровать результат вычисления.

Здорово, правда? И это не из области фантастики — это то, что уже можно «теоретически» воплотить в жизнь.

Читать дальше →
Total votes 64: ↑58 and ↓6 +52
Comments 70

Совершенствуем xaml: Bindable Converters, Switch Converter, Sets

Reading time 7 min
Views 7.4K
Нужно признать, xaml-код бывает отчасти многословным, что вызывает иногда некоторый дискомфорт при разработке. В статье рассмотрим оптимизации, которые помогут существенно улучшить организацию разметки и сделать её более читаемой. Особенно это касается работы с конвертерами, которые неотъемлемо связаны с механизмом привязки данных.

Нам понадобятся некоторые знания из прошлых статей, в частности, понимание принципа прямых инжекций.

Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Comments 0

Docker и костыли в продакшене

Reading time 8 min
Views 32K


Навеяно публикацией «Понимая Docker», небольшой пример костылей вокруг докера для запуска веб-приложений.

Я пробовал разные технологии обвязок, но некоторые (fig) выглядят несколько корявыми для применения, а некоторые (kubernetis, mesos) — слишком абстрактными и сложными.

В моей конфигурации есть несколько машин, на машинах выполняются разнообразные веб-приложения, некоторые из них требуют наличия локального хранилища. В качестве базовой схемы примем конфигурацию из двух фронтендов и одного бекенда, ceph (ФС) обеспечивает роуминг данных для бекенда там, где это необходимо.
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 55

Управление виртуальными машинами Azure с помощью PowerShell

Reading time 6 min
Views 13K
PowerShell – это очень мощный инструмент, нужно только знать, как его правильно применять. Важно также отметить, что несколько сейчас PowerShell предоставляет функционал больший, чем использование графических элементов управления: всё, что можно выполнить из графического интерфейса, можно реализовать при помощи командлетов PowerShell. Наоборот это правило не работает. В случае с Microsoft Azure с помощью PowerShell вы можете сделать все теже действия, что и через портал управления, кроме создания самой подписки. Применение Azure PowerShell позволяет контролировать и автоматизировать развертывание рабочих нагрузок и управлениями ими. В этой статье мы поговорим о том, как можно использовать Azure PowerShell для управления виртуальными машинами.

Читать дальше →
Total votes 22: ↑15 and ↓7 +8
Comments 7

Виртуализация приложений с помощью Microsoft App-V для неопределившихся

Reading time 10 min
Views 60K
image

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

Чуть позже мы перечислим несколько ключевых преимуществ, которые дает технология виртуализации и которые существенно уменьшают стоимость владения приложением, а для начала рассмотрим следующий сценарий: компания переходит с одной версии критичного приложения на другую.
Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Comments 25

Новая программа лояльности для разработчиков от Microsoft

Reading time 2 min
Views 19K


Привет, разработчики мобильных приложений и все интересующиеся!

Не так давно, у нас появилась новая программа лояльности для разработчиков Dev Center Benefits и сейчас появился еще один повод поговорить об этом. Проект пришел в Россию, а точнее сказать, к нам сюда, на Хабр!
Читать дальше →
Total votes 26: ↑20 and ↓6 +14
Comments 15

Управление удалённым IIS

Reading time 8 min
Views 14K

Вступление


Некоторое время назад мне была поставлена задача найти оптимальный способ программного управления удалённым IIS и реализовать его в виде некоего модуля. Задача интересная, с множеством трудностей, поэтому хочется поделиться своим опытом.

Вот список основных требований к реализуемому модулю:
  • Возможность выполнения основных операций с IIS:
    • создание сайта
    • создание virtual application
    • создание virtual directory
    • настройка bindings для сайтов, включая установку сертификатов SSL
    • создание пулов приложений с детальной настройкой
  • Поддержка параллельной работы с несколькими IIS на разных серверах фермы
  • Поддержка IIS версии 8.0 (более ранние версии поддерживать не нужно).

Одним словом, модуль должен был уметь практически всё, что можно сделать через IIS Manager.
Как реализовывался данный функционал
Total votes 10: ↑10 and ↓0 +10
Comments 8

Information

Rating
Does not participate
Location
Оренбург, Оренбургская обл., Россия
Works in
Date of birth
Registered
Activity