SauroN
Блог Сергея Даровских

Искать текст "silverlight" в заметках...

RSS: эта страница

18 февраля 2010
20 дней назад

большие WCF-сервисы 23:41

Все, кто занимался созданием приложений, работающих с большими данными, знают, что возвращаемый сервисом результат по умолчанию не может быть больше двух мегабайт, поэтому в описание биндинга в web.config привычно добавляем что-то вроде:

<binding name="myBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">

Тем не менее, в случае действительно больших таблиц этого оказывается недостаточным. По умолчанию установлено ограничение не только на общий объем передаваемых данных, но и на количество принимаемых элементов (655360). Поэтому в описание поведения сервиса надо добавить (или исправить) строку

<dataContractSerializer maxItemsInObjectGraph="5000000" />

В это поле 2 миллиарда ставить не рекомендую.

#

Кейворды: silverlight, webconfig

24 ноября 2009
более 3-х месяцев назад

Преобразование типов 21:33

В Silverlight часто приходится работать с объектами, не зная заранее их типа. Чтобы получить доступ ко всем методам соответствующего объекта, надо его преобразовать к правильному типу. Первая мысль — использовать для этого прямой каст:

        Canvas cnvMap = (Canvas) LayoutRoot.FindName("myCanvas");

Однако если такого объекта не существует или он имеет другой тип, такой каст выбросит исключение InvalidCastException. Таким образом, правильный код со временем превращается в суровое нагромождение блоков try-catch.

По-моему, для преобразования типов гораздо удобнее использовать оператор as. В отличие от прямого преобразования, в случае неудачи он не вызывает исключение, а возвращает null. То есть код выглядит таким образом:


        Canvas cnvMap = LayoutRoot.FindName("myCanvas") as Canvas;
        if (cnvMap != null) 
        { 
            выполняем нужные действия 
        } 
        else
         { 
            обрабатываем ошибку 
        }

Если преобразования типов применяются часто, то второй вариант делает код намного более читаемым.

# | Комментарии (1)

Кейворды: silverlight, c#, код

7 ноября 2009
более 4-х месяцев назад

saving time 15:13

Пару недель назад работал ночью над своим таймлайном на Silverlight. Запустив в очередной раз программу, обнаружил вот такую ошибку:

http://farm3.static.flickr.com/2689/4082845718_590eff4e33_o.png

Вернул код к предыдущему состоянию, ошибка осталась точно такой же. Запустил Fiddler, он показал, что при попытке обратиться к xap-файлу сервер возвращает ошибку 500. Я попробовал загрузить этот файл браузером, вот что у меня получилось:

http://farm3.static.flickr.com/2428/4082085927_e61685b242_o.png

Проверил все таймеры и асинхронные вызовы функций: никаких проблем в коде. Открыл старый проект, код которого не менял уже неделю. Запустил — те же ошибки. В 2:45 я, наконец, понял в чем проблема. Перевод стрелок! Ушел из дома, погулять и подумать, а через двадцать минут все уже работало как раньше.

Граждане! Не программируйте во время перевода часов на зимнее время!

#

Кейворды: silverlight

6 ноября 2009
более 4-х месяцев назад

2005-2009 17:30

Четыре года сюда не писал. В жизни все изменилось, а здесь все по-прежнему. Возвращаешься как в старый дом, где все знакомо и где давно не был. Оглядываешься, заново узнаешь вещи, которые когда-то были привычными, смотришь на свои старые работы — гордый из-за искренности и немного смущенный наивностью… Стараешься ничего не испортить, и в то же время начать все заново, с чистого листа.

Постараюсь и я. Блоггера из меня не получилось (этому есть с десяток подтверждений — например, все предыдущие записи. Да и эта, пожалуй), но и в управдомы переквалифицироваться еще рановато.

Пару месяцев назад мне понадобилось написать небольшое визуально-интерактивное приложение. Flash мне не понравился с первого взгляда, а вот Silverlight от Microsoft подошел идеально. Правда, не один десяток раз приходилось сталкиваться с тем, что элементарные вопросы отнимают много времени — слишком много там «дизайнеров» и слишком мало программистов. Здесь не будет «10000 примеров кода на Silverlight» и «Как написать Quake 4 на Silverlight 2.0» — а просто решения конкретных задач, с которыми мне приходилось сталкиваться.

Конечно, при случае поговорим о чем угодно. Зачем мне себя ограничивать? Ведь я же снова дома.

#

Кейворды: sau.ru, silverlight

Пароль:

Powered by e2

Copyright © 2004—2010 Сергей Даровских