Блог Сергея Даровских
- все кейворды
- silverlight
Искать текст "silverlight" в заметках...
RSS: эта страница
18
февраля
2010
20 дней назад
большие WCF-сервисы
23:41
Все, кто занимался созданием приложений, работающих с большими данными, знают, что возвращаемый сервисом результат по умолчанию не может быть больше двух мегабайт, поэтому в описание биндинга в web.config привычно добавляем что-то вроде:
Тем не менее, в случае действительно больших таблиц этого оказывается недостаточным. По умолчанию установлено ограничение не только на общий объем передаваемых данных, но и на количество принимаемых элементов (655360). Поэтому в описание поведения сервиса надо добавить (или исправить) строку
В это поле 2 миллиарда ставить не рекомендую.
<binding name="myBinding" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">Тем не менее, в случае действительно больших таблиц этого оказывается недостаточным. По умолчанию установлено ограничение не только на общий объем передаваемых данных, но и на количество принимаемых элементов (655360). Поэтому в описание поведения сервиса надо добавить (или исправить) строку
<dataContractSerializer maxItemsInObjectGraph="5000000" />В это поле 2 миллиарда ставить не рекомендую.
24
ноября
2009
более 3-х месяцев назад
Преобразование типов
21:33
В Silverlight часто приходится работать с объектами, не зная заранее их типа. Чтобы получить доступ ко всем методам соответствующего объекта, надо его преобразовать к правильному типу. Первая мысль — использовать для этого прямой каст:
Однако если такого объекта не существует или он имеет другой тип, такой каст выбросит исключение InvalidCastException. Таким образом, правильный код со временем превращается в суровое нагромождение блоков try-catch.
По-моему, для преобразования типов гораздо удобнее использовать оператор as. В отличие от прямого преобразования, в случае неудачи он не вызывает исключение, а возвращает null. То есть код выглядит таким образом:
Если преобразования типов применяются часто, то второй вариант делает код намного более читаемым.
Canvas cnvMap = (Canvas) LayoutRoot.FindName("myCanvas");
Однако если такого объекта не существует или он имеет другой тип, такой каст выбросит исключение InvalidCastException. Таким образом, правильный код со временем превращается в суровое нагромождение блоков try-catch.
По-моему, для преобразования типов гораздо удобнее использовать оператор as. В отличие от прямого преобразования, в случае неудачи он не вызывает исключение, а возвращает null. То есть код выглядит таким образом:
Canvas cnvMap = LayoutRoot.FindName("myCanvas") as Canvas;
if (cnvMap != null)
{
выполняем нужные действия
}
else
{
обрабатываем ошибку
}
Если преобразования типов применяются часто, то второй вариант делает код намного более читаемым.
7
ноября
2009
более 4-х месяцев назад
saving time
15:13
Пару недель назад работал ночью над своим таймлайном на Silverlight. Запустив в очередной раз программу, обнаружил вот такую ошибку:

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

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

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

Проверил все таймеры и асинхронные вызовы функций: никаких проблем в коде. Открыл старый проект, код которого не менял уже неделю. Запустил — те же ошибки. В 2:45 я, наконец, понял в чем проблема. Перевод стрелок! Ушел из дома, погулять и подумать, а через двадцать минут все уже работало как раньше.
Граждане! Не программируйте во время перевода часов на зимнее время!
6
ноября
2009
более 4-х месяцев назад
2005-2009
17:30
Четыре года сюда не писал. В жизни все изменилось, а здесь все по-прежнему. Возвращаешься как в старый дом, где все знакомо и где давно не был. Оглядываешься, заново узнаешь вещи, которые когда-то были привычными, смотришь на свои старые работы — гордый из-за искренности и немного смущенный наивностью… Стараешься ничего не испортить, и в то же время начать все заново, с чистого листа.
Постараюсь и я. Блоггера из меня не получилось (этому есть с десяток подтверждений — например, все предыдущие записи. Да и эта, пожалуй), но и в управдомы переквалифицироваться еще рановато.
Пару месяцев назад мне понадобилось написать небольшое визуально-интерактивное приложение. Flash мне не понравился с первого взгляда, а вот Silverlight от Microsoft подошел идеально. Правда, не один десяток раз приходилось сталкиваться с тем, что элементарные вопросы отнимают много времени — слишком много там «дизайнеров» и слишком мало программистов. Здесь не будет «10000 примеров кода на Silverlight» и «Как написать Quake 4 на Silverlight 2.0» — а просто решения конкретных задач, с которыми мне приходилось сталкиваться.
Конечно, при случае поговорим о чем угодно. Зачем мне себя ограничивать? Ведь я же снова дома.
Постараюсь и я. Блоггера из меня не получилось (этому есть с десяток подтверждений — например, все предыдущие записи. Да и эта, пожалуй), но и в управдомы переквалифицироваться еще рановато.
Пару месяцев назад мне понадобилось написать небольшое визуально-интерактивное приложение. Flash мне не понравился с первого взгляда, а вот Silverlight от Microsoft подошел идеально. Правда, не один десяток раз приходилось сталкиваться с тем, что элементарные вопросы отнимают много времени — слишком много там «дизайнеров» и слишком мало программистов. Здесь не будет «10000 примеров кода на Silverlight» и «Как написать Quake 4 на Silverlight 2.0» — а просто решения конкретных задач, с которыми мне приходилось сталкиваться.
Конечно, при случае поговорим о чем угодно. Зачем мне себя ограничивать? Ведь я же снова дома.
Powered by e2
Copyright © 2004—2010 Сергей Даровских