PDA

Tam Sürümünü Görmek İçin : Hangi Kitap ? (Visual C++ .NET)


Akın Öcal
19/07/2005, 18:56
C/C++ bilen fakat görsel bir programlama dili ve .net tecrübesi olmayan birine visual c++.net idesini ve visual c++ i öğrenmek için hangi kitaplari tavsiye edersiniz ?


atg
19/07/2005, 22:30
eğer .net'e geçmek istiyorsan c# gayet güzel, c++ nazaran br çok noktada daha sade görünümlü, ama eğer ben c++ ile yapıcam bu işi diyorsan visual c++ 2005 express'i microsoft'an indirebilirsin, zaten ide dediğin şey topu topu "renkli-resimli" metin editörü, bunu kullanırken zorluk çekebileceğine inanmıyorum, eğer 500 küsür MB'ın hepsinini indirirsen bunun içinde msdn'nin visual c++.net ile ilgili olan kısımlarıda geliyor, buradan c++ diline eklenen ufak-tefek şeyleri öğrenebilirsin ve ayrıca .net'in hazır sınıf kütüphaneleri konusundada derin bilgileri yine dökümandan bulabilirsin.

Arkantos
27/07/2005, 18:47
Şimdi ilkönce şuna karar vermen gerekir. Görsel programlama derken windows programları yazmayı kasdediyorsun sanırım. Ama dil olarak iki tane seçenek var karşında. Managed C++ ve bildiğimiz C++.

Not: Managed 'yönetilen' demek ve managed C++'de nesnelerin bellekte yaşamalarını istersen .NET Çalışma Ortamına bırakabiliyorsun. Yani oluşturduğun nesneleri sonlandırmak için açık çağrılar yazmak zorunda kalmıyorsun. İşin bu kısmını .NET Çalışma Ortamı hallediyor.

Kısacası managed C++ ile bildiğimiz C++ farklı diller. Örneğin:

Managed C++ Örneği


__gc class Deneme
{
/*
Yönetilen C++ sınıfı
*/
}

int _tmain (void)
{
Console::WriteLine (S"Deneme");
/*
Diğer kodlar..
*/
}

Pencereli programlar (windows programları) yazmak için managed C++ öğrenilerek .NET kütüphanesi ile kullanabilirsiniz. Ya da hiç managed C++ öğrenmeden C++ ile Win32API, MFC, GTK, QT .. gibi kütüphaneler de kullanılabilir. Şu sıralar Linux altında QT öğrenmeye çalışıyorum ve (platformdan bağımsız) ve çok kullanışlı diyebilirim..

Ben az bir süre managed C++ öğrendim.Ve kitap olarak Microsoft'un Adım Adım Serisinden Julian Templeman ve Andy Olsen'in yazdığı Adım Adım MS. Visual C++.NET kitabı hoşuma gitmişti. Ama bunu başka yerlerde de yazdım. Alan kişiler pek beğenmemiş. Kitaptan memnun kalıp kalmamak biraz kişiye göre değişebiliyor sanırım. Ama bu kitapta VC++.NET IDE'si kullanımı ile ilgili pek fazla bilgi yok dediğim gibi sadece Managed C++ anlatıyor.

VC++.NET ile gelen IDE'yi öğrenmek için çok da fazla bir şey gerekmiyor aslında Zamanla öğreniyorsunuz... Eğer managed C++ yerine C++ öğrenecekseniz Emacs, VIM .. gibi IDE'ler de iyi birer alternatif olabilir.

Akın Öcal
30/07/2005, 12:46
Simdiye kadar ki cvplar icin saolun peki bana Win32 API ve MFC hakkında daha detaylı bilgi verebilir misiniz ? (Birbirlerine göre avantajları ve dezavantajları gibi...) Bunlarin geleceği nedir ? Mesela MFC ogrenmeye baslasam sonra Microsoft'un bu mfc classlarini deistirip de benim ogrendiklerimin tarihe karismasi gibi durumlar soz konusu olabilir mi ?

Euclides
30/07/2005, 13:07
@Akın Öcal:
Forumda'da aratır bunlarla ilgili çok yazı bulabilirsin. Hatta kıyaslamalar, vb...
Ama kısaca Win32API alternatifsizdir. Yerine kullanacağın birşey yok...

atg
30/07/2005, 16:44
evet Euclides doğru söylüyor, Win32API olduğu gibi Assembly de alternatifsiz bir programlama dilidir, çünkü en hızlısı!

Akın Öcal
30/07/2005, 17:37
Peki ticari olarak Borland C++ Builder'in VCL imi , VC++ in MFC si mi ,yoksa QT,GTK gibi kütüphaneler mi en cok kullaniliyor ?

atg
30/07/2005, 18:38
Peki ticari olarak Borland C++ Builder'in VCL imi , VC++ in MFC si mi ,yoksa QT,GTK gibi kütüphaneler mi en cok kullaniliyor ?

Basit tanımlarla anlatmak gerekirse, Mfc c++ için yazılmış sınıflar topluluğu, VCL ise aynı şeyin borland versiyonu, gtk; win 32 api'nin linux hali ama windows içinde bir eklentisi var bu sayede gtk ile yazdığın programlar windows altındada çalışabiliyor, Qt ise daha farklı bu hiçbirine benzemez kendine has bir yazımı ve kural-kaideleri var, bununla bir programı yazıp derlediğinde, programın istediğin işletim sisteminde çalışıyor,

Ben genelde MFC kullanıldığını gördüm, ama mfc den de çok kullanılan Visual Basic - Borland Delphi, eğer türkiyede yaşıyorsan bunları öğrenerek kısa sürelerde iş sahibi olurabilirsin, hatta bu aralar yavaş yavaş .net üzerine iş ilanlarıda kabarmıyor değil, söylediğim gibi özellikle c# çok sade, ama yok ben bilgisayarın kölesi olacağım, ama en iyi programı da ben yazacağım gibi düşüncelerin yoksa, delphi, visual basic, yada c# senin için en karlı seçim olur. , hem c++ ve arkadaşları kadar karmaşık değil hemde daha pratikler

mr1yh1
30/07/2005, 19:14
wxWidgets de var , mfc taklidi olarak biliniyor..opensourcedir ve kullanımı bedava..
ayrıca crossplatformdur.
http://www.wxwidgets.org/
C++ forumlarında tavsiye edildiğini biliyorum..
ayrıca gtk yı listenden çıkarmanı öneririm,
çünkü herhangi bir sistemde çalışabilmesi için gtk-runtime'ın yüklü olması lazım..
wxWidgets her platform için o platformun kendi API sini kullanıyor..

sckz
30/07/2005, 19:20
bi de wxWidgets icin sole bisi (wxDev-C++) var ama : http://wxdsgn.sourceforge.net/newwxdevcpp.jpg


http://wxdsgn.sourceforge.net/

atg
31/07/2005, 00:28
@sckz
Bende wxWidgets kullanıyorum, bir de codeblocks (http://www.codeblocks.org) var buda güzel, sanırım bunu yapan arkadaş dev-c++ ya Class-Browser özelliğini ekleyen kişi, benc ufku açık bir ide, dev-c++'nın yerini alır derim.

//Kısayolun yanlış olduğunu farkettim

Sabahi
31/07/2005, 01:47
Win32API olduğu gibi Assembly de alternatifsiz bir programlama dilidir, çünkü en hızlısı!

Win32 API bir programlama dili degildir. API = Application Programming Interface yani windows programlari yazarken kullanman icin saglanmis bir arayuz. Win32API mi MFC mi sorusuna gelince her ikisinide bilmen gerek. Gerci MFC bilmeden de windows GUI programlari yazman mumkun ama oldukca zahmetli. Neden tekerlegi yeniden icat edeceksin ki?

Akın Öcal
31/07/2005, 22:26
Valla kurcaladim ve vazgectim vc++ dan acikcasi ,varsin c++ im konsole olsun , biraz c# a baktim (temel java söz dizimini biliyorum) resmen java nin modifiye hali ama hosuma gitti. Sürekli console app lar yazdim bugüne kdr , görsel bi siler yapmadim. Ben istedigim kdr saglam kod yazayim , deli veriyapılari , graflar durum makineleri kodlayim , mahalledeki 15 yasindaki veletler yarim yamalak vbasic bilgileriyle görsel bi şeyler , windows pencereleri yapamiyorum diye dalga geçiyor :iih: O yüzden ver elini c# diyorum , piyasada java,delphi,visual basic.net c# varken fazla mühendislik uygulamasi yapmayan yerlerin c++ la urastiklarini sanmiyorum (Tabi böle degilse bana saldirmayin, bunu kisitli bilgilerimle sölüyorum) Bu arada ben elektronik müh ögrencisiyim her ne kadar yazilimla yatip kalksam da. Elektronikte arastirdigim kadariyla yazilim namina plc ler scada lar var . Ve onlarda en cok siemens in hazir plc yazilimi kullaniyorlar (tabi plc siemens ise) , ya da vb,c# delphi hatta java. O yüzden ver elini c# diyorum.

mr1yh1
31/07/2005, 22:57
aynı fikirdeyim..
şu ana kadar birsürü framework ile ilgili döküman indirdim inceledim, hiçbirini sevmedim... ( VCF hariç , ama onuda çalıştıramadım :2: )

kendi kafalarına göre zaten C++da var olan sınıfları yeniden tanımlamaları ( string, filestreamler, konternerler ... ) ,
STL ile barışık olmamaları,
eski model C stili kodlama ( wxWidgets ...)
...
java çalışıyorum, sonrasında C# ...
C++ ile dll yazarız artık..

sckz
01/08/2005, 01:15
o mahalledeki cocukları, ben, c++ ile konsol uygulamalari uzerinde dilin standartlarını, dilin yeteneklerini ogrenmeden direk form iceren uygulamalara giren insanlara benzetiyorum..

genelde vb kitaplarında böle bi durum hakim.. bircogu once vb nin arayüzünden, label ın özelliklerini properties penceresinden degistirmeyi gosteriyor.. dilin kendisinden cok sonraları bahsediliyor.. benim açımdan kesinlikle bu yöntem fazlasıyla zevksiz..

ben de henüz doruu dürüst form çizdirebilmiş deilim ama bunun için pekte üzülmüyorum acıkcası (cunku o mahalledeki cocukların hepsini bu konuda dövebilirim 8)).. ve daha vakit var diye düşünüyorum.. dilin kendisini bi tanımak gerektigine inanıyorum.. sonuçta kaçan bi tren yok..

ve ikinci inandığım birşey.. önce işlemcinin tanınması.. yani en azından nedir bu alet.. ne iş yapar.. ne kadar yeteneklidir.. bunlar bilinmeli.. bu aşamada assembly çıkıyor karşıma...

tabi bunlar kendim için.. yani herkes böle olmalı demiyorum.. ben sadece ben böle olmalıyım diyorum..

Euclides
01/08/2005, 01:46
@sckz: katılıyorum
sonuçta bir bir kalemdir. Teknik resim çizemeyen adama rapidonun faydası olmaz...

Akın Öcal
01/08/2005, 15:34
sckz ve euclides aslinda ben de sizin kafanizdayim , fakat daha kisa sürede ticari bişeyler cikarmak istiyorum olayim budur yani yoksa ben de döverim mahalle cocuklarini , piyasaya yönelik şeyler yapmak istiyorum artik ve de programinizi sattiginizda satin alan kisi vb yerine vc++ yazarsaniz daha fazla ücret ödemiyor (Sert mi oldu bilmiyorum ama yanlis anlamayin sizi elestiri gibi bi si söz konusu deil ) , benim işimi gör biraz da kullanimi kolay olsun diyor onlar icin yeter . Cevremde artik baya pocket pc - sql server isi istiyen yerler var lokantalar gibi ve bunlari kotarmak icin .net en güzel cozum gozukuyo. Ha ama para olaylari piyasa olaylarini bir tarafa koyarsak benim hayalim linux um ve ticari kütüphanelerin cok bulasmadigi (kütüphane kirliliği yasatmadigi) saf c/c++ la emacs+gcc kullanarak anca komplex veriyapilariyla çözülebilecek uygulamalar yapmak , linux modifiye edebilecek seviyeye gelmek , ne biliym pardus projesi icin satirlarca kod yazarak yemekte benim de tuzumun olmasi vs vs.... İdealler mi piyasa mi , valla dostlar ne yalan söleyim maykrosoft un köleligini sectim :D , elime c# kitabini aldim basladim bile :D Bu arada java nin tipkisinin aynisi bu c# , nese daha bastayiz

Akın Öcal
01/08/2005, 15:45
bu arada sckz senin islemci hakkinda sölediklerine de katiliyorum , ben mikroişlemci mimari ya da assembly bilmesem de (bizim okulda 3. sinifta mikroişlemcilere gecicez) C'ye Kaan Aslan'in A'DAN Z'YE C klavuzu ile baslamistim ve orda isin derinliklerine inmese de mikroişlemci yapisi bilemenin farklarini ortaya koyuyordu. İslemciler lokal bazda cok önemli ek olarak da network konusunda kendimi iyi hissetmiyorum ve kurumsal projelerde belli bir makinenin üstüne cikildigi zaman network bilgisinin de devreye girdigini duyuyorum cevremden bakalim ben den bi si cikacak nasi bi si olcam bilmiyorum :kuuul:

sckz
01/08/2005, 17:06
@Akın Öcal :

bence microsoft a da laf atmamak lazım.. sonuçta belli işleri linux un mu yoksa windows un mu daha iyi gerçekleştirdiğini bilmek için yine işlemciden anlamak gerekiyo.. Bu yüzden bende microsoft düşmanlığı yok..

Yani bunlar hakkında tam yorumu yapabilmem için, biraz işlemciden anlamam gerekir (hangisi bazı işleri daha iyi gerçekleştirir.. hangisi benim için mantıklı vs vs)... hangisi üzerinde yazılım geliştirmem gerektiği benim için sonraki aşama.. çünkü ikisinin bana görünen yüzü dışında net bi bilgim yok..

para kazanma konusunun da sorun olcagını zannetmiyorum.. örneğin redhat, suse kazanmıyor mu ? yani o camia da kazanmak o kadar zor olmasa gerek..

(*) ek : ben hala windows ta kendimi daha rahat hissediyorum..

Akın Öcal
01/08/2005, 18:12
suse ne kdr cok kullaniliyor bilmiyorum , redhat enterprise server ya da sco unix lere yazilim firmalarinda rastladim , ama büyük firmalar özellikle bankalar illa ki unix/linux server kullaniyolar ve büyük islerde java-oracle alternatifsiz gibi duruyor. Java yla web isleri ni kotariyosunuz cünkü -> online bankacilik vs... Yazılım gelistirme alaninda ise mutlaka kullaniliyordur ama Türkiye de ne kadar yaygin bilemiyorum Unix/Linux bilgisi daha cok networkculerden isteniyor gibime geliyor . Tabii ben daha yolun basinda birisiyim , profesyonel olarak calisan piyasayi bilenler burada bizlere yol gösterirse sevinirim . (Gerci konu basligiyla alakasiz bi yola girdi yazilar :confused: )

sckz
01/08/2005, 18:28
Gerci konu basligiyla alakasiz bi yola girdi yazilarDert etme, hep böyle olur.. forumun bu kısmının en sevdiğim özelliği bu zaten...

Euclides
01/08/2005, 18:38
s piyasaya yönelik şeyler yapmak istiyorum artik ve de programinizi sattiginizda satin alan kisi vb yerine vc++ yazarsaniz daha fazla ücret ödemiyor (Sert mi oldu bilmiyorum ama yanlis anlamayin sizi elestiri gibi bi si söz konusu deil ) ,
Hehehe :D
C++ ile yazdığınıza daha fazla ücret ödeniyor. Çünkü sizin c# ile yazamanızın imkansız olduğu 1000000 tane uygulama var. Tabii bizde imkansızı zorlamak yerine kolay olanı tercih ediyoruz.
Biraz ücretler hakkında bilgi sahibi olmak için http://www.rentacoder.com 'a bakabilirsiniz.

Akın Öcal
01/08/2005, 18:46
Euclides yalniz alintinin devaminda "benim işimi gör biraz da kullanimi kolay olsun diyor onlar icin yeter ." stringini de alsaydin keske :tabi: Beim demek istedigim sizden bi paket program isteniyo vb le de yapilir vc++ la da , neden vc++ la kasılsın ki , ha tamam c++ daha hizli calisir,cpu usage daha ii olur vs.. vs.. Ama öbür yandan program gelistirme süreci daha uzun sürüyor c++ da (tabi önceden benzer proje yapip kendi sourcelarinizi kütüphanelerinizi olusturmadiysaniz) Olay bence ne c++ ne c# ne vb , proje ne gerektiriyosa o , cok sıkısırsam pasa pasa mfc ya da qt (ne gerektiriyosa) örenirim diye düsünüyorum , link icin de saol

RaiST
01/08/2005, 19:35
Hehehe :D
C++ ile yazdığınıza daha fazla ücret ödeniyor. Çünkü sizin c# ile yazamanızın imkansız olduğu 1000000 tane uygulama var. Tabii bizde imkansızı zorlamak yerine kolay olanı tercih ediyoruz.
Biraz ücretler hakkında bilgi sahibi olmak için http://www.rentacoder.com (http://www.rentacoder.com/) 'a bakabilirsiniz.

rentacoderın fiyatları gercekten cok dusuk.verdiginiz emegin cok cok altında

Euclides
01/08/2005, 19:59
@RaiST:
Bir zamanlar 5k$'da API hooking lib bile görmüştüm. Tabii açık artırma olunca biraz problemli
@Akın Öcal:
Ben avantajlardan değil zorunluluklardan bahsediyorum.
Tamam bir paket program istensin aynı zamanda da "Boss" çalışanların tüm aktivitesini gözetlemek istesin. böyle bir programı c# ile yazmak imkansız olacaktır.

Sabahi
02/08/2005, 05:38
Aklinda C++ ile windows icin GUI programlamak uzere hazirda bir projesi olan varmi?

RaiST
02/08/2005, 10:32
@RaiST:
Bir zamanlar 5k$'da API hooking lib bile görmüştüm. Tabii açık artırma olunca biraz problemli
@Akın Öcal:
Ben avantajlardan değil zorunluluklardan bahsediyorum.
Tamam bir paket program istensin aynı zamanda da "Boss" çalışanların tüm aktivitesini gözetlemek istesin. böyle bir programı c# ile yazmak imkansız olacaktır.

rentacoder, <5k projelerde buyer ile coderın hıc bırsekilde ne telefonla nede mail & msn vasıtasıyla birebir gorusmesını ızın vermıyor (kendi irc sistemleri dısında) iste o cogu 5k proje hile hurdayla 5k acılıp direkt coderlarla iletisim kurmak icin acılıyor..