Web Yazılımı Geliştirme

Web Yazılımı Nedir?

Herhangi bir web sunucusu (web server) üzerinde çalışan yazılımların tümüne Web Yazılımı diyebiliriz. Bu yazılımlar kısmen ya da tamamen web teknoloijilerini kullanırlar. Bu sayede web yazılımları Internet Explorer, Mozilla Firefox, Netscape, Chrome, Safari, Yandex gibi bütün web tarayıcıları ile sorunsuz kullanılabilirler. Internet bağlantısı olan herhangi bir bilgisayar ile kullanılabilen, çok kullanıcılı, çok şubeli çözümleri, yerel bilgisayar sistemi (server, terminal vb) yatırımlarını en az seviyede tutabileceğimiz hayalleri zorlayabilecek ekonomik çözümler sunarlar.

Web yazılımları bilinenin aksine sadece internet üzerinde değil ihtiyaca ve talebe göre kapalı sistem networkler (intranet) için de hazırlanabilir. Bir web yazılımı kapalı bir sistemde internete bağlı olsun yada olmasın intranet dediğimiz ofis içi network te de çalışabilir ve kullanılabilirler. Local networkte kullanılabildiği gibi istenirse bu yazılım internete açılarak dışardan internete bağlı herhangi bir bilgisayardan da çalıştırılabilmesi sağlanabilir. Bu ayrıcalık da bir web yazılımının en büyük avantajlarından sadece birisidir.

Bu durumu bir senaryo ile açıklayacak olursak;

Bu son derece kolay bir işlem, hemen adres.sirketimiz.com şeklinde bir alt domain oluşturur ve Apacheden adres defterinin çalışacağı dizinleri tanımlarız. İnternete bağlı olduğumuzu varsaydığımız ağımızda dışarıdan web erişimi için gerekli yönlendirme işlemlerinden sonra artık local kapalı sistemde çalışan adres defterimizi dışardan internete bağlı herhangi bir bilgisayardan çalışır hale getirmiş oluruz.

Bu tabii ki bir web yazılımının avantajlarından sadece bir tanesidir.



Zengin Metin İşaret Dili (Hyper Text Markup Language, HTML) günümüzde İnternet üzerinde veri paylaşımı için kullanılan en yaygın metin tabanlı dildir. Dilin son sürümü HTML5'tir.

HTML, bir programlama dili olarak tanımlanamaz. Zira HTML kodlarıyla kendi başına çalışan bir program yazılamaz. Ancak bu dili yorumlayabilen programlar aracılığıyla çalışabilen programlar yazılabilir. Programlama dili denilememesinin nedeni tam olarak budur. Temel gereği yazı, görüntü, video gibi değişik verileri ve bunları içeren sayfaları birbirine basitçe bağlamak, buna ek olarak söz konusu sayfaların web tarayıcısı yazılımları tarafından düzgün olarak görüntülenmesi için gerekli kuralları belirlemektir.

Web kavramı, CERN'de bir bilgisayar programcısı olan Tim Berners-Lee'nin HTML adlı bilgisayar metin dilini bulup geliştirmesiyle başlamıştır.



Aralık 1995 tarihinde, C dilinin tarayıcılara uyarlanmış hâli diyebileceğimiz JavaScript piyasaya sürüldü. Web sayfalarında dinamik içerik sağlamak ya da kullanıcıyla iletişim kurmak için kullanılmaktadır. Ad benzerliğine karşın Java ile ilişkili değildir. Yaygın yanlışlardan biri JavaScript'in basitleştirilmiş Java olarak tanımlanmasıdır. Başlangıçta yalnız Netscape tarayıcıları üstünde çalışan JavaScript artık tüm yaygın ağ taraycıları tarafından desteklenmektedir. Microsoft, JavaScript'e benzer bir dil olan JScript'i geliştirdi. Internet Explorer her iki dili de desteklerken standart olmayan JScript eklentileri diğer tarayıcılar üstünde çalışmamaktadır.



PHP : Hypertext Preprocessor (Türkçe: Üstünyazı Önişlemcisi) (Aslen: Personal Home Page - Kişisel Ana Sayfa) , internet için yaratılmış, sunucu taraflı, çok geniş kullanımlı, genel amaçlı, HTML içerisine gömülebilen betik ve programlama dilidir. İlk kez 1995 yılında Rasmus Lerdorf tarafından yaratılan PHP'nin geliştirilmesi bugün PHP topluluğu tarafından sürdürülmektedir. Ocak 2013 itibariyle 244 milyondan fazla web sitesi PHP ile çalışırken, 2.1 milyon web sunucusunda PHP kurulumu bulunmaktadır.

PHP kodları PHP işleme modülü bulunan bir web sunucusu tarafından yorumlanır ve çıktı olarak web sayfası üretilir. Bu kodlar veriyi işlemek üzere harici bir dosyaya kaydedilerek çağırılabildiği gibi doğrudan HTML kodunun içine de gömülebilir. PHP zaman içinde bir komut satırı arayüzü sunacak şekilde evrilmiştir, PHP-GTK yardımıyla grafiksel masaüstü uygulaması geliştirmek de mümkündür.



ASP.NET, Microsoft tarafından geliştirilmiş bir web uygulama gelişimi teknolojisidir. Dinamik web sayfaları, web uygulamaları ve XML tabanlı web hizmetleri geliştirilmesine olanak sağlar. Aynı işletme tarafından geliştirilen .Net çatısı'nın (framework) parçası ve artık işletmece desteklenmeyen ASP teknolojisinin devamını teşkil etmiştir.

Her ne kadar isim benzerliği olsa da ASP.NET, ASP'ye oranla çok ciddi bir değişim geçirmiştir. ASP.NET kodu ortak dil çalışma zamanı (ingilizce - common language runtime) altyapısına dayalı çalışır, diğer bir deyişle, yazılımcılar .Net çatısı tarafından desteklenen tüm dilleri ASP.NET uygulamaları geliştirmek için kullanabilirler. Yani, Java teknolojisinde olduğu gibi, yazılımcı tarafından yazılan kod, çalıştırılmadan önce sanal bir yazılım katmanı tarafından ortak bir dile çevirilmektedir.

ASP.NET belgeleri ASPX yapısını kullanırlar. ASPX belgesi, Statik HTML veya XHTML tabanlı, web sayfasında belirecek olan içeriği ayrı tutar. Kullanılan dile göre, sunucu tarafından çalıştırılacak kodu içeren belge Sayfam.aspx.cs (C#) veya Sayfam.aspx.vb (VB.NET) olarak adlandırılabilir. Bu yaklaşım ile yazılımcı kodunu yordamsal programlama ilkelerinden çok, oluşabilecek olaylara gereken tepkiyi verebilecek biçimde geliştirir; örneğin, bir sayfa yüklenince, bir düğmeye basılınca, vb.



Asp.Net MVC Framework;

Model – View – Controller baş haflerinden oluşan MVC Freamwork’ü, Asp.Net teknoloiji üzerinde geliştirilmiş bir programlama stilidir.

Asp.Net MVC Freamwork, Webforms’daki gibi postback, viewstate, codebehind, server kontrolleri (textbox, checkbox) ve bu kontollerin eventlerinin olmadığı, tüm bunlarım HTML tag’leriyle oluşturulduğu aynı zamandada Asp.Net Runtime’da çalışan bir mimari desendir. ASP.NET MVC Framework, MVC deseni ile web uygulamaları geliştirmek için Microsoft tarafından geliştirilmiş bir yazılım mimarisidir.

Microsoft Asp.Net MVC mimarisinde, Routing adı altında yeni bir düzenleme getirdi ve bunun büyük katkıları oldu. Daha kolay Seo ayarı yapmamıza (Arama Motoru Optimizasyonu) imkan sağlamış oldu.

Asp.Net MVC ‘nin en önemli özelliği test edilebilir bir Presentation tasarım deseni olmasıdır. Ayrıştırma yeteneği ile de uygulamaların birim testinin (unit test) kolay yapılmasına olanak sağlar.

Asp.Net MVC, üç katmanlı mimariden oluşmaktadır. Bunlar Model-View-Controller’dır.

Model :

Genellikle veritabanı işlemlerimizi yaptığımız yapıdır. LINQ to SQL ile Entity Framework dosyaları veya Dataset, Datatable, Datareader neslelerle veri taşıdığımız kodlarımız bu katmanda yer alır.Veri tabanı üzerinde yapılabilecek sorgularımızı burada belirler ve Controller’ı atamamızı sağlarız. Bu sayede veri tabanımıza dışarıdan daha kolay erişebilir ve çeşitli metotlarla daha kolay müdahale edilebilir hale getirir. View ile Controller arsındaki veri alış-verişini sağlar.

View :

İstemcinin gördüğü ve arayüze dair HTML, CSS, Javascript vb. kodlar burada bulunur. View bölümü sayesinde uygulamanın arayüz kodlama kısmı, uygulamanın çekirdek kısmından ayrı tutulur. Buda bize tasarımı ve tasarımın değiştirilmesi bakımından kolaylık sağlar.

Controller:

Uygulamaya gelen taleblerin yönetildiği katmandır. İstemci tarafından yapılan istek (request) controller katmanına gelir ve gerekli işlemler yapılır. Bu katman iş akışının gerçekleştiği, istemciden gelen isteklerin ele alındığı, gerekli action script’lerin çalıştırıldığı, değişkenlerin ve nesnelerin oluşturulduğu, model ile view katmanları arasında veri alışverişinin sağlandığı katmandır.

Asp.Net MVC çalışma şeklini özetliyecek olursak;

User (kullanıcı) tarafından yapılan request (istek), controller katmanında işleme alınıyor, user’ın (kullanıcının) istedikleri belirleniyor, modelle iletişime geçiliyor ve modele katmanına giderek ilgili nesnelere ulaşıyor ve modeldeki işlemler bittikten sonra controller’a geliniyor ve controller’da son işlemden geçerek user’ın (kullanıcının) istediği veriler View’a gönderiliyor ve View da istenilen bilgileri HTML çıktısı olarak User’a (kullanıcıya) gösteriliyor.