Visual Studio 2010 este in present disponibil ca beta 1 si poate fi descarcat de la centrul de download Microsoft, atat editia Professional cat si Team System. Printre noutatile pentru dezvoltarea in C++ se numara urmatoarele.
Mediul de dezvoltare
- Noul mediu de lucru are interfata bazata pe WPF,
http://blogs.msdn.com/jasonz/archive/2009/02/20/a-new-look-for-visual-studio-2010.aspx - Una dintre avantajele folosirii WPF e ca se poate face zoom in si out pe documente, folosing tasta Control si rotita de la mouse; nu este insa disponibil (si nici nu va fi in aceasta versiune) un control slider asa cum exista in aplicatiile din suita Office
http://software.intel.com/en-us/blogs/2009/02/26/visual-studio-2010-zoom-slider-control/ - Intrucat cam toata lumea foloseste acum doua monitoare, noua versiune de Visual Studio suporta dockingul documentelor pe mai multe monitoare
http://blogs.msdn.com/saraford/archive/2008/12/18/did-you-know-how-to-optimize-visual-studio-for-multi-monitors-381.aspx
http://msdn.microsoft.com/en-us/library/z4y0hsax(VS.100).aspx - Highlight Reference pune in evidenta printr-o reprezentare cu o anumita culoare a tuturor referintelor la un anumit simbol
- Call Hierarchy reprezinta un browser de apeluri imbunatatit, care afiseaza ce functii sunt apelate dintr-o functie, respectiv din ce functii e apelata o functie, permitant in acelasi timp o navigare usoara intre functiile apelate si apelante
http://blogs.msdn.com/vcblog/archive/2009/06/11/call-hierarchy.aspx
http://blogs.msdn.com/somasegar/archive/2008/12/19/code-focused-development-in-vs-2010.aspx
http://blogs.msdn.com/kirillosenkov/archive/2009/05/19/should-call-hierarchy-display-compiler-generated-members.aspx - Squiggles (adica acele linii de subliniere rosi care indica erori in cod), care ofera informatii despre erorile de compilare in textul sursa
http://blogs.msdn.com/vcblog/archive/2009/06/01/c-gets-squiggles.aspx
Visual C++
- IntelliSense a fost regandit, fisierele NCB au disparut, iar informatiile de browsing sunt pastrate intr-o baza de date SQL Server Compact. Informatiile pentru IntelliSense sunt pastrate in memorie pentru fiecare unitate de translatie (practic fisier sursa cu toate headerele incluse), iar parsarea se face la deschiderea fisierului in editor (si evident pe parcursul editari lui). Aceasta noua abordare rezolva problemele existente cu fisierele NCB, cum ar fi faptul ca modificarile (fie adaugari, fie stergeri) nu se reflecta imediat in informatiile afisate de IntelliSense, sau ca la orice modificare a unui header incepe un update al fisierului NCB, a carui dimensiune nu scade niciodata, ci doar creste, din cand in cand trebuind cate o stergere manuala a lui.
- MSBuild este noul tool folosit pentru build (toate celelalte limbaje il foloseau deja). Acesta permite o customizare mai usoara, sau in orice caz mai flexibila a procesului de build.
Un aspect important este posibilitatea de a face targeting pentru versiuni diferite (10.0, 9.0, 8.0, 7.x) ale bibliotecilor VC++ (CRT, MFC) pentru toate platformele (x86, X64, Itanium), din acelasi proiect. Asta desigur in conditiile in care aceste biblioteci, precum si toolurile pentru build (compilator, linker, etc.) sunt disponibile.
http://blogs.msdn.com/vcblog/archive/2008/11/20/printf-hello-msbuild-n.aspx
http://blogs.msdn.com/vcblog/archive/2009/04/01/vc-msbuild-extensibility-example.aspx
http://www.codeguru.com/columns/kate/article.php/c15857/ - Compilator pentru C++ ofera deja suport pentru noutatile din standardul C++0x care vor fi cu siguranta si in versiunea finala. Suportul din VC++ 2010 include:
- lambda, auto si static_assert
http://blogs.msdn.com/vcblog/archive/2008/10/28/lambdas-auto-and-static-assert-c-0x-features-in-vc10-part-1.aspx - referinte r-value
http://blogs.msdn.com/vcblog/archive/2009/02/03/rvalue-references-c-0x-features-in-vc10-part-2.aspx - decltype
http://blogs.msdn.com/vcblog/archive/2009/04/22/decltype-c-0x-features-in-vc10-part-3.aspx
- lambda, auto si static_assert
- MFC ofera suport pentru facilitati specifice Windows incepand cu Vista
- Task Dialog, care este un inlocuitor al clasicei ferestre de dialog, putand afisa linkuri, butoane customizate, icoane, si un footer.
http://mariusbancila.ro/blog/?p=222 - Restart Manager, ofera suport pentru restart automat in cazul terminarii anormale a unui program sau atunci cand in urma unui update este necesara repornirea programului.
http://mariusbancila.ro/blog/?p=218
http://blogs.msdn.com/vcblog/archive/2009/02/18/mfc-restart-manager.aspx
- Task Dialog, care este un inlocuitor al clasicei ferestre de dialog, putand afisa linkuri, butoane customizate, icoane, si un footer.
Biblioteci
- Parallel Pattern Library, este o biblioteca care permite dezvoltarea de aplicatii concurente in C++ (este o implementare nativa foarte asemanatoare cu cea pentru platforma .NET, posibila datorita suportului oferit de compilator pentru expresii lambda). Include
- Paralelism pentru taskuri: un mecanism de a executa cateva taskuri (work items) in paralel.
- Algoritmi paraleli: un set de algorimi generici pentru colectii de date
- Containere si obiecte paralele: tipuri de containere generice care permit acces concurent sigur la elemente
http://msdn.microsoft.com/en-us/magazine/dd434652.aspx
Tooluri
- Historical Debugging: Visual Studio poate stoca continutul stivei si valorile variabilelor in timpul rularii, permitand programatorilor sa poata rula pas cu pas inapoi in timp, vizualizand ce s-a intamplat la un anumit moment si de ce.
http://channel9.msdn.com/posts/VisualStudio/Historical-Debugger-and-Test-Impact-Analysis-in-Visual-Studio-Team-System-2010/
http://blogs.microsoft.co.il/blogs/shair/archive/2009/05/20/visual-studio-2010-historical-debugging.aspx - Extensions Manager, permite descarcarea extensilor pentru Visual Studio 2010 direct de pe Visual Studio Gallery; restrictia este insa ca aceste extensii sa fie disponibile sub forma unui fisier .VSIX.
http://www.danrigsby.com/blog/index.php/2009/05/21/visual-studio-2010-extension-manager/
http://msdn.microsoft.com/en-us/library/dd293638(VS.100).aspx - Fereastra de threaduri a fost imbunatatita pentru a vizualiza mai usor threadurile.
- Fereastra noua pentru taskuri paralele, permite visualizarea de taskuri care ruleaza la un moment dat, cu vizualizarea stivei, schimbarea contextului, etc.
http://www.danielmoth.com/Blog/2009/05/parallel-tasks-new-visual-studio-2010.html
http://channel9.msdn.com/posts/VisualStudio/Debugging-Parallel-Applications-with-Visual-Studio-2010/