Ineta Next İstanbul 2. Gün İzlenimleri

ineta next istanbul

Merhaba, dün olduğu gibi bugünde önce etkinlik programını yazarak başlayalım yazımıza.

13 AralıkMicrosoft Ofisi
11.00-12.30 ASP.NET 4.0 Yenilikleri – Uğur Umutluoğlu (nedirtv.com)
14.30-15.45 Workflow Foundation 4.0 – Burak Selim Şenyurt (csharpnedir.com)
16.00-17.00 C# 4.0 Yenilikleri – Erkan Balaban (ceviz.net)
17.15-18.00 IE 8 Toolbar Geliştirme – Barış Kanlıca (yazgelistir.com)

Etkinliğe ait fotoğraflar burada.

Asp.Net 4.0

Öncelikle şunu belirtmek istiyorum, geçtiğimiz Nisan ayında gerçekleştirilen ineta etkinliğinde de Asp.Net 4.0 ile ilgili bir oturum yer alıyordu ve o gün anlatılanlar ile neredeyse aynı içeriğe sahipti bugünki oturumda. Yani Nisan ayında ki etkinliğe katılıpta bugün katılamayanlar varsa Asp.Net 4.0 oturumu açısından fazla birşey kaçırmış sayılmazlar.

ClientIdMode

Konumuza dönecek olursak, öncelikle ClientIdMode`dan bahsedelim, mevcut Asp.Net projelerimizde html çıktımıza bizim kontrolümüz dışında müdaheleler oluyordu şöyleki; bir label`a “lblMetin” diye bir ID tanımladığımızda Html çıktısında içinde bulunduğu kontrole bağlı olarak en basit haliyle label`ımızın ID`si şuna benzer bir hal alıyordu; “ctl00_lblMetin“. Bu label`ımız bir repeater`ın içinde olsaydı alacağı ID dahada karışık olacaktı.

Bu durum bir kaç olumsuz sonuca sebep oluyor; birincisi, javascript ile elementlerimize erişmeye çalıştığımızda bizim daha önceden verdiğimiz ID`ler ile erişme şansımızın olmaması. İkincisi ise arama motorları açısından olumsuz sonuçlar doğruması, gereğinden fazla html kod barındırdığı için içerisinde.

ClientIdMode özelliği bu konuda bize bir kaç farklı sçenek sunuyor. Bunlardan “Static” modu seçersek, kontrole verdiğimiz ID html çıktısında da aynı şekilde kullanılacaktır. Yani “lblMetinID`si atadığımız bir label kontrolünün html çıktısında ki ID`si yine “lblMetin” olacaktır.

Bu kullanım esnasında dikkat etmeniz gereken bir durum var, bildiğiniz üzere ID`ler bulunduğu sayfada tek olmalıdır aksi halde çakışırlar ve yazdığımız kod hata verebilir veya sayfamız hiç açılmayabilir. Bu yüzden web sitenizi hazırlarken MasterPage ya da UserControl`ler kullanıyorsanız, bunların içerisinde tanımladığınız ID`ler tanımlayacağınız diğer ID`lerden mutlaka farklı olmalıdır.

ineta next istanbul

Custom Cache Provider

Asp.Net 4.0 ile birlikte gelen bir diğer özellik ise Custom Cache Provider. Kısaca anlatmak gerekirse bu özellik sayesinde web sitenizde istediğiniz bir sayfayı veya veriyi belirli bir süre boyunca, sunucuda ki Disk`de, Ram`de ya da farklı bir sunucuda saklayabiliyorsunuz. Yazacağınız kendi kodlarınızla saklayacağınız verilerin, okunması, yazılması, güncellenmesi gibi işlemleri rahatça kontrol edebiliyorsunuz.

Custom Cache Provider özelliği sayesinde, çok sık değişmeyen, büyük çaplı ve sık sık talep olan verileri her seferinde veritabanından çekerek sunucuya yük bindireceğinize ilk talep edildiğinde kendi belirleyeceğiniz şekilde ve yerde saklayıp, her istek geldiğinde oradan okuyabilirsiniz.

Auto-Start Web Applications

IIS üzerinde barındırdığımız web uygulamalarımız ziyaretçilerden ilk talep geldiği anda derlenip ziyaretçiye gönderilirler. Bundan sonra uygulamamızda bir değişiklik yapmadıkça veya IIS yeniden başlatılmadıkça tekrar derleme yapılmaz ve diğer ziyaretçiler web uygulamamızı ziyaret ettiklerinde ilk ziyaretçiye göre daha çabuk erişirler.

Derlenme süresi, uygulamanın büyüklüğüne, sunucunun özelliklerine ya da  IIS`in o anki durumu gibi bir çok etkenden dolayı uzun sürebilmekte. Bu da ilk ziyaretçinin bazen çok fazla beklemesine ya da beklemeden uygulamamızdan ayrılmasına sebep olabilmekte. Bu durumun önüne geçmek için geliştirilen bu Auto-Start Web Applications özelliği sayesinde IIS yeniden başlatıldığı anda otomatik olarak ilk talebi kendisi uygulamamıza ileterek derlenmesini sağlamakta. Böylece gelen ilk ziyaretçi derleme işlemi için beklemek zorunda kalmayacak.

ineta next istanbul

Response.RedirectPermanent()

Web uygulamalarımızda sayfalar arası yönlendirme yaparken kullandığımız Response.Redirect() komutu sunucuya HTTP 302 (Temporary Redirect) cevabını gönderiyor. Buda arama motorları açısından kötü bir sonuç doğurmaktaymış. Çünki arama motoru gönderildiği sayfada geçici olarak bulunduğunu anlıyormuş.

Bu durumun önüne geçmek için Response.RedirectPermanent() komutu geliyor Asp.Net 4.0 ile birlikte. Response.RedirectPermanent() komutu Response.Redirect() komutunun aksine sunucuya HTTP 301 (Moved Permanently) cevabını gönderiyor yani kalıcı olarak yönlendirildiği bilgisi verilmiş oluyor arama motorlarına.

ViewStateMode

Şuan ViewState özelliği ya sayfanın tamamında veya sadece bir tane kontrol için kapatılabiliyor. Tam tersi bir durum geçerli değil maalesef. Yani sayfanın tamamında ViewState özelliği kapalı olarak ayarlanmış ise siz istediğiniz bir tane kontrol için ViewState özelliğini aktif hale getiremiyorsunuz. Asp.Net 4.0 ile gelen bu ViewStateMode özelliği sayesinde bu sorunlar tamamen ortadan kalkıyor.

URL Routing (URL Yönlendirme)

Bir önceki gün gerçekleştirilen etkinlikte Asp.Net MVC oturumunda bahsedilen bu özellik Asp.Net 4.0 ile birlikte Web Form`lar içinde kullanılabilir hale geliyor. Asp.Net MVC`de olduğu gibi burada da önce global.asax dosyası içerisinde URL Routing kurallarını tanımlıyorsunuz.

Asp.Net 4.0 ile gelen diğer bazı özellikler ise, Grafik Chart kontrolü, FormView`in HTML çıktısında tablo oluşturmasını engelleyebilme olarak sayabilirim sanırım.

Workflow Foundation 4.0 oturumuna katılmadığım için o konu hakkında yazamıyorum malesef. Fakat konu ile ilgili bilgi almak isterseniz Burak Selim Şenyurt hocamızın kişisel blogunda veya makalelerini yayınladığı web sitesinde bu konuda ki yazılarını bulabilirsiniz.

C# 4.0 konusunda ise aklımda kalan dinamik değişken tanımlama (Dynamic Type) ve opsiyonel parametre (Optional Parameters) özellikleri oldu.

IE 8 Toolbar Geliştirme oturumunda ise aslında açık kaynaklı bir framework`den bahsedildi; SpicIE. SpicIE sayesinde IE 7 ve IE 8 için kendinize özel toolbar`lar geliştirebiliyorsunuz. Çalışmanızı da tamamen C# veya VB ile yazabiliyorsunuz. SpicIE framework 2.0, 3.0 ve 3.5 desteğine sahip.

Evet yeterince uzun bir yazı oldu sanırım :) daha fazla uzatmayayım artık. Aklıma gelmeyen özellikler varsa siz yorumlarınızda belirtirseniz sevinirim,  sağlıcakla kalın.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir