Эта статья в первую очередь пригодится тем, кто использует тот же стек технологий, что и наша команда, а именно: ASP.NET, C#, NUnit, Selenium 2, git, MSBuild. Будут рассмотрены такие задачи, как интеграция с git, сборка C#-проектов, NUnit-тесты (как модульные, так и тесты UI), а также деплой на сервер. Впрочем, наверняка найдётся интересное и для других пользователей, кроме разве что съевших на этом вопросе собаку. Но они опять же смогут обратить внимание на ошибки в статье или что-то посоветовать: например, как оптимизировать фазу деплоя.
Андрей Губский @Ernado
Software Architect, Microsoft MVP
Data Mining. Оптимизация заказов товаров в аптеке (аптечном пункте)
6 min
18KВ небольшом аптечном пункте существует потребность гибкой системы заказов лекарственных средств и пара-фармацевтических товаров чувствительной к постоянным колебаниям рынка. В рамках современной действительности одиночные аптечные пункты не обладают достаточными складскими помещениями (материальными комнатами), что накладывает свой отпечаток и заставляет человека, ответственного за заказы, делать их ежедневно из сводного прайс-листа по нескольким поставщикам, не допуская дублирования, по минимальным ценам, исключая товары с неподходящими сроками годности. При этом общая номенклатура составляет несколько десятков тысяч единиц.
Мы живем в современном мире, где рутинные операции за нас выполняет компьютер. Поэтому Вы можете сказать: «Давайте используем компьютер, и он сделает всю черную работу за нас!». «У вас же есть база данных, содержащая статистику продаж различных лекарств?» – продолжите Вы – «Так почему же не использовать эту статистику для прогноза продаж и создания автоматической заявки на требуемые препараты?»
Мы живем в современном мире, где рутинные операции за нас выполняет компьютер. Поэтому Вы можете сказать: «Давайте используем компьютер, и он сделает всю черную работу за нас!». «У вас же есть база данных, содержащая статистику продаж различных лекарств?» – продолжите Вы – «Так почему же не использовать эту статистику для прогноза продаж и создания автоматической заявки на требуемые препараты?»
+22
Хроническая усталость, апатия, сезонная «депрессия» и многое другое: тривиальная причина
8 min
687K
Казалось бы, работа у IT-шников несложная — вагоны не разгружаем, землю не роем и уставать физически не должны. Однако о дичайшей усталости людей занятых интеллектуальным трудом приходится слышать чаще, чем хотелось бы. После того как я приехал в Москву 3 года назад — я почему-то начал дичайше уставать на совершенно ровном месте, и ни я, ни врачи не могли найти причину. После 2-х лет поисков тривиальная и легко исправимая причина нашлась, и на мой взгляд — в группе риска находятся практически все люди, занимающиеся интеллектуальным трудом. Ситуация усугубляется двумя народными обычаями.
Итак, если у вас один из следующих симптомов (расположены в порядке усугубления ситуации) — прошу под кат. Как обратили внимание в комментариях — такой список располагает к самовнушению, так что не поддавайтесь :-)
1) Летом все ок, а зимой — апатия, ничего не хочется делать. Это любят называть сезонной «депрессией».
2) Утром все ок, а к вечеру на работе — мозги «не варят», ничего не хочется делать — только хабр и reddit листать. Приходите домой — и с дичайшей усталостью падаете в кресло. Сил хватает только лазить в интернете до ночи. Этот пункт — касается и работодателей, есть шанс, что люди вечером перестают работать не из-за своей лени.
3) Даже если вы просыпаетесь без будильника — вы не высыпаетесь.
4) Кофе и прочие стимуляторы — не дают бодрости, лишь делают вас злее.
5) Даже если вы спите «сколько влезет» — сны короткие и не запоминающиеся, или их нет вообще.
6) Вы замечаете, что даже 1 вещь вам иногда трудно удержать в голове. Мы можете забыть что вы сейчас хотели сделать.
7) Вы просыпаетесь уже с дичайшей усталостью
8) Вам кажется, что в комнате темно и все несколько не резкое.
+303
DocumentDB: база данных NoSQL от Microsoft
2 min
21KПусть и с некоторым опозданием по сравнению с остальными компаниями, но Microsoft сделала необходимое и выпустила собственную нереляционную базу данных: она называется DocumentDB. И пусть это проприетарная система, которая привязана к сервису Azure, это не делает новость менее значимой.
DocumentDB автоматически индексирует содержимое всех документов, допускает обработку запросов в реальном времени, полностью поддерживает требования ACID к транзакциям (атомарность, согласованность, изолированность, надёжность). Система очень похожа на MongoDB как эффективное хранилище JSON-документов с богатыми API для запросов, в то же время выгодно отличается от MongoDB по масштабируемости и надёжности работы, глубокой интеграции JavaScript, поддержке RESTful API, асинхронных запросов и др.

Как и MongoDB, DocumentDB представляет собой иерархию баз данных, коллекций и документов.
DocumentDB автоматически индексирует содержимое всех документов, допускает обработку запросов в реальном времени, полностью поддерживает требования ACID к транзакциям (атомарность, согласованность, изолированность, надёжность). Система очень похожа на MongoDB как эффективное хранилище JSON-документов с богатыми API для запросов, в то же время выгодно отличается от MongoDB по масштабируемости и надёжности работы, глубокой интеграции JavaScript, поддержке RESTful API, асинхронных запросов и др.

Как и MongoDB, DocumentDB представляет собой иерархию баз данных, коллекций и документов.
+25
Java и облако Microsoft — краткие очерки
6 min
8.3KПривет,
Что нужно для того, чтобы запустить свое приложение Java в облаке Microsoft? Сколько усилий надо затратить и человекочасов разработчика для того, чтобы хотя бы протестировать проект и решить, стоит ли вообще его мигрировать, или стоит подождать или вообще отложить переезд. Эта небольшая статья призван заполнить нишу размером в микрон и провести краткий экскурс в сегодняшнюю ситуацию с Java на Microsoft Azure.
Что нужно для того, чтобы запустить свое приложение Java в облаке Microsoft? Сколько усилий надо затратить и человекочасов разработчика для того, чтобы хотя бы протестировать проект и решить, стоит ли вообще его мигрировать, или стоит подождать или вообще отложить переезд. Эта небольшая статья призван заполнить нишу размером в микрон и провести краткий экскурс в сегодняшнюю ситуацию с Java на Microsoft Azure.
+16
Опубликованы записи докладов конференции DevCon 2014
7 min
7.6K
TechDays – http://www.techdays.ru/series/devcon_14
Channel9 – http://channel9.msdn.com/Events/DevCon/Russia-2014
Youtube – http://www.youtube.com/playlist?list=PLVDsxiCH_PqTpoEAwIRquA9W4ODnMfc2Z
+18
Улучшаем производительность: полезные советы и приёмы в .NET
8 min
32KЭта статья входит в серию статей по улучшению производительности в .NET. Первую статью можно найти здесь.
В этой статье, как и в прошлой, будут рассмотрены неочевидные особенности в работе платформы, и приемы, с помощью которых можно с этими особенностями мирно сосуществовать. Проще говоря, тут будут записаны очередные всякие хаки из жизни нашей лавки, которые хоть немного (или много, как всегда все зависит от контекста), но экономят драгоценные ресурсы в условиях высокой нагрузки. Хаки предельно просты и не влияют на конечную функциональность.
Открывая очередную статью о производительности, пожалуй каждый резонно ищет ответ на вопросы «а как это может помочь в моих проектах» и «бросать ли все и начинать ли срочно исправлять свой код как описано». Исправлю ошибку прошлой статьи, отвечу сразу и подробнее. На мой взгляд, есть смысл использовать наши хаки в следующих случаях:
Я ни в коем случае не призываю вас бежать и исправлять весь код в ваших проектах. Более того, я призываю вас не делать этого, потому что это простые хаки, и скорее всего они будут вноситься бездумно в большое количество кода, а это может повлечь за собой появление новых ошибок. Это не те хаки, которые скинут бабу с воза вашего приложения и заставят кобылу-сервак бежать в десять раз быстрее. В лучшем случае удастся выжать процентов десять. Но с миру по нитке — голому рубашка.
В этой статье, как и в прошлой, будут рассмотрены неочевидные особенности в работе платформы, и приемы, с помощью которых можно с этими особенностями мирно сосуществовать. Проще говоря, тут будут записаны очередные всякие хаки из жизни нашей лавки, которые хоть немного (или много, как всегда все зависит от контекста), но экономят драгоценные ресурсы в условиях высокой нагрузки. Хаки предельно просты и не влияют на конечную функциональность.
Открывая очередную статью о производительности, пожалуй каждый резонно ищет ответ на вопросы «а как это может помочь в моих проектах» и «бросать ли все и начинать ли срочно исправлять свой код как описано». Исправлю ошибку прошлой статьи, отвечу сразу и подробнее. На мой взгляд, есть смысл использовать наши хаки в следующих случаях:
- Вы пишете новый код и решили делать это немного лучше и с экономией
- Вы дошли до этапа, когда начались оптимизации и рефакторинг, поэтому просматриваете и меняете участки кода, которые выполняются очень часто
- Вы пишете высокопроизводительную систему и экономите на спичках
Я ни в коем случае не призываю вас бежать и исправлять весь код в ваших проектах. Более того, я призываю вас не делать этого, потому что это простые хаки, и скорее всего они будут вноситься бездумно в большое количество кода, а это может повлечь за собой появление новых ошибок. Это не те хаки, которые скинут бабу с воза вашего приложения и заставят кобылу-сервак бежать в десять раз быстрее. В лучшем случае удастся выжать процентов десять. Но с миру по нитке — голому рубашка.
+44
Некоторые аспекты логирования ASP.NET-сайта
16 min
21KЗдравствуйте!
Сегодня я расскажу, как сделаны некоторые аспекты логирования в сайте, в разработке которого я принимаю участие.
Сайт написан на ASP.NET MVC 5 и Web API 4, для логирования используется библиотека NLog, сайт хостится в облаке Амазона. Записи лога пишутся в три места (target по терминологии NLog): в файловую систему (подпапку Logs папки App_Data, в которую разрешается доступ на запись при стандартных настройках деплоя Amazon Elastic Beanstalk), на сервис logentries и в БД. Записи лога за день ведутся в отдельный файл, в названии которого указывается текущая дата.
Сегодня я расскажу, как сделаны некоторые аспекты логирования в сайте, в разработке которого я принимаю участие.
Сайт написан на ASP.NET MVC 5 и Web API 4, для логирования используется библиотека NLog, сайт хостится в облаке Амазона. Записи лога пишутся в три места (target по терминологии NLog): в файловую систему (подпапку Logs папки App_Data, в которую разрешается доступ на запись при стандартных настройках деплоя Amazon Elastic Beanstalk), на сервис logentries и в БД. Записи лога за день ведутся в отдельный файл, в названии которого указывается текущая дата.
+17
Аутентификация и авторизация в ASP.NET Web API
5 min
79KTutorial
Translation
Вы создали WebAPI и теперь хотите контролировать доступ к нему? В этой серии статей мы рассмотрим несколько вариантов защиты WebAPI от неавторизрованых пользователей. Серия будет охватывать обе стороны, и аутентификацию и авторизацию пользователей.
Первая серия статей дает общий обзор аутентификации и авторизации в ASP.NET Web API. Другие статьи описывают общие сценарии аутентификации для WebAPI.
- Аутентификация — позволяет однозначно идентифицировать пользователя. Например, Алиса входит в систему со своим логином и паролем, и сервер использует эти данные для аутентификации Алисы.
- Авторизация решает может ли пользователь выполнить те или иные действия. Например, Алиса может иметь право на чтение ресурса, но не может создать новый ресурс.
Первая серия статей дает общий обзор аутентификации и авторизации в ASP.NET Web API. Другие статьи описывают общие сценарии аутентификации для WebAPI.
+15
TJ Holowaychuk: Прощай Node.js
5 min
54KTranslation
Примечание от переводчика:
Я решил перевести эту статью в основном из-за личности автора. TJ вложил очень много усилий в развитие Node.js и его инфраструктуры, он автор таких проектов как express, jade, mocha, stylus, автор 550 репозиториев на npm. Существуют также теория, что под этим именем скрывается группа людей.
Как бы то ни было, JavaScript и Go сообщества в ближайшие время ожидают изменения.
Покидая страну Node.js
Я сражался с Node.js достаточно долго, что бы перестать получать от этого удовольствие, это мое официальное прощание! И, что еще важнее, я ищу людей, которые смогут поддерживать мои проекты!
Node отлично справляется с некоторыми вещами, но, к сожалению, это не самый подходящий инструмент для того, что мне сейчас интересно. Я все еще планирую использовать его для сайтов, но если вы хотели бы заняться поддержкой одного из моих проектов, дайте мне знать. Просто оставьте комментарий с вашим именем на Github, ссылкой на npm и названием проекта. Как обычно я прошу не делать больших изменений в существующих API: создать новый проект будет проще.
Я также продолжу поддерживать Koa.
+82
Новые бесплатные курсы виртуальной академии Microsoft Virtual Academy, июль 2014
5 min
12K
В этом обзоре мы поговорим про бесплатные курсы виртуальной академии Microsoft MVA, которые будут полезны как профессиональным разработчикам программного обеспечения, так и новичкам. Обратите внимание, что видео-плеер на сайте для ряда курсов, которые созданы на английском языке, содержит возможность включить русские субтитры.
Хит! Новичкам! Знакомство с игровыми подсистемами для Windows 8
Данный курс посвящен всем аспектам разработки игр для Windows 8, от определения целевой аудитории до получения прибыли от продукта. Вы узнаете об игровых подсистемах, упрощающих разработку, таких как Construct 2 от Scirra, GameMaker от YoYo Games и Unity. Данный курс предназначен для начинающих разработчиков игр и содержит демонстрации и многочисленные рекомендации, помогающие добиться успеха.
Сертификация! Приступаем к созданию веб-приложений ASP.NET MVC 4
Разработчикам для платформы Microsoft: прослушайте этот курс, если вы хотите начать создавать корпоративные веб-приложения или же просто требуется применить новые функции MVC либо обновить свою сертификацию Майкрософт. В рамках этого насыщенного курса вы узнаете все необходимые сведения. Он является продолжением курса Начинаем разработку на языке HTML5 с использованием JavaScript и CSS3. С его помощью также можно подготовиться к экзамену 70-486.
Хит! Новичкам! Английский. Windows Phone 8.1 Development for Absolute Beginners
Отличный и глубокий курс из 30 модулей посвященый всем аспектам разработки под мобильную платформу Windows Phone с учетом новинок самой свежей версии WP8.1. Курс на английском языке, но нагляден и вполне понятен и доступен.
+16
Xamarin. За и против
4 min
61K
Наверное, каждый .NET разработчик, знакомясь с monodroid и monotouch, хочет узнать, что его ждет. Стоит ли тратить свои силы и время на изучение, какой потенциал платформы, не превратится ли разработка в тестирование фреймворка?
Уже больше года моей основной задачей является разработка на C# под Android и IOS, и я постараюсь ответить на основные вопросы, возникающие при выборе monotouch и monodroid. В статье будет много личного мнения и описания костылей, так как ответы по техническим вопросам можно легко найти на официальном сайте Xamarin: docs.xamarin.com
Поскольку Xamarin 3 вышел только недавно, мне не удалось полностью прощупать новые возможности и изменения в платформе. Тем не менее, почти все «особенности» разработки в monotouch и monodroid по-прежнему актуальны.
+36
+11
Как сделать онлайн просмотр документов
6 min
59KTutorial
Первый рабочий день. Первая задача в Redmine. Первая спецификация в формате doc. На новой рабочей машине. К чтению спецификации удалось приступить часа через 3. Пока скачался и установился MS Office. Вспоминая этот случай, я был уверен, что в нашей системе управления задачами надо сделать онлайн просмотр документов. Вот только идей по реализации за разумное время и трудозатраты не было. Недавно мы нашли способ – Microsoft Office Web Apps.
В этой статье пойдет речь о том, как добавить онлайн просмотр документов в любой продукт.
В этой статье пойдет речь о том, как добавить онлайн просмотр документов в любой продукт.
+12
Обновленный облачный сервис Azure Web Sites для размещения сайтов PHP, Java, .NET, Node.js и Python
10 min
17KЭто статья является дополнением и продолжением статьи Единая облачная PaaS-платформа для ASP.NET, PHP, Node.js и Python. С момента написания предыдущего материала сервис Azure Web Sites значительно обновился и его возможности расширились сразу во многих направлениях. Об этих изменениях и пойдет речь в данной статье.

Далее рассматриваются следующие функциональные возможности:
Рассмотрим каждую из новых функций более подробно.

Далее рассматриваются следующие функциональные возможности:
- поддержка проектов на Java;
- интеграция с онлайн-редактором Visual Studio Online “Monaco”;
- функция создания резервных копий сайта;
- дополнительные развертывания сайтов, стейджинг и другие окружения;
- выполнение фоновых задач на базе скриптов, кода python, .net, php или node.js;
- удаленная отладка размещенных сайтов;
- поддержка wildcard доменов и бесплатные SSL;
- функция AlwaysOn и поддержка web-сокетов;
- администрирование, Kudu, доступ по IP, управление с помощью Azure Management Libraries;
- новое ценообразование Azure Web Sites.
Рассмотрим каждую из новых функций более подробно.
+23
Доступен новый JIT: теперь с поддержкой SIMD
10 min
15KTranslation
От переводчика
Лично я просто невероятно обрадовался новой возможности. Как раз не так давно одолел Pro .Net Perfomance, в которой одна из глав была посвящена параллельности, и векторизации в частности. Вывод, сделанный авторами: «К сожалению, использование векторизации возможно исключительно на С++, выполнение кода на видеокарте — возможно и средствами .Net, однако C++ AMP оставляет любые управляемые библиотеки GPGPU далеко позади, поэтому, к сожалению, в данных задачах рекомендуем использовать подключаемые C++ сборки.» Поэтому рад сообщить, что по крайней мере одна проблема решена. Что ж, приступим!
+33
Дайджест новостей Azure: все анонсы конференции Build 2014
10 min
4.5KВ рамках этого дайджеста новостей облачной платформы Microsoft Azure собраны основные анонсы для разработчиков, ИТ-профессионалов и для всех специалистов интересующихся облачными технологиями и платформой Azure.

На прошлой неделе состоялась крупнейшая конференция Microsoft Build 2014, в рамках которой было сделано множество анонсов, в том числе по технологиям платформы Microsoft Azure.
В этом дайджесте собраны все озвученные анонсы:

На прошлой неделе состоялась крупнейшая конференция Microsoft Build 2014, в рамках которой было сделано множество анонсов, в том числе по технологиям платформы Microsoft Azure.
В этом дайджесте собраны все озвученные анонсы:
- Итоги развития Microsoft Azure за год. 300 новых сервисов. Текущая нагрузка и пара заметных проектов;
- Web Sites. Поддержка Java. Бесплатные SSL-сертификаты. Хостинг-планы и группы ресурсов. Обновление Kudu
- Mobile Services. Языки .NET в качестве бэкенда. Удаленная отладка. Оффлайн-синхронизация данных. Поддержка Kindle.
- SQL Database. Новые лимиты и SLA. Автоматические бэкапы (Self-Service Restore). Active Geo-Replication.
- Портал Azure. Новый портал управления с интеграцией Application Insights, биллингом и другими новинками.
- Virual Machines & Networks. VM Capturing. Интеграция платформы с Puppet и Chef. Новый сервис Azure Automation. Auto-scale GA. Новинки виртуальных сетей.
- Azure CDN. Обновление и GA. Интеграция в портал.
- Azure Active Directory. Active Directory Premium GA. Функции Active Directory RMS в портале. iOS & Android SDK.
- Инструменты разработки. Azure SDK for .NET 2.3, интеграция с Visual Studio
- Новые цены. Снижение цен на вычислительные мощности (до 35%) и облачное хранилище (до 65%). Уровень VM Basic. Снижение цен на Azure Backup.
+19
Запуск Windows Server 2012R2 из VHDX файла с USB диска через UEFI
5 min
23KTutorial
Я решил сделать дисковый массив на платформе Intel Atom D410PT. Это материнская плата с пассивным охлаждением процессора, два слота памяти (максимум 4Gb), один слот PCI (который я использовал для контроллера SATA SiliconImage 3512 — 2x1.5Gb/s), 2 SATA (3.0Gb/s) разъема, LAN 100mb/s, и многочисленными USB 2.0 портами (в том числе и на самой материнской плате).
Сама плата поместилась легко в корпус NaviPower PIX-1001 230W. Полное описание моих действий с железом я разместил на своем сайте.
Соответственно, т.к. было решено использовать 4 диска для создания RAID5 массива, то логично вырисовалось решение вынести операционную систему на внешний USB носитель (в моем случае USB HDD Seagate Freeagent GoFlex). Так как установка и настройка системы «с нуля» является зачастую долгим и кропотливым занятием, то я решил что система будет лежать на внешнем диске в контейнере VHDX, а так как материнка поддерживает UEFI, то соответственно и загрузка должна идти используя UEFI. Основная проблема была в том, что в интернете нет понятной инструкции, как это сделать. Вся информация очень разрознена, и описываются только части решения этой задачи.
Сама плата поместилась легко в корпус NaviPower PIX-1001 230W. Полное описание моих действий с железом я разместил на своем сайте.
Соответственно, т.к. было решено использовать 4 диска для создания RAID5 массива, то логично вырисовалось решение вынести операционную систему на внешний USB носитель (в моем случае USB HDD Seagate Freeagent GoFlex). Так как установка и настройка системы «с нуля» является зачастую долгим и кропотливым занятием, то я решил что система будет лежать на внешнем диске в контейнере VHDX, а так как материнка поддерживает UEFI, то соответственно и загрузка должна идти используя UEFI. Основная проблема была в том, что в интернете нет понятной инструкции, как это сделать. Вся информация очень разрознена, и описываются только части решения этой задачи.
+12
Облегчаем себе жизнь 2 (Postgresql + asp.net)
4 min
28KTutorial
Чуть более года назад, стояла задача написания web приложения работающая с БД Postgresql. К моему сожалению, стандартного адаптера для работы с БД PostgreSQL не было, а с тем, что был найден на просторах интернета ( бесплатный ) работать было не возможно.
В итоге было решено обойтись библиотекой Npgsql.
Как работать с этой библиотекой, есть документация и множество примеров в интернете. Сразу же после начала работы с ней, мне не понравилось, что нужно много писать однотипного кода. Для облегчения работы была создана дополнительная прослойка в виде отдельного класса, для работы с БД через данную библиотеку.
Особенности:
1. данные для подключения берутся с файла web.config
2. есть возможность для работы с несколькими подключениями. ( например если у проекта модульная система, и каждый модуль работает только со своей схемой )
В итоге было решено обойтись библиотекой Npgsql.
Как работать с этой библиотекой, есть документация и множество примеров в интернете. Сразу же после начала работы с ней, мне не понравилось, что нужно много писать однотипного кода. Для облегчения работы была создана дополнительная прослойка в виде отдельного класса, для работы с БД через данную библиотеку.
Особенности:
1. данные для подключения берутся с файла web.config
2. есть возможность для работы с несколькими подключениями. ( например если у проекта модульная система, и каждый модуль работает только со своей схемой )
-1
Как ServiceStack помогает поставить разработку веб-сервисов на поток
9 min
22KНа хабре незаслужено обойден вниманием замечетальный .Net-фреймворк ServiceStack. Упомянут он очень кратко, в одной лишь статье, и то косвенно, мельком, и в самом конце, и упомянута там лишь мизерная его часть. Очевидно, это связано с тем, что основная масса .Net-разработчиков использует стандартные решения от Microsoft для решения задач по разработке веб-сервисов и веб-приложений, а именно ASP.Net MVC/WebAPI или WCF и не заморачивается. Как мы попытаемся показать в этой статье, современный .Net хорош далеко не только своими стандартными технологиями.

Если интересно, прошу под кат.

Если интересно, прошу под кат.
+6
Information
- Rating
- Does not participate
- Location
- Киев, Киевская обл., Украина
- Date of birth
- Registered
- Activity
Specialization
Backend Developer, Software Architect
Lead
From 10,000 $
C#
ASP.Net
.NET
OOP
High-loaded systems
Designing application architecture
Creating project architecture
Software development