Как стать автором
Обновить
1
0

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

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

Использование async и await в C# — лучшие практики

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

Ключевые слова async и await, введённые в C# 5.0, значительно упрощают асинхронное программирование. Они также скрывают за собой некоторые сложности, которые, если вы потеряете бдительность, могут добавить проблем в ваш код. Описанные ниже практики пригодятся вам, если вы создаёте асинхронный код для .NET приложений.
Читать дальше →
Всего голосов 79: ↑69 и ↓10+59
Комментарии24

Использование технологии Direct2D для создания WinRT компонентов

Время на прочтение9 мин
Количество просмотров18K
Эта статья продолжает серию наших рассказов, в которых мы делимся своим опытом разработки визуальных WinRT контролов в стиле Windows 8 UI.

В прошлый раз мы приводили базовые шаги, необходимые для создания своего WinRT контрола и SDK для него, а сейчас речь пойдёт о применении технологии Direct2D для создания визуальных эффектов в вашем WinRT компоненте.

В данной статье мы рассмотрим процесс создания кругового индикатора aka гейдж (gauge control), у которого стрелка будет размываться при движении.

Примечание: полный код этого проекта вы можете скачать по следующей ссылке: go.devexpress.com/Habr_WinRTSample.aspx

Читать дальше →
Всего голосов 51: ↑42 и ↓9+33
Комментарии2

Упрощение регистрации и работы с DependencyProperty

Время на прочтение4 мин
Количество просмотров18K
При работе с WPF/Silverlight, периодически приходится создавать кастомные DependencyProperty, в основном при создании контролов. Стандартный подход объявления и работы с ними не идеальный и имеет минусы, о которых будет сказано ниже. Соответственно, появилась идея упростить запись регистрации и работы с DependencyProperty.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии17

Жесткая приоритизация, или 5 первых шагов к отличному приложению для Windows 8. Навигация

Время на прочтение10 мин
Количество просмотров12K
From Idea to App

В предыдущей части мы рассмотрели три первых шага на пути проектирования приложения:
  1. Определение целевой аудитории
  2. Формулировка цели приложения
  3. Отбор ключевых сценариев

Как вы могли заметить, первые три шага действительно можно смело применять к любым проектам,
я думаю, они от этого только выиграют. В этой части мы рассмотрим четвертый шаг — планирование навигации в приложении, и на этот раз нам никак не обойтись без понимания специфики Windows 8.

Читать дальше →
Всего голосов 52: ↑31 и ↓21+10
Комментарии8

Каррирование и частичное применение функции

Время на прочтение3 мин
Количество просмотров27K
Когда я впервые услышал термин Каррирование, я сразу же представил себе вкусные тайскую и индийскую кухни.  К моему удивлению, я обнаружил, что разговор шел не о прекрасных специях, а о преобразовании функции, принимающей n аргументов в функцию, которая принимает один аргумент и возвращает каррированую функцию, которая принимает n — 1 аргументов. Где бы это могло быть полезным?
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии37

Создание и регистрация Metro style компонента для WinRT

Время на прочтение7 мин
Количество просмотров14K
Официальный релиз Windows 8 приближается с каждым днём, и всё больше разработчиков задумывается о том, чтобы создать своё приложение в стиле Metro. А если же вы делаете сразу несколько таких приложений, то скорее всего у вас возникнет потребность использовать один и тот же код в разных проектах.

В этой статье приведена пошаговая инструкция по созданию простого Metro style компонента, а также особенности регистрации такой библиотеки для дальнейшего использования в WinRT проектах.

В качестве примера компонента мы выбрали анимированный индикатор загрузки в стиле Metro, похожий на тот, который многие из нас уже видели в новой версии Windows. К концу этой статьи вы будете не только знать всё о регистрации компонентов, но и иметь возможность добавить готовый индикатор загрузки в своё Metro приложение.
Читать дальше →
Всего голосов 57: ↑47 и ↓10+37
Комментарии14

Контракт Settings в WinRT (Windows 8)

Время на прочтение4 мин
Количество просмотров3.6K
Одним из основных контрактов доступных в чудо-панели Windows 8 является контракт Settings.
Активация панели настроек осуществляется соответствующей кнопкой «Settings» в чудо панели:
image

Пользователь всегда может зайти в эту панель для того чтобы управлять настройками приложения. (К примеру отключить возможность определения местоположения).
Довольно логично было бы не заставлять пользователя думать, где искать настройки самого приложения и разместить свои настройки приложения в эту же панель.

В этой статье мы рассмотрим две темы:.
Добавление поддержки контракта Settings
Добавление собственной панели настроек.

Подробности
Всего голосов 35: ↑28 и ↓7+21
Комментарии11

Записи с летней школы по Metro-дизайну

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


Друзья, как вы, наверняка, знаете, буквально в прошедшие выходные (13-14 июля) мы проводили летнюю школу по Metro-дизайну для Windows Phone и Windows 8. Рады сообщить, что записи лекций уже доступны на TechDays!
Под катом ссылки на отдельные лекции
Всего голосов 54: ↑39 и ↓15+24
Комментарии8

Контракты и расширения Windows 8

Время на прочтение5 мин
Количество просмотров11K
Если вы интересовались разработкой приложений в metro-стиле под Windows 8, вы, наверное, уже знаете, что жизненный цикл этих приложений ближе к жизненному циклу приложений на Windows Phone. Это означает, что приложение, фактически не исполняется, когда пользователь его не видит. Таким образом, возникает вопрос, как приложения могут взаимодействовать друг с другом и системой.

В Windows 8 для приложений в metro-стиле для взаимодействия приложений друг с другом используются контракты, а для взаимодействия с системой – расширения.

Разнообразных контрактов и расширений достаточно много. Написать пост про то, какие контракты и расширения доступны разработчику, меня натолкнула статья Windows 8. Контракт «поиск» в деталях, после которой я решил систематизировать свои знания и собрать в одном месте краткие, буквально в несколько строчек, «how to» по большинству контрактов и расширений, с примерами из Windows SDK Samples.
Подробнее о контрактах и расширениях Windows 8 со ссылками на примеры
Всего голосов 48: ↑39 и ↓9+30
Комментарии8

Скринкаст: монада Maybe на языке C#

Время на прочтение1 мин
Количество просмотров20K
Небольшая иллюстрация того, как на языке C# реализовать монаду Maybe и зачем это вообще нужно. Смотреть видео рекоммендуется в разрешении 720p.



Сопутствующую статью можно найти тут (англ. яз.). Комментарии приветствуются!
Всего голосов 54: ↑44 и ↓10+34
Комментарии41

Публикация сайта ASP.NET MVC в обновленный Windows Azure

Время на прочтение5 мин
Количество просмотров10K
image
Ни для кого уже не секрет, что 6го июля компания Microsoft расширила российские возможности для работы с Windows Azure и предоставила доступ к Preview-технологиям. Об одной из этих технологий я хочу рассказать в этом посте.
Сразу хочу сказать, что большая часть информации взята из официального мануала и адаптирована к восприятию на собственном примере. Оригинал написан на английском, так что русская версия не помешает.
Ознакомиться с пошаговой инструкцией
Всего голосов 39: ↑26 и ↓13+13
Комментарии19

Windows 8. Контракт «поиск» в деталях

Время на прочтение8 мин
Количество просмотров3.4K
Поиск внутри приложений одна из новых, наиболее важных и интересных функций Windows 8. Поиск предоставляет возможность искать не только файлы и документы на устройстве, но также позволяет искать внутри установленных приложений.

В этой статье рассматривается:
1. Интеграция поиска в метро приложение
2. Контекстные подсказки (suggestions).
3. Обработка запроса по мере ввода данных.
4. Неосторожное использование контракта поиска (обычные ошибки интеграции).
Читать дальше →
Всего голосов 46: ↑39 и ↓7+32
Комментарии18

Windows 8: Проектирование интерфейсов

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

В продолжении темы о подготовке MSDN к выходу Windows 8, хочется отметить ещё одну порцию полезных материалов. На этот раз собрана документация по проектированию интерфейсов. Приведены рекомендации и руководство о том, как спланировать все сценарии использования вашего приложения, как спроектировать интерфейс, показаны конкретные примеры и многое другое.
Читать дальше →
Всего голосов 76: ↑48 и ↓28+20
Комментарии10

Локализация ASP.NET MVC приложения с помощью БД

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

Данная статья будет узконаправленной и покрывает локализацию через БД, поэтому подробно расписывать как делать локализацию с помощью файлов ресурсов (resx) можно посмотреть, например, тут: MVC 2: Полное руководство по локализации. Для локализации с помощью представлений я тоже там ссылки.

Для начала я кратко расскажу о вариантах локализации сайта, покажу пример создания своего ResourceProviderFactory, после чего создам небольшое приложение для демонстрации.

Читать дальше →
Всего голосов 31: ↑21 и ↓10+11
Комментарии11

Как правильно сортировать контент на основе оценок пользователей

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


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


Вы занимаетесь веб программированием. У вас есть пользователи, которые оценивают контент на вашем сайте. Вы хотите разместить высоко оцененный контент наверху, а низко оцененный — внизу. Для этого на основе пользовательских оценок вам нужно вычислить некий «рейтинг».

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

Читать дальше →
Всего голосов 458: ↑423 и ↓35+388
Комментарии134

Непутевые заметки о ASP.NET MVC. Часть 1 (и единственная)

Время на прочтение11 мин
Количество просмотров41K
В последнее время на Хабре часто начали появляться статьи о ASP.NET MVC. Однако в этой статье я бы хотел сделать несколько заметок по поводу построения приложений на вышеприведенном фреймворке: минимальный набор NuGet-packages (без которых грех начинать работу), логирование, подводные камни при использовании стандартных membership-, profile- провайдеров. И, напоследок, почему Web API из MVC 4 — то, что так долго мы все ждали.
Поехали
Всего голосов 60: ↑48 и ↓12+36
Комментарии72

И снова про сортировки: выбираем лучший алгоритм

Время на прочтение9 мин
Количество просмотров143K
Недавно на хабре в очередной подняли тему алгоритмов сортировки, а именно был хорошо описан метод Timsort.

Он, имея сложность не более O(n log n), ускоряется в случае сортировки частично упорядоченных данных и имеет сложность O(n), если данные изначально отсортированны. Но это не единственный алгоритм с такими заявленными свойствами. Существует еще как минимум два более-менее известных метода с похожей сложностью — это Smoothsort и сортировка Шелла.

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

Читать дальше →
Всего голосов 117: ↑114 и ↓3+111
Комментарии32

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

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

Введение


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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность