Сегодня мы будем замерять производительность нашего приложения с помощью Visual Studio Profiling Tool.
Visual Studio Profiling Tool позволяет разработчикам измерять, оценивать производительность приложения и кода. Эти инструменты полностью встроены в IDE, чтобы предоставить разработчику беспрерывный контроль.
В этом руководстве мы по шагам профилируем приложение PeopleTrax используя Sampling и Instrumentation методы профилирования, чтобы выявить проблемы в производительности приложения.
Приветствую, хабра-дотнетчики!
Сегодня речь пойдет об одной интересной и полезной возможности языка С#, которая поможет нам в документировании кода. Она называется «XML документация» или «Документирующие комментарии XML». Это такие специальные теги XML, которые содержаться в комментариях и описывают свойства или методы в конкретном файле. Так вот, есть по крайней мере три веских причины, почему всегда следует заполнять XML комментарии.
Четвертого июня группа разработчиков Microsoft представила CTP проекта Managed Extensibility Framework (MEF). MEF – это механизм, который позволяет минимумом кода внедрить в проекты поддержку расширяемости (например, плагинов).
Скачать CTP вместе с примерами и документацией можно здесь: code.msdn.microsoft.com/mef
Далее я приведу короткий пример из документации для лучшего понимания, что такое MEF.
Недавно вышел новый Eclipse Helios, среди нововведений которого есть поддержка таскбара Windows 7 и дока Mac OS X. В частности, Эклипс может отображать прогресс сборки, наличие ошибок и предупреждений. К хорошему быстро привыкаешь, и мне захотелось иметь нечто подобное в Visual Studio 2010. Подходящего расширения в сети не нашлось, так что пришлось делать его самому.
Широкое распространение параллельных архитектур вычислительных систем вызывает повышение интереса к средствам разработки программного обеспечения, способного максимально полно использовать аппаратные ресурсы данного типа.
Однако к текущему моменту имеется определенный разрыв между имеющимися на потребительском рынке технологиями аппаратной реализации параллелизма и программными средствами их поддержки. Так, если многоядерные компьютеры общего назначения стали нормой в середине текущего десятилетия, то появление OpenMP — популярного стандарта разработки программ для подобных систем — отмечено почти десятью годами ранее [1]. Практически в то же время возник и стандарт MPI, описывающий способы передачи сообщений между процессами в распределенной среде [2].
Развитие обоих данных стандартов, выражающееся только в расширении функциональности без адаптации парадигм к объектно-ориентированному подходу, приводит к тому, что они оказываются несовместимы с современными платформами программирования, такими как Microsoft .NET Framework. Поэтому разработчикам этих платформ приходится прилагать дополнительные усилия по внедрению средств параллелизма в свои продукты.
В [3] автором была рассмотрена одна из таких технологий, Microsoft Parallel Extensions, позволяющая достаточно простым способом внедрять параллелизм в изначально последовательный управляемый код для компьютеров с общей памятью. Там же была показана возможность и целесообразность использования платформы .NET Framework для проведения научных расчетов. Тем не менее, остается открытым вопрос о применимости данной платформы для разработки программ, используемых для проведения сложных расчетов на системах с распределенной памятью, например, вычислительных кластеров. Данные системы базируются на совокупности соединенных между собой вычислительных узлов, каждый из которых является полноценным компьютером со своим процессором, памятью, подсистемой ввода/вывода, операционной системой, причем каждый узел работает в собственном адресном пространстве.
Программист часто выполняет роль дизайнера пользовательских интерфейсов. Можно поспорить, хорошо ли это. Однако, особенно в небольших компаниях, это реальность, которую не изменить.
Я верю, что программист может сделать очень приличный интерфейс. В этом посте я бы хотел собрать несколько советов, которые помогут программисту более или менее успешно погрузиться в иррациональный мир пользователей и проектировать неплохие интерфейсы.
Оговорюсь, что эти советы скорее подходят программистам, которые вынуждены заниматься разработкой пользовательского интерфейса. То есть по каким-либо причинам в компании нет дизайнера, регулярных юзабилити тестирований, процесса проектирования интерфейсов и т. п.