Biz yazılımcılar genelde
admin panelinde görsel öğelere pek önem vermeyiz. Bunun yerine veri
tabanımızdaki her veriye hızlıca ulaşabilmek ve anında düzenleme yapabilmek
isteriz. İş böyle olunca sadece yönetici için bir sürü kod yazmak gerekiyor.
Bir kişinin kullanacağı bir panel için bu kadar kod yazmayı kimse istemez işin
açıkcası, neticede bir ihtiyaç yazılması gerekiyor... Peki o zaman şimdi .Net
4.0 ile gelecek olan bir şablonu inceleyelim, anında admin paneli oluşturma
nasıl oluyormuş görelim...

Yeni bir web projesi eklemeye
kalktığımızda yukarıdaki şablonlaru görüceğiz. En altta iki seçenek biraz önce
bahsettiğimiz şablon. İkisi arasında çok bir fark yok işin açıkcası, sadece
veri tabanına bağlanış ve verileri çekiş kısmı arka planda farklılık
gösteriyor. İleri seviye kullanıcılar için, kod yazılması gerektiği durumlarda
bu önem arz ediyor. Onun dışında sadece hızlıca bir admin paneli yada herkese
açık bir panel düşünüyorsak çokda önemli değil. Ben burda Dunamic Data Linq to
Sql Web Site 'yi seçeceğim. Onay verdikten sonra projemde aşağıdaki resimde de
gördüğünüz gibi nesneler oluşucak, buraya kadar normal bir web sitesi gibi
gözüküyor.

Projemiz üstünde sağ tuşa
basıp add new item komutunu vererek resimdede gördüğünüz gibi bir linq to sql
nesnesini projemize ekleyeceğiz. Eğer projemizi oluşturma kısmında alttakini
seçmiş olsaydık, linq to sql yerine ado.net entity data modelini kullanacaktık.

Linq to sql nesnemizi
ekledikten sonra veri tabanımızdan tablolarımızı Server Explorer ile linq to sql'in içine sürükleyip bırakıyoruz.

Tablolarımızı yani Linq to
Sql nesnemizin yani oluşturduğumuz adı ile DataClasses1 'in içine sürükleyip bıraktıktan
sonra aslında işin büyük kısmı bitmiş oluyor. Şimdi geriye sadece Global.asax dosyamızın
içerisindeki ufak bir değişiklik kalıyor. Yorum satırları içerisine yazılmış
olan...
//DefaultModel.RegisterContext(typeof(YourDataContextType),
new ContextConfiguration() { ScaffoldAllTables = false });
satırını öncelikle başındaki
slaşları kaldırarak yorum olmaktan çıkarıyoruz, daha sonra aşağıdaki gibi
değiştiriyoruz.
DefaultModel.RegisterContext(typeof(DataClasses1DataContext), new
ContextConfiguration() { ScaffoldAllTables =
true });
Yaptığımız değişiklik şu
birincisi veri modelimizin ismini belirttik DataClasses1DataContext,
ikincisi satırın sonunda false olan değeri true yaptık. İşte sitemizin tasarım
kısmı bu kadar...
Ne ? Olmazmı öyle şey ? Peki
o zaman projeyi derleyip çalıştırın ve görün :)

Gördüğünüz gibi bütün
tablolarım sitemin içerisine gelmiş, şimdi birde tabloların içeriğine
bakayım...

Tablomun içeriğinde hangi
datalar varsa hepsini uygun formatlarda listeledi. Örneğin bit değerleri check
box koyarak, içerikleri text şeklinde gösterdi. Şimdi altını çizdiğim kısım
bizim kod yükümüzün hepsini azaltarak bize yardımcı oluyor.
Edit linkine basarsak o
satıra hiç kod yazmadan çok basit bir şekilde düzeltme işlemi uygulayabiliyoruz.
Delete linki adında anlaşılacağı gibi direk silme işlemi yapıyor. Details kısmı
ise içeriğin daha detaylı bir şekilde tek olarak gözükmesini sağlıyor, yani
listelenmiş datalar içinde değilde sadece o satırın detaylı bir şekilde geniş
geniş gözükmesini sağlıyor. Benim tablomda relationship'ler yok aslında ama
şayet tablolarım birbirine bağlı olmuş olsaydı burda bağlı olan kısmıda
görebilecektik. Ve çok kolay bir şekilde ilişkili tablolar arasındaki ortak
verileri görebilecektik. En altta ise insert new item seçeneğini kullanarak
aşağıdaki gibi yeni bir veri
ekleyebiliyoruz

Gördüğünüz gibi hızlı
verilerimizi hızlı bir şekilde sitede işlenebilir hale dönüştürdük. Ben bu
admin panelini bir haber sitesi için oluşturdum. Burada gördüğünüz kontrollerin hepsi değiştirilebilir, örneğin
textbox yerine combox konabilir yada standart olarak ingilizce gelen başlıklar
düzenlenerek türkçe yapılabilir, genişlikler yükseklikler tek tek
ayarlanabilir. Yani geniş bir esnekliğe sahibiz. Hazır bir web site yapmak hiç
bu kadar kolay ve işlevsel olmamıştı. Tabiki unutmamak gerekir, bunu Visual
Studio 2010 beta 2 ile gelen kontroller ve şablonlar sayesinde yapabildik. 2010
tam sürüm olduğu zaman bu kullandığımız kontroller ve nesneler değişiklik
gösterebilir, ama neticede bu değişimler artı yönde olacağı için geleceğin
teknolojisini bu günden takip etmek lazım... Herkese iyi çalışmalar...
Mehmet Bilen |
enver_emb@hotmail.com | http://MehmetBilen.Com
The file '/Widgets/Contact/Widget.ascx' does not exist.