Сегодня 15 ноября, пятница ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7276
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Flashr
Flashr
Голосов: 1
Адрес блога: http://www.liveinternet.ru/users/flashr/
Добавлен: 2008-05-06 00:10:45 блограйдером lexincorp
 

Про кэширование

2011-04-22 15:54:46 (читать в оригинале)

Недавно писал про оптимизацию сайта для всяких спидтестов. Но все они бесполезны, если сам сайт работает медленно, а чтобы его ускорить нужно не только встроенное кэширование на уровне страниц - @OutputCache, но и кэширование на уровне объектов модели. Кэширование на уровне базы, всякие memcache актуально лишь когда есть куча FrontEnd'ов и они тоже генерят немало запросов несмотря на свое кэширование.



Так вот, для кэширования объектов в asp.net делается простой класс, например:
Copy Source | Copy HTML
  1. /// <summary>

  2.     /// Класс кэшированных объектов

  3.     /// </summary>

  4.     public abstract class CacheObject<T> : ISystemObject where T : CacheObject<T>, new()

  5.     {

  6.         /// <summary>

  7.         /// Необходимо задать функцию загрузки из кэша

  8.         /// </summary>

  9.         public static T LoadFromCache(string UID)

  10.         {

  11.             object o = HttpRuntime.Cache.Get(typeof(T).Name + UID);//попробовали загрузить

  12.             if (o == null)

  13.             {

  14.                 T sample = new T();

  15.                 return sample.Load(UID)?sample:null;

  16.             }

  17.             return o as T;//если получилось, то вернем объект

  18.         }

  19.  

  20.         /// <summary>

  21.         /// Необходимо задать уникальный номер объекта

  22.         /// </summary>

  23.         protected abstract string _CacheUID

  24.         {

  25.             get; set;

  26.         }

  27.  

  28.         /// <summary>

  29.         /// Необходимо задать уникальный номер объекта

  30.         /// </summary>

  31.         protected virtual string _CacheKey

  32.         {

  33.             get

  34.             {

  35.                 return typeof(T).Name + _CacheUID;

  36.             }

  37.         }

  38.  

  39.         /// <summary>

  40.         /// Время, через которое будет очищен кэш

  41.         /// </summary>

  42.         protected virtual TimeSpan? _CacheExpiration

  43.         {

  44.             get

  45.             {

  46.                 return null;

  47.             }

  48.         }

  49.  

  50.         /// <summary>

  51.         /// Сохранение

  52.         /// </summary>

  53.         public virtual bool Save()

  54.         {

  55.             HttpRuntime.Cache.Insert(_CacheKey, this,null,Cache.NoAbsoluteExpiration,_CacheExpiration??Cache.NoSlidingExpiration);

  56.             return true;

  57.         }

  58.  

  59.         /// <summary>

  60.         /// Удаление

  61.         /// </summary>

  62.         public virtual bool Delete()

  63.         {

  64.             HttpRuntime.Cache.Remove(_CacheKey);

  65.             return true;

  66.         }

  67.  

  68.         /// <summary>

  69.         /// Удаление специфичного объекта, 

  70.         /// необходимо для использования связных классов

  71.         /// </summary>

  72.         public static bool Remove(string UID)

  73.         {

  74.             HttpRuntime.Cache.Remove(typeof(T).Name + UID);

  75.             return true;

  76.         }

  77.  

  78.         /// <summary>

  79.         /// Первичная загрузка

  80.         /// </summary>

  81.         public abstract bool Load(string uid);

  82.  

  83.         /// <summary>

  84.         /// Первичная загрузка по строчке БД

  85.         /// </summary>

  86.         public abstract bool Load(DataRow dr);

  87.     }




И теперь любой объект модели может быть прототипирован как class MyObject : CacheObject . И уже конкретный экземляр создан вызовом MyObject mo = MyObject.LoadFromCache(uid);


Ничего более сложного для кэширования объектов в asp.net сайте-фронтэнде, на мой взгляд, не нужно.



twitter some news

2011-04-20 22:20:29 (читать в оригинале)

Две интересные новости про твиттер.


1. Был куплен на аукционе примитивнейший сервис qwitter за 300т.р., который просто показывает за 5у.е. в месяц статистику тех кто убрал вас из друзей. Удивительно, если бы и в жж нельзя было посмотреть кто убрал из друзей, то появился бы рано или поздно подобный сервис? Но такая ерунда стала пользоваться спросом у 200 тыс. людей - это могло произойти только в твиттере, где урезаны все человеческие возможности, а все остальное за деньги. В целом наверно и у apple такая же политика с их приложениями, когда из пользователей вытягиваются деньги за то, что раньше шло "изкоробки". Более того, если говорить про apple, то на днях стало известно, что их продукция еще следит и сохраняет на серверах США всю информацию о перемещениях пользователя, тех мест откуда он обращался для обновления ПО.



2. После возвращения в компанию бывшего основателя, на главной твиттера можно видеть, что сервис теперь заточен на "интересы". "Follow your interests" написано. Но между делом, возможность указания своих интересов была основной фишкой, из-за которой соц.сети стали популярными, так как эту фишку преподносили рекламодателям как возможность выбрать нужную целевую аудиторию. Однако, после нескольких лет, стало вполне очевидно, что пользователи неспособны самостоятельно заполнять правильные интересы и в 90% случаем заполняют одно и тоже, так например "музыка, кино, еда". Вон даже на яндексе потеряли интерес к интересам. Но твиттер наоборот вводит, следовательно готовится к активному взаимодействию с рекламодателями или даже продаться наконец-таки.

asp.net optimization

2011-04-19 11:45:38 (читать в оригинале)

В сети появился доклад Mad'a на конференции Mix11 в ЛасАнжелесе, смотреть тут. В нем рассказывается прежде всего как с помощью настройки asp.net сайта добиться показателей на тестах скорости YSLOW и PageSpeed близких в 100. Как нетрудно догадаться в результате получается сайт, когда браузер вообще не делает запрос к серверу, так как всюду проставлен Expired. Единственная сложность кроме всяких сжатий, была в уменьшении числа запросов к серверу. И когда эта проблема была решена было верно замечено, что если бы использовался CDN для статики, то такой проблемы бы и не возникло.

цена идеи

2011-04-18 23:33:42 (читать в оригинале)

Прочитал про конкурс - DevGeneration2011, где талантливым предлагают по 100т.у.е. на реализацию идеи. Казалось бы шарашка-старташка обыкновенная, но под словами "идей в сфере разработки программного обеспечения и интернет-приложений" скрывается что-то интересное. То есть нужно придумать что-то чтобы улучшило процесс разработки ПО. Но куда тут тягаться с наработками микрософта? А правильно, никто ничего нового и не придумывает, вон в предыдущем году вложились в облачную платформу. В этом году наверняка вложатся в систему для разработчиков мобильных проложений. В общем хорошо, что все придумано до нас, то есть с одной стороны цена идеи 0, а с другой стороны, так как это общеизвестная и популярная идея, то цена ей будет - 100т.у.е.

MSVS is hiring

2011-04-16 12:43:07 (читать в оригинале)

Недавно вспоминал про Андрю Арнота, как оказывается его группа разработчиков Visual Studio активно набирает сотрудников в офис в Редмонд. Требуют от 3 лет опыта работы. Про компенсацию правда ничего не пишут.


Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по сумме баллов (758) в категории «Истории»
Изменения рейтинга
Категория «Священники»
Взлеты Топ 5
Падения Топ 5


Загрузка...Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.