Друзья! В преддверии запуска Windows Phone “Mango” в России мы решили объявить марафон разработки приложений под WP7, в рамках которого мы поможем вам сделать свое первое или не первое приложение.
Иван Тиняков @itinyakov
Пользователь
8 полезных сервисов для веб-разработчика и дизайнера
2 мин
36KПод катом — описание восьми сервисов, которые могут заметно облегчить жизнь веб-разработчика, верстальщика или дизайнера.
+311
Верстка почтовых рассылок
6 мин
71KТуториал
Привет, Хабр!
В этой статье я бы хотел поделиться своими познаниями в кроссбраузерной и кроссмейлерной верстке почтовых рассылок. Под словом кроссмейлерность подразумевается — корректное отображение верстки во всех почтовых клиентах. Я считаю, что статья вполне актуальна, в виду того, что на хабре эта тема несколько раз освещалась, но некоторые нюансы были неточными, а другие просто устарели. По долгу службы я долгое время занимался версткой html расылок по всему миру, и приведенные ниже правила будут касаться следующих почтовых клиентов и веб-интерфейсов: MS Outlook 2003-2010, mail.ru, rabmler почта, Яндекс почта, Gmail, Yahoo! Mail (Classic), Thunderbird 2.0-3.0, Hotmail, Windows Live Mail, Apple Mail 3-4, AOL Mail, Lotus Notes 8-8.5.
В этой статье я бы хотел поделиться своими познаниями в кроссбраузерной и кроссмейлерной верстке почтовых рассылок. Под словом кроссмейлерность подразумевается — корректное отображение верстки во всех почтовых клиентах. Я считаю, что статья вполне актуальна, в виду того, что на хабре эта тема несколько раз освещалась, но некоторые нюансы были неточными, а другие просто устарели. По долгу службы я долгое время занимался версткой html расылок по всему миру, и приведенные ниже правила будут касаться следующих почтовых клиентов и веб-интерфейсов: MS Outlook 2003-2010, mail.ru, rabmler почта, Яндекс почта, Gmail, Yahoo! Mail (Classic), Thunderbird 2.0-3.0, Hotmail, Windows Live Mail, Apple Mail 3-4, AOL Mail, Lotus Notes 8-8.5.
+142
Борьба с INotifyPropertyChanged или как я стал опенсорсником — 2
5 мин
33KНачиналось все как и в прошлый раз, достаточно прозаично: мне пришлось разработать *-надцать ViewModel-ей для своего MVVM-приложения.
Для того, чтобы они оптимально работали как ViewModel-и, мои классы должны были наследоваться от DependencyObject или же реализовывать заезженный до дыр интерфейс INotifyPropertyChanged (INPC).
Давно уже ни для кого не секрет, что DependencyProperty тормознее ручной реализации INPC. Мои тесты показывают, что запись в DependencyProperty в ~13 раз медленнее ручной реализации. Поэтому я, как неисправимый оптимизатор, склоняюсь именно к INPC. Тем более, что код поддержки INPC выглядит логичнее и органичнее, чем описание DependencyProperties.
Для того, чтобы они оптимально работали как ViewModel-и, мои классы должны были наследоваться от DependencyObject или же реализовывать заезженный до дыр интерфейс INotifyPropertyChanged (INPC).
Давно уже ни для кого не секрет, что DependencyProperty тормознее ручной реализации INPC. Мои тесты показывают, что запись в DependencyProperty в ~13 раз медленнее ручной реализации. Поэтому я, как неисправимый оптимизатор, склоняюсь именно к INPC. Тем более, что код поддержки INPC выглядит логичнее и органичнее, чем описание DependencyProperties.
+54
Мифы и заблуждения насчёт CLR и .NET
8 мин
36KПоследнее время на популярно-технических форумах я часто встречаю ожесточённые споры приверженцев и противников .NET. Эти споры, как правило, начинаются из-за недоразумения, и заканчиваются жестким троллингом, беседами “за жизнь” и сравнением радиусов и удельных плотностей материала различных сферических коней. Обе стороны силятся доказать и аргументировать, но ни одна не хочет посмотреть на предмет спора другими глазами. Хабрахабр не исключение, увы.
Накалу страстей такой беседы позавидовали бы религиозные фанатики. Единственное, что спасает противников от крестовых походов друг на друга, вооружившись вилами и LangSpec’ами — то, что они разделены интернетом.
Так жить нельзя, господа. Мне захотелось исправить эту ситуацию, и выступить с одной из сторон. Этим постом я попробую нанести сообществу непоправимую пользу и разобраться с мифами, на обсуждение которых, а не на взаимное членовредительство, к сожалению, и уходят силы спорщиков. А так как я в своё время перелез с C++ на C# и всё вокруг него, то я буду развенчивать негативные мифы, прибавлять позитива и всячески приукрашивать действительность — а как без этого. И — заметьте — это обойдется совершенно бесплатно для M$. Ну а сделать я это хочу в формате Q&A.
Накалу страстей такой беседы позавидовали бы религиозные фанатики. Единственное, что спасает противников от крестовых походов друг на друга, вооружившись вилами и LangSpec’ами — то, что они разделены интернетом.
Так жить нельзя, господа. Мне захотелось исправить эту ситуацию, и выступить с одной из сторон. Этим постом я попробую нанести сообществу непоправимую пользу и разобраться с мифами, на обсуждение которых, а не на взаимное членовредительство, к сожалению, и уходят силы спорщиков. А так как я в своё время перелез с C++ на C# и всё вокруг него, то я буду развенчивать негативные мифы, прибавлять позитива и всячески приукрашивать действительность — а как без этого. И — заметьте — это обойдется совершенно бесплатно для M$. Ну а сделать я это хочу в формате Q&A.
+114
Ликвидатор велосипедов: часть 1
3 мин
15KЭтим постом я начинаю серию статей, которые должны помочь каждому разработчику избавиться от велосипедов в своих последующих и текущих проектах. Усилить код и увеличить функционал. Каждый из нас хочет внести в свою программу нечто, что сделает ее богаче, но зачастую решение либо не находится, либо лень тратить время на поиски… Либо внутри сидит глупая уверенность что это можно реализовать быстро и не менее функционально. В любом случае я хочу чтобы каждый пробежался глазами по спискам библиотек, которые я вам предоставлю на суд, и чтобы у каждого эти библиотеки отложились в памяти. И когда их функционал пригодится в будущем, я очень надеюсь что вы вспомните этот пост и поищите эти библиотеки вместо того чтобы писать все новые и новые велосипеды, полные палок в колесах.
Начну я с оконных менеджеров.
Начну я с оконных менеджеров.
+83
Инструмент для ограничения полномочий .Net-сборок
3 мин
2.1KПредставляю сообществу простой, но полезный инструмент для управления полномочиями доступа к коду .Net сборок – Managed Sandbox. На утилиту советую обратить внимание НЕ только разработчикам, но и всем кто периодически использует .Net программы из не доверенных источников (с небольшими оговорками, но об этом ниже).
Статья состоит из 2-х частей: (1) немного философии о системе безопасности .Net-платформы, (2) описание утилиты Managed Sandbox и причин, почему нужно было ее создавать.
Статья состоит из 2-х частей: (1) немного философии о системе безопасности .Net-платформы, (2) описание утилиты Managed Sandbox и причин, почему нужно было ее создавать.
+9
Создание документации в .NET
12 мин
56KКачественная документация – неотъемлемая часть успешного программного продукта. Создание полного и понятного описания всех функций и возможностей программы и программного компонента требует немало сил и терпения. В данной статье я рассмотрю некоторые практические аспекты создания документации для .NET компонентов.
Предположим, что у нас готова или почти готова некоторая .NET библиотека для разработчиков (они же конечные пользователи). API библиотеки безупречен, количество багов впечатляюще мало, да и вообще это не библиотека, а просто кладезь совершенного кода. Дело за малым – объяснить пользователям, как работать с этим замечательным продуктом.
Есть разные подходы к написанию документации. Некоторые команды предпочитают начинать создание документации в момент начала создания продукта. Другие откладывают написание мануалов на окончание работ. В некоторых командах документацию пишут специальные люди, которые ходят от разработчика к разработчику и от менеджера к менеджеру, аккумулируя знания о продукте. Во многих небольших командах таких специальных людей нет, а потому документацию часто пишет разработчик или разработчики. Кто-то использует сторонние средства вроде Help & Manual, в которых, как в заправском текстовом редакторе, можно создавать очень сложную верстку и на выходе получать документацию в многообразии форматов. Многие используют другой подход, широко пропагандируемый в последнее время – написание документации прямо в коде программы/библиотеки.
Предположим, что у нас готова или почти готова некоторая .NET библиотека для разработчиков (они же конечные пользователи). API библиотеки безупречен, количество багов впечатляюще мало, да и вообще это не библиотека, а просто кладезь совершенного кода. Дело за малым – объяснить пользователям, как работать с этим замечательным продуктом.
Есть разные подходы к написанию документации. Некоторые команды предпочитают начинать создание документации в момент начала создания продукта. Другие откладывают написание мануалов на окончание работ. В некоторых командах документацию пишут специальные люди, которые ходят от разработчика к разработчику и от менеджера к менеджеру, аккумулируя знания о продукте. Во многих небольших командах таких специальных людей нет, а потому документацию часто пишет разработчик или разработчики. Кто-то использует сторонние средства вроде Help & Manual, в которых, как в заправском текстовом редакторе, можно создавать очень сложную верстку и на выходе получать документацию в многообразии форматов. Многие используют другой подход, широко пропагандируемый в последнее время – написание документации прямо в коде программы/библиотеки.
+69
Выпущен релиз Microsoft Ribbon для WPF
5 мин
12KПеревод
Я рад известить вас о выпуске финальной версии Microsoft Ribbon для WPF.
Новый элемент управления совместим с WPF 3.5 SP1 и WPF 4. Он не является оберткой над неуправляемым кодом, а целиком написан на WPF, что означает полную совместимость с возможностями управления стилями WPF.
Новый элемент управления совместим с WPF 3.5 SP1 и WPF 4. Он не является оберткой над неуправляемым кодом, а целиком написан на WPF, что означает полную совместимость с возможностями управления стилями WPF.
+49
ASP.NET MVC 3: подробный обзор нововведений
8 мин
10KСпустя более чем четыре месяца с момента выхода финальной версии фреймворка ASP.NET MVC 2, команда разработчиков рада представить первую предварительную версию ASP.NET MVC 3. Анонс и ссылку на загрузку можно найти здесь.
В этой статье будет дан обзор нововведений и изменений, которые произошли в новой версии фреймворка.
Совместимость и поддержка .NET Framework 4.0
В отличии от предыдущей версии, ASP.NET MVC 3 поддерживает только четвертую версию .NET Framework. Кроме того, компоненты разработчиков для интеграции в Visual Studio поддерживаются только для Visual Studio 2010 и Visual Web Developer Express 2010.
Фреймворк ASP.NET MVC 3 может быть установлен вместе с ASP.NET MVC 2, они могут использоваться отдельно друг от друга.
+43
Профилирование приложений в Visual Studio 2010
6 мин
47KСегодня мы будем замерять производительность нашего приложения с помощью Visual Studio Profiling Tool.
Visual Studio Profiling Tool позволяет разработчикам измерять, оценивать производительность приложения и кода. Эти инструменты полностью встроены в IDE, чтобы предоставить разработчику беспрерывный контроль.
В этом руководстве мы по шагам профилируем приложение PeopleTrax используя Sampling и Instrumentation методы профилирования, чтобы выявить проблемы в производительности приложения.
Много картинок.
Visual Studio Profiling Tool позволяет разработчикам измерять, оценивать производительность приложения и кода. Эти инструменты полностью встроены в IDE, чтобы предоставить разработчику беспрерывный контроль.
В этом руководстве мы по шагам профилируем приложение PeopleTrax используя Sampling и Instrumentation методы профилирования, чтобы выявить проблемы в производительности приложения.
Много картинок.
+33
Давайте знакомиться!
8 мин
18KПозвольте представиться. Меня зовут Александр Ложечкин, я работаю руководителем департамента стратегических технологий в Российском представительстве Microsoft. Департаментом стратегических технологий на русском языке мы называем то, что в оригинале, на английском языке, называется департаментом Developers & Platform Evangelism.
Я пришел в Microsoft чуть более шести лет назад, начав работать в этом же департаменте, который на тот момент состоял всего из восьми человек, евангелистом (или экспертом по технологиям разработки ПО, как было написано на визитке). Сейчас нас уже больше 40 (точное число зависит от методики подсчета). До Microsoft я работал в компании DocsVision, где руководил разработкой этого продукта. А начинал я свою профессиональную карьеру в IT в компании Digital Design разработчиком ПО. До сих пор программирование считаю самым интересным занятием в жизни, хотя профессионально этим уже давно не занимаюсь.
Нашел я, как и мои коллеги, свое призвание в другом: в том, чтобы сделать более успешными и счастливыми всех разработчиков, ИТ-специалистов, архитекторов, технических студентов, в общем, всех технических специалистов в России. И это действительно та цель, которую большой Microsoft ставит перед нашим департаментом, без всяких прикрас. А планы по порабощению мира и задача «be evil» действительно не стоят у нас на повестке дня.
Я пришел в Microsoft чуть более шести лет назад, начав работать в этом же департаменте, который на тот момент состоял всего из восьми человек, евангелистом (или экспертом по технологиям разработки ПО, как было написано на визитке). Сейчас нас уже больше 40 (точное число зависит от методики подсчета). До Microsoft я работал в компании DocsVision, где руководил разработкой этого продукта. А начинал я свою профессиональную карьеру в IT в компании Digital Design разработчиком ПО. До сих пор программирование считаю самым интересным занятием в жизни, хотя профессионально этим уже давно не занимаюсь.
Нашел я, как и мои коллеги, свое призвание в другом: в том, чтобы сделать более успешными и счастливыми всех разработчиков, ИТ-специалистов, архитекторов, технических студентов, в общем, всех технических специалистов в России. И это действительно та цель, которую большой Microsoft ставит перед нашим департаментом, без всяких прикрас. А планы по порабощению мира и задача «be evil» действительно не стоят у нас на повестке дня.
+18
Руководство по отладке многопоточных приложений в Visual Studio 2010
9 мин
19KВ этой статье я расскажу, как отлаживать многопоточные приложения в Visual Studio 2010, используя окна Parallel Tasks и Parallel Stacks. Эти окна помогут понять структуру выполнения многопоточных приложений и проверить правильность работы кода, который использует Task Parallel Library.
Мы научимся:
Осторожно, много картинок
Мы научимся:
- Как смотреть call stacks выполняемых потоков
- Как посмотреть список заданий созданных в нашем приложении (System.Threading.Tasks.Task)
- Как перемещаться в окнах отладки Parallel Tasks и Parallel Stacks
- Узнаем интересные и полезные мелочи в отладки с vs2010
Осторожно, много картинок
+31
30 комплектов иконок в стиле минимализм
1 мин
47KПеревод
Минимализм — стиль в дизайне, характеризующийся лаконичностью выразительных средств, простотой, точностью и ясностью композиции. Отвергая классические приемы творчества и традиционные художественные материалы, минималисты используют промышленные и природные материалы простых геометрических форм, нейтральных цветов (черный, серый) и малых объемов.
Эти значки идеально подходят для проектов, которые направлены на контент и типографику.
+149
Представляем IIS Express
4 мин
68KПеревод
Сегодня разработчики создают и тестируют ASP.NET сайты и приложения, используя один из двух веб-серверов:
IIS Express будет работать с VS 2010 и Visual Web Developer 2010 Express, запускаться на Windows XP и выше, не требует прав администратора и внесения изменений в код приложения. Позволяет работать со всеми типами ASP.NET приложений и разрабатывать, используя всю мощь возможностей IIS 7.x.
- ASP.NET Development Server, который является встроенным в Visual Studio
- IIS Web Server, который встроен в Windows.
IIS Express будет работать с VS 2010 и Visual Web Developer 2010 Express, запускаться на Windows XP и выше, не требует прав администратора и внесения изменений в код приложения. Позволяет работать со всеми типами ASP.NET приложений и разрабатывать, используя всю мощь возможностей IIS 7.x.
+18
Создаем Twitter приложение для Windows Phone 7
6 мин
2.7KПеревод
Итак, в понедельник у меня была возможность открыть MIX 2010 День 1 Keynote в Лас Вегасе (видео прилагается). В keynot'e я сделал анонс Silverlight 4 RC версии (финальная версия будет доступна в следующем месяце) и инструменты VS 2010 RC для Silverlight 4. У меня так же была возможность впервые обсудить применение Silverlight и XNA для разработки Windows Phone 7 приложений.
В процессе выступления я создал два небольших Windows Phone 7 приложения, используя Silverlight: простое “Hello World” приложение и приложение, которое получает данные с Twitter. Обе программы легко создать, на это нужно всего пару минут. Ниже показаны шаги, которые вы можете совершить для создания приложений на своей машине.
В процессе выступления я создал два небольших Windows Phone 7 приложения, используя Silverlight: простое “Hello World” приложение и приложение, которое получает данные с Twitter. Обе программы легко создать, на это нужно всего пару минут. Ниже показаны шаги, которые вы можете совершить для создания приложений на своей машине.
+52
Различия между Silverlight на Windows и Windows Phone
14 мин
2KПеревод
Данный топик описывает различия реализации между Silverlight 3 на Windows и Silverlight на Windows Phone.
Советую ознакомиться, что поддерживает Silverlight на Windows Phone, а также более детально ознакомиться с информацией о не поддерживаемых типах и членах.
Советую ознакомиться, что поддерживает Silverlight на Windows Phone, а также более детально ознакомиться с информацией о не поддерживаемых типах и членах.
+9
Проверки на пустые перечисления
2 мин
11KПеревод
Недавно, во время разбора кода одной программы я заметил метод, который выглядел примерно так:
Метод принимает дженерик-перечисление и проверяет, пустое ли оно. Видите ли вы тут потенциальную проблему? Я намекну, проблема в этой строчке:
И в чем же тут проблема? Проблема в том, что эта строчка может оказаться очень неэффективной.
public void Foo<T>(IEnumerable<T> items)
{
if(items == null || items.Count() == 0)
{
// Оповестить о пустом перечислении
}
}
Метод принимает дженерик-перечисление и проверяет, пустое ли оно. Видите ли вы тут потенциальную проблему? Я намекну, проблема в этой строчке:
items.Count() == 0
И в чем же тут проблема? Проблема в том, что эта строчка может оказаться очень неэффективной.
+54
Time for Coded UI Tests
6 мин
53KВ данной статье я постараюсь детально рассказать о работе с Coded UI Test, одним из множества нововведений Visual Studio 2010, а так же упомянуть о проблемах, с которыми я столкнулся.
Не будем зря терять время и сразу приступим к тестированию.
Не будем зря терять время и сразу приступим к тестированию.
+40
Visual Studio 2010: 4 полезнейших расширения
3 мин
15KБуквально на днях для Visual Studio 2010 выпущено два набора официальных обновлений. Первый – Power Tools – нацелен на добавление множества мелких функциональных вещей увеличивающих продуктивность труда. Второй — Modeling Feature Pack добавляет к архитектурным инструментам Visual Studio массу полезных возможностей.
Кроме этих инструментов, в этой статье я расскажу еще о двух полезнейших расширений Visual Studio. Кстати, число расширений в онлайн-хранилище доступном из Extension Manager постоянно растет и уже приближается к 2000 штук.
+56
Информация
- В рейтинге
- Не участвует
- Откуда
- Новосибирск, Новосибирская обл., Россия
- Зарегистрирован
- Активность