Merhaba, sitemde yazdığım ilk yazılarımdan birisi C Sharp Nedir? C Sharp İle Neler Yapılabilir? idi. 2018’de yazdığım bir yazıydı. Bu yazımda C Sharp İle Neler Yapılabilir? hakkında olacak ama daha geniş bir perspektiften bakarak uzun uzun açıklayamaya çalışacağım. NOT: Diyez # işareti Sharp olarak okuyor. Yani # = Sharp :)
C Sharp İle Neler Yapılabilir?
C# ile yapılabilecek şeylerin teknik olarak bir sınırı yok. Yani hayal edebildiğiniz her şeyi kodlayabilirsiniz desek çokta yanlış olmayacaktır. Aşağıda C# programlama dilinin kullanıldığı alanları görebiliyorsunuz.
- Web Uygulamaları (Asp.NET)
- Mobil uygulamalar
- Web servisleri uygulamaları
- Konsol uygulamaları
- DLL yazma
- Windows Form Uygulamaları
- Oyun tasarlama
Şimdi bu başlıklara geniş geniş bakalım…
C# ile Web Uygulamaları (Asp.NET)
C# ile hayal edebileceğiniz tüm web projelerini yapabilirsiniz. İster Web Form ile ister MVC ile ister de MVC Core ile istediğiniz web projelerini geliştirebilirisiniz. Web Form ve MVC konusu proje geliştirme yaklaşımıdır. İkisi de C# ‘tır ancak proje yapım şekilleri farklıdır. Web Form, Microsoft’un masaüstü yazılımları geliştirdiğimiz gibi nesneleri sürükle bırak yap, çift tıkla eventine git ve kodları yaz yöntemi webe taşıma girişimidir.
MVC ve WebForm hangisi iyi, hangisi kötü gibi bir yorum yapmakta pek doğru olmayacaktır. Geliştirmek istediğiniz proje türüne göre ikisinden birini seçmek daha doğru bir karardır. Ne var ki, web form ile web proje geliştirmesi hakkında deneyim isteyen tek bir ilan görmedim. Burada karar sizin ama MVC’yi iyi öğrenip, Web Form ile deen azından küçük bir proje geliştirmeniz aralarındaki farklı bizzat görebilmenizi sağlayacaktır.
Ben ilk web projemi, üniversite de okul projesi için yapmıştım. Sonradan da MVC konusunda biraz baktım. Ancak iş hayatımda hiç web projeleri üzerine çalışan bir yere giremediğimden web kısmında zayıf kaldım. Bu yüzden kendimi o alanda da biraz geliştirmek için kendimce küçük MVC projeleri yapmaya çalışıyorum. :)
C# ile Mobil uygulamalar
Windows Mobile işletim sistemleri dışındaki diğer mobil işletim sistemlerine direk C# ile uygulama geliştirilemiyor. Ancak Visual Studio’nun Xamarin eklentisini kullanarak cross platform mobil uygulamalar geliştirebilirsiniz. C# kodu yazarak geliştirilen mobil uygulamaları birden fazla mobil işletim sistemi için publish edebiliyorsunuz.
Burada dikkatinizi çekmek istediğim bir şey var. Cross Platform yazılımları her zaman mantıklı bir seçim olmayabilir. Cross Platform ‘un yazılım geliştirmenin zıttı diyebileceğimiz Native yazılım geliştirme yöntemi vardır.
Native yazılım geliştirme yöntemi kısaca, direk ilgili işletim sistemine özel diller ve geliştirme uygulamaları ile yazılım geliştirme diyebiliriz. Masela, Android yazılım geliştirme için Java ve IOS yazılım geliştirme için Swift dili kullanmak.
Bu ikisi arasındaki fark teknik olarak çok büyüktür. En büyük fark performanstır. Direk bir cihaz için yazılan uygulama ile Cross Platform şeklinde yazılım uygulamalar arasında bariz performans sıkıntıları gözlemlenmektedir. Ayrıca, ilgili cihazın tüm potansiyellerini kullanmanız pek mümkün değildir.
Düşünün, IOS kullanan Apple cihazları ile Android kullanan cihazlar arasında büyük özellik farkları vardır. Cross Platform uygulama geliştirme, bu farklı cihazların ortak özelliklerini kullanabilir. Basit uygulamalar için Cross Platform uygun olabilir ama sağlam ve güçlü bir uygulama geliştirmek istiyorsanız Native önemlidir.
Diyelim ki bir e-ticaret sitesinin mobil uygulamasını yapacaksınız. Bu uygulamayı Cross Platform olarak kodlamak yanlış bir karardır. Her platform için özel olarak ayrı ayrı hazırlanmalıdır.
C# ile Web Servisleri Uygulamaları
Web üzerinden haberleşen cihazlar güvenlik amacı ile çoğunlukla direk veritabanlarına bağlanmazlar. Arada bir web servis olur. Yazılım web servise bağlanır, web servis servere bağlanır istekleri işler ve geri gönderir. Bu açıdan web servisler önemlidir.
Mobil uygulamalarda da bildirim gönderme işlemi web servislerle yapılır. Çünkü tam tersi, uygulama sürekli servere bağlı kalır ve sürekli bildirim takibi yaparsa, bu durum aşırı batarya kullanımı demektir. Ayrıca uygulama kapandığında bağlantıda kapanacağından dolayı asla bildirim gelmeyecektir.
Web servisler kısaca sistemler arasındaki trafik görevlisidir. İzin verilen bağlantılara izin verirken, istenmeyene bağlantıları da engeller.
C# ile Konsol Uygulamaları
Artık zamanı geçmeye başlayan uygulama türüdür. Ancak anlam veremediğim bir şekilde okullarda hala Konsol Uygulamaları anlatılıyor. Neyse… Konsol Uygulamaları, CMD gibi bir ekranda çalışan uygulamalardır diyebiliriz. Nadiren gerektiği zamanlarda kullanıldığı görüyorum ancak bunlar hep ara işlemler için kullanılıyor. Yani bir programın kurulumu sırasında bir kaç saniyeliğine açılıp kapanıyor ve o sırada işlemleri yapıyor.
Ancak hiç konsol ekranında çalışan bir uygulamanın satıldığını görmedim.
C# ile DLL Yazma
Önce DLL Nedir ona bakalım… Microsoft’un sitesindeki tanımı kısaca şöyledir.
DLL, aynı anda birden fazla program tarafından kullanılabilen kod ve veri içeren bir kitaplıktır.
Buradan anlıyoruz ki DLL kendi başına çalışamayan bir dosyadır. DLL dosyalarının içinde kodlar yer alır. Diyelim ki bir işlem için bir geliştirdiniz. Ve bu yöntemi satmak istiyorsunuz. O halde, kodlarınızı DLL haline getirip satabilirsiniz. Çünkü DLL dosyaları şifrelenmiştir ve tekrar açılması neredeyse imkansızdır.
Kaldı ki C# yazılımları geliştirebilmemizin temelinde de bu DLL dosyaları vardır.
Visual Studio’yu açın ve yeni bir proje başlatın. Proje oluşturulduktan sonra projenin, Bin\Debug klasörüne gelin. Burada hiç DLL dosyası olmaması gerekiyor. Şimdi bu projenizi açın ve Solution Explorer’e gelin ve Referances kısmını açın… Burada gördüğünüz her şey birer DLL dosyasıdır. Bu DLL dosyalarına sağ tıklayıp Özellikler deyin ve Copy Local özelliklerini Copy Always yapın. Projenizi build edin. Build etme işlemi tamamlandığında Bin\Debug klasörüne tekrar gidin ve orada bir çok DLL dosyası göreceksiniz. Referances, kısmındaki DLL’ler C# projesi yazabilmemiz için gereken temel DLL ‘lerdir. Yerel klasöre kopyalanmasını istediğimiz için bu DLL’ler debug klasörüne kopyalandı.
Projeniz de Access veri tabanı kullanacaksınız. Projenize Access veritabanı ile çalışabilmenizi sağlayacak olan DLL dosyasını projenize eklemeniz gerekmektedir. Çünkü Access veri tabanı ile çalışabilecceğiniz kodlar o DLL’de yer alıyor.
İşte sizde bu şekilde DLL dosyaları üretebilirsiniz.
C# ile Windows Form Uygulamaları
Bu başlığı çok açıklamama gerek olmadığını düşünüyorum. Windows işletim sistemi üzerinde kullandığımız tüm uygulamalar Windows Forms Uygulamasıdır. Burada söyleyebileceğim şey, 3. parti yazılımlarla görünüm olarak çok daha iyi tasarımlar yapabiliyor ve projelerinize işlevsellik katabiliyorsunuz. Bunların en bilineni DevExpress ‘dir. Daha farklı 3. parti uygulamaları da vardır.
C# ile Oyun Tasarlama
C# ile windows form uygulaması şeklinde küçük oyunlar yapabilirsiniz. Ancak bu başlıkta bahsetmek istediğim konu onlar değil. Daha büyük oyunlar.
Bu konuda şunu iyi bilmelisiniz ki sadece C# ile oyun yapmanız mümkün değil. Çünkü sadece C# ile yapılacak bir şey değil. Oyunun hikayesi, grafikleri vs bir çok konu vardır oyun yapımında. Bunlar Büyük hikayeli oyunlar içindi…
Daha küçük çaplı oyunları tek başınıza tasarlayabilirsiniz ancak yine oyun grafikleri konusunda da bilgi sahibi olmanız gerekecek.
Bilinen en popüler oyun geliştirme ortamı Unity uygulamasıdır. Ben 2, 3 yıl önce küçük bir harita da tur atılan yarış benzeri bir şey yapmaya çalışmıştım. Arka planda ise yine C# kodlar yazıyordum.
Tek başınıza oyun geliştirebilmeniz çok zor. Ama imkansızda değil. Eğer C# biliyorsanız, oyun geliştirme için gereken diğer konuları da öğrendikten güzel oyunlar üretebilirsiniz.
C Sharp İle Neler Yapılabilir? sorusuna bilgi dahilinde elimden geldiğince uzun uzun cevap vermiş oldum. Umarım faydalı olmuştur. Bu yazımdan sonra şu Yazılıma Başlamak Mı İstiyorsunuz? Görmeniz Lazım! yazımı da okumanızı tavsiye ederim.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… P
460. yazı bitti.