Posted by Dmytro Shteflyuk on
under ASP.NET · (11,133 views)
Часто в приложениях ASP.NET можно встретить код, подобный следующему:
1 2 3 4 5
if(Cache["SomeData"]!=null) { string name =((SomeClass) Cache["SomeData"]).Name; //..... }
Опытный программист, даже если он не страдает паранойей, сразу видит возможную проблему — NullReferenceException. Все дело в механизме работы кэша в ASP.NET. В идеальном случае объект, помещенный в кэш, будет храниться там до перезагрузки приложения, но на практике он может быть удален между двумя обращениями: во время сборки мусора, если закончилась память (поскольку кэш использует слабые ссылки WeakReference); другим потоком, когда нужно перегрузить данные.
Соответственно приведенный код будет работать в 99% случаев, но периодически в логах будут появляться ошибки, которые практически невозможно повторить. Вот правильное использование кэша:
Posted by Dmytro Shteflyuk on
under ASP.NET · (11,291 views)
Как часто вы падаете под стол, увидев чей-то код? Сегодня я наткнулся на сногсшибательный пример в текущем проекте, и просто не могу удержаться и не выложить его здесь. Итак,
1 2 3 4 5 6 7 8 9 10 11
if(Request.QueryString.HasKeys()) { string[] keys = Request.QueryString.AllKeys; foreach(string k in keys) { if(k =="memberpagemode"&&(string)Request.QueryString.GetValues(k).GetValue(0)=="edit") {
pSett.ChangeFormViewMode(FormViewMode.Edit); } } }
А как вы ищете в хэше ключ с определенным значением?
Posted by Dmytro Shteflyuk on
under ASP.NET, Facebook · (14,547 views)
На прошлой неделе я столкнулся со странным багом в Facebook Developer Toolkit. При попытке вызвать метод setFBML (я рассказывал о нем в моей предыдущей заметке), я поймал исключение о неправильной подписи (invalid signature). “Ха-ха”,– сказал я и скачал исходники библиотеки. Немного подебажив, я нашел несколько строк, которые просто убили меня:
1 2 3
// Compute the MD5 hash of the signature builder
hash = md5.ComputeHash(Encoding.Default.GetBytes(
signatureBuilder.ToString().Trim()));
Posted by Dmytro Shteflyuk on
under ASP.NET, Facebook · (32,428 views)
В моем текущем проекте мы решили разработать приложение Facebook. Это действительно мощная платформа с кучей интересных идей, что обычно означает необходимость потратить кучу времени на то, чтобы заставить приложение работать как задумано. Сегодня я хочу поговорить о профилях пользователей. Любое приложение Facebook может добавить несколько ссылок, которые будут отображаться под картинкой пользователя, и контент для отображения в широкой или узкой колонке. Естественно, вы можете использовать синтаксис FBML, особенно множество тегов fb:if-... для выбора, какой контент показывать на определенных профилях конкретным пользователям.
Posted by Dmytro Shteflyuk on
under ASP.NET · (47,567 views)
Иногда нам нужно выполнять такие задачи, которые разработчики библиотек даже не представляли. Один из таких случаев — выполнение синхронного AJAX-вызова (Asynchronous JavaScript And XML — Асинхронный JavaScript и XML). Ниже вы найдете простое решение.