MEF (сделай свою прогру расширяемой… плагины)
Link
~~ — округление
~(5.5) // => -6
~(-6) // => 5
~~5.5 // => 5 (same as Math.floor(5.5))
~~(-5.5) // => -5 (NOT the same as Math.floor(-5.5), which would give -6 )
JSON.NET — типа более производительный и удобный
Link
Краткий список WYSIWYG редакторов
Link
Хорошая статья по МАРШАЛИНГУ
Link
P/Invoke, GCHandle и неуправляемая память в .NET
Читать тут
OutputCache
Duration — время, в течении которого возвращается кешированный результат вместо обычного;
VaryByParam — позволяет указать аргумент action-метода, для каждого значения которого нужно создавать собственный кеш. Например при такой реализации:
[OutputCache(Duration=10)] public ActionResult Details(long id){ // Action logic }
результат, возвращаемый методом, будет кешироваться один раз для всех возможных вариантов аргумента id. Чтобы предотвратить такое поведение используется параметрVaryByParam:
[OutputCache(Duration=10, VaryByParam="id")] public ActionResult Details(long id){ // Action logic }
Location — позволяет указать место хранения кеша. Возможные значения:
Any— любое из возможных мест (значение по умолчанию)Client— кеш хранится в браузере клиентаDownstream— кеш может быть сохранен в любом HTTP 1.1 cache-совместимом устройстве, кроме основного сервера. Сюда могут включаться прокси-сервера и т.п.Server— кеш сохраняется на том же сервере, где был сформирован ответ для клиента;None— кеш не сохраняется;ServerAndClient— кеш может сохраняться или на самом сервере или в браузере;
CacheProfile — задает имя секции конфигурации с настройками кеша. Позволяет перенести все настройки из самого атрибута в файл Web.config:
<caching> <outputCacheSettings> <outputCacheProfiles> <add name="HomePageCacheProfile" duration="3600" varyByParam="none"/> </outputCacheProfiles> </outputCacheSettings> </caching> public class HomeController : Controller { [OutputCache(CacheProfile="HomePageCacheProfile")] public ActionResult Index() { // Action logic } }
Duration="#ofseconds"
Location="Any | Client | Downstream | Server | None | ServerAndClient "
Shared="True | False"
VaryByCustom="browser | customstring"
VaryByHeader="headers"
VaryByParam="parametername"
VaryByContentEncoding="encodings"
CacheProfile="cache profile name | ''"
NoStore="true | false"
SqlDependency="database/table name pair | CommandNotification"
ProviderName="Provider Name"
SessionState или взаимная блокировка сессии
[SessionState(SessionStateBehavior.ReadOnly)]
| Default | Логика ASP.NET по умолчанию используется для определения поведения состояния сеанса для запроса. Логика по умолчанию выполняет поиск маркерных интерфейсов состояния сеанса в обработчике IHttpHandler. | |
| Required | Для запроса включено состояние сеанса, позволяющее и чтение, и запись. Этот параметр переопределяет любое поведение сеанса вне зависимости от того, какое поведение определено при проверке обработчика для запроса. | |
| ReadOnly | Для запроса включено состояние сеанса «только для чтения». Это значит, что состояние сеанса не может быть обновлено. Этот параметр переопределяет любое поведение состояния сеанса вне зависимости от того, какое поведение определено при проверке обработчика для запроса. | |
| Disabled | Состояние сеанса для обработки запроса выключено. Этот параметр переопределяет любое поведение сеанса вне зависимости от того, какое поведение определено при проверке обработчика для запроса. |
В MVC3 (+.NET4) добавлена возможность настраивать сессию для контроллеров:
Лежит в:
using System.Web;
неймспейс:
using System.Web.SessionState;
Хорошая статья как сделать свой провайдер сессий. тут