.net framework si c++

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
Post Reply
viorel2004ro
Membru
Membru
Posts: 67
Joined: 20 Mar 2008, 23:23

.net framework si c++

Post by viorel2004ro » 29 Apr 2008, 21:14

Salut

Sistemele de operare Windows sunt create in C++/C/ASM.Cred ca astea sunt limbajele folosite.
Microsoft ofera un API pentru a crea cele mai rapide aplicatii in Windows(evident ca se pot scrie aplicatii
Windows si in ASM, dar nu prea se practica).Pe langa functiile Windows API mai exista si o infrastura COM dezvoltata.
programatorii de c++ au libertatea de a "inbogati" Windows-ul folosind tehnologia COM.Prin 2002(sau 2001) a aparut
.NET Framework.As dori sa stiu daca .NET Framework limiteaza optiunile dezvoltatorului de C++?Adica pe viitor este
posibil ca anumite servicii sa fie expuse si dezvoltate folosind .NET Framework si o librarie de functii API.Adica odata
cu integrarea lui .NET Framework in OS si eliminarea tehnologiei COM Microsoft sa isi impuna un limbaj(-e) proprii managed?
Ca si cum Windows-ul ar deveni Java OS?Sau mai precis pentru anumite aplicatii viteza de executie o vei avea cea mai rapida
numai daca scrii cod managed?



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

Re: .net framework si c++

Post by Dragos Cojocari » 29 Apr 2008, 21:39

Sansele sunt mici sa ajungem sa nu putem scrie in C++ ceea ce se poate scrie in .NET. Cel putin nu atata vreme cat sistemul de operare nu e in cea mai mare parte scris in cod managed.

Ce se poate insa intampla e sa apara biblioteci/functionalitati non-core, foarte interesante ptr tine ca dezvoltator, care sa nu aiba echivalent non-managed. In plus s-ar putea sa devina mai complicat de abordat noi tehnologii avand in vedere ca multe documentatii/tutoriale/prezentari favorizeaza limbajele managed.

In plus, s-ar putea sa fie mai usor de utilizat resursele "lumii" non-managed din "lumea" managed decat viceversa. C++ Managed e un bridge excelent in aceasta directie a.i. daca ai nevoie de o anumita functionalitate ce o poti acessa doar prin COM/C API, o poti face fara probleme.

Referitor la ultima ta intrebare, cea legata de performanta s-ar putea nu cred ca e relevanta. Daca o anumita functionalitate e implementata managed atunci cel mai natural e sa o folosesti tot din cod managed ( la fel si cu functionalitatie scrise in cod nativ) ptr ca s-ar putea ca trecerea la bariera managed/non managed sa fie extrem de scumpa. O situatie oarecum similara in acest sens este folosirea obiectelor COM out of process unde penalizarea de performanata este uriasa.

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

Re: .net framework si c++

Post by neagu_laurentiu » 29 Apr 2008, 22:13

Adica pe viitor este posibil ca anumite servicii sa fie expuse si dezvoltate folosind .NET Framework si o librarie de functii API
Care viitor, ca deja din .NET 3.0 au introds WPF ce e competitorul sau killer-ul GDI-ului (asa se lauda MS) si care nu are corespondent in unmanaged (decat daca incapsulezi tu/altcineva in C++/DirectX toate alea, dar imbatranesti sa o faci).
Adica odata cu integrarea lui .NET Framework in OS si eliminarea tehnologiei COM Microsoft sa isi impuna un limbaj(-e) proprii managed?
Bingo !!! :yes: Asta si vor unii de la conducerea MS... numai ca nu stiu daca o sa reuseasca datorita masei de programatori care mai cred in C/C++ !
s-ar putea ca trecerea la bariera managed/non managed sa fie extrem de scumpa
Eu m-am jucat un pic cu http://www.smidgeonsoft.prohosting.com/ ... ugger.html iar aceasta trecere e extrem de simpla fiindca dupa compilarea codului intermediar e vorba de native-to-native !

viorel2004ro
Membru
Membru
Posts: 67
Joined: 20 Mar 2008, 23:23

Re: .net framework si c++

Post by viorel2004ro » 29 Apr 2008, 22:36

folosirea obiectelor COM out of process unde penalizarea de performanata este uriasa.
Intrebare:daca o componenta este proiectata/utilzata bine aceasta penalizare mai e uriasa?
ma gandesc ca nu are sens sa apelezi intr-o bucla for o functie dintr-un obiect COM out of process?mai simplu
transmiti si returnzi un array iar penalizarea aceea dispare.Ideea e de fapt ca folosirea legaturii late-binding
este mai flexibila.In vb6 era clar acest lucru cand faceai o aplicatie folosind de ex ms word ca report tool.

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

Re: .net framework si c++

Post by Dragos Cojocari » 29 Apr 2008, 22:40

neagu_laurentiu wrote:Care viitor, ca deja din .NET 3.0 au introds WPF ce e competitorul sau killer-ul GDI-ului (asa se lauda MS) si care nu are corespondent in unmanaged (decat daca incapsulezi tu/altcineva in C++/DirectX toate alea, dar imbatranesti sa o faci).
Da, exact la ala ma gandeam si eu.
neagu_laurentiu wrote:
Adica odata cu integrarea lui .NET Framework in OS si eliminarea tehnologiei COM Microsoft sa isi impuna un limbaj(-e) proprii managed?
Bingo !!! :yes: Asta si vor unii de la conducerea MS... numai ca nu stiu daca o sa reuseasca datorita masei de programatori care mai cred in C/C++ !
E posibil sa vrea asta dar cred ca e destul de complicat. Pana la urma nici Vista nu a facut nici o miscare concreta in directia asta si nu vad sa incerce curand. Si sunt exemple de probleme mai simple in care pur si simplu nu e fezabil sa ii tai canelui coada si asta nu neaparat din cauza masei de programatori cat din cauza miliardelor de $ in soft existent (vezi incercarea cu browser-ului strict ptr Internet Explorer 8.0 - http://www.joelonsoftware.com/items/2008/03/17.html)
neagu_laurentiu wrote:Eu m-am jucat un pic cu http://www.smidgeonsoft.prohosting.com/ ... ugger.html iar aceasta trecere e extrem de simpla fiindca dupa compilarea codului intermediar e vorba de native-to-native !
Posibil, nu m-am jucat la concret cu problema asta.

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

Re: .net framework si c++

Post by Dragos Cojocari » 29 Apr 2008, 22:43

viorel2004ro wrote:
folosirea obiectelor COM out of process unde penalizarea de performanata este uriasa.
Intrebare:daca o componenta este proiectata/utilzata bine aceasta penalizare mai e uriasa?
ma gandesc ca nu are sens sa apelezi intr-o bucla for o functie dintr-un obiect COM out of process?mai simplu
transmiti si returnzi un array iar penalizarea aceea dispare.Ideea e de fapt ca folosirea legaturii late-binding
este mai flexibila.In vb6 era clar acest lucru cand faceai o aplicatie folosind de ex ms word ca report tool.
Da, poti sa reduci penalizarile daca limitezi la minim trecerile din si spre componenta out of process. Problemele de performanta acolo apar, la interfata intre cele 2 procese.

Post Reply