İlk Konumuz Web kavramları ve ASP.NET'E Giriş;

- Microsoft'un .NET Çatısı;
Microsoft'un interneti göz önüne alarak hazırladığı bir platformdur. .NET yeni teknolojilerden oluşan bir çalışma ortamıdır. .NET platformunu iki başlık altında inceleyebiliriz.

1. .NET Framework
2. .NET Dilleri
NET Framework;

Microsoft .NET Framework teknolojisi Web servislerinin ve Web uygulamalarının geliştirilmesi ve çalıştırılması için kullanılan açık internet protokolleri ve standartları, üzerine kurulmuş, çok geniş olanaklar sunan bir platformdur. .NET Framework ASP.NET geliştirme ortamı için gerekli olan bir teknolojidir. ASP.NET destekleyen temel hizmetleri de sunmaktadır. .NET Framework platformu iki bölümde inceleyebiliriz.

Bunlar Sevgili Acemiler. Biz üyeleri;

1. CLR ( Common Language RunTime)
2. .NET Sınıf Kütüphanesi

Acemiler için bir NOT: .NET Framework CLR ve .NET sınıf Kütüphanesini Kapsar. Yani içindedir. Ayrı bir platform değildir.

CLR Ortak Dil Çalışması;

CLR ( Common Language RunTime) .NET Framework’ün en önemli bileşenidir. Bütün .Net dilleri birlikte çalışan bir ortamdır. CLR .NET Framework uygulamaları için bir çalışma motorudur. CLR, .NET Framework içinde .NET dilleri ile yazılmış program kodlarını yönetir ve bu kodların çalıştırılmasını sağlar. CLR, nesnelerin etkin süresini yönetimini ve güvenliğini sağlar. Nesnelerin belleğe aktararak çalıştırır.
Program yazıldıktan sonra her derleyici yazmış oldukları kodları. IL (Intermediate Language) ya da MSIL diye adlandırılan bir dilde derlenmesini sağlarlar. .NET dillerinin başlıcaları olan C# ve VB.NET programları da IL dili ile derlenir.

Yine Acemiler için Not: VB.NET Program Kodları VB.NET Compiler (derleyici) ye gönderilir, C# Program Kodları C# Compiler'e. Hepsi IL yani (Intermediate Language) oradan da CLR (Common Language Runtime) yani Genel Dil Çalışma Zamanı'na gönderilir. Minik bir şema yaparsak.

Acemiler.Biz üyesi > VB.NET > VB.NET Compiler > IL > CLR = Program.

CLR, ihtiyaç duyulan sınıfları ve metadata bilgilerini saklar. CLR sayesinde .NET platformunda yer alan bileşenler istenildiği kadar güncellenebilir ve bir bileşenle ilgili birden fazla sürüm yüklenebilir. CLR bir çok dil üzerinde hata ayıklaması gerçekleştirerek hata oluşmasını en aza indirger.

IL koduna derleme işleminin yapılması için JIT( Just in Time) derleyiciler kullanılır. Ayrietten Sevgili Acemiler.Biz üyeleri sadece bilginiz olsun diye ve JIT hakkında fikrini olsun diye söylüyorum. JIT işletmelerde de kullanılır. Tam Zamanında ve Yerinde üretim demektir.

Bütün .Net kodları IL'e dönüştürülmektedir. CLR aynı zamanda nesneye yönelik bir çok kavramı destekleği gibi nesnelere ait özellik, sınıf özellikleri ve olayları da destekler.


.NET Sınıf Kütüphanesi;

.Net sınıf kütüphanesi, bir çok dil ve farklı platformlar arasında desteklenmektedir. Çok iyi organize edilmiş bir sınıf kütüphanesidir. Bu sınıf kütüphane hazırlanan Web uygulamalarına hemen eklenebilen pek çok fonksiyondan oluşmaktadır.

.NET sınıf kütüphanesi uygulama geliştiricileri desteklemek için yapılmıştır.Geliştiriciler kendi uygulamalarını geliştirmek için basit ve çok işlevli sınıflar yer almaktadır. Bu sınıflarda verilere erişim sağlayan, ortak veri tiplerini destekleyen ve ağ işlemlerini kapsayan pek çok çözüm bulunmaktadır. .NET sınıf kütüphanesine teknolojilerin başlıcaları;

- ADO.NET | Veri Erişimi yani sevgili acemiler bir den fazla farklı veri tabanlarından verileri çekerek bir yerde kullanmak için iler seviye bir dildir.
- Web Formları | Belki böyle yazınca acaba ne diyorsunuz ama şöyle yazsam. ASPX evet bir çok sitede gördüğünüz default.aspx sayfaları web formlarıdır.
- XML | Sanırım bunu açıklamaya gerek yok. Herkes biliyor.
- Dosya I / O

.NET DİLLERİ;

..NET teknolojisinde genellikle VB.NET , C# dilleri kullanılmaktadır. VB.NET ve C# dilleri birbirinden oldukça benzemektedirler. Bütün .NET dilleri değişkenler ve veri tipleri aynıdır. (Boleon , String gibi)

VB.NET ve C# dilleri genel dil çalışma zamanı (CLR) tarafından yönetilmektedir. .NET çatısı altında bu iki dil dışında çok kullanılmasa da aşağıda ki vereceğim listede ki diler de kolayca kullanılmaktadır. Bu tam liste değil sevgili acemiler üyeleri bir kısmını yazıyorum;

- COBOL
- APL
- PASCAL
- EIFFEL
- PERL
- PYTHON
- ML
- SCHEME
- SMALTALK
- Bir de ACEMİCE :) ("Şaka tabi yok böyle bir dil")

Zaten geliştirme araçları ile ilgili bilgiyi ilkyazımda verdim. Ama proje geliştirecekler için bir kez daha tekrar ediyorum. Visual Studio.NET Projelerin Güvenliği, Hata Ayıklaması ve Tasarımda güçlü XML desteğinin olması oldukça yararlı bir editör haline getiriyor.

Derslerin devamı SanalKurs.NET Ve QRESELTech.Com Adreslerinden Takip Edebilirsiniz...

Ders'e başlamadan önce belirtmek isterim forum'dan bana aklınıza takılan soruları sorabilirsiniz. Fakat Google'da , Live Search'de veya YAHOO! Search'de arandığında birinci sırada çıkan sorular olursa cevaplamayabilirim. Kimse alınmasın ama bizimkiler biraz tembeller. Herşey ellerinin altına gelsin istiyorlar. Sitemimide yaptıktan sonra derse başlayabiliriz :)

Baştan belirteyim hemen ASP.NET, .NET platformunda çalışan sunucu taraflı bir Teknolojidir. ASP.NET istemcilerden yani aspx uzantılı sayfaları gezen ziyaretçilerden gelen isteklere dinamik olarak cevap vermektedir. Dinamik olarak cevap vermek ne? diye sorarsanız. Her ziyaretçiye kendi, seçimlerinin sonucunda bir sayfa gösterilmesi gibi.

ASP.NET daha öncede anlattığım gibi tamamen nesneye yönelik .NET dillerini kullanmaktadır. Örneğin; VBScript , C# gibi. ASP.NET kodları aspx uzantısı ile kaydedilmektedir. ASP.NET uygulamaları birden fazla sayfadan meydana gelmektedir. ASP.NET ile yaptığımız web sayfaları bellekteki ayrı kaynakları kullanırlar. Bu yüzden bir web sayfasının uygulaması, başka bir web sayfası uygulamasından bağımsızdır.

ASP.NET'in kullanılabilmesi için en yaygını ve en çok kullanılan Microsoft harikası İnternet İnformation Server yani IIS veya PWS gibi farklı bir web server kurmanız gerekmektedir. IIS adını daha çok duyacaksınız şimdiden aklınızın bir köşesine koysanız iyi edersiniz. Şu an IIS’ ın son versiyonu IIS 6.0'dır.

Kısaca IIS, Web Tarayıcısı (İstemci) , ASP.NET arasında ki ilişkiyi açıklayacak olursak.

Web Tarayıcısı yani istemci IIS'a istek de bulunur. IIS sayfanın uzantısı aspx ise bu istediği ASP.NET'e iletir. ASP.NET kodları yorumlar ve IIS'e iade eder. IIS'de ASP.NET'ten gelen kodları web tarayıcısına salt HTML kodları olarak geri çevirir. Buradan neyi anladık? ASP.NET kodlarının sayfanın kaynağında gözükmediğini.

ASP.NET'in Özelliklerini Şu Şekilde Sıralayabiliriz;
- Dinamik Web Uygulamaları Geliştirilmektedir.
- .NET Framework platformunun çok önemli bir bölümüdür.
- Web uygulamaları çok kısa bir zamanda geliştirilebilmektedir.
- Uygulama geliştirmekte birçok dil kullanılabilmektedir.
- Uygulama geliştirmede içerik ve kod bir birinden farklı dosyalarda yer alabilir.
- Yazılan kodlar hemen derlenebilmektedir.
- Nesneye yönelik programlama yapılabilmektedir.

 

Web Server kontrolünün önemli bir özelliğini ise bilgi giriş kontrolü yapan Validation kontrolleri oluşturur. Web form üzerindeki kontrollere istediğimiz bilgilerin; istediğimiz format ile girilmesi kontrolüne Validating denir. Bu yapı sayesinde oluşabilecek hatalar en aza indirgemiş oluruz.

WEB FORM ÜZERİNE VALİDATİON KONTROL EKLENMESİ

Validation kontrol eklenmesi ToolBox üzerinden sürükleyerek ; input kotrol yanına getirmek süretiyle yapılır. Daha sonra validation kontrolün Properties penceresinden kontrol edeceği Input Kontrolün ID'si seçilir. Bir input Kontrole birden çok validation kontrol atanabilir.

Type ve EnableClientScript özellikleri özel durum taşır.

Type: Veri tipi validating işlemine tabi tutulacak ise ControlToValidate'den kontrol seçilince; veri tipi Properties kısmındaki Type bölümünden seçtiğimiz veri tipine göre, otomatik olarak kontrol edilir. Özel bir tanımlamaya ihtiyaç yoktur.

EnableClientScript: EnableClientScript özelliği True olursa Client-Side validation çalışır. Varsayılan olarak True özelliğindedir. ASP.NET ; client-Side validation'ı Jscript ile Server-Side validation'ı C# veya Vb içinde oluşturur.

VALIDATION GENEL ÖZELLİKLER

Display: Eğer birden fazla validation kontrol eklenecekse; bu Display seçeneğinin Dynamic olması gerekir. Validator'ın bu özelliği sayesinde; yanyana eklenmiş validator'ların hemen input kontrolün yanında çıkması sağlanır. Statik olursa; nerede koymuş isek, orada çıkar. Default olarak Display özelliği Static'tir. Aynı kontrol içinde birden fazla validator kullanıldığı zaman, Dynamic özelliğine çevirmeyi unutmayınız. None kullanılırsa error mesajı için blok koyar.

Error Message: İki şekilde çıkartılır. Birincisi; Validator'un ErrorMessage kısmına, ikincisi de Text kısmına yazarak. ErrorMessage kısmına yazılmış bir mesajın hata durumunda görünmesini istiyorsak; Text kısmını boş bırakmamamız gerekir. Her ikisinde de yazı varsa; text kısmına yazdığımız hata durumunda görüntülenecektir. ErrorMessage ayrıca ValidationSummary validator'ı kullandığımızda gereklidir. Orada bu mesaj görüntülenir. Onun için biz, normal mesajları Text kısmına yazalım.

REQUIRED FIELD VALİDATOR

İki amaçla kullanılır: Birincisi; bu alanın boş geçilmesini engeller. Bunun için ControlToValidate kısmından Input kontrol seçilir ve ErrorMessage kısmına veya Text kısmına boş bırakıldığı zaman; hangi mesajın çıkması isteniyorsa o yazılır.
Diğer kullanım amacı ise; herhangi bir değerin girilmesini engellemektir. Bu kullanım için InitialValue kısmına girilmesi istenmeyen değer yazılır. Eğer bu değer girilirse; hata mesajı karşımıza çıkar. Bu durumunda boş olup- olmadığı kontrol edilmez.

Şimdi uygulamamıza geçelim:

Çalışmalarımızı VisualStudyo2005 te yapacağız. VisualStudyo2005'i açıyoruz, Create Web Site diyoruz.



Sonra açılan sayfada ASP:NET web site seçeneğini seçiyoruz ve dil olarakta C# ı seçiyoruz. Sonra tasarım sayfamız acılıyor buradan design kısmına geçiyoruz.





Şimdi sıra nesnelerimizi eklemede birer tane textbox, buton ve REQUIREDFIELDVALİDATOR ekliyoruz. REQUIREDFIELDVALİDATOR
Eklemek için toolbox-validation-REQUIREDFIELDVALİDATOR

Sonra REQUIREDFIELDVALİDATOR nesnemize tıklayarak propertis kısmında errormessage kısmına nesnemizin boş bırakıldığındaki gözükmesini istediğimiz yazıyı yazıyoruz ben "bu alanı bos bırakamazsınız!" yazdım.

Ve controltovalidate kısmını textbox1 yapıyoruz çünkü bilgi girişini textbox1 den yapacağız.

Butonumuzun ismini değiştirmek isterseniz gene butona tıklayarak Properties'ten text kısmından butonumuzun ismini değiştirebilirsiniz



İşlemlerimiz bittikten sonra start debug veya f5 kısayolunu kullanarak çalışmamızı test ediyoruz ve çalışmamızın son hali



RANGEVALIDATOR

Belirlenen bir aralıkta değer girilmesini kontrol eder. Örneğin; bir tarih veya sayı aralığı ile veri girişini sınırlamak isterseniz, tercih edeceğiniz bir yöntemdir.

Özellikleri :

MinumumValue: Belirlenen aralıkta başlangıç değeri bu alana yazılır.
MaximumValue: Belirlenen aralıktaki bitiş değeri bu alana yazılır.

Type: Kullanılacak aralık için veri tipi seçilir. Eğer iki tarih arası ile bilgi girişini sınırlamak istiyorsanız date veri tipi seçmeniz gerekir.

Toolboxtan 1 er adet textbox,button,ve rangevalidator alıyoruz
Controltovalidate yi textbox1

Minimum value ile maximum value yi belirliyoruz ben burada tarih kullandım.

Minumum değere 01.01.1990 maximum değere ise 31.12.2007 yazdım
Tabiî ki isterseniz buralarda tarih dilde başka değerler kullanabilirsiniz bu size kalmış.

Ben tarih kullandığım için type yi date yaptım errormassage kısmına istediğiniz bir msj ı yazabilirsiniz ben "1990-2007 arası bir tarih giriniz" yazdım:




Bu işlemleri yaptıktan sonra f5 yapıyoruz ve sonuç:
REGULAREXPRESSİONVALIDATOR

Veri girişinde belli biçimler kullanılmasını sağlar. Örneğin e-mail adresinde kullanılan @ ve nokta işaretinin kontrolünü yapmak, bu validator'ın görevidir. ValidationExpression kısmından uygulanacak format seçilir. Burada e-mail, web sitesi, telefon numarası ve posta kodu gibi hazır kalıplar vardır.

Yine 1'er tane textbox, button ve regularexpressionvalidator nesnesini formumuza ekliyoruz
Sonra validationexpression kısmından internet e-mail adres i seçiyoruz controlvalidatesini textbox1 yapıyoruz erromessageye ıstedıgımız bi hata bildirim msj ı yazıyoruz ben "lütfen gecerli bir e-mail adres yazınız" yazdım



Sonra f5 basıp sonucu goruyoruz

COMPAREVALIDATOR

Değer kıyaslaması için kullanılır.

Input kontrolü içindeki değeri kıyaslar. Bunun için ControlToCompare kısmından hangi Input kontrolü ile kıyaslanacağı seçilir ve iki input kontrol içinde aynı değer olmaması durumunda hata mesajı çıkar.

ValueToCompare içine girilen değere bakar. Eğer bu değer; input kontrole girilmez ise hata mesajı verir.

Bu tür özel değerler için Type kısmından veri tipi veya Operator kısmından kullanılacak kıyaslama değeri seçilebilir.

Bu sefer bir değişiklik yapıp 2 tane textbox ekleyelim çünkü girilen 2 değer arasında kıyaslama yapıcaz gene meşhur button umuzuda eklemeyi ihmal etmeyelim.

Bir tane de comparevalidator ekleyelim.

Sonra comparevalidatore tıklayıp propertis denetcisine girelim
Controltocompare kısmına textbox1 controltovalidate kısmına ise textbox2 yapalım.

Operator kısmı equal kalsın errormessage kısmına istediğiniz bir hata mesajı yazın, ben "girdiğiniz değerler aynı değil" yazdım.



Sitelere üyelık formlarında veya başka bir yerde mutlaka görmüşsünüzdür e-mail / e-mail tekrar yazınız gibi seyler işte o kontroller asp.net'te bununla oluyor.

İşlemleri bitirdikten sonra f5 yapıyoruz. İşte sonuç:



Bu yazdığım 5 ders ASP.NET in inceliklerinden sadece bir kaçı inşallah her seyi tam olarak aktarabilmişimdir, ama sizden ricam direk 5. dersten başlamayın 1.derste her seyi daha açık anlattım giriş niteliği taşıdığı için sonra gelen derslerde ise 1. dersin devamı niteliğindedir.