İnternet Tabanlı Programlama Dersi 6. Ünite Özet
Asp:Net İle Dinamik Web Kodlama
- Özet
- Sorularla Öğrenelim
Giriş
.NET Framework, içinde birçok teknolojiyi barındıran Microsoft firmasına ait bir uygulama geliştirme platformudur. ASP.NET ise bu platformun bir parçasıdır ve web uygulamaları geliştirmek için kullanılmaktadır. Microsoft sunucu teknolojilerini kullanan geliştiricilerin birinci tercihinin ASP.NET platformu olduğu söylenebilir. Aynı PHP’de olduğu gibi ASP.NET uygulamaları da bir sunucu üzerinde çalıştırılmakta ve bu uygulamanın ürettiği web sayfaları (HTML, CSS ve JavaScript) istemcilere (internet tarayıcılarına) sunulmaktadır.
ASP.NET
ASP.NET öncesinde ASP programlama dili bulunmaktaydı. ASP programlama dili de Microsoft tarafından geliştirilmiş ve ASP.NET gibi IIS üzerinde çalışan sunucu temelli bir programlama diliydi. ASP, sadece vbscript adı verilen bir programlama dili ile yazılmaktaydı. Geçmişte uzun seneler kullanılmış olmasına rağmen, günümüz koşullarında ASP’nin oldukça ilkel bir dil olduğu söylenebilir. Hali hazırda ASP’nin kullanımı tamamen terkedilmiştir. ASP ile ASP.NET dilleri isim benzerliği olmasına rağmen aslında tamamen farklı programlama dilleridir. Microsoft .NET Framework, Microsoft tarafından geliştirilmiş bir uygulama geliştirme platformudur. .NET Framework’ün geliştirilmesinde en önemli nokta, geliştirilen yazılımların her türlü işletim sistemi ve donanım üzerinde çalışabilir olmasıdır. Bir başka deyişle. NET Framework; işletim sistemi ve donanım ile çalışan yazılım arasında bir ara katman olarak devreye girmektedir.
Kurulum
ASP.NET uygulamalarını çalıştırabilmek, test edebilmek veya yayınlayabilmek için öncellikle işletim sistemi üzerinde IIS yazılımının çalışıyor olması gerekmektedir. IIS yazılımı hem Microsoft Windows Server hem de Microsoft Windows işletim sistemlerinde bütünleşik olarak bulunmaktadır. Microsoft Windows 10 işletim sisteminde IIS’i kurmak için Denetim Masasındaki “Program kaldır veya değiştir” penceresi açılmalıdır. Bu pencerenin solunda bulunan “Windows özelliklerini aç veya kapat” bağlantısı tıklanarak Windows Özellikleri penceresi açılmalıdır. Bu pencereden Internet Information Services onay kutusu işaretlenerek tamam düğmesine tıklanmalıdır. İşlem tamamlandığında IIS kurulmuş ve çalışır duruma gelmiş olacaktır. Denetim
Masası/Yönetimsel Araçlar/Internet Information Services (IIS) Yöneticisi açılarak IIS ile ilgili ayarlamalar yapılabilir. Son olarak ASP.NET uygulamalarını geliştirmede kullanmak üzere Microsoft Visual Studio bütünleşik geliştirme ortamına ihtiyaç vardır.
C# Programlama Dili
ASP.NET ile kullanılan en popüler dil C# programlama dilidir. C# programlama dilinin söz dizimi C, C++, Java, PHP, JavaScript gibi diğer popüler programlama dilleri ile oldukça benzerlik göstermektedir. Bu bakımdan benzer bir programlama dilini bilenlerin C# dilini öğrenmeleri oldukça kolay olacaktır. C#’ın C ve C++ programlama dillerine göre daha kolay kullanılabilen bir dil olduğu söylenebilir. Bunula birlikte C# oldukça güçlü bir programlama dilidir ve C++ ile yapılabilecek hemen hemen her şey C# ile de yapılabilir. C# programlama dili .NET platformu için sıfırdan geliştirilmiştir ve bu platformun tüm özelliklerini kullanabilir. C# ile masaüstü uygulamaları, web uygulamaları, mobil uygulamalar, web servis (WCF) uygulamaları gibi çok çeşitli türden uygulama geliştirmek mümkündür. C# ile yazılan kodların çalıştırılabilmesi için öncelikle derleyici tarafından derlenmesi gerekmektedir.
Değişkenler ve Türler
C# programlama dilinde değişkenlerin mutlaka kullanılmadan önce tanımlanmış olması gerekir. Tanımlanmamış bir değişken kullanılmak istendiğinde derleyici hata verecek ve kodlar derlenmeyecektir. Ayrıca değişkenler tanımlanırken türlerinin belirtilmesi gerekir. Tamsayı olarak tanımlanan bir değişken sadece tamsayı değerler ile kullanılabilir, farklı bir tür gibi kullanmak mümkün değildir. C# değişkenler konusunda katı kurallara sahip bir dildir. C# ile basit türler ve karmaşık türler olmak üzere iki farklı tür yapısından söz edilebilir. Basit türler sayısal değerler, karakter ve alfa numerik (sayı ve harflerden oluşan karakter dizisi, metin) değerleri tutan değişken türleridir. Basit türler System isim uzayının içinde yer almaktadır. Karmaşık türler ise struct, class, interface veya enum yapıları ile oluşturulmuş özel türlerdir. .NET platformu içinde çok sayıda sınıfı, bir başka değişle karmaşık türü barındırmaktadır. Değişken tanımlarken önce türü, daha sonra değişken ismi belirtilmelidir. Değişken isim belirleme kuralları PHP’deki ile aynıdır.
Tür Dönüşümleri
Değişken türlerinin kendilerine has özellikleri ve kapasiteleri mevcuttur. Türlerin hafızada işgal ettikleri alan farklılık gösterebilmektedir. Örneğin int türü hafızada 32 bit yer işgal ederken long türü 64 bit işgal etmektedir. Bu bakımdan int türü bir değişken, long türü bir değişkene atanabilir. Bu işlem güvenli bir işlemdir, çünkü long türü int türünden daha büyüktür. Ancak long türü bir değişkenin değerini int türü bir değişkene atamak veri kaybına sebep olabilir ve güvenli değildir. Güvenli olan tür dönüşümleri doğrudan kullanılabilir. Derleyici hatası oluşmaz.
Diziler
C# ile birçok değeri içinde barındırabilen diziler tanımlanabilir. C# ile tanımlanan diziler PHP’deki esnek yapıya oranla daha katı kurallara sahiptir. C# ile tanımlanan dizilerin boyutları sabittir. Anahtar (indis) olarak sadece tamsayı kullanılabilmektedir. Tüm dizi elemanları tek bir türde olmak zorundadır. Dizi anahtarları 0’dan başlamaktadır. Bir başka deyişle dizinin ilk elemanının anahtarı 0’dır. Aşağıda dizi tanımlama ile ilgili bir örneğe yer verilmiştir.
ArrayList
C# programlama dilinde kullanılan diziler C# programlama dilinin doğası gereği esnek bir yapıda değildir. Daha esnek bir yapıya ihtiyaç duyulması durumunda dizilerden daha esnek bir yapı sunan System. Collections isim uzayı içindeki sınıflardan yararlanılmaktadır. Örneğin dizilerde dizi büyüklüğünün sabit olması gerekmektedir. Ancak birçok durumda dizi boyutunun (örneğin veritabanından alınacak bilgiler doğrultusunda) büyüyüp küçülebilen bir yapıda olması istenebilir. Bu durumda System. Collections isim uzayı içindeki ArrayList sınıfından yararlanılabilir. ArrayList sınıfı ile oluşturulacak dizi benzeri yapıya farklı türde değerlerler eklenebilir. ArrayList’ e yeni değer eklemek ve eski değerleri silmek mümkündür. Ayrıca ArrayList sınıfı diziler ile ilgili yapılabilecek sıralama, karıştırma gibi birçok işlevsellikte sunmaktadır.
Operatörler
C# programlama dilinde matematiksel, atama ve karşılaştırma işlemlerini yapmak için operatörler kullanılmaktadır. C# programlama dilinde kullanılabilecek operatörlerin bir kısmı Tablo 6.4’te (Sayfa 182) verilmiştir.
If
Birçok programlama dilinde benzer şekilde çalışan if ifadesi ile bir kod bloğunun belirlenen koşullara bağlı olarak çalıştırılıp çalıştırılmayacağı belirlenir. İf ile belirtilen koşulun sağlanamaması durumunda çalıştırılmak istenen komutlar var ise if bloğundan sonra else bloğu kullanılmalıdır. Birbiriyle bağlantılı çok sayıda karşılaştırma ifadelerinin kullanılması durumunda ise else if yapısı kullanılmaktadır.
For
For döngüsü, diğer programlama dillerindeki ile benzer bir çalışma mantığında sahiptir. Bloğun içine yazılan kodlar koşul ile belirtilen sayıda tekrar tekrar çalıştırılır. For yapısının söz dizimi aşağıdaki gibidir.
- for(ifade1; karşılaştırma ifadesi; ifade2) {
- komutlar;
- }
While
Diğer programlama dillerinde olduğu gibi C# ile döngü oluşturmak için kullanılabilecek bir başka yapı while döngüsüdür. While döngüsünün sözdizimi aşağıdaki gibidir.
- while (karşılaştırma ifadesi){
- komutlar;
- }
For döngüsü ile benzer bir çalışma mantığı vardır. Karşılaştırma ifadesinin sonucu doğru ise döngü içindeki komutlar çalıştırılır, yanlış ise döngüden çıkılır .
Do While
C# programlama dilinde kullanılabilecek bir başka döngü yöntemi ise do while döngüsüdür. Do while döngüsünün sözdizimi aşağıdaki gibidir.
- do {
- komutlar;
- } while (karşılaştırma ifadesi);
Do while döngüsü while döngüsüne benzer bir mantık ile çalışmaktadır. While döngüsünde olduğu gibi karşılaştırma ifadesinin doğru olması durumunda döngü bloğu içindeki komutlar çalıştırılır. While döngüsünden farkı ise döngüye ilk girildiğinde önce döngü bloğu içindeki kodlar çalıştırılır, daha sonra karşılaştırma ifadesi ile kontrol gerçekleştirilir. Bu durumda döngü içindeki kodlar en az bir defa mutlaka çalıştırılmış olur.
Foreach
Foreach döngüsü ile dizi elemanları veya System. Collections’ da tanımlanmış dizi amaçlı kullanılan ArrayList gibi sınıfların elemanları içinde gezinmek için kullanılır. Foreach döngüsünün sözdizimleri aşağıdaki gibidir.
- foreach (tür değişkenAdı in diziAdı){
- komutlar;
- }
Break ve Continue
Program akısında belli koşullar oluştuğunda döngülerin sonlandırılması gerekebilir. Bu gibi durumlarda break komutu kullanılır. Break komutu aynı zamanda switch yapısından da çıkılmasını sağlar.
Switch
Switch komutu if - else if yapısına benzer bir karşılaştırma yapısıdır. Switch komutu parametre olarak verilen değer doğrultusunda case ifadeleri ile belirlenen kod bloklarını çalıştırmaya yarar.
Sınıflar
Sınıflar nesne yönelimli programlama yaklaşımının en önemli araçlarıdır. Sınıf tanımlamak için class kelimesi kullanılır. Genellikle sınıf tanımları aynı adı taşıyan ayrı bir dosyada yapılmaktadır. Aynı dosya içinde birçok sınıf tanımlaması yapmak da mümkündür. Visual Studio ile yeni bir sınıf tanımlamak için Project/Add Class menüsünden yararlanılabilir. Bu menü seçeneği seçildiğinde Add New Item diyalog kutusu açılacak ve Class seçeneği seçili olacaktır. Diyalog penceresinin altında bulunan Name bölümüne dosya adı yazılarak yeni bir sınıf oluşturulabilir.
Web Formları
ASP.NET ile uygulama geliştirmenin temelde iki yöntemi olduğu söylenebilir. Bunlar; Web Forms ve MVC’dir. Web Formları ile birbirinden bağımsız veya belli ölçülerde bağımlı web sayfaları geliştirilmektedir. Web formlarında MVC’de olduğu gibi bir ayrım söz konusu değildir. New ASP.NET Project diyalog kutusunda Microsoft Azure onay kutusu bulunmaktadır. Microsoft Azure, Microsoft ’un bulut teknoloji isinin adıdır. Eğer üyelik var ise projeler Microsoft Azure üzerinde saklanabilir, dağıtılabilir ve yönetilebilir. Yeni Web Forms projesi olusturuldugunda varsayılan olarak birçok dosya da projeye eklenmiş olacaktır.
Veritabanı İşlemleri
ASP.NET ile birçok farklı veritabanı sunucu yazılımını kullanmak mümkündür. Öncelikle Microsoft SQL Server Management Studio (MSSMS) kullanılarak bir Veritabanı ve bu veritabanı içinde tablolar oluşturmak gerekir. MSSMS ile SQL Server’a bağlandıktan sonra Databases bölümü üzerine sağ tıklanarak New Database seçeneği seçilir. Açılan diyalog penceresinde veritabanı adı yazılır ve gerekli görülen ayarlar yapıldıktan sonra Ok düğmesi tıklanarak yeni veritabanı oluşturulmuş olur. Oluşturulan veritabanına yeni tablo eklemek için öncelikle yeni veritabanının açılması gerekmektedir. Veritabanı açıldıktan sonra Tables bölümüne sağ tıklanır ve açılan menüden New/Table seçeneği seçilerek yeni Tablo oluşturma ekranının açılması sağlanır ile veritabanı bağlantısı yapmak için genel olarak iki yöntem olduğu söylenebilir: ADO.NET ve Entity Framework. ADO.NET aslında veritabanı bağlantılarını yönetmek amacıyla kullanılan .NET içindeki sınıfları temsil etmektedir. ADO.NET kullanıldığında temel olarak veritabanı SQL sorguları ile yönetilmektedir. Entity Framework ise Microsoft tarafından geliştirilen ver veritabanı bağlantılarını yönetmek için kullanılan farklı bir yöntem sunmaktadır. Entity Framework ile veritabanındaki tablolar sınıflara modellenmektedir. Veritabanı üzerindeki işlemler ise bu model sınıfları üzerinden gerçekleştirilmektedir. Özellikle büyük projelerde Entity Framework tercih edilmektedir.