ASP.NET 2.0 Yenilikleri
03.02.2006 16:12
- Giriş
- Master Pages
- Veri kaynakları
- Veri Kontrolleri
- ASP.NET 2.0’ın SQL Server 2005 ile Konfigrasyonu
- Ön Bellekleme
- Web Site Administration Tool
- Üyelik Servisleri
- Profile
- Veri Tabanlı Site Navigasyonu
Giriş
Microsoft, .Net teknolojisini duyururken bu gelişimin 10 yıllık bir süre olduğunu ve 3 fazdan oluştuğunu bildirmişti.
İlk faz 2002 senesinde .Net Framework 1.0 sürümünü piyasaya sürerek gerçekleştirdi ve web programcılarının artık “web uygulamaları” geliştirmesine olanak tanıyan User Controls, Web Servisleri gibi bir çok yenilik getirdi. 2003 senesinde .Net Framwork’ün 1.1 sürümünü ve Visual Studio 2003 ü piyasaya sürdü.
İkinci fazda ise 2005 senesinde .Net Framework 2.0 ile birlikte Visual Studio 2005 ve SQL Server 2005 i piyasaya sürdü. Bu yeni sürüm ile birlikte ASP.NET teknolojisindede devrim niteliğini taşıyan Master Pages, Membership servisleri gibi yenilikler bu yazımızın konusunu oluşturuyor.
Üçüncü faz ise tarihi kesin olmamakla birlikte Windows Vista ile birlikte piyasaya sürülüp .Net in 10 yıllık gelişim vizyonu tamamlanacak.
Master Pages
.Net Framework 2.0 ın sağladığı olanaklarıdan bir tanesi de “partial class” lardır. Özet olarak artık eskisi gibi bir class ı bir dosyada yazmak zorunda değiliz. Projemizde oluşturduğumuz herhangi bir class ı tanımlarken partial önekini kullanarak bir den fazla dosyaya classımızı oluşturabiliriz. Windows uygulamalarında Form Controlleri Form1.Designer.cs isimli dosyada tutulurken, İş mantığı ile ilgil kodları ise Form1.cs isimli dosyada tutulabiliyor.
Partial Class’ın sağladığı bu imkan ise Web Uygulamalarımızda “Şablon” sayfalar tasarlamımıza olanak sağlıyor. MasterPage teknolojisi bir Master sayfa ve bu sayfada içine gömülecek içeris sayfalarındandan oluşmaktadır. Master sayfasının uzantısı .master, içerik sayfaların uzantısı ise .aspx olacaktır.
İçerik sayfa çağırıldığında master sayfa ile birleştirilip çıktı oluşturulur. :

Master sayfalarında bir – yada birden fazla - ContentPlaceHolder bulunur içerikler bu kontrolün bulunduğu yerde görüntülenir.
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server"> </asp:contentplaceholder>
İçerik sayfalarında Sayfa özellikleri MasterPage isimli özellikte hangi master sayfanın formatında görüntüleceği belirlenir.
<%@ ... MasterrPageFile="~/sablon.master" ... %>
İçerik sayfalarında HEAD ve TITLE bilgileri bulunmaz. Bu özellikler master sayfalarından miras alınır. İçerik sayfalarının TITLE’ı farklı olabilir. Bunu yine içerik sayfala özelliklerinden değiştirebiliyoruz
<%@ ... title="Ana Sayfa" ... %>
İçerikler Content isimli kontrolün içinde bulunur ve master sayfadaki ContentPlaceHolder a referans verilir.
<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
... <h3>Burası Anasayfa</h3>...
</asp:Content>
Veri kaynakları
SqlDataSource : SQL Server veritabanlarına bağlanmak için oluşturulmuştur.
ObjectDataSource : DataSet gibi veri kaynaklarına bağlanmak için kullanılır.
AccessDataSource : MDB uzantılı Access veritabanına bağlanmak için kullanılır.
XmlDataSource : XML belgelerine direk bağlantı sağlar.
SiteMapDataSource : Yine ASP.NET 2.0 ile gelen yeniliklerden TreeView menüsünü xml formatında bulunan SiteMap e bağlamak için kullanılır.
Veri kaynaklarında parametre eklemek için kod yazmanıza yine gerek kalmıyor. Parametreleri Cookie, Control, Form, Profile, QueryString ve Session dan direk almanıza olanak sağlıyor.
Not : Veri kaynaklarını başka bir makalede ayrıntılı olarak inceleyeceğiz.
Veri Kontrolleri
Veri kontrollerinde dikkatimizi çeken ilk özellik DataGrid in kaldırılmış olması. Artık DataGrid in yerine GridView isimli oldukça kullanışlı bir kontrolü kullanıyor olacağız. Insert, Update ve Delete Stored Procedure’leri hazır olan bir tablo ya bağlayıp tek satır kod yazmadan veri ekleme, güncelleme, silme, sıralama, sayfalama işlemlerini yapmak mümkün.
Veri kontrollerindeki yeniliklerden biride DetailsView. Master-Detail kayıtları ObjectDataSource kullanarak yine kod yazmadan görüntülemeniz mümkün.
FormView ise verileri Tablo şeklinde değilde başlıklar sağ tarafta olacak şekilde Form formatında görüntüleyebiliyorsunuz.
ASP.NET 2.0’ın SQL Server 2005 ile Konfigrasyonu
ASP.NET 2.0’ın SQL Server 2005 ile Konfigrasyonu sağlamak için Command Prompt’tan aspnet_regsql.exe nin çalıştırıması gerklidir. Bu komut çalıştırıldığında SQL Server 2005 te aspnetdb isimli bir veritabanı oluşturacak ve bu veritabanında IIS üzerinde bulunan her sitenin ÖnBellekleme, Üyelik Bilgileri ve Profile bilgileri tutulmaktadır.
ASP.NET 2.0 uygulamanın SQL Server ile tümleşik çalışabilmesi için web.config e aşağıdakı satırların eklenmesi gerekmektedir.
<connectionStrings>
<remove name="LocalSqlServer" />
<add name="LocalSqlServer" connectionString="server=(local);database=aspnetdb;Integrated Security=true;" />
</connectionStrings>
Ön Bellekleme
Web uygulamalarının yapısı itibariyle veritabanı sürekli bağlı olan ( connected ) bir uygulama geliştirmek mümkün değil. Sayfa her çağrıldığında veritabanı bağlantısı açıp kapanmak zorunda. Buda sık güncellenmeyen bilgilerin görüntülenmesi sırasında web uygulamamızın performansını düşüren bir etken. ASP.NET 1.0 ın bellekleme özelliği bunun önüne geçmek mümkündü ancak 2.0 da bunu yapmak artık çok basit. Yapmamız gereken veritabanımıza bağlantı sağlayan SqlDataSource objemizin CacheDuration özelliğine saniye cinsinden değer girmek. 60 girdiğimizi varsayarsak ASPX sayfamız dakikada 1000 kere çalıştırılsada veritabanımıza sadece 1 kere bağlanmış olacak.
Not : SQL Server 2005 Konfigrasyonu gerektirir.
Web Site Administration Tool
ASP.NET 1.0 da uygulamanın yetki modunu web.config dosyasındaki authentication etiketinin mode özelliği ile belirliyorduk.
<authentication mode="Windows | Forms | Passport "/>
Aynı yöntem 2.0 da da geçerli ancak bunu yapmak için web.config içerisinde kaybolmaya gerek artık gerek yok.
Visual Studio 2005 te WebSite -> ASP.NET Configration menüsünü izlediğimizde karşımıza gelen yönetim panelinde Dosya ve klasörlerin yetkilerini belirleyebilir, site üyelikleri ve rolleride yönetebilirsiniz. Ayrıca uygulama içinde kullanılacak kullanacağı Name-Value değerlerini ( Application Settings ) , SMTP ayarlarını bu arabirimle belirlemeniz mümkün.
Not : SQL Server 2005 Konfigrasyonu gerektirir.
Üyelik Servisleri
Web uygulamaların rutinleşen işlemlerden biride üyelik mekanizmalarıdır. ASP.NET 2.0 üyelik sistemleri için çok zengin kontroller sunmaktadır.
Login : Kullanıcı Adı ve Parolası için iki TextBox bulunan oldukça kullanışlı bir kontroldür. Özellikler menüsünden bir kaç tık ile “Beni Hatırla CheckBox”ı eklemek ve “Yeni Hesap Oluştur” linki eklemek mümkün.
LoginView : Kullanıcının yetki durumuna göre farklı görünümler elde etmek kullanılır. Örneğin kullanıcı Login değilse “Merhaba Misafir”. Kullanıcı Login ise “Merhaba [Ad Soyad]” şeklinde mesaj görüntüleyebilirsiniz.Web Site Administration Tool ile belilediğiniz Rollere görede çıktı üretebilirsiniz.
PasswordRecovery : Kullanıcını şifresini değiştirmesine imkan sağlar.
LoginStatus : Kullanıcının Login/ Logout işlemleri için link oluşturur. Login/Logout text veya imajlarını istediğiniz gibi değiştirmeniz mümkün.
LoginName : Kullanıcı Adını görüntüleyebilmenizi sağlar.
CreateuserWizard : Kullanıcının yeni bir kullanıcı hesap açması için bir form oluşturur. Formda bulunan alanlar UserName,Password, Confirm Password, E-mail, Security Question, Security Answer. Formdaki her yazıyı özelleştirmek mümkün. Ayrıca “Password Policy” uygulanmakta. Kullanıcı parolasını seçerken sayı ve rakamlar dışında alfa-nümerik bir karakterde bulundurmak zorunda. Örnek Pa$$w0rd!
Sonuç olarak tüm bu kontrolleri kullanarak zahmetsizce üyelik işlemlerini yönetebilirsiniz.
Not : SQL Server 2005 Konfigrasyonu gerektirir.
Not 2 : Kullanıcıdan üyelik formundaki alanların dışında bi bilgi isteniyorsa Profile kullanılır.
Profile
Kullanıcıdan üyelik formundaki alanların dışında bi bilgi tutulacaksa web.config içinde system.web etiketi içerisinde te profile tanımlanabilir.
<profile>
<properties>
<add name="TCKimlikNo" type="String" />
</properties>
</profile>
Uygulamanın herhangi bir yerinden Profile içinde tanımlanan bu özelliğe ulaşmak oldukça basit :
Değer atamak için :
Profile. TCKimlikNo = TextBox1.Text
Mevcut değeri okumak için
Label1.Text = Profile. TCKimlikNo
Not : SQL Server 2005 Konfigrasyonu gerektirir.
Veri Tabanlı Site Navigasyonu
Herşeyden önce site navigasyonu sağlamak için Web.sitemap isimli XML formatında bir dosya oluşturmak gerekiyor.
Örneğin :
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode>
<siteMapNode title="Anasayfa" url="~/Anasayfa.aspx" />
<siteMapNode title="Urunler" url="~/Urunler.aspx" />
<siteMapNode title="İletişim" url="~/Iletisim.aspx" />
</siteMapNode>
</siteMap>
Bu dosyadaki link bilgileri görüntülemek için öncelikle uygulamaya SiteMapDataSource eklemek gerkiyor.
SiteMapDataSource’u bağlayabileceğimiz iki kontrol mevcut :
TreeView : Ağaç Menü yapısında görüntülenmesini sağlar.
SiteMapPath : “Ekmek kırıntısı” dediğimiz Kategori > Alt Kategori > Ürün şeklinde yan yana dizilmek suretiyle görüntülenmesini sağlar.
Bu yazı 1115 kere okundu.
Yorumlar
| orhan gencer | |
| 09
May 2010 |
merhabalar.. size birşey danışmam lazım...visual studi 2008 de çalışıorum... ben şu anda otel yönetim ve rezervasyon sitesi yapıorum proje olarak... yönetim kısmında 3 farklı kullanıcım var..supervisor, resepsiyonist ve restaurant çalışanı... şimdi ben bir de sitemap oluşturdum ama oluşturduğum three view da kısıtlamalar yapmak istiyorum..mesela resepsiyonist ise restaurant k ısmına giremeyecek... rol belirleme kısmını ASP.net Configuration kısmından yapmadan nasıl yapabilirim bunu... |



