Yazılım Bir Tutku

Tecrübe ilimden üstündür !

ASP.NET Giriş ve ilk ASP.NET Projemiz

Tarih : 16.06.2010 12:49:56 Kategori : ASP.NET Hit : 6577

KONUNUN DAHA DETAYLI GÖRSEL ANLATIMINI AŞAĞIDAKİ VİDEO'dan izleyebilirsiniz.

 

 

Merhaba arkadaşlar;

Online yazılım okulunun bu ilk anlatımında web yazılımlarımızı gerçekleştiriken tercihimiz olan ASP.NET üzerine genel giriş seviyesinde bilgileri sizlerle paylaşmaya çalışacağım.Konumuza geçmeden önce yeni başlayan birçok arkadaşımızın genel bir yanılgısına açıklık getirmek istiyorum. ASP ( Active Server Pages ) ile ASP.NET teknolojileri aynı şeyler değildir. Online Yazılım Okulu süresince dersleri takip etmeniz durumunda bu iki teknoloji arasında ciddi bir uçurum farkı olduğuna şahitlik edeceksiniz. Şimdilik bu konuya çok fazla değinmeyeceğim fakat biraz öncede belirttiğim gibi anlatımlarımızın ASP değilde çok daha mükemmel hatta mükemmele en yakın bir teknoloji olan ASP.NET teknolojisi olduğunu bilelim.;

.NET Framework'ün bir parçası olan ASP.NET;  web siteleriniz HTTP tarafından talep edildiğinde dökümanlarımızın dinamik olarak oluşturulmasını sağlayan bir teknolojidir. ASP.NET; ASP, PHP,vs.. gibi diğer yalın derlenmiş yazılım teknolojilerine benzer fakat önemli bir farklılığı vardırki ASP.NET C# ve VB dillerini destekleyen .NET Framework'e entegre olabilmesi için tasarlanmış bir teknolojidir.

ASP.NET bir sayfadaki tüm kontrolleri nesne olarak görür ve tüm bu kontrollere nesne olarak ulaşma imkanı sağlar. Web sitelerimizin barındırıldığı server kısmında diğer .NET class'larınada ASP.NET de ulaşabilme imkanı vardır. Genel olarak baktığımızda C# veya VB'de Windows Forms Class'ları ile yapabildiğimiz herşeyi ASP.NET sayfaları ilede yapabiliriz. Bu nedenle ASP.NET sayfaları genel itibari ile Web Forms olarak isimlendirilmektedirler.

Peki nedir bu Web Forms lar ?

Dilerseniz ASP.NET de ilk projemizi oluşturalım bu sayede hem başlangıcımızı yapmış oluruz hemde bu makelemizde özel bir öneme sahip olan Web Forms larıda daha iyi inceleme şansını elde etmiş oluruz.
Yazılımlarımızı geliştitken Microsoft Visual Studio kullanıyor olucaz. Eğer daha önce bu programı edinmediyseniz
buradan Trial versiyonunu indirebilirsiniz.

Visual Studioda en üst solda bulunan File-New-Web Site seçeneklerini takip ederek yeni bir proje ( web sitesi ) oluşturabiliriz.
Belirttiğim adımları takip ettiğimizde karşımıza aşağıdaki resimde olduğu gibi bizden seçim (ler) yapmamızı isteyen bir ekran gelmekte. Hep beraber kısaca bu ekrandaki seçeneklerin neler olduğuna bir göz atalım ;


1 ) Installed Templates alanında ASP.NET yazılımımızı hangi dil ile yazacağımızı sormakta. Bu derslerimizde anlatımlarımızı .NET'in resmi dili C# [CSharp(sişarp)] üzerine gerçekleştireceğiz. Dolayısı ile 1. kısımda C# seçeneğini işaretliyoruz.

2 ) .NET Framework Kütüphanesi ise yazılımlarımızı geliştiriken genel itibari ile birçok işlemi gerçekleştirmemizi sağlayan belirli hazır kod bloglarının yer aldığı bir kütüphane kullanıyor olacağız. Kullanacağımız bu kodların yer aldığı kütüphane .NET Framework olarak adlandırılmıştır. Belirli süreçlerde daha gelişmiş olarak üst versiyonları çıkmış olan bu kütüphanede seçimimizide gerçekleştiriyoruz ( Ben şuan itibari ile .NET Framework 4 versiyonunu seçtim )

Bu noktada aklımıza şu soru geliyor. Peki alt versiyonları seçersem ne olur ?
Bu sorunun cevabı aslında çok basit bu kütüphane versiyonları sizinde tahmin edebileceğiniz üzre çeşitli içerik ve işlevsellik farklılıkları göstermekte. Örneğin projemizi .NET Framework 3.0 ile oluşturduk. Bu durumda daha gelişmiş olan .NET Framework 4.0 da bulunan herhangi bir class vb.. yapıyı kullanamayacağız.Kullanmamız durumundada haliyle hata ile karşılaşacağız. Bu aşamada hemen hemen hepinizin "eee o zaman neden en son versiyon 4.0 varken diğerlerini seçeyimki gibi bir soru gelmiştir diye tahmin ediyorum. Bunun oldukça trajikomik bir cevabı var. Sanıyorum birçoğumuz bir web sitesinin çalışma mantığını biliriz. Bu aşamada fırsat bulmuşken ASP.NET projelerimizin internet ortamında çalışma mantığınıda gözden geçirip bilgilerimizi tazelemiş olalım, bir yandanda sorumuzun cevabını daha net olarak kavrayalım. Burada konudan konuya geçiyormuşuz gibi bir durum varmış gibi görünsede aksine konuyu pekiştiren bir durum olduğu düşüncesindeyim.

 

Yukarıdaki çizelgeyi ele alacak olursak;
Client ( web sitelerini görüntüleyeceğimiz internet erişimi olan herhangi bir bilgisayar ) görüntülemek istediği web sitesinin domainini tarayıcıya (interten explorer, Mozilla Firefox vb.. ) yazdığında domain ve ip adresi vasıtası ile tarayıcı HTTP Portunu kullanarak o web sitesinin bulunduğu servera ulaşıp ben bu web sitesini görüntülemek istiyorum diye bir talepte bulunur. ip adresi sayesinde kendisine talepte bulunan tarayıcının belirttiği domaini web server IIS (Internet Information Services ) te kayıtlı olup olmadığına bakar ve eğer domain IIS'e kayıtlı ise host alanında ilgili domainin dosyalarını çalıştırır.  ASP.NET gibi dinamik çalışma fırsatı sunan teknolojilerde data ( verilerimiz örneğin sitenin bir kullanıcı paneli olsun ve kişiler siteye üye olabilsinler. Üyelerin isim, soy isim, hakkında vs. gibi bilgilerin genel ismi) Database olarak adlandırılan bir yapıda tutulur. İşte bu durumda Database de olan datalar page ( sayfa) ya aktarılır. Aynı zamanda sayfalardaki kod blogları mutlak manada .NET Framework kütüphanesinden birşeyler kullanıyor durumunda olduğunda .NET. Framework kütüphanesindeki gerekli elemanlarda aynı şekilde page miz ile birleşir. Tüm bunların Page de birleşmesinin ardından web server ilgili sayfayı Client e cevap olarak geri döndürür ve bu sayede web sitesini veya oradaki herhangi bir sayfayı görüntülemek isteyen kişi amacına ulaşmış olur.

Şimdi bu kısımda sorumuzun cevabına dönecek olursak. Yukarıdaki düzen göz önüne alındığında bariz bir şekilde anladıkki yaptığımız web siteleri web server denen başka bir yerde barındırılıyor olacak. Biz projeyi yazarken .NET Framework 4.0 ın bizde (localimizde) yüklü olduğunu varsayalım ve bu kütüphanedeki herhangi bir şeyi ( burada şey gibi genel bir kavram kullanıyorum. Başlangıçta ilgili terimleri kullanarak kafanızı karıştırmak istemiyorum ) kullandık diye düşünelim. Web sitemizi yayınlamak için hosting hizmeti sunan bir firmadan hosting hizmeti aldık we projemizin dosyalarını bu hosting hesabına yükledik. Eyvaahhhh "bu hosting hesanında halen .NET Framework 4.0 desteği yok. Sonuç ? sonuç hata hata hata... Peki böyle birşey mümkünmü sorusunun cevabı ise çok net. Malesef evet. Nedenini halen anlamış değilim ama hoting firmaları teknolojileri özellikle .NET gibi bir teknolojinin gelişimini neden aylar denebilecek bir süreçte geriden takip ederler bilmiyorum.

Bu kısımları toparlayacak olursak projelerimizi oluştururken dikkate almamız gerek .NET Framework da seçeneğimizi bilinçli olarak yapmamız gerekir.

3 ) ASP.NET Web site seçeneğinin yer aldığı orta kısımda ise projemizin ne tarz bir yapıya sahip olacağını belirleyeceğimiz alan. Bu alandaki seçenekleride ilerleyen süreçler içerisinde incelemiş ve hepsi için örnek uygulamaları yapmış olacağız. Şimdilik ASP.NET Web Site seçeneğini belirleyerek ASP.NET ile bir web sitesi hazırlayacağımızı belirtiyoruz.

4 ) Son olarak 4. seçenekte ise projemizin localimizde hangi dizine kaydolacağını ve ismini  belirliyoruz.
OK butonuna tıklayarak ilk projemizi oluşturuyoruz.



İlk projemizi oluşturduğumuzda Visual Studio 2010 a özgü olan ( diğer sürümlerinde bulunmayan) hazır bir şablonla karşılaşıyoruz. Dilerseniz bu şablon üzerinden projemize devam edersiniz. Dilerseniz kendinize özgü yeni bir şablonu bölümün devamındaki anlatımları takip ederek yeniden oluşturabilirsiniz.

Bu noktada Solution Explorer penceresinde otomatik olarak açılan klasör ve diğer elemanlardan biraz bahsedelim.
Solution Explorer pencersinde XML gibi data tutma yetisine sahip yapıları saklayabilmemiz için oluşturulmuş bir App_Data olarak isimlendirilen rezerve edilmiş bir klasör bulunmakta. Yine projemizde kullanacak olduğumuz scriptlerimizi toplu halde bir yerde tutmamız için oluşturulan Scripts olarak adlandırılmış klasik bir klasör yer almakta. Keza Styles klasörüde projemizin css kodlarını saklamamız için oluştutulmuş bir klasör. Peki bunları kullanmak zorundamıyız. Yani css dosyalarımız illede otomatik olarak oluştutulan bu Styles klasöründemi olmalı ? Tabiki hayır. Bu klasörler klasik olarak hemen hemen her projede oluşturulabileceği düşünülen, yazılımcıya zaman kazandırmak açısından hazırlanmış kalıp yapılardır. Dolayısı ile kullanıp kullanmama seçimi tamamen bize kalmış. About.aspx, Default.aspx, Site.Master dosyaları ise projemizi oluşturduğumuzda karşımıza çıkan hazır yapının dosyaları. Yani bunların kullanımındada bi gereklilik sözkonusu değil. Fakat Geri kalan Web.config ve  Global.asax dosyaları projelerimizle ilgili ciddi öneme sahip olan dosyalarki haliyle ilerleyen desrlerimizde bunları detaylı olarak inceliyor olacağız. Aslında burada Site.Master ıda normal sayfalardan ayır tutmak gerekir. Çünki Master Page ler normal sayfa gibi davranan pageler değildir. Master Page konusunuda ayrı bir başlık olarak ele alacağız.

Bu dersimizde amacımız genel yapıyı incelemek ve karşımıza çıkanları kısmi olarak ele almak olduğu için detaylarına girmiyoruz. Fakat her birisi ayrı bir başlık olarak mutlaka inceleniyor olacak.

Projemize hazır olarak gelen yapıya bağlı olmayan yeni bir sayfa ekleyerek bu makalenin son konusu olan Web Form kısmınıda ele alalım.

Solution Explorer penceresinde projemizin isminin üzerine sağ tıklayarak yandaki resimde örneğini gördüğünüz Add New Item seçeneğini tıklayı yeni bir sayfa eklemek için bir sonraki aşamaya geçiyoruz.




Bir sonraki adımda karşımıza yine bizden seçim yapmamızı isteye bir ekran gelecektir. Bu ekranda eğer eklemek istediğimiz bir aspx sayfası ise seçeneğimiz Web Form olmalıdır. Çünki daha öncede belirttiğimiz gibi ASP.NET sayfaları genellikle Web Form lardan oluşur. Name kısmına sayfamızın ismini yazarak Add butonu vasıtası ile sayfamızı projemize dahil ediyoruz.

Ben ilk sayfama IlkSayfa.aspx ismini verdim. Şimdi sayfayı oluşturduğumuzda karşımıza çıkan kodları görelim ve neyin ne ifade ettiği konusunda bilgilerimizi tekrar edelim.

.ASPX uzantılı sayfanın kod ( Source ) kısmı.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="IlkSayfa.aspx.cs" Inherits="IlkSayfa" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>


Dikkat ederseniz .aspx uzantılı sayfamızda HTML bilgisine sahipsenin hepimizin aşina olduğu belirli kodlar var. fakat ASP, PHP vs.. gibi teknolojilerde olmayan ekstra bir kısım varki <form> ve </form> tagları yer almakta.

Şimdi ASP.NET sayfalarında büyük öneme sahip olan bu <form></form> tagları üzerine biraz daha detaylı inceleme yapalım.

<form id="form1" runat="server"> kısmındaki runat attribute sine dikkat edelim. Bunun anlamı form işlemlerinin web sitemizin barındırıldığı web server'da yer alacak olmasıdır. Eğer runat="server" attributu eklenmezse server taraflı işlemler gerçekleşemeyecek haliyle web formlardan oluşan ASP.NET sayfalarımız çalışmayacaktır.

Yine yukarıda kod bloğunda klasik HTML sayfalarındaki kısımlardan farklı olarak;

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="IlkSayfa.aspx.cs"  CodeFile="IlkSayfa" %> kısmı yer lmakta.

Bu kısım üzerine biraz konuçacak olursakta; bu kısım sayfamızın genel özelliklerini belirlemekte. .NET de web uygulamaları için varsayılan dil VB'dir. Language kısmında uygulamamızın dilini belirtmekteyiz. Biz projemize herhangi bir sayfa eklediğimizde otomatik olarak kod taraflı kısım için aynı isime ek olarak .cs uzantılı bir class eklemekte. Sayfamıza ait kodlar otomatik olarak eklenen  aspx.cs uzantılı bu class dosyasında yer almakta. <%@ Page %> kısmında yer alana CodeFile ise aspx.cs uzantılı class ta blunan partical class'tır.Bu partical class  sayfanın hangi  class ı kullanacağını belirlemekte. Sayfada kodların yazıldığı aspx.cs uzantılı bu kısım codebehind olarak adlandırılmakta. codebehind kısmı yüzeysel olarak birkaç cümle ile geçiştirilebilecek bir konu olmadığından ve yoğunluk itibari ile açıklamalarla dolu bu nedenle sizlere sıkıcı gibi gelebilecek bu makalemizi sonlandırmak adına bu kısmı diğer derslerimize bırakıyorum.

Bu ilk dersimizde ASP.NET'in genel yapısını ve bir ASP.NET projesini oluşturma ve oluşturulan projedeki genel başlıkları incelemeye çalıştık.

Bir sonraki dersimizde görüşmek dileği ile..

Mahmut TEMUR

Takip Ediyorum

Faydalı Projeler

Yorumlar

Anlatımınız çok güzel.Emeğinize teşekkür ederim.

Sizde Yorumda Bulunun

Konuya dair fikir ve sorularınızı paylaşın