• Несколько рабочих столов в мониторе или несколько мониторов на рабочем столе?

      Зачем нам нужны несколько рабочих столов? Именно такой вопрос у меня возник после прочтения статьи Мысли об интерфейсах будущих Windows. Меня, признаться, слегка заинтриговало предположение автора о том, что для десктопных операционных систем будет лучше просто «передрать интерфейс с мобильных ОС вроде iOS и Android». И уж совсем озадачило высказывание о том, что десктопным ОС просто жизненно необходим «мультидесктопный» рабочий стол. Моя статья — попытка проанализировать необходимость подобной организации рабочего пространства пользователя десктопных ОС. Большая часть рассуждений (по мере возможности я старался подкрепить их здравой логикой :) основана на моем собственном опыте использования ОС поддерживающих мультидесктопность и инструментов сторонних производителей, позволяющих эмулировать подобное поведение в семействе операционных систем MS Windows.
      Читать дальше →
    • Singleton (Одиночка) или статический класс?

        Статья будет полезна в первую очередь разработчикам, которые теряются на собеседованиях когда слышат вопрос «Назовите основные отличия синглтона от статического класса, и когда следует использовать один, а когда другой?». И безусловно будет полезна для тех разработчиков, которые при слове «паттерн» впадают в уныние или просят прекратить выражаться :)

        Что такое статический класс?


        Для начала вспомним что такое статический класс и для чего он нужен. В любом CLI-совместимом языке используется следующая парадигма инкапсуляции глобальных переменных: глобальных перменных нет. Все члены, в том числе и статические, могут быть объявлены только в рамках какого-либо класса, а сами классы могут (но не должны) быть сгруппированы в каком-либо пространстве имен. И если раньше приходилось иммитировать поведение статического класса с помощью закрытого конструктора, то в .NET Framework 2.0 была добавлена поддержка статических классов на уровне платформы. Основное отличие статического класса от обычного, нестатического, в том, что невозможно создать экземпляр этого класса с помощью оператора new. Статические классы по сути являются некой разновидностью простанства имен — только в отличие от последних предназначены для размещения статических переменных и методов а не типов.

        Готовимся к собеседованию дальше?
      • Дизайн ПИ: Учимся на ошибках других

          image

          Вкратце о цикле статей


          Этой статьей я начинаю цикл статей «Дизайн ПИ». Они будут полезны тем, кому не все равно как выглядят их приложения, как они себя ведут по отношению к пользователю — думающим дизайнерам, программистам-дизайнерам и тем, кто хочет сделать этот мир чуточку лучше :)
          Читать дальше →
        • «Оживление» пользовательского интерфейса

            image

            Приложение не отвечает?!


            Многие из тех, кто программирует WPF-приложения, наверное тысячи раз писали конструкцию вида:
            {Binding Items}

            Если получение элементов коллекции Items выполняется в основном потоке приложения и занимает некоторое время — мы получаем «мертвый» пользовательский интерфейс. Приложение некоторое время не будет отрисовывать изменения состояния и реагировать на пользовательский ввод.
            Читать дальше →