Nesne Tabanlı Programlamanın Temelleri
Hızla dönüşen ve gelişen bilişim teknolojileri beraberinde donanımlar üzerinde koşan yazılım teknolojilerinin ve programlama tekniklerinin de gelişip dönüşmesine sebep olmuştur. Bu tekniklerden en önemlisi nesne yönelimli programlama tekniğidir. 1960’lı yıllarda başlayan Nesneye Yönelimli Programlama paradigması, 1990’larda hız kazanarak birçok alanda yaygın hale gelmeye başlamıştır.
Bu ders için hazırlanan bölümler nesne yönelimli programlama ile programcılığa başalayn programcı adaylarının giriş seviyesinde kodlama yapabilmesini ve Nesne Yönelimli Programlama konusunda bilgilenmesini hedeflemektedir. Bölümler içindeki Nesne Yönelimli Programlama kültürü için ideal bir dil olan C# programlama dili gerçekleştirilmiştir.
Microsoft, ilk zamanlar bu standartlar doğrultusunda C# programlama dilini geliştirse de C# 3.0 sürümü ile birlikte kendi standartlarını ortaya koymuş ve dili tamamen .NET framework için hazır hale gelmiştir. Bu sayede herhangi bir kuruma bağlı kalınmaksızın yazılım geliştiricilerinin ihtiyaçlarının karşılanması için güçlü bir programlama dili geliştirilmiştir.
Visual Studio .NET birkaç programlama dilinin aynı anda kullanılabilecek yapıya sahiptir. Bu özellik, bütünleşik yazılım geliştirme özelliği olarak tanımlanır ve bu sayede C#, Basic. NET, C++, F# gibi birçok programlama dillerinin hem görsel tasarımı için ortam hem de konsol uygulamaları için destek sağlar. C# Programlama dilinde sınıf tanımlamak class kelimesi kullanılır. Visual Studio.Net 2019 editöründe ilk açıldığında görüntülenmemiş olan pencereler view-görünüm menüsü kullanılarak programcıya gösterilir.
Visual Studio 2019 .Net versiyonu ile Windows işletim sistemi üzerinde çalışan pek çok uygulamayı geliştirmek mümkündür. Visual Studio ve .NET’i kullanarak masaüstü, web, mobil, oyun ve nesnelerin interneti için uygulamalar geliştirebilirsiniz. .NET uygulamalarını C#, F # veya Visual Basic dilinde yazabilirsiniz. Örneğin; Windows Azure, Office 365 ile Cloud (bulut) teknolojisi ile çalışacak ofis uygulamaları geliştirilebilir.
Nesneye Yönelimli Programlamaya Alternatif Yöntemler şu şekilde sıralanabilir; fonksiyonel programlama (functional programming), yapılandırılmış veya modüler programlama (structured or modular programming), zorunlu programlama (ımperative programming), bildirimsel programlama (declarative programming), mantıksal programlama (logical programming).
Yazılım geliştirme süreçlerinde nesneleri kullanmak ve tasarlanan sitemi veri modeline ve fonksiyonlarına göre nesneler halinde tasarlamak bize pek çok fayda sağlayacaktır. Modülerlik, tekrar kullanılabilirlik, üretkenlik, güvenlik, esneklik, bakım gibi pek çok fayda ve kolaylığa Nesne yönelimli programlama sahiptir. Detaylı olarak şu şekilde açıklanabilir: modülerlik (modularity), tekrar kullanılabilirlik (reusability), üretkenlik (productivity): kolayca yükseltilebilir ve ölçeklenebilir (easily upgradable and scalable), genişletilebilirlik (extensibility), arayüz tanımlama (interface descriptions), güvenlik (security), esneklik (flexibility), yazılımın bakımı (maintenance) şeklinde ifade edilebilir.