[C++] - Linguaggio C++ per .NET

venerdì 01 maggio 2009 - 13.17

xshell Profilo | Newbie

Buongiorno.

Nel corso degli anni ho potuto studiare e assimilare abbastanza bene il C++. Adesso però sembra che la tecnologia .NET stia prendendo il sopravvento nel mondo Windows. Informandomi, ho potuto apprendere che il .NET è compatibile con vari linguaggi, tra cui C#, VB.Net e C++. Nella prospettiva che tale tecnologia diventi il motore primario dei futuri sistemi operativi Windows (delle voci di corridoio prevedono un sistema operativo, della casa Microsoft, completamente scritto con tecnologia .NET) vi chiedo gentilmente maggiori informazioni. In particolare, quello che più mi interessa è: il C++, compatibile con .NET, è completamente differente dal C++ standard? Mi potete suggerire un valido libro sul C++ per .NET o delle guide su internet? Le mie conoscenze sul C++ non dovranno essere toccate col passaggio a tale tecnologia? La libreria standard e quella STL, tipiche dell'ANSI C++, potranno essere ancora sfruttate o, come in C#, devo adeguarmi alla libreria .NET (come System.Console, ecc...)? Infine, se dovrò usare la libreria .NET, la descrizione di tutti i metodi e funzioni ad essa appartenenti, dove potrà essere trovata? Su MSDN non mi oriento bene...

Grazie in anticipo.

Revan1985 Profilo | Junior Member

>>il C++, compatibile con .NET, è completamente differente dal C++ standard?
è abbastanza diffrente...
diciamo cambiano molto il tipo di puntatori... [non hai più i mille problemi della gestione della memoria del c++, ma devi darci un occhio di riguardo comunque...]

>>Mi potete suggerire un valido libro sul C++ per .NET o delle guide su internet?
no, sorry, le sto cercando anche io ^^'

>>Le mie conoscenze sul C++ non dovranno essere toccate col passaggio a tale tecnologia?
c++ unmanaged restano come sono, cambiano quelle per il managed...

>>La libreria standard e quella STL, tipiche dell'ANSI C++, potranno essere ancora sfruttate o, come in C#, devo adeguarmi alla libreria .NET (come System.Console, ecc...)?
stl e standard puoi usarle, ma solo nelle parti appunto, unmanged, o, unsafe...
mappoi, che ti servono in un progetto c++.net ?

>>Infine, se dovrò usare la libreria .NET, la descrizione di tutti i metodi e funzioni ad essa appartenenti, dove potrà essere trovata? Su MSDN non mi oriento bene...
andando su internet e digitando il nome della classe [es° System.Threading], si aprono molte vie per la sapienza
Non c'è emozione; c'è pace.
Non c'è ignoranza; c'è conoscenza.
Non c'è inquietudine; c'è serenità.
Non c'è caos; c'è armonia.
Non c'è morte; c'è la Forza.

xshell Profilo | Newbie

Grazie mille per aver risposto a tutte le mie domande.

Confesso che io sto cercando di passare a .NET, mantenendo le conoscenze sul C++, solo per facilitarmi la vita nel progetto delle GUIs. Infatti, come ben saprai, per il C++ esistono tantissime API, o librerie che incorporano determinate API (WinAPI, MFC, ATL, OWL, wxWidgets, QT, GTK+, e chi ne ha più ne metta...), ma tutte hanno, chi più chi meno, degli svantaggi (o perché sono molto complesse da usare, come, per il mio modesto parere, le WinAPI, o perché sono state scritte per sistemi opetativi molto datati e quindi non sfruttano tutte le potenzialità di quelli nuovi). Basta cercare su Google i termini "C++ GUI" e si potranno osservare migliaia di indirizzi che punteranno a forum pieni zeppi di intense discussioni su "Quale API usare con il C++?"...

Però, cercando informazioni su .NET, ho letto che con poche e semplici righe di codice si possono creare buone GUIs, che sfruttino tutte le potenzialità dei nuovi sistemi Windows. Ma se il C++ .NET non può più utilizzare le librerie standard e i puntatori che caratterizzano il C++, non si perderebbe la maggior parte del controllo sui componenti fisici del computer? La garbage collection poi fa tutto in automatico... boh...

Infine, tu hai detto di cercare su Google il nome della classe e così si troverà immediatamente una sua descrizione... questo è ovvio, ma io intendevo "se uno non conosce il nome della classe, ma vuole sapere se esiste una classe che contenga un metodo che faccia una determinata cosa, ad esempio calcolare il numero di caratteri di una stringa (sò già che è contenuta nella classe "System.Console"... e il metodo si chiama "Length"), come deve fare? La libreria standard del C++ è relativamente breve e molto documentata, ma la libreria .NET è molto vasta e la documentazione, a quanto pare, può essere trovata malamente sul sito MSDN... Chi si metterebbe settimane intere a "sfogliare" il sito MSDN controllando ogni singola classe, tra le migliaia di classi, ognuna con le sue centinaia di migliaia di metodi? Dei pazzi... come quei disperati che l'hanno scritta. I metodi comuni si conoscono, ma quelli più complessi e meno usati... valli a trovare! Libri su C++ per .NET sembra che siano oggetti rari da collezione... che meraviglia! Ed ecco che si esclamerà "WoW" (il WoW citato nello slogan di Windows... è questo che intendevano ;))

Dato che ho la forma mentis del programmatore C++, l'ideale sarebbe trovare un metodo equivalente per ogni singola funzione o metodo della libreria standard C++... Chi ce la fa? Il bello del C++ è che anche le librerie standard potevano essere modificate... aggiungendo o trasformando una funzione o un metodo. Nel .NET, se ad esempio si volesse modificare il metodo "WriteLine"?

Revan1985 Profilo | Junior Member

>> Grazie mille per aver risposto a tutte le mie domande.

Prego ^^

>>Confesso che io sto cercando di passare a .NET, mantenendo le conoscenze sul C++, solo per facilitarmi la vita nel progetto delle GUIs. Infatti, come ben saprai, per il C++ esistono tantissime API, o librerie che >>incorporano determinate API (WinAPI, MFC, ATL, OWL, wxWidgets, QT, GTK+, e chi ne ha più ne metta...), ma tutte hanno, chi più chi meno, degli svantaggi (o perché sono molto complesse da usare, come, per il >>mio modesto parere, le WinAPI, o perché sono state scritte per sistemi opetativi molto datati e quindi non sfruttano tutte le potenzialità di quelli nuovi). Basta cercare su Google i termini "C++ GUI" e si potranno osservare migliaia di indirizzi che punteranno a forum pieni zeppi di intense discussioni su "Quale API usare con il C++?"...

Le API del c++ non sono male, ma sono in stile "C"...
Le API di DotNet sono un must invece, completamente object oriented...

>>Però, cercando informazioni su .NET, ho letto che con poche e semplici righe di codice si possono creare buone GUIs, che sfruttino tutte le potenzialità dei nuovi sistemi Windows. Ma se il C++ .NET non può più utilizzare le librerie standard e i puntatori che caratterizzano il C++, non si perderebbe la maggior parte del controllo sui componenti fisici del computer? La garbage collection poi fa tutto in automatico... boh...

Puoi utilizzare tutte le cose standard del c++, solo, dovrai, appunto, usarli in modalità unsafe [non mi ricordo come si fa, ma se cerchi c++.net unsafe in google trovi molta roba]

>> Infine, tu hai detto di cercare su Google il nome della classe e così si troverà immediatamente una sua descrizione... questo è ovvio, ma io intendevo "se uno non conosce il nome della classe, ma vuole sapere se esiste una classe che contenga un metodo che faccia una determinata cosa, ad esempio calcolare il numero di caratteri di una stringa (sò già che è contenuta nella classe "System.Console"... e il metodo si chiama "Length"), come deve fare? La libreria standard del C++ è relativamente breve e molto documentata, ma la libreria .NET è molto vasta e la documentazione, a quanto pare, può essere trovata malamente sul sito MSDN... Chi si metterebbe settimane intere a "sfogliare" il sito MSDN controllando ogni singola classe, tra le migliaia di classi, ognuna con le sue centinaia di migliaia di metodi? Dei pazzi... come quei disperati che l'hanno scritta. I metodi comuni si conoscono, ma quelli più complessi e meno usati... valli a trovare! Libri su C++ per .NET sembra che siano oggetti rari da collezione... che meraviglia! Ed ecco che si esclamerà "WoW" (il WoW citato nello slogan di Windows... è questo che intendevano ;))

Io di solito cerco quel che mi serve...
"Contare lunghezza stringhe"
"Estrarre struttura tabella sql"
ecc...
cosi trovi di tutto..
e se non c'è in italiano, prova in inglese ^^

>> Dato che ho la forma mentis del programmatore C++, l'ideale sarebbe trovare un metodo equivalente per ogni singola funzione o metodo della libreria standard C++... Chi ce la fa? Il bello del C++ è che anche le librerie standard potevano essere modificate... aggiungendo o trasformando una funzione o un metodo. Nel .NET, se ad esempio si volesse modificare il metodo "WriteLine"?

mah, ne crei una exnovo...
io di solito faccio cosi...
non mi va bene la WriteLine?
ne creo una nuova, o modifico il metodo in una classe ereditata...
Non c'è emozione; c'è pace.
Non c'è ignoranza; c'è conoscenza.
Non c'è inquietudine; c'è serenità.
Non c'è caos; c'è armonia.
Non c'è morte; c'è la Forza.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5