Hepinizin bildiği gibi ASP ve ASP.NET uygulamaları arasında state serverler farklı Thread ve Pool da çalıştığından, bu işleyicilere ait depolama servislerini aynı anda kullanamıyoruz.
Bu dosyalar aynı IIS AppPool ve Website üzerinde çalışmasına rağmen, ASP dosyasından SET ettiğiniz bir nesneyi ASP.NET uygulamanızda GET edemiyor olmamız buna bir örnek.
İşte bu gereksinim doğrultusunda geliştirdiğim(aynı zamanda projelerde kullandığım) ASPState uygulaması bu soruna çözüm olmakla birlikte, işin içerisine yönetilebilirliğide katarak Session, Application ve Cache nesnelerini bağımsız olarak kullanabilmemizi sağlıyor. Oturumlarınızı, application itemlerinizi, cache objelerinizi kendi yapısı üzerinde depolamakla kalmıyor bunlar web yönetim arayüzü üzerinden görüntülemenizi ve editlemenizide sağlıyor. Bu özellikleriyle alanında tek ücretsiz uygulama olduğunu söylemekte fayda var.
Projeyi yakın zamanda yayınlamayı düşündüğüm Github gibi geliştirici ortamlarından önce kişisel web sitemden .NET geliştiricileri ile paylaşmak istedim.
.NET'e göz kırpan ama ASP ile yola çıkmıştım diyenler artık rahat bir nefes alabilirler .
Solution ve obje kütüphane dokümantasyonu İngilizce, kullanım kılavuzunu ilk buradan paylaştığım için Türkçe olarak hazırladım. İngilizce kullanım kılavuzu çalışmasına ise başlandı ve yakın zamanda bitirerek yine buradan geliştiricilerle paylaşmayı düşünüyorum.
VS Solution Projesini Ücretsiz İndirmek için www.aspstate.com web sitesini ziyaret edebilirsiniz. Projenin yanı sıra geliştirici dokümanlarına bu web sitesinden ulaşabilirsiniz.
------------------------------------------------------------------------------------------------
ASPState Nedir?
Klasik ASP ve ASP.NET uygulamalarında(Webform, MVC) yeni nesil Session, Application ve Cache yöntemleri sunan ortak uygulama kütüphanesidir. Web uygulamalarında kullanılmak üzere, kurulumu kolay, kullanımı basit, servis tabanlı, OOP(Object Oriented Programming) destekli çözümler sunar.
Hangi Sorunlara Çözüm Getiriyor?
Web geliştiriciler, site yöneticileri ve sunucu yöneticilerinin genel talepleri şu sorunları işaret etmekte:
Uygulama havuzunun recycle olması, sunucunun restart edilmesi, uygulamanın release/publish edilmesi gibi istisnai durumlarda geçici belleğin(cache) silinmesinden dolayı açık oturumların bellekten silinmesi. Beraberinde gelen veri kayıpları ve sonucunda ise yazılımsal problemler.
Orta düzey(max günlük 500 bin ziyaretçi) bir web uygulaması(ASP veya ASP.NET) için custom ve ücretli cache/session state server sistemlerinin çok yüksek maliyetlere sahip olması. Bu çözümlerin entegre edilebilmesi için uzun süren kurulum/implementasyon/eğitim süreçleri.
Klasik ASP ile geliştirlimiş bir web sitesine ASP.NET uygulaması entegre edilmesi koşulunda, uygulama havuzlarının farklı olmasından kaynaklanan nesne iletişim sorunları. Klasik ASP kullanan web sitesinde oturum açmış bir kullanıcının, ASP.NET uygulamasına geçtiğinde tekrar oturum açmak zorunda kalması gibi, platform kaynaklı, tasarım kökenli problemler.
Microsoft Session State teknolojisinin yönetimsel olmayışından kaynaklı bulma-izleme-güncelleştirme imkanlarının yetersiz kalması. Aktif oturumların kontrol altında tutulamamasıyla sonuçlanan yönetme ve işletme sorunları.
Önbellekte(Cache) bulunan tüm öğelerin görüntülenemez, nesnenin içeriğinin(değer veya expiration time) görüntülenemez, değiştirilemez veya sona erme süreleri tekrar düzenlenemez olması.
State(Cache, Application, Session) sunucularına direkt bir müdahale veya entegrasyon yapılamıyor oluşu.
Oturumlar için, ek bir süreç maliyeti gerektirmeden IP bazlı engellemelerin yapılamaması. Bunun için ekstra yazılım işlemlerinin gerekmesi.
ASPState Özellikleri
- LINQ Desteği
- Klasik ASP Desteği
- Seçilebilir Bellek Katmanı
- Seçilebilir Veritabanı Katmanı
- Olay Kayıtları
- Entegre GC İş Parçacığı
- API Desteği
- Serialize Obje Desteği
- Gelişmiş State Metodları
- IP Black/White List
- Nesne Yönetim Araçları
- Bağımsız Çalışan Web Yönetim Arayüzleri
- Service-Based Mimari
- Dead-Lock Koruması
- Çoklu-İzole Website Desteği
- Opsiyonel Katman Seçimleri