Сообщения

Сообщения за январь, 2011

WPF Tips: Не доверяйте ложной модальности MessageBox.Show - ее надо заслужить.

Если вы расчитываете на модальности MessageBox.Show, то должен заметить, что ее легко обойти, есил MessageBox.Show("текст") вызывается в момент, когда приложение не активно. После этого вы можете закрыть окно приложения или выполнить на нем какие-либо действия, и MessageBox, как обычно, не помешает вам это сделать. Это можно поправить, всегда передавая нужное вам окно в перегрузки метода MessageBox.Show, где первым параметром принимается объект класса Window. Только учтите следующие замечания: Нельзя передать null в эти перегруженные методы. Если вам кажется неправильным тащить за собой целевое окно и вы захотите использовать Application.Current.MainWindow, то учтите, что там может быть null, если еще ни одного окна не открывалось или вы сами можете где-то в коде задать Application.Current.MainWindow = null;, а MessageBox.Show при этом порвет (выпадет на исключении)! Нужет будет утильный метод который проверяет Application.Current.MainWindow на null и вызывает перегрузку

WPF/Silverlight Tips: Коварное статическое свойствоDispatcher.CurrentDispatcher - не используйте.

Не используйте свойство Dispatcher.CurrentDispatcher!!! Или - используйте его по назначению, что фактически означает - "не используйте его никогда, чтоб не попасть в просак". Вместо него нужно использовать В WPF - Application .Current.Dispatcher . В Silverlight -  Deployment .Current.Dispatcher . Дело в том, что Dispatcher.CurrentDispatcher вернет диспатчер для текущего потока или создаст новый для потока, в котором нет еще диспатчера. Если вы работаете в потоке вашего UI, то все о.к., вы получите Dispatcher вашего UI-приложения. Но если вы работаете во внешнем потоке, то вы получите диспатчер, который никак не связан с вашими UI элементами и окнами и вы никогда не достучитесь до ваших гуев. Можно поймать неприятные баги, особенно при активном рефакторинге чужого кода. Универсальное решение для всех фреймворков SynchronizationContext .Current

ReSharper 5: Опять промашка.

Resharper 5 не умеет переименовывать алиасы неймспейсов в дерективе using . Пример кода C#:   using YYYY = XxxAaaBbbCcc; в этом выражении ReSharper не сможет переименовать YYYY .

Баг настройки сети - Основной шлюз подключения не задается, Интернетнедоступен.

 Проблема: затруднено подключении к локальной сети и отсутствие доступ к интернет. Признаки: На проблемной машине недоступен интернет, тогда как на других он есть. Основной шлюз подключения на машине не задается при включенном DHCP на роутере. Задание статических настроек для TCP/IP не помогает. Админка роутера не доступна или вместо нее отображается ваш корневой сайт на IIS (если задан). Решение - перейдите на другую подсеть. Смотрите подробнее ниже. Я опишу на моей конфигурации, вам станет понятно: Windows XP SP3, IIS 5.1. Роутер сидит на 192.168.10.1. Подсеть 255.255.255.0. Подключение к сети через Wi Fi удачно устанавливается, но значение для основного шлюза отсутствует. Вот загадка! Задаю в ручную TCP/IP - не помогает (задал статический IP, подсеть, шлюз равный IP роутера). Причина: На машине у вас поднят IIS и когда-то (или может сейчас) на нем, для сайта по умолчанию, был задан IP-адрес, такой же как сейчас используется для роутера в локальной сети.

Тонкости раздачи интернета от мобильных операторов на несколькокомпьютеров.

Изображение
После прошлого поста про  Подключение к интернет через Wi-Fi Ad-Hoc  столкнулся с жульничеством мобильных операторов связи, предлагающих мобильный интернет через флешку (мобильный брелок). Биллайн! Ммм!!! Ведь флешки для интернета поставляются с программой для удобства включения интерента. Эта программа также сделает так, чтобы ваши близкие не могли выйти в интернет с других компьютеров через ваш мобильный интернет. Прога будет делать все, чтоб подключится к сети можно было только с ноута, в который воткнута флэха. Она проконтролирует, если вы расшарили подключение для других компьютеров в вашей сети (Общий доступ к подключению к Интернету) и удалить его. Она просто заботливо удалить само подключение, когда ей удобно, и пересоздаст его с нуля. Неспортивное поведение! Уверен, что остальные операторы сотовой связи делают так же. Решения: Используйте, по возможности, 3G модем вашего мобильного телефона. Многие современные телефоны его имеют. Мобильный оператор должен помочь в