Win32 sau .NET?

Acest forum este dedicat intrebarilor de programare care nu-si au locul in unul din celelalte forumuri
cardasim
Specialist
Specialist
Posts: 23
Joined: 12 Jul 2007, 13:26
Judet: Iaşi
Location: IASI
Contact:

Win32 sau .NET?

Post by cardasim » 12 Jul 2007, 15:23

Discutia pe care o propun e doar ca sa imi dau seama pe unde mai sta C++ pentru win32
in raport cu .NET si toate limbajele care stiu sa scoata cod pentru aceasta platforma (inclusiv C++).
Pentru mine ambele variante sunt atractive, desi apreciez din plin puterea unui limbaj cum e C#,
organizarea si miile de facilitati out-of-the-box ale unui framework cum e .NET si ale unui IDE cum e VS2005.

Intrebare
Daca e sa scrieti o aplicatie in care nu exista limitari tehnologice sau alte elemente (de orice natura)
care sa forteze folosirea win32 (C++ sau orice alt limbaj, Delphi etc), ce preferati: win32 sau .net?

Intrebare
Care ar fi situatiile (concrete, intilnite in viata de zi cu zi) in care ati fost fortati sa scrieti
C++ pentru win32 si nu ati putut folosi .NET.
De cand a aparut .NET, in urmatoarele situatii am avut nevoie de C++ (chiar de C):
- un proiect in care ar fi trebuit sa dezvolt un virtual printer
- o componenta care implementa un "custom action" intr-un proiect de setup MSI, dezvoltat cu InstallShield. Ulterior am aflat ca
as fi putut folosi si .net pentru asta.

Intrebare
Daca ar fi sa folositi .NET pentru ce limbaj ati opta? C++?



User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Win32 sau .NET?

Post by Marius Bancila » 12 Jul 2007, 16:28

C+ nu e un limbaj pentru platforma .NET. Asa ca in special ultima ta intrebare e putin confuza. Te referi cumva la C++/CLI, legatura dintre C++ (unmanaged) si platforma .NET? Sincer la inceput am fost entuziasmat, arata fain ca syntaxa, faceai lucruri mai simplu ca in MC++, dar desi e puternic nu beneficiaza nici pe departe de acelasi interes din partea Microsoft ca si C# si VB, limbaje "in-house". Uite, de exemplu ciuciu suport LINQ. Ciuciu suport ca limbaj pentru code-behind-pages cu XAML si Expression Blend. etc.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
Bornish
Specialist
Specialist
Posts: 7
Joined: 12 Jul 2007, 06:57
Location: Bucharest, Romania... sometimes
Contact:

Re: Win32 sau .NET?

Post by Bornish » 12 Jul 2007, 17:08

Pentru mine... nu poate sa treaca saptamana fara sa scriu cate ceva in C++, ca sa nu vorbesc ca nu ratez ocazia sa m-apuc si de niste chestii care folosesc functii declarate "dezbracate" (naked) cu blocuri de asm. Daca nu am nevoie de aceste unelte pentru proiectele de la birou, atunci imi gasesc singur task-uri personale... asa... sa ma mentin "in forma".
Seara faina in continuare!
Bogdan
ESRI Developer Network

Compilers demystified - Function pointers in Visual Basic 6.0
Enables the use of function pointers in VB6 and shows how to embed native code in a VB application.

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Win32 sau .NET?

Post by Marius Bancila » 12 Jul 2007, 17:44

Cu alte cuvinte avem printre noi un maniac cu mov si jmp. :mrgreen:
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: Win32 sau .NET?

Post by Ovidiu Cucu » 12 Jul 2007, 18:35

Sa incerc sa raspund si eu:
  • Daca as fi fortat sa folosesc .NET -- as opta pentru C#.
  • Situatii in care am fost fortat sa scriu C++ pentru Win32 (nu numai.NET dar si MFC and whatever) -- acum; e o cerinta a clientului; nu pot sa dau amanunte (of course).
  • Daca e sa aleg in ce scriu o aplicatie Windows -- as alege oricand in urmatoarea ordine: MFC, Win32, .NET.

cardasim
Specialist
Specialist
Posts: 23
Joined: 12 Jul 2007, 13:26
Judet: Iaşi
Location: IASI
Contact:

Re: Win32 sau .NET?

Post by cardasim » 13 Jul 2007, 09:47

Marius Bancila wrote:C+ nu e un limbaj pentru platforma .NET. Asa ca in special ultima ta intrebare e putin confuza.
Marius, C++ este un limbaj pentru .NET. Uite o lista cu implementari si pentru alte limbaje http://dotnetpowered.com/languages.aspx
Incerc sa elimin confuzia din intrebare, reformulez: ar scrie cineva o aplicatie .NET in C++ for .NET? Sau ar prefera limabjul "favorizat" care este C# (si chiar VB.NET)? Cunosc un caz in care s-a ales Delphi doar pentru ca programatorul era familiar cu limbajul, iar C# ar fi reprezentat un efort de invatare in plus.

Discutand problema si in cu colegii mei cam astea ar fi motivele pe care le-am gasit:
- module in care folosesti din plin win32; in C++ scapi de platform Invoke
- integrare la nivel API cu alte applicatii, extensibilitate
- cunostintele echipei de dezvoltatori

Mai stiti si alte situatii?

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: Win32 sau .NET?

Post by Dragos Cojocari » 13 Jul 2007, 10:32

Daca e sa scriu de la 0 o aplicatie m-as duce pe varianta cea mai suportata, adica C#. Din ce am vazut C++ for .NET nu ofera nimic in plus, ba chiar are multe multe minusuri.

Totusi sunt cazuri in care C++/Cli e util. De exemplu legatura intre cod vechi C++ ( dll-uri, lib-uri etc) si aplicatii scrise in .NET. Acolo C++/Cli e o solutie excelenta. Dar repet, ptr o aplicatie scrisa de la 0 nu l-as folosi.

User avatar
cristitm
Membru
Membru
Posts: 68
Joined: 11 Jul 2007, 21:56

Re: Win32 sau .NET?

Post by cristitm » 13 Jul 2007, 11:37

cardasim wrote:
Marius Bancila wrote:C+ nu e un limbaj pentru platforma .NET. Asa ca in special ultima ta intrebare e putin confuza.
Marius, C++ este un limbaj pentru .NET. Uite o lista cu implementari si pentru alte limbaje http://dotnetpowered.com/languages.aspx
Nu te supara, dar gresala e de partea da. Mi-ai dat un link unde scrie: Managed Extensions for C++ (Microsoft), sau mai simplu Managed C++ (MC++ dupa cum am scris eu intr-un mesaj anterior). Asta nu e acelasi lucru cu C++. E o extensie a limbajului. C++/CLI e acelasi lucru. Ultima versiune, standardizata ECMA, de extesie unmanaged pentru C++. Trebuie clar inteles ca C++ si C++/CLI (respectiv vechile MC++) nu sunt acelasi lucru.
Errare human est!

User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: Win32 sau .NET?

Post by Marius Bancila » 13 Jul 2007, 13:29

Cristi are dreptate. E vorba de 2 limbaje distincte de fapt. Asa ca ma voi repeta: C++ nu e un limbaj pentru .NET. Extensiile sale (specifice Microsoft) sunt.
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

cardasim
Specialist
Specialist
Posts: 23
Joined: 12 Jul 2007, 13:26
Judet: Iaşi
Location: IASI
Contact:

Re: Win32 sau .NET?

Post by cardasim » 13 Jul 2007, 23:58

cristitm wrote:Nu te supara, dar gresala e de partea da.
cristitm multumesc pentru corectie, am facut intr-adevar un abuz de limbaj.
Din lipsa de rigurozitate am vorbit de C++ standard desi m-am gandit tot timpul la C++/CLI;
fiind in contextul .NET n-am facut disctinctia dintre C++ si C++/CLI.

Marius, am inteles acum de unde a venit si nedumerirea ta.

Mea culpa.

albertinix
Junior
Junior
Posts: 6
Joined: 20 Jul 2007, 09:58

Re: Win32 sau .NET?

Post by albertinix » 20 Jul 2007, 10:29

La prima intrebare cred ca raspunsul nu e atat de simplu; limitarile apar din insasi natura aplicatiei:
- daca e o aplicatie orientata spre: interfata cu utilizatorul, conexiuni cu diverse tipuri de resurse (gen baze de date), transferuri de date prin diferite metode, protocoale, etc. - as alege platforma .NET si mai precis limbajul C#.
- daca insa e vorba de o aplicatie care cere implementarea unor algoritmi mai complecsi, gestionarea eficienta (si NU automata) a memoriei, acces rapid I/O low level, etc. - as alege fara indoiala C++. Chiar daca dureaza mai mult sa scriu programul - cel putin stiu ca am control absolut :D

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: Win32 sau .NET?

Post by Dragos Cojocari » 25 Jul 2007, 10:51

albertinix wrote: - daca insa e vorba de o aplicatie care cere implementarea unor algoritmi mai complecsi, gestionarea eficienta (si NU automata) a memoriei, acces rapid I/O low level, etc. - as alege fara indoiala C++. Chiar daca dureaza mai mult sa scriu programul - cel putin stiu ca am control absolut :D
Analiza ta e corecta in teorie dar nu include un factor important: resursele umane. In momentul de fata e extrem de dificil sa dezvolti aplicatii in C++ in conditiile in care 90% din programatori se feresc ca de dracu de acest limbaj. Adauga cerinte ca portabilitate sau access remote si vei vedea cum costurile de productie cresc. Daca aplicatia poate fi facuta de 2-3 oameni mai merge dar eu unul nu m-as baga la un proiect ce necesita 20+ oameni ptr ca probabil ar costa de 5-6 ori mai mult.

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: Win32 sau .NET?

Post by MrSmersh » 25 Jul 2007, 13:33

Daca fac numa eu ceva si am timp Win32 C... C sau C++ poate fi o discutie ca asta (da stiu .Net platforma C++ limbaj etc)... Da e bun MFC, e bun STL, dar inauntru Windows e cam C (dar cu clase :)) deci C e ce intelege el de la mama lui. Poate MFC ar urma ca preferinta personala, ca ii cam stiu toate hachitele...
Daca deja discutam echipa .Niet, ca deja poti evalua si verifica cod. Si in plus programatori mult mai slabi pot da rezulatete folosibile deci mai ieftin. Asta stiu din experienta, .Niet a crescut outputu functional cu 40% cel putin.
Pe InstallShield install script sau dac msi c curat sau chiar .Net depinde ce vreau sa fac in custom action... Dar spre deosebire de Stefan nu imi plac cele fara install script.

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: Win32 sau .NET?

Post by neagu_laurentiu » 25 Jul 2007, 13:35

In momentul de fata e extrem de dificil sa dezvolti aplicatii in C++ in conditiile in care...
In conditiile in care Microsoft promoveaza si dezvolta .NET !
Apple si-a ales Objective-C, Microsoft pe C# dupa VB iar Unix-urile C/C++
Am facut un program banal, ce avea cateva linii neimportante in C++ unmanaged. In versiunea Debug mi-a lasat codul intact tradus in asm, pe cand in Release a optimizat totul in 3 linii asm. Dar acelasi program in C# nu a beneficiat de nici o optimizare indiferent de optiune (Debug/Release) dupa ce CLR-ul a compilat in asm. Ma asteptam sa imprumute in C# optimizarile din mai experimentat-ul C/C++ !

User avatar
MrSmersh
Microsoft MVP
Microsoft MVP
Posts: 289
Joined: 20 Jul 2007, 10:18
Location: Timisoara
Contact:

Re: Win32 sau .NET?

Post by MrSmersh » 25 Jul 2007, 13:39

Si dintre .Nets... VB.Net e cel mai avansat ca compilator debugger(edit and continue de ex...) etc, si si cel mai rapid, dar cam toti folosim C#, nu am explicatie de ce.

Post Reply