Alexey's profileLife vs. ProgrammingPhotosBlogListsMore ![]() | Help |
|
May 31 Команда, просто команда.Давно ничего не писал - другие мысли в голове, но в за последние дни уже несколько раз сталкивался с различными странными способами решения одной и той же "проблемы". "Проблема" эта состоит в следующем: необходимо динамически добавлять пользовательские элементы управления на форму. Естественно, эти элементы должны как-то реагировать на то, что делает с ними пользователь. Задача стара как мир, но каких только способов решения ее не увидишь... Сегодня, например, я даже столкнулся с таким совершенно экзотическим способом: разработчик наследовался от кнопки для того, чтобы определить ее поведение. То есть у него были такие наследники, как, скажем, SettingsButton, DeleteButton и т.д. Экземпляры этих кнопок создавались и передавались контролу, который их внутри себя размещал. Сначала я не знал, смеяться мне или плакать, но потом решил, что, поскольку создавшего это я не знаю, то все же посмеюсь. Заодно и напишу о том, как эту задачу правильно решать. Ничего нового я не скажу и те, кто при слове "Команда" уже все поняли, дальше могут не читать. Итак, нам нужно разделить, а точнее, не допустить смешения public abstract class CommandBase Допустим, у нас есть контрол, в который динамически должны добавляться кнопки, нажимая на которые пользователь будет вызывать наши функции. private void RegisterButton(CommandBase command) А потом просто использовать этот метод там, где мы "наполняем" пользовательский интерфейс: MyProfileCommand profileCmd = new MyProfileCommand(currentUser);Navigator.RegisterButton(profileCmd); MainMenu.RegisterMenu(profileCmd); Создание пользовательского элемента на основании команды можно вынести в фабрику, в сервис или придумать что-то еще. Важно то, что мы не делаем в нашем коде микс из логики и элементов управления и то, что мы всегда можем использовать одну и ту же команду несколько раз, вызывая ее из разных элементов пользовательского интерфейса или из недр нашего приложения, поведение легко контроллируется, код легко поддерживается. Здесь я привел наверное самый примитивный вариант использования этого простого подхода. Немного расширив его можно получить очень неплохой результат, но, прошу вас, не прибегайте в ваших приложениях ко всяческим экзотическим подходам в виде наследования кнопок, хранилища делегатов или писанине всей логики приложения в функциях типа button1_Click(..) :) May 26 Новый ноутбук: выбор сделан.
Дело в том, что после того, как у меня потрескались корпуса у КПК Acer N30 и ноутбука Acer 5021, связываться с Acer'ом больше не хотелось. Связываться с AMD Turion после того, как жарким бельгийским летом он просто вырубал комп без предупреждения тоже не хотелось. В конце концов выбор пал на Dell Inspiron 9400 со следующими параметрами: CPU: Core2 Duo 2.00GHz Все драйверы ко всем устройствам уже были установлены с дистрибутивом Висты и работают прекрасно. Из полезного софта было установлено Windows Vista Home Premium, Roxio DVD Studio, Dell MediaDirect. Весь софт, который был нужен, установился и работает без проблем: Nikon Capture NX, Ulead VideoStudio 11, Abby Lingvo 12 и т.д. В общем, покупкой я доволен. Вот еще, меня спрашивают, насколько это удобно - такое разрешение на 17-дюймовой матрице. На мой взгляд - очень даже удобно. По своим характеристикам (чекткость, яркость) эта матрица превосходит матрицы ноутов HP и Acer'а, которые у нас есть. И, хотя на том же Acer'е матрица очень даже неплохая, разница ощутима, когда ставишь ноуты рядом. Что же касается работы.. Час назад установил на ноут Visual Studio "Orcas" Beta1. Просто супер - я могу открыть все нужные мне панели и при этом остается еще полно места для написания кода. Очень здорово. Остается только поблагодарить Dell за их работу: заказ делали по телефону, просили изменить конфигурацию (матрица, процессор, память и т.д) а так же, самое главное, англоязычный софт и QWERTY-клавиатуру (местные используют AZERTY). За все это с меня содрали 1564 евро, цена для ноута такой конфигурации очень даже ничего. Счастливого ему "плавания" ;) May 20 Smart Client Software Factory - May ReleaseБуду краток. Майский релиз SCSF. Поддержка WPF, CAB, улучшенный гайдлайн и т.д. Брать можно здесь: http://www.codeplex.com/smartclient
May 07 Электронные платежи: российская действительность.Я вот решил проапгрейдить Лингво до 12-й версии. А еще есть такой магазин - СофтКей. Поэтому пошел в этот СофтКей, сказал ему, что хочу Лингво, а платить буду карточкой Visa. К сожалению, ключа внутри не оказалось, равно как и ссылки, откуда можно скачать купленное. Полез читать про оплату. Вроде все должно быть ОК.
Ужас какой. Вообще-то я с ними разговаривать не хотел. Я ввел свой номер карты, я ввел CCV. Я хотел продукт, а говорить по телефону, да еще и в международном роуминге не хотел совершенно. И как быть, если я немой?! Что, немым, получается, никак нельзя купить продукт? Выходит, что быстро оплатив картой продукт я теперь должен ждать, когда проснутся менеджеры и поимеют удовольствие общения со мной... Вот такая она, российская действительность. У кого только тут покупал - не видел такого... May 06 День рождения Королевы Беатрикс
День рождения Королевы отмечается в Нидерландах 30-го апреля не смотря на то, что родилась королева Беатрикс где-то в середине лета. Объясняется это тем, что день рождения предыдущей королевы, матери нынешней, был именно 30-го апреля. В этот же день она отреклась от престола и ее место заняла Беатрикс. Вот так, королевы меняются, а праздник решили не переносить. Какая разница, на самом деле, что праздновать - коронацию или день рождения? Да и вообще, совместить можно. В этот день по всем крупным городам Нидерландов с утра устраиваются народные гуляния, ярмарки и распродажи. Любой человек может выйти на улицу и что-нибудь продать, при этом он не обязан платить налогов. Магазины тоже могут торговать в "безналоговом" режиме, правда, практически все они в праздник закрыты. Но на тех немногих, что все же работают, можно обнаружить объявления: "Сегодня в течение всего дня скидка 25%". Мы приехали в Амстердам утром, часов около 11, и город был уже полон. Нам сразу же выдали какие-то (оранжевые) рюкзачки, кстати, идея очень полезная - кто-то складывал туда мусор, кто-то - приобретенные на ярмарке вещи.. Народ стекался в столицу до самого вечера - по улице от вокзала в центр шел сплошной (оранжевый) поток в течение всего дня. Каналы в старом Асмтердаме были запружены лодками, лодочками, суденышками, практически в каждом из которых играла музыка, (оранжевые) люди устраивали пикники, а на некоторых, размерами побольше, устраивались целые дискотеки. Их было так много, что периодически даже возникали пробки на воде. Кстати, обратил внимание на ряд местных развлечений, интересующиеся могут перенять.
На музейной площади весь день и вечер шел концерт. Но народу было так много, что протиснуться туда мы даже не стали пытаться. В общем, гуляния прошли хорошо, весело. В очередной раз порадовало то, что все вокруг было мирно, никаких тебе "бычков-братков" с заплывшими от пива глазами (я все никак привыкнуть не могу к этому факту).
Ночь и половину следующего дня до отъезда мы провели в Гааге - в городе, где находится королевский дворец и где живет сама виновница торжества - Королева Беатрикс. Гуляний там уже не было, а 1-е мая нидерландцы не празднуют, так что время выдалось спокойным для того, чтобы прогуляться до дворца, побродить по берегу моря и подивиться странной нидерландской скульптуре (видимо, у них свой Церетели есть). May 04 Первомайские выходные: Франция.На прошлые выходные выпало покататься по близлежащим странам. Соответственно, два дня мы катались по Франции, поставив себе целью посетить столько замков, сколько успеем (успели три) и оставшиеся два дня провели в Нидерландах, празднуя день рождения королевы Беатрикс и гуляя по Гааге. Для начала расскажу поездке во французские замках, коих мы, как я уже сказал, посетили три: Фонтенбло, Блуа и Амбуаз. Замки эти оказались настолько разными, что я даже подумал, что вот бы объединить достоинства трех в одном. Фонтенбло, огромный старый замок времен Филипа Первого, удивил заброшенностью и пустынностью своей территории. Но при этом его "содержимое" оказалось просто сплошным произведением искусства. Несколько снимков: Блуа - замок, который известен двумя вещами. Амбуаз тоже отличился в истории. Здесь была поставлена точка в первой войне между гугенотами и католиками - заключен амбуазский мир. Здесь же прятался король Франсиск Второй во времена заговора гугенотов, которым надоело преследование. Гугеноты хотели избавиться от фанатичных Гизов и, если удастся, убрать Франсиска Второго от власти и передать эту самую власть Бурбонам. Но замок там крепкий, высокий, так что нападение было отбито, а головы нападающих украсили ворота и стены замка... Кроме замков в те дни мы успели погулять по Орлеану (Жанну д'Арк помните?) и поразмышлять о тех скудных клочках огромной и, как теперь начинаем понимать, очень интересной истории, которые остались в наших головах.. Лично я пришел к выводу, что вся путанница в истории тех веков - из-за Генрихов. Уж очень много их было и в Англии и во Франции, и королей и герцогов :) Вооот.. А потом мы поехали в Нидерланды, праздновать день рождения королевы Беатрикс. |
|
|