|A S P . N E T İNTERNET PROGRAMLAMA – 2 Marmara Teknik Bilimler MYO / Hafta 1 – Asp.NET Giriş ETKİLEŞİMLİ WEB UYGULAMALARI • İstemci – Sunucu Mimarisi Internet; sunucu-istemci mimarisine göre çalışır. İstemci Sunucu (Client) (Server) web sitelerini barındıran bilgisayarlar sunuculardan web sitelerini isteyen bilgisayarlar www.google.com sitesini açmak istediğimizde, bu siteyi barındıran sunucu bilgisayardan bir istekte bulunmuş oluyoruz. Bu durumda bizim bilgisayarımız istemci durumundadır. WEB TASARIMI VE PROGRAMLAMA 2 ETKİLEŞİMLİ WEB UYGULAMALARI • İstemci – Sunucu Mimarisi Bu bağlamda; web siteleri de ikiye ayrılmaktadır: STATİK WEB SİTE Sunucu İstemci DİNAMİK WEB SİTE Sunucu İstemci Veritabanı WEB TASARIMI VE PROGRAMLAMA 3 ETKİLEŞİMLİ WEB UYGULAMALARI • Statik Web Site Genellikle HTML tabanlı olarak hazırlanırlar. Kullanıcıyla etkileşime girmeyen sitelerdir. Kullanıcıya sadece içerik sunulur. Kullanıcı içeriğe müdahale edemez. STATİK WEB SİTE Sunucu WEB TASARIMI VE PROGRAMLAMA İstemci 4 ETKİLEŞİMLİ WEB UYGULAMALARI • Dinamik Web Site Sunucu tabanlı diller kullanılarak hazırlanır. Kullanıcıya siteyle etkileşime girme imkanı verir. DİNAMİK WEB SİTE Yorum yazma Oy kullanma Sunucu İstemci İçerik ekleme Arama yapma Veritabanı WEB TASARIMI VE PROGRAMLAMA 5 ETKİLEŞİMLİ WEB UYGULAMALARI • İstemci – Sunucu Çalışma Mantığı Web sunucularının kendilerinden statik sayfa istendiği zamanki davranışları ile dinamik sayfa istendiği zamanki davranışları birbirinden farklıdır. Bir web sunucudan statik bir sayfa istenirse; sunucu, istemciye bu sayfanın bir kopyasını gönderir. Bunu alan web tarayıcı ise HTML kodlarını yorumlayarak oluşan sayfayı görüntüler. WEB TASARIMI VE PROGRAMLAMA 6 ETKİLEŞİMLİ WEB UYGULAMALARI • İstemci – Sunucu Çalışma Mantığı Bir web sunucudan dinamik bir sayfa istenirse; web sunucu, kendisinden istenen dosyada bulunan kodları (ASP.NET / PHP / …) çalıştırdıktan sonra saf bir HTML dosyası üretir ve istemciye bu dosyayı gönderir. ASP php C# Üretilen HTML kodlarını alan web tarayıcı, istemciye sayfayı gösterir. WEB TASARIMI VE PROGRAMLAMA 7 ETKİLEŞİMLİ WEB UYGULAMALARI • İstemci – Sunucu Çalışma Mantığı Dinamik siteleri web tarayıcıda açıp kaynak kodlarına bakıldığında neden ASP.NET / PHP kodları görünmez? Sunucu, bu kodları çalıştırdıktan sonra istemciye HTML kodlarını göndermektedir. WEB TASARIMI VE PROGRAMLAMA 8 ETKİLEŞİMLİ WEB UYGULAMALARI • Sunucu Platformları ASP, ASP.NET MS-SQL, ACCESS PHP, CGI My-SQL, PERL WEB TASARIMI VE PROGRAMLAMA Windows Sunucu Linux Sunucu 9 ETKİLEŞİMLİ WEB UYGULAMALARI • Yerel Sunucu / localhost Sunucu tabanlı web uygulamalarını bilgisayar üzerinde çalıştırmak için; yerel sunucu (localhost) kurulumu yapılmalıdır. Kurulacak sunucu türü, çalıştırılacak türüne göre değişmektedir. uygulama ASP / ASP.NET : IIS (Internet Information Services) PHP / MySQL : XAMP, AppServ, WampServer... ASP.NET uygulamaları, Visual Studio üzerinden çalıştırılacaksa ayrı bir IIS kurulumuna ihtiyaç bulunmamaktadır. WEB TASARIMI VE PROGRAMLAMA 10 ETKİLEŞİMLİ WEB UYGULAMALARI • Yerel Sunucu Kurulumu Denetim Masası Programlar ve Özellikler Windows özelliklerini aç veya kapat WEB TASARIMI VE PROGRAMLAMA 11 ETKİLEŞİMLİ WEB UYGULAMALARI • Yerel Sunucu Kurulumu WEB TASARIMI VE PROGRAMLAMA 12 ETKİLEŞİMLİ WEB UYGULAMALARI • Yerel Sunucu Kurulumu WEB TASARIMI VE PROGRAMLAMA 13 .NET PLATFORMU (.NET FRAMEWORK) Masaüstü, web ve telefon uygulamaları ve web hizmetleri sağlayan bir uygulama geliştirme platformudur. Internet protokolleri kurulmuştur. ve standartları üzerine Uygulamaların birbirleriyle ve geliştirildiği ortam farketmeksizin dünyadaki tüm uygulamalarla iletişimi için kolayca web servisleri oluşturulmasına imkân verilmiştir. İşletim sistemi ve donanımdan daha üst seviyede, taşınabilir olarak tasarlanmıştır. WEB TASARIMI VE PROGRAMLAMA 14 .NET PLATFORMU (.NET FRAMEWORK) Temel Sınıf Kütüphanesi (BASE CLASS LIBRARY / BSL) Ortak Çalışma Zamanı (COMMON LANGUAGE RUNTIME / CLR) Ortak Tip Sistemi Ortak Dil Yönergesi (COMMON TYPE SYSTEM / CTS) (COMMON LANGUAGE SPECIFICATION / CLS) WEB TASARIMI VE PROGRAMLAMA 15 COMMON LANGUAGE RUNTIME(CLR) CLR .NET altyapısında programların çalışmasını kontrol eden ve işletim sistemi ile programımız arasında yer alan arabirimdir. Normalde yazılan kodlar makine diline çevrilir ve işletim sistemi ile direkt bağlantı kurup çalışırdı. Eğer platformdan bağımsız bir ortam istiyorsak, ihtiyaç duyulan şey CLR ‘dir. Hangi platformda iseniz (Linux, Mac, Windows) CLR bu noktada devreye girer ve .NET programlarının farklı platformlarda işletim sistemine göre çalıştırır. Eğer çok sayıda platform olduğunu düşünürsek, programların bunlar için ayrı ayrı yazılıp derlenmesi gerekir. Bu durum imkansız gibidir. Bu durumda çözüm ortak bir ara dil kullanmak ve her bir platform için bu ara dile çevrilmiş kodu çalıştırmaktır. WEB TASARIMI VE PROGRAMLAMA 16 ASP.NET MODELİ ASP dili üzerine inşa edilmiş ve .NET platformu üzerine geliştirilen bir teknolojidir. Kısa süre içinde ileri seviyede web sayfaları geliştirilmesini sağlayan, sunucu taraflı çalışan bir teknolojidir. Sunucu tabanlı çalışan sayfalarda kodları HTML etiketleri ile birlikte barındırmaz. HTML kodları için ayrı bir sayfaya, sunucuda çalışacak kodlar için ayrı bir sayfaya sahiptir. Sayfaya bir istekte bulunulduğunda HTML kodları ve sunucuda çalışacak kod sayfası bir bütün olarak ele alınır ve öyle çalıştırılır. WEB TASARIMI VE PROGRAMLAMA 17 ASP.NET MODELİ ASP.NET uygulamalarının geliştirilmesi/ çalıştırılması için gerekli bileşenler; .NET FrameWork Editör Not Defteri Visual Studio Yerel Sunucu (localhost) IIS IIS kurulumuna gerek kalmaz Visual Studio Veritabanı SQL-Server Access WEB TASARIMI VE PROGRAMLAMA Büyük veritabanları için tercih edilir. 18 .NET FRAMEWORK Bu yazılımın görevleri oldukça çok ve karmaşıktır. Ancak şu şekilde özetleyelim. Asp.NET uygulamalarının bilgisayarımızda çalışabilmesi için gerekli derleyici ve referans tiplerini de içeren yazılımdır. Bilgisayarımızda yüklü olan .Net Framework sürümü, kullanabileceğimiz Asp.NET sürümünü de belirler. 3.5, 4.0, 4.5 gibi versiyonları bulunmaktadır. Web alanı satın alırken, sunucunun desteklediği versiyon da kontrol edilmeli, bizim kullandığımızdan daha eski bir versiyon olmamasına dikkat etmeliyiz. .NET Framework yazılımının sitesinden indirebilirsiniz. WEB TASARIMI VE PROGRAMLAMA istenen versiyonunu Microsoft'un 19 EDİTÖR (VISUAL STUDIO) Asp.NET uygulamalarını hazırlayabilmek için tartışmasız en güçlü program Visual Studio programıdır. Bu program sayfalarımızın tasarım konusunda DreamWeaver programına oranla biraz daha zayıf ve ağır kalsa da programlama işlemlerinde son derece güçlüdür. Birçok karmaşık işlemi gerçekleştirebilmemiz için hazır nesneler vb. sunan bu program çok da pahalıdır. Ancak farklı işler için ayrı programlar halinde yayımlanan Express versiyonları da bulunmakta ve bu Express versiyonları ücretsizdir. Biz web uygulamaları geliştireceğimize göre, bu express versiyonlardan " Visual Studio Express for Web" isimli yazılımı kullanabiliriz. Bu program daha önceki versiyonlarda "MS Visual Web Developer Express" adıyla sunulmaktaydı. Visual Studio programının ve Express versiyonlarının şu an için 2015, 2013, 2012 vb versiyonları bulunmaktadır. Programın en yeni sürümünü Microsoft'un sitesinden indirebilirsiniz. WEB TASARIMI VE PROGRAMLAMA 20 YEREL SUNUCU (LOCALHOST) Asp.NET sunucu taraflı çalıştığına göre Asp.NET kodlarımızı çalıştırabilmek için Asp.NET destekleyen bir web sunucusuna ihtiyacımız var demektir. Fakat sitemizi hazırlarken sık sık test etmemiz gerekecek ve her seferinde sayfalarımızı sunucuya yükleyip çalıştırmak zor olacaktır. Bu durumda kendi bilgisayarımızı bir sunucuya dönüştürebiliriz. IIS (Internet Information Services) isimli Windows bileşenini kurarak bunu yapabiliriz. IIS kurmak için program ekle kaldır (programlar ve özellikler) penceresinden "Windows Özelliklerini Aç veya Kapat" sekmesine tıkladığımızda Windows işletim sistemimize ekli olan özelliklere ulaşabiliriz. Buradan IIS kutusunu işaretleyerek özelliğin kurulmasını sağlayabiliriz. Kurulum için bizden Windows kurulum medyamızı isteyecektir. WEB TASARIMI VE PROGRAMLAMA 21 YEREL SUNUCU (LOCALHOST) Günümüzde Visual Studio programı içerisine bütünleşmiş bir sunucu yazılımı bulunmaktadır. Visual Studio Development Server isimli bu yazılım projemizi çalıştırdığımızda otomatik olarak devreye girmekte ve uygulamamızın çalışmasını sağlamaktadır. Ayrıca IIS 'e göre daha performanslı çalışmaktadır. Bu iki sunucu yazılımını kıyaslayacak olursak IIS komple bir sunucu yazılımıdır ve birçok özellik sunmaktadır. Tabi bu güç ve özellikler yavaş çalışmaya da neden olmaktadır. VS Development Server ise sitemizi hazırlama aşamasında uygulamamızı hızlıca test edip işimizi görmemizi sağlayan daha basit dolayısıyla daha hızlı çalışan bir yazılımdır. IIS' in farklı özelliklerine ihtiyaç duymuyorsak Visual Studio Development Server işimizi görecek, herhangi bir sunucu yazılımı yüklememize gerek kalmayacaktır. Bunlardan başka yine Microsoft tarafından yayınlanan IIS Express yazılımı da mevcuttur. Visual Studio Development Server 'a göre daha fazla özelliğe sahip olma ve IIS 'ten daha hızlı çalışma iddiasıyla yayınlanmıştır. WEB TASARIMI VE PROGRAMLAMA 22 VISUAL STUDIO ARAYÜZÜ Menü Çubuğu Araç Düğmeleri Çalışma Alanı Paneller WEB TASARIMI VE PROGRAMLAMA Paneller 23 VISUAL STUDIO ARAYÜZÜ • Menü Çubuğu Üzerinde çalışılan projeyle / uygulamayla veya VS arayüzüne ait düzenlemelerle ilgili işlemler yapılmasını sağlayan seçenekleri içermektedir. Bazı menüler, çalışan proje / uygulama türüne özel olarak gelmektedir. (Örn: Web Site menüsü) WEB TASARIMI VE PROGRAMLAMA 24 VISUAL STUDIO ARAYÜZÜ • Araç Düğmeleri Sık kullanılan komutlara ait araçlar, işlevlerine göre gruplandırılarak çeşitli araç çubuklarında toplanmıştır. Taşınarak yerleri değiştirilebilir, gizlenebilir veya tekrar gösterilebilir. WEB TASARIMI VE PROGRAMLAMA 25 VISUAL STUDIO ARAYÜZÜ • Paneller Uygulama üzerinde gelişmiş seçeneklerin bulunduğu alanlardır. View menüsü yardımıyla gizlenip yeniden görünür hale getirilebilirler. WEB TASARIMI VE PROGRAMLAMA 26 VISUAL STUDIO ARAYÜZÜ • Çalışma Alanı Projeyle / uygulamayla ilgili içerik-programlama düzenlemesinin yapıldığı alandır. WEB TASARIMI VE PROGRAMLAMA 27 VISUAL STUDIO ARAYÜZÜ • Solution Explorer Geliştirilmekte olan bir projenin tüm bileşenlerinin bulunduğu paneldir. Bu panelde bir proje olabileceği gibi birden fazla proje de olabilir. Bu panelde; uygulamaya ait bileşenler liste halinde görünür. Bu listeden istenilen dosya çift tıklanarak üzerinde çalışılabilir, yeni dosya eklenebilir ya da var olan dosya silinerek projeden çıkarılabilir. WEB TASARIMI VE PROGRAMLAMA 28 VISUAL STUDIO ARAYÜZÜ • Solution Explorer Show All Files Refresh Projeye/uygulamaya Ekranın yenilenmesi ait tüm dosya ve sağlanır. klasörler görüntülenir Görünmeyen Properties değişiklikler varsa Projeye/uygulamaya panele yansır. ait temel tanımlamalar düzenlenir WEB TASARIMI VE PROGRAMLAMA 29 VISUAL STUDIO ARAYÜZÜ • Properties Paneli Proje/uygulama içinde seçilen öğeye ait özelliklerin görüntülendiği ve düzenlendiği paneldir. Panelin üzerinde yer alan açılır menü yardımıyla istenilen öğeye ait özellikler görüntülenebilir WEB TASARIMI VE PROGRAMLAMA 30 VISUAL STUDIO ARAYÜZÜ • Toolbox Paneli Projelere eklenebilecek hazır öğelerin bulunduğu paneldir. View Toolbox (Ctrl + Alt +X) komutu ile görünür hale getirilebilir. Panelde yer alan her öğe, tasarım penceresine sürüklenebilir veya programlama yazılımı tümleşik geliştirme ortamı (IDE) kod editörü ile oluşturulabilir. WEB TASARIMI VE PROGRAMLAMA 31 VISUAL STUDIO ARAYÜZÜ Panellerin, ekranda görüntülenip görüntülenmemesiyle ilgili tüm işlemler View menüsü altından gerçekleştirilir. WEB TASARIMI VE PROGRAMLAMA 32 WEB PROJESİ OLUŞTURMA File / New / Web Site (Shift + Alt + N) Site türü / yapısı seçilir. Site konumu tanımlanır. WEB TASARIMI VE PROGRAMLAMA 33 WEB PROJESİ OLUŞTURMA Bu yapıda; web.config dosyası içeren bir ASP.NET uygulaması oluşturulur. Bunun haricinde başka hiçbir dosya oluşturulmaz. WEB TASARIMI VE PROGRAMLAMA 34 WEB PROJESİ OLUŞTURMA • Yeni Sayfa Ekleme Solution Explorer alanında proje adı seçiliyken; Website / Add New Item tıklanır. Website menüsü Proje seçiliyken aktif olur. WEB TASARIMI VE PROGRAMLAMA 35 WEB PROJESİ OLUŞTURMA • Yeni Sayfa Ekleme Açılan pencerede; site için ihtiyaç duyulan öğe türü seçilir ve bu öğeye verilecek isim belirlenir. WEB TASARIMI VE PROGRAMLAMA 36 ASP.NET SAYFA YAPISI HTML kodları ile sunucuda çalışan kodlar ayrıştırılmıştır. Bu sayede karmaşıklık azaltılarak uygulama geliştiricilerin daha rahat çalışmasına olanak sağlanmıştır. HTML kodları ve kullanılan kontrollere ait tanımlamalar .aspx uzantılı dosyalarda tutulurken, sunucuda çalışacak kodlar .aspx.cs uzantılı dosyalarda tutulmaktadır. Code-behind kodlama denilen bu yapıda, HTML kodları ve kontroller ile sunucu kodları ayrı dosyalarda tutulmuş olsa da uygulama çalıştırıldığında sunucu, bu dosyaları bir bütün olarak görür ve bu şekilde çalışmasını sağlar. WEB TASARIMI VE PROGRAMLAMA 37 ASP.NET SAYFA YAPISI Default.aspx HTML ve kontrol tanımlamaları yapılır Default.aspx.cs Sunucu tarafında çalıştırılacak kodlar tanımlanır. WEB TASARIMI VE PROGRAMLAMA 38 ASP.NET SAYFA YAPISI • .aspx Sayfalar Sayfanın en başında Page yönergesi bulunmaktadır. Bu yönerge sayfa ile ilgili, sayfanın türünü, kodlanan dili, kodların tutulacağı dosya adını vb. bilgileri vermektedir. <html>, <head>, <body>, <form> gibi etiketler standart HTML etiketleridir. <asp: ile başlayan kodlar ise sunucu kontrolleri tanımlamak için kullanılır. WEB TASARIMI VE PROGRAMLAMA 39 ASP.NET SAYFA YAPISI • .aspx Sayfalar <form> etiketinin ayrı bir önemi vardır. Standart bir ASP.NET sayfasında mutlaka bulunmalıdır. Sayfaya eklenen bütün sunucu etiketleri bu etiket içinde yazılmalıdır. <form> etiketi runat =”server” ifadesi mutlaka içermelidir. Bu ifade, bu etiket içindeki kodların sunucuda çalışması gerektiğini bildirir. WEB TASARIMI VE PROGRAMLAMA 40 ASP.NET SAYFA YAPISI • .aspx.cs Sayfalar Sunucuda çalışacak kodları içeren sayfadır. Sayfanın başlangıcında çeşitli isim alanları sayfaya dâhil edilmiştir. WEB TASARIMI VE PROGRAMLAMA 41 ASP.NET SAYFA YAPISI • .aspx.cs Sayfalar public partial class Default : System.Web.UI.Page kodu ile sayfanın System.Web.UI isim alanı altında yer alan Page sınıfından türetilmesi sağlanmıştır. Programlama yazılımı ile açılan her sunucu kod sayfasında Page_Load adında metot eklenmiştir. Bu metot, yaşam döngüsü içinde sayfa ilk yüklendiğinde çalıştırılacak olay metodudur. Sayfa içinde oluşturulacak diğer metotlar, değişkenler ve özellikler de bu bölümde yer alır. WEB TASARIMI VE PROGRAMLAMA 42 ASP.NET SAYFA YAPISI Sunucu tarafından çalıştırılacak kodlar sayfaya gelen ilk istekte derlenir ve bu derleme sistemde saklanır. Sonraki isteklerde tekrar derleme yapılmaz ve isteklere daha hızlı cevap verilmesi sağlanmış olur. Inline kodlama yönteminde sadece .aspx dosyası oluşturulur. HTML kodları, kontrol tanımlamaları ve sunucu kodları bu dosyada tutulur. Inline kodlamada sunucuda çalışacak kodlar <script runat = “server”> şeklinde yazılmış bir kod bloğu içinde yazılır. Ancak bu yöntem, karmaşıklığı nedeniyle çok fazla önerilmez!!! WEB TASARIMI VE PROGRAMLAMA 43 ASP.NET SAYFA YAPISI inline kodlama metodu sunucu kodları Inline kodlama yöntemi, HTML kodları karmaşıklığı nedeniyle çok fazla önerilmez !!! WEB TASARIMI VE PROGRAMLAMA 44 OLAYLAR Olaylar, .NET uygulamalarında taşlarından biridir. en temel yapı Kullanıcıların uygulama ile etkileşime girmesinden sonra istenilen bir metodun çalışmasını sağlayan sınıf elemanlarıdır. Sayfaya bir kontrol eklendiğinde, .NET platformu uygulama geliştiriciler tarafından oluşturulan kontrole ait sınıftan bir nesne örneği oluşturur. Uygulama geliştirici, bu nesne örneğinin görsel kısmını görür. WEB TASARIMI VE PROGRAMLAMA 45 OLAY TANIMLAMA Nesne üzerine çift tıklandığında HTML koduna OlayAdi= "MetotAdi" şeklinde bir atama yapılır. <asp:Button ID="Button1" runat="server" onclick="Button1_Click" /> Sayfadaki bir nesneye çift tıklanarak programlama editöründe (.aspx.cs içine) yazılan metot; kullanıcı tarafından nesne ile etkileşime girildiğinde, HTML içinde tanımlanan olayla birlikte çağrılacaktır. protected void Button1_Click(object sender, EventArgs e) HTML kodlarındaki metot adı ile sunucu kodları sayfasındaki metot adı aynı olmalıdır. WEB TASARIMI VE PROGRAMLAMA 46 OLAYLAR Bir kontrol, birçok olaya sahiptir. Bu olaylardan bir tanesi varsayılan olaydır. Programlama ortamında bir kontrolün üzerine çift tıklandığında otomatik olarak varsayılan olay için bir metot açılır. Oluşturulan metodun adı standart olarak kontrolunAdi_OlayinAdi şeklindedir. Bu metot ismi değiştirilebilir. HTML kodlarındaki metot adı ile sunucu kodları sayfasındaki metot adının aynı olmasına dikkat edilmelidir. WEB TASARIMI VE PROGRAMLAMA 47 KONTROLLERİN VARSAYILAN OLAYLARI Aşağıda çok kullanılan kontrollere ait varsayılan olaylar listelenmiştir. Bu kontrolleri sayfamıza ekledikten sonra üzerlerine çift tıkladığımızda ilgili olaya ait metot otomatik oluşturulacaktır. Page: Load - Sayfanın sunucuda oluşturulması olayı Button: Click - Tıklanma olayı Calendar: SelectionChanged - Seçili tarihin değiştirilmesi olayı CheckBox: CheckedChanged - Seçili durumun değiştirilmesi olayı CheckBoxList: SelectedIndexChanged - Seçili elemanın değiştirilmesi olayı DropDownList: SelectedIndexChanged - Seçili elemanın değiştirilmesi olayı LinkButton: Click - Tıklanma olayı ListBox: SelectedIndexChanged - Seçili elemanın değiştirilmesi olayı RadioButton: CheckedChanged - Seçili durumun değiştirilmesi olayı RadioButtonList: SelectedIndexChanged - Seçili elemanın değiştirilmesi olayı TextBox: TextChanged - Metin kutusundaki metnin değiştirilmesi olayı WEB TASARIMI VE PROGRAMLAMA 48 PAGE SINIFI VE OLAYLARI Asp.NET 'in çok önemli bir özelliği de sayfaların sınıf olarak oluşturulmasıdır. Bir Asp.NET sayfasına istekte bulunulduğunda, sunucuda o sayfaya ait sınıftan bir nesne oluşturulur ve ardından diğer işlemler gerçekleştirilir. Sunucuda sayfa ile ilgili sırasıyla şu olaylar gerçekleşir ve bu olaylar için biz de alt programlar yazabiliriz: PreInit: İlk gerçekleşen olaydır. Sayfanın ön yüklemeye geçilmesinden önce çalışır. Init: Sayfanın ön yüklemeye başlanması olayıdır. Load: Sayfa sunucuda yüklendikten sonraki olaydır. Kontroller artık hazır olduğundan kontroller ile ilgili özellikler kullanılabilir. PreRender: Sayfanın Html çıktısı üretilmeden hemen önce tetiklenir ve Html çıktısına burada müdahale edilebilir. UnLoad: Sayfanın sunucuda hafızadan temizlenmesinden yani kaldırılmasından önceki en son adımdır. Sayfa sonlandırılırken yapılması gereken şeyler varsa burada yapılabilir. Page nesnesinin varsayılan olayı Load olayıdır ve her Asp.NET sayfasında varsayılan olarak Page_Load alt programı bulunur. WEB TASARIMI VE PROGRAMLAMA 49 WEB SAYFASI YAŞAM DÖNGÜSÜ Bir ASP.NET sayfası çalıştırılırken gerçekleşen olay sıralamasına yaşam döngüsü denir. Yaşam döngüsü içerisinde gerçekleşen olaylar 1 Page_PreInit – Page_Init: 2 Page_Load 3 Control Events 4 Page_PreRender 5 Page_Unload WEB TASARIMI VE PROGRAMLAMA 50 WEB SAYFASI YAŞAM DÖNGÜSÜ Page_PreInit – Page Init Web sayfasının başlatılması ve web sayfasındaki kontrollerin nesne örneklerinin oluşturulduğu olaylardır. Page_Load Sayfa yüklendikten sonra tetiklenen olaydır ve programlama yazılımında her sayfada varsayılan olarak eklenir. Bu olayın tetiklenmesiyle kontrollerin özellikleri ile ilgili işlemler yapılabilir. Control Events Kullanıcı ve kontrol olaylarıdır. Kontrol değerlerinin değişmesi ve tıklama olayları ile tetiklenir. WEB TASARIMI VE PROGRAMLAMA 51 WEB SAYFASI YAŞAM DÖNGÜSÜ Page_PreRender HTML çıktısı oluşturulamadan hemen önce tetiklenir. Bu adımda HTML çıktısına kod yazılarak müdahale edilebilir. Page_Unload Bu olay, sayfa kapandığı zaman tetiklenir. Sayfa kullanıcı olaylarının sonlanması ve sayfanın sisteme iadesi için kullanılan olaydır. WEB TASARIMI VE PROGRAMLAMA 52 ASP.NET DOSYA VE KLASÖRLERİ • Dosyalar asax Uygulama yaşam döngüsü içerisinde çeşitli noktalarda çalışan isteğe bağlı yöntemleri (olay işleyiciler) içerir. Uygulamalarda varsayılan olarak global.asax dosyası kullanılır. Uygulama kök klasöründe yer alır. ascx Herhangi bir ASP.NET Web Forms sayfasına eklenebilen özel bir işlevselliği tanımlayan bir web kullanıcı kontrol dosyasıdır. Bu dosyalar tek başlarına çalıştırılamazlar, sadece aspx veya master uzantılı dosyaların içinde bir kontrol olarak kullanılabilirler. Uygulama kök klasöründe veya alt klasörde yer alır. WEB TASARIMI VE PROGRAMLAMA 53 ASP.NET DOSYA VE KLASÖRLERİ • Dosyalar asmx Diğer Web uygulamaları tarafından çağrılabilir sınıfları ve yöntemleri içeren bir XML web servisleri dosyasıdır. Uygulama kök klasöründe veya alt klasörde yer alır. aspx Web denetimleri, sunum ve iş mantığı içeren bir ASP.NET web form sayfasıdır. Temel işlemlerin yapılacağı ve kullanıcıların görüntüleyebileceği dosyalardır. HTML kodlarını, sunucu ve kullanıcı kontrollerini içerir. Uygulama kök klasöründe veya alt klasörde yer alır. WEB TASARIMI VE PROGRAMLAMA 54 ASP.NET DOSYA VE KLASÖRLERİ • Dosyalar browser Bireysel bir tarayıcı özelliklerini tanımlayan tarayıcı tanım dosyasıdır. App_Browser klasöründe yer alır. cd Sınıf diyagramı dosyasıdır. Uygulama kök klasöründe veya alt klasörde yer alır. cs Sunucuda çalıştırılacak kodları içeren kod dosyasıdır. Uygulamanın her yerinden kodlara ulaşılması isteniyorsa App_Code alt klasöründe tutulmalıdır. WEB TASARIMI VE PROGRAMLAMA 55 ASP.NET DOSYA VE KLASÖRLERİ • Dosyalar config ASP.NET özelliklerini ve ayarlarını içeren XML tabanlı bir yapılandırma dosyasıdır. Uygulamanın genelinde geçerli olacak ayarlar bu dosyada saklanır. Bu dosya uygulamada web.config olarak isimlendirilmektedir. Uygulama kök klasöründe yer alırsa uygulamanın tamamını içeren ayarları, bir alt klasörde yer alırsa o klasördeki dosyaların ayarlarını içerir. Uygulama kök klasöründe veya alt klasörde yer alır. dll Derlenmiş sınıf kütüphane dosyasıdır. Bin alt klasöründe yer alır. WEB TASARIMI VE PROGRAMLAMA 56 ASP.NET DOSYA VE KLASÖRLERİ • Dosyalar master Uygulamada diğer web sayfaları için sayfa düzenini tanımlayan bir ana sayfa dosyasıdır. aspx sayfaları için temel şablon olarak kullanılan dosyalardır. MasterPage olarak adlandırılan bu dosyaların yapısı aspx dosyaları ile aynıdır. Uygulama kök klasöründe veya alt klasörde yer alır. mdb Access veri tabanı dosyasıdır. App_Data alt klasöründe yer alır. mdf SQL Server Express veri tabanı dosyasıdır. App_Data alt klasöründe yer alır. WEB TASARIMI VE PROGRAMLAMA 57 ASP.NET DOSYA VE KLASÖRLERİ • Dosyalar resx Uygulamada metin, resim ve medya içerikli dosyaları saklayan XML tabanlı bir dosyadır. App_GlobalResources veya App_LocalResources alt klasörde yer alır. sitemap Web uygulamasının mantıksal yapısını tanımlayan XML tabanlı bir dosyadır. Uygulama kök klasöründe yer alır. skin Sunucu kontrollerinin görünümlerinin ayarlanabileceği stil dosyalarıdır. App_Themes alt klasöründe yer alır. WEB TASARIMI VE PROGRAMLAMA 58 ASP.NET DOSYA VE KLASÖRLERİ • Klasörler Account Kullanıcı denetimleri ile ilgili dosyaları içerir. App_Browser ASP.NET tarayıcıları ve özellikleri belirlemek için kullandığı tarayıcı tanım dosyalarını (.browser) içerir. App_Code Uygulamanın bir parçası olarak derlenmiş kod dosyalarını içerir. Dinamik olarak derlenmiş web projelerinde ilk olarak bu klasör içindeki kod derlenir. WEB TASARIMI VE PROGRAMLAMA 59 ASP.NET DOSYA VE KLASÖRLERİ • Klasörler App_Data Veri tabanı dosyaları içerir. Bir uygulamanın yerel veri tabanını saklamak için ASP.NET tarafından kullanılır. App_GlobalResources Genel kapsamlı erişilebilir kaynakları (.resx ve .resources) içerir. App_LocalResources Bir uygulamada belirli bir sayfa, kullanıcı kontrolü ya da MasterPage ile ilgili kaynakları (.resx ve .resources) içerir. WEB TASARIMI VE PROGRAMLAMA 60 ASP.NET DOSYA VE KLASÖRLERİ • Klasörler App_Themes ASP.NET Web sayfaları ve kontrollerin tanımlayan dosyalar koleksiyonu içerir. görünümünü Bin Derlenmiş assembly dosyalarını (.dll dosyaları) içerir. Bir uygulama derlendiğinde sunucu ilk olarak bu klasör içindeki kod kütüphanelerine bakarak dosyaları arar. Images Web uygulamasında kullanılan resimleri içerir. Scripts Web uygulamasında kullanılan script dosyalarını içerir. WEB TASARIMI VE PROGRAMLAMA 61