ASP.NET
Network Akademi

Met Hostimg

“Bilgi paylaşıldıkça artar” sloganı ile .NET Platformuna ilişkin birikimlerin paylaşıldığı ASP.NET.TR Topluluğunda sizde “YAZAR” olmak için ; info@asp.net.tr e-mail adresine kendinizi anlatan bir e-mail göndererek başvuruda bulunabilirsiniz.

ASP.NET Giriş ve ilk ASP.NET Projemiz

Mahmut TEMUR
ASP.NET
14.02.2011 15:43:50
Hit : 15982

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

 

Get Microsoft Silverlight

 

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




BU İÇERİĞE YORUMDA BULUNUN


Bu MAKALE'ye yorum yapabilmek için Üye olmalısınız ...!


BU İÇERİĞE YAPILAN YORUMLAR

gunes
Teşekkürler

Bu Siteyi Sevdim site çok güsel olmus ama csharpnedir.com daki konuların aynısı var hep böle yeni başlayanların bilmediği konuları yayınlarsanız sevinirim admin'im mesela
asp.net de böle kullanıcı girişi isteyen küçük personel proğramı WİN dede olabilir bunun gibi temelden alan çünki dier konular çok ileri seviye hiç bişi anlamıyorum konularıda resimli olarak anlatırsanız çok sevinirim yazım uzun isteğim çok olduysa kusura bakmayın siz kullanıcıya ne kadar iyi bilgi ve yeteneklerinizi sunarsanız site o kadar çok tutulur mesela ben hergün girerim vala :D:D şimdiden başarılar çalışmalarınızda...

Temur
Başlangıç seviyesinden itibaren

Merhabalar Fatih;

Öncelikle ilgin için teşekkürler. csharpnedir.com ve diğer türkçe kaynak siteleri herzaman için Allah başımızdan eksik etmesin dediğim topluluklardır. Hepimiz adına ciddi anlamda faydalı bilgi paylaşımlarına imza atmışlardır ve buna devamda edeceklerdir.

Bizim ASP.NET.TR'deki Yazılım Okulu bölümünde amacımız en temel seviyeden itibaren tüm konuları sıralı olarak anlatmak ve bu bilgi paylaşımı platformunda yazılımı öğrenmek isteyen arkadaşlarımıza faydalı olabilmek. O yüzden gönlün rahat olsun tüm konular tek tek anlatılacak.

gunes
Bende Allah Razı Olsun Diyorum Temur Abicim

Ben eğitim seti alacakdım ama sitedeki konuları görünce vazgeçdim çok güsel konular var hergün girip bakıyorum ne zaman yayınlayacaksınız die özellikle ado.net ve asp.net' deki konuları yani tek kelime ile süper site kimlerin emeği geçmiş ise saolsunlar ileri seviye konular derken yanlış anlama Temur abicim csharpnedir.com 'dan örnek verdim ya ordaki konular size göre olduğu için ben anlamıyorum çünki temeldeyim daha sizin gibi insanların sayesinde öğrencez inşallah Tekrardan teşekkürler asp.net.tr yöneticilerine...

EmRe
Kolay Gelsin

Bu sayfaya üye olmamın tek sebebi buraya yorum yazabilmektir, Öncelikle "Mahmut TEMUR" bey e çok teşekkür ederim, böyle görsel dersleri hazırlamak zor ve zahmetli bir iştir, siz emek verip hazırlamışsınız bende girip size bi teşekkür edeyim dedim.
Anlatımınız açık ve anlaşılır bi şekilde ve elimdeki eğitim setlerinden daha güzel,
Umarım bu iş yarıda kalmaz ve tüm dersleri sırasıyla yayınlarsınız,
Çok teşekkür ederim, Kolay gelsin,

Temur
Kolayl gelsin Cevap

Öncelikle bu düşünceli davranışınız için teşekkür ederim Emre bey. Bu konuda birilerine faydalı olabbiliyorsak ne mutlu bizi. Sizinde belirttiğiniz gibi görsel ders hazırlamak ciddi anlamda zahmetli bir iş fakat makaleden ziyade görsel derslerin daha etkili olduğunu düşündüğümüz için bizde elimizden geldiğince güzel bir katıka bulunalım istedik.

Görsel derslerin yarıda kalması konusunda ise İnşallah öyle bir durum söz konusu olmayacak aksine daha yoğun bir şekilde tüm konuları anlatıp tamamlamayı planlıyoruz.