Web Programlama (ASP.NET)

ASP.NET, .Net framework ile entegre bir web geliştirme modeli olup dinamik web uygulamaları ve web servisleri oluşturulmak için tasarlanmıştır. .NET çerçevesinde Ortak Dil Çalışma Zamanı (CLR) üzerine kuruludur. Bu nedenle çoklu dil desteği sağlar.

ASP.Net ilk olarak 2002 yılında piyasaya sürülmüştür. İlk versiyon olan ASP.NE 1.0 ‘dan en son versiyon olan 4.6’ya kadar ASP.Net http protokolü ile çalışma üzere tasarlanmıştır. Bu, tüm web uygulamalarında kullanılan standart protokoldür.

Asp.Net uygulamaları çeşitli .NET dillerinde yazılabilir. Bunlar başta C# olmak üzere VB.Net ve J# dır.

ASP.NET Mimarisi ve Bileşenleri

ASP.net, web tabanlı uygulama geliştirme için kullanılan bir framework’dür. ASP.Net framework’ün temel mimarisi aşağıda gösterilmiştir.

  • Language: .Net Framework içerisinde bulunan VB.net ve C# gibi dilleri temsil eder. Bu diller dinamik bir web sitesi geliştirmek için kullanılır.
  • Library: .Net Framework bir dizi standart sınıf kütüphanesi içerir. Web uygulamaları için kullanılan en yaygın kütüphane Web kütüphanesidir. Bu kütüphane .Net tabanlı web uygulaması geliştirmek için gerekli tüm bileşenlere sahiptir.
  • CLR (Ortak Dil Çalışma Zamanı): .Net mimarileri bu platformda yürütülmektedir.

ASP.NET’in Özellikleri

1) Code Behind Mode (Tasarım Ardındaki Kod): Bu kavrama tasarım ve kod ayrımı kavramı diyebiliriz. Bu ayrım ile ASP.NET uygulamalarını sürdürmek daha kolay hale gelir. Örneğin, asp.net tipinde bir dosya oluşturduğumuz zaman asp.net sayfamızı temsil eden “aspx” uzantılı bir dosya ile sayfamızın kod tarafını temsil eden “aspx.cs” tipinde bir dosya daha oluşacaktır. Yani her web sayfası için tasarım ve kod dosyaları ayrı dosyalar şeklinde oluşacaktır. Bu da bize uygulama geliştirmede büyük bir kolaylık sağlayacaktır.

2) State Management (Durum Yönetimi): Bir web projesinde veriler tek bir ortamda değildir. İstemci ve sunucu dediğimiz alanlarda gidip gelmektedir. Bir diğer deyişle, web ortamı stateless’dir. Yani, bir web sayfası sınıfı her çağrıldığı zaman yeniden oluşturulur. Aynı şekilde http protokolide stateless’dir. Bu yüzden sayfa üzerinde istemci bilgilerini tutmaz. Örneğin, sayfa üzerine bir textbox ile buton ekleyelim, butona basınca sayfa post-back yapacağından dolayı textbox boş olarak geri döner. Çünkü her yenilemede sayfa yeniden oluşur. Bir başka örnek olarak E-ticaret sitelerinin alışveriş sepeti uygulamasını ele alalım. Şimdi, bir kullanıcı siteden ne almak istediğine karar verdiğinde ürünü seçmek için sepete ekle butonuna basacaktır ve ürün sepete eklenecektir. Daha sonrasında seçtiği ürünleri alışveriş sepetinde görmesi için yani farklı bir sayfalarda görmesi için ek kodlama yapılması gerekmektedir. Bu tip çözümlemeleri yönettiğimiz alan State Management’dir. State Management ikiye ayrılır.

a) Sunucu Tarafından Çalışanlar: Session, Application
b) İstemci Tarafından Çalışanlar: Hidden Field, View State, Cookies, Control State, Query Strings.

3) Caching (Önbellek): Kullanıcı tarafından sıkça talep edilen sayfaları önbelleğe alarak geçici bir yerde saklayabilirsiniz. Bu yapı uygulamanın performansını artıracaktır.

ASP.NET Dosya Türleri

  • aspx: Temel işlemlerin yapılacağı ve kullanıcaların görüntüleyeceği dosyalardır. Metin tabanlı bir dosya biçimi olup web formlarının oluşturulmasında kullanılır. aspx dosyaları, HTML kodları ile sunucu kontrolleri ve kullanıcı kontrollerini içerir. HTML kısmında sayfa içerisindeki içeriklerin nerede ve nasıl bulunacağı belirlenir. HTML kısımları içerisinde normal HTML etiketleri dışında ASP.NET sunucu ve kullanıcı kontrolleri de kullanılabilir. aspx sayfaları içerisinde <script> kısımları içerisinde C#, VB veya .NET ortamındaki farklı bir dil ile kodlar yazılabileceği gibi, bu kod kısımları farklı dosyalarda da tutulabilir. “aspx.cs” gibi.

aspx dosyalarının arka kısmında çalışacak C#, VB veya .NET gibi dillerde yazılan kodların aspx dosyasının içerisinde tutulmasına in-line, ayrı dosya içerisinde tutulmasına ise code-behinde kodlama yöntemi denir.

  • ascx: aspx sayfaları içerisinde kullanılabilecek kullanıcı kontrolü (user Control) dosyalarıdır. Bu dosyalar tek başına çalıştırılamazlar, sadece yeni bir aspx dosyası içinde bir element olarak kullanılabilirler.
  • asmx: Web servislerinin oluşturulduğu dosyalardır. Web servisleri farklı platformlardaki, farklı uygulamaların kullanabildiği uygulamalardır.
  • asax: Uygulama ömrü içerisinde  bazı olayları yakalamak için kullanılan dosya türüdür. Varsayılan olarak Global.asx dosyası kullanılır.
  • master: aspx sayfaları için temel şablon olarak kullanılan dosyalardır.
  • sitemap: Kontrollerin çalışması için gerekli sayfa bilgilerini içeren XML tabanlı bir dosyadır.
  • skin: sunucu kontrollerinin görünümlerinin ayarlanabileceği stil dosyalarıdır.
  • config: projelerin kullanacağı genel ayarları içeren XML tabanlı bir dosyadır.
  • dll: derlenmiş sınıfların kütüphanesidir. Uygulama içerisinde bin klasöründe bulunur.

ASP.NET Klasör Tipleri

Bin: İçerisinde web uygulaması içerisinde kullanılacak dil dosyalarını bulundurmaktadır. Bir web sayfası çalışırken, sunucu ilk olarak bu klasör içerisindeki dil dosyalarına bakarak sayfaları arayacaktır.

  • App_Code: bin klasörüne benzer bir görev üstlenmekle beraber, derlenmemiş kod dosyaları da içerisinde tutulabilir. Bu klasörde .cs gibi sınıf ve kod dosyaları bulunabilir. Çalışma zamanında bu kodlar derlenir.
  • App_Themes:  Web uygulaması içerisinde tanımlanan ve sayfalardaki elementlerde kullanılan temaları saklar. İçerisinde .skin ve .css dosyaları bulunur.
  • App_Data: Uygulama içerisinde kullanılabilecek olan SQL Server Express, Microsoft Access ve XML gibi veri ile ilgili dosyaları içerir.
  • App_LocalResources: Tek bir sayfa bazında kaynak (resource) tanımlarken kullanılan dosyaları saklar.
  • App_GlobalResources: Uygulama bazındaki kaynak dosyaları burada saklanır.

Web Programlama (ASP.NET) eğitim serisinin devamı sırasıyla aşağıda ki linklerde sıralanmıştır. 

1“Asp.net Standart Kontrolleri”

https://alkanfatih.com/asp-net-standart-kontrolleri/

2 – “Asp.net Veri ve Site İçi Dolaşım Kontrolleri

https://alkanfatih.com/asp-net-veri-ve-site-ici-dolasim-kontrolleri/

3 – “Asp.net Validation (Onaylama/Kontrol) Kontrolleri”

https://alkanfatih.com/asp-net-validation-onaylama-kontrol-kontrolleri/

4 – “ASP.NET State Management (Durum Yönetimi)”

https://alkanfatih.com/asp-net-state-management-durum-yonetimi/