Visual C++ .NET..!!

  • Konbuyu başlatan |St_AnGeR|
  • Başlangıç tarihi
S

|St_AnGeR|

Guest
Bu yazımızda Visual C/C++ .NET hakkında temel bilgiler verdikten sonra .NET ailesinin diğer dilleriyle karşılaştıracağız. Ayrıca bundan sonra bu bölümde yer alacak makale başlıklarına değineceğiz..

C++ programlama dili C, C programlama dili de BCPL ve B programlama dilleri üzerine geliştirilmiştir. BCPL, Martin Richards tarafından işletim sistemi ve derleyici programlamak amacıyla 1967 yılında geliştirilmiştir. Ken Thompson kendisinin geliştirdiği B programlama dilini BCPL ile karşıtlıklarını da göz önüne alarak yeniden modellemiştir. Ken Thompson Bell Labaratuarda 1970 yılında yeniden modellediği B programlama dilini kullanarak bir DEC PDP-7 bilgisayar üzerinde UNIX işletim sistemini geliştirmiştir. BCPL ve B "typeless" (veri tipi olmayan) programlama dilleriydi. Her veri birimi bir word (16 bit) ile ifade ediliyordu. Veri tipinin olmaması sebebiyle kullanacak verinin tamamina bir reel sayi şeklinde davranmak/davranmamak programcının omuzlarina yüklenmişti.

C programlama dili 1972 Dennis Ritchie tarafından Bell Labaratuarlarında B programlama dili üzerine bir DEC PDP-11 bilgisayar ile geliştirilmiştir. C programlama dili hem BCPL'in hem de B'nin bir çok avantajlarini birleştirmiş ve veri tipi özelliğini de ekleyerek kullanmıştır. UNIX işletim sisteminin geliştirilmesinde C programlama dilinin kullanılmasıyla C 'nin yaygınlaşması hızlanmıştır. C' ye C adının verilmesi de tahmin edeceğiniz üzere, B'nin daha gelişmişi olduğu içindir:) Zaten B ve BCPL programlama dillerinin isimlerindeki B harfi Bell Labaratuar'ını simgelemektedir.

C'nin donanım ve platform bağımsız bir dil olması ve standartlaşmasıyla işletim sistemlerinin vazgeçilmez dili olmuştur. Günümüzdeki çoğu isletim sistemi C/C++ programlama dilleriyle yazılmaktadır. .NET Framework ise, C/C++'ın bu özelliklerine ek olarak programlama diline olan bağımlılığı da ortadan kaldırmıştır.

C++ programlama dili, C'nin bir uzantısı olarak Bjarne Stroustrup tarafindan1980 'lerin başında yine Bell Labaratuarlarında geliştirilmiştir. C++, C dilini daha sıklaştıran (basitleştiren ve kolay kod yazımına izin veren) bir çok yeni eklentiyle beraber nesneye dayalı programlamayı desteklemektedir.

C ve C++ programlama dilleri programcının çok iyi olduğunu ve hata yapmadığını kabul ettiklerinden diğer programlama dillerine nazaran daha hızlı çalışan kodlar üretmektedirler. Bu özelliğin bir dezavantajı olarak yapacağınız en ufak bir hata uygulamanızın çakılmasına sebep olmaktadır. Örneğin programcı string bir değişken için karakter sayısı kadar bellekten yer almalıdır. Bellekten yer almak ve buraya kopyalanacak olan değerin buraya sığıp sığamayacağının, ve bu değişkenin ne zaman sisteme geri verileceğini kontrolünden programcı sorumludur. Oysa C# gibi daha modern programlama dilleri bu işlemleri kendileri gerçekleştirmektedirler. Buna karşın bellekten gereğinden fazla yer alınır. Programınızın ihtiyaç duyduğu bellek miktarı artmaktadır. Ayrıca C/C++ 'da bellekten alınan yer ardışık olduğundan bellek erişimi dolayısyle uygulamanız hızlanacaktır.

Microsoft Visual C++ .NET 2003, Microsoft Windows ve Microsoft .NET tabanlı uygulamalar, dinamik Web uygulamaları, C++ ile XML Web Servislerini kullanabilmek ve geliştirebilmek için dinamik bir geliştirme ortamı sağlar. Visual C++ .NET endüstriyel standart olan ATL (Aktive Template Library) ve MFC (Microsoft Foundation Class) kütüphanelerini, gelişmiş programlama dili eklentileri ve güçlü entegre geliştirme ortamı (IDE - Integrated Development Environment) kullanarak, uygulama geliştiricilerin hızlı ve kolay bir şekilde kodlarını geliştirmelerini ve uygulamalarını debug etmelerine izin verir.

Visual C++ ile Visual C++ .NET ile arasındaki en önemli fark, Visual C++ .NET'in managed kodları desteklemesidir. Bu sayede diğer .NET uygulamaları içinde C++ kodlarının kullanmanız mümkündür. Aynı şekilde C++ ile başlatacağınız managed bir uygulama ile .NET Framework'te desteklenen diğer sınıfları kullanmanız mümkündür. Managed olmasının da anlamı buradadır. .NET tabanlı tüm kodlar ortak bir koda dönüştürüldüğünden kullanılan programlama dilinin hiç bir önemi kalmamaktadır. Ama bu demek değildir ki C/C++'ın en büyük avantajı olan hızlı çalışan kodlardan vazgeçtik. Örneğin, C# ile geliştirdiğiniz bir uygulamada yaptığınız işin C++ ile de gerçekleyebiliriz. Oluşturulan kod çok benzer olmasına karşın C++ ile geliştirilen kod biraz daha optimizedir. Bunun sebebi işletim sistemine daha yakın ve daha alt seviye bir programlama dili olmasıdır. Buna karşın C++ ile geliştirdiğiniz uygulamanız managed olmasına karşın hatalara açıktır. Bellek işlemlerini .NET Framework'e bırakarak daha tutarlı kodlar geliştirmeniz mümkündür. Tabi her seferinde performansınızdan ödün vermeniz gerekmektedir. Bellek işlemlerini .NET Framework'e bırakarak C/C++ ile geliştireceğiniz managed uygulama halen daha C# ile geliştireceğiniz uygulamadan hızlı çalışmaya devam edecektir. C# 'ın avantajı ise, uygulama geliştirme zamanıdır. C# ile 3-5 satırda yapabileceğiniz bir uygulamayı C++ ile onlarca satırda gerçekleyebilirsiniz. İki programalama dilinin birbirlerine göre avantajları ve dezavantajları vardır. Hangisinin daha güçlü olduğunu söylemek saçma olur. Geliştireceğimiz uygulamaya göre seçeceğimiz programlama dili de değişmektedir. Örneğin bir oyun geliştiricisiyseniz seçiminiz Managed C++ olmalıdır. Eğer ASP.NET Web uygulaması geliştiricisi iseniz seçiminiz C# olmalıdır.

İnternetten ücretsiz olarak indirebileceğiniz Quake'in kaynak kodlarını hem Managed C++ hem de Native C++ olarak bulmanız mümkündür. Bu iki uygulamanın karşılaştırmasını yaparsanız. Native C++ ile geliştirilen Quake diğerine göre %15 daha performanslıdır. Bu daha önce bahsettiğimiz performans kriterlerinden kaynaklanmaktadır. Buna karşın Native C++ ile geliştirilen uygulamaya yeni bir görsel arabirim eklemek istediğinizde oldukça zahmetli bir işe girişmiş olursunuz. Oysa Managed C++ ile geliştirilen uygulamaya yeni bir görsel arabirim eklemek için tek yapmanız gereken yeni bir form eklemek. Aynı şekilde, bir uçak oyunu için gerçel zamanlı hava durumu bilgisine ulaşıp, ona göre bulutları oluşturmak istediğiniz de; Native C++ ile bir soket bağlantısı kurmanız gerekmektedir. Oysa Managed C++ ile geliştirdiğiniz uygulamaya böyle bir eklenti yapmak için tek yapmanız gereken ilgili web servisini çağırmak olacaktır.

Bu bölümde neler yer alacak?
Bu bölümde temel C/C++ programlama dillerini ve dil kurallarını anlatmak yerine daha çok bu dillerle geliştirilebilecek olan uygulamaların .NET kullanılarak diğer programlarla entegrasyonu ve gelişmiş Windows programlama örneklere yer verilecektir. Bölüm ile ilgili düşünülen makale başlıkları ve muhtemel sırası aşağıdaki gibi olacaktır:


Yeni C/C++ uygulaması başlatmak ve ilk örnek uygulama
C++ ne kadar hızlı?
Window nesnesi nedir, nasıl oluşturulur?
Örnek bir window oluşturma uygulaması
Window Mesajları Yazı Dizisi
Örnek Uygulamalar ve Açıklamalı Makaleleri Yazı Dizisi
Managed C++ Nedir? Managed Uygulamaların Avantajları Nelerdir
C++ örneklerinin managed ortama taşınması ve diğer dillerden kullanımı Yazı Dizisi
Managed C++ ile Windows Servisleri Yazı Dizisi
Managed C++ ile Web Servisleri Yazı Dizisi
MFC Yazı Dizisi
ActiveX Geliştirme Yazı Dizisi
OLE Geliştirme Yazı Dizisi
ATL Geliştirme Yazı Dizisi
Son Söz
Bir giriş niteliğindeki bu yazımızda C/C++ programlama dilleri ve bu dillerin gelişiminden bahsettik. .NET Framework ile C/C++ programlama dillerinin ayrı birer boyut kazandıklarından bahsettik. Günümüz işletim sistemlerinin de geliştirilme dili olan C/C++ 'ın .NET ailesinin diğer dilleriyle karşılaştırmalarına örnek olarak, .NET ailesinin resmi dili olan C# ile karşılaştırdık.

Yazar : Yunus Emre ALPÖZEN
 
ya programlama bölümü böyle pek iyi olmamış.. kategorilere ayırsanız daha iyi degil mi?
delphi, c++ ,.net, java,v.basic gibi.... bu arada paylaşım icin sagol kardeş:)
 
Geri
Üst