1 / 50

Visual C++ 2008 { Was ist neu? }

Visual C++ 2008 { Was ist neu? }. Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH. Agenda. Visual C++ 2008 Wohin geht die Reise? Marshaling Library STL/CLR Visual C++ 2008 Feature Pack Die neue MFC TR1 Zusammenfassung. Begriffsklärung.

yorick
Download Presentation

Visual C++ 2008 { Was ist neu? }

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Visual C++ 2008{Was ist neu?} Dariusz Parys Developer Evangelist Microsoft Deutschland GmbH

  2. Agenda • Visual C++ 2008 • Wohin geht die Reise? • Marshaling Library • STL/CLR • Visual C++ 2008 Feature Pack • Die neue MFC • TR1 • Zusammenfassung

  3. Begriffsklärung • Native Entwickler / Native Entwicklung • Pures C++, direkte API Ansteuerung, auch COM / DCOM Programmierung, kurz alles was keine Common Language Runtime benötigt, sondern direkt auf dem System ausgeführt wird. • Managed Entwickler / Managed Welt / Managed Entwicklung • C#, VB.NET, alles was zur Laufzeit die Common Language Runtime benötigt!

  4. Visual C++ Historie… • C/C++ 7.0 • Programmers Workbench V2, MFC 1.0, First C++ version • Visual C++ 1 • Windows IDE, MFC 2.0 (Adds App Framework), Resource editor • VC++ 1.0 and 1.5 16 bit versions • VC++ 1.1 32-bit targeted at NT 3.1 and Win32S with 16-bit cross compiler • Visual C++ 2 • MFC 3.0, Templates, C++ Exceptions, First version targeted at Window NT • VC2.2 added Win95 • First 32-bit native compiler and IDE • Visual C++ 4.0 • MFC 4.0, (skipped v3 to catch up with MFC version), Namespaces, RTTI • Targeted at Windows 95 and Window NT • VC 4.2 was a major update with lots of internet support • Visual C++ 4.2 Enterprise Edition • SQL debugging and SQL projects This is anecdotal information supplied from the memories of the VC++ team and is not guaranteed to be 100% correct

  5. Visual C++ Historie… • Visual C++ 5.0 • MFC 4.2, ATL 2.0, supported building ActiveX controls (ATL 1.0 and 1.1 were web releases) • Visual C++ 6.0 • MFC 4.2, ATL 3 • Visual C++ 7.0 (2002) • .NET 1.0, Managed Extensions for C++, LTCG, Only version that C# and C++ was same team • Visual C++ 7.1 (2003) • MFC 7.1, .NET 1.1, ATL Server • Visual C++ 8.0 (2005) • MFC 8.0, C++/CLI, Open MP, First 64-bit targeting version (ia64 and x64 ) • .NET 2.0 • Visual C++ 9.0 (2008) • .NET 3.5 This is anecdotal information supplied from the memories of the VC++ team and is not guaranteed to be 100% correct

  6. Roadmap Visual C++ • Rund um native Entwicklung • Verbesserung nativer Bibliotheken, allem voran die MFC! • Unterstützung für Plattform Features wie zum Beispiel Multi-Core / Many-Core Programmierung • Modernisierung der Infrastruktur • Wirkliche Unterstützung von sehr großen Sourcecode Projekten • Schnellere Compilierungszeiten

  7. Roadmap Visual C++ • Interoperabilitätstechnologien • Es soll einfacher werden existierenden, nativen Code in .NET zu nutzen • Wechsel auf ein neues Release soll deutlich einfacher werden als bisher

  8. Visual C++ 2008Ein erster Schritt • Rund um native Entwicklung • MFC goodies für Vista (UI) • UAC Unterstützung der IDE • Vista SDK mit tausenden von API Funktionen • Modernisierung der Infrastruktur • Compiler Durchsatz: Metadata-basedincrementalmanagedbuildsandconcurrencymodulecompilation • .NET Framework Multi-Targeting • Hallo, Klassendesigner!

  9. Visual C++ 2008Ein erster Schritt • Interoperabilitätstechnologien • Marshaling Library • STL/CLR

  10. VC++ 2008: Common Controls und Vista • MFC Klassen und Editor Support für die neuen Windows Vista Common Controls • SysLink • Network address control • Command Link • Split button • Auch XP Support wurdeüberarbeitet, vieles war nichtrichtigunterstützt • Hunderte von messages, styles, notifications, etc. • Sogar Spy++ wurdeaktualisiert! • ImIdealfall Einfachneukompilieren!

  11. Klassendesigner • Visualisiertnativen C++ code • Integriert in die IDE • Code wirdsynchronisiert • C++ Sprachkonzeptewerdenvisualisiert • e.g., templates, typedefs, enums, etc. • C++ Klassendesignerbenutzen um • Einarbeitung in existierenden Code • KlassendiagrammezurDokumentationhinzufügen

  12. C++ Klassendesigner

  13. String? Klar, welcheAbbildung? • Die Auswahlistgroß… • single byte char array • Single byte char pointer • Multi-byte char array • Multi-byte char pointer • Double-byte char array • Double-byte char pointer • BSTR • CString • std::string • System::String

  14. Ziele der Marshaling Library • Mixed-Mode Anwendungen müssen oft Daten umwandeln (Nativ <-> Managed) • Performance • Transformationen mittels der Laufzeit Marshaling Mechanismen ist Kompliziert und Verwirrend •  Einfache Handhabung • Transformation eigener Datentypen muss möglich sein •  Erweiterbarkeit

  15. Marshaling Library • Unterstützt den Entwickler bei der Transformation der Daten • Übernimmt die Verwaltung des allokierten Speichers während des Marshaling Prozesses

  16. Marshaling LibraryKontextfrei • #include <msclr/marshal.h> • Using namespace msclr::interop; • … • { • … • const char* quelle = “Hallo”; • System::String^ ziel; • ziel = marshal_as<System::String^>(quelle); • … • }

  17. Marshaling Librarymit Kontext • #include <msclr/marshal.h> • Using namespace msclr::interop; • … • { • … • System::String^ quelle = “Hallo”; • const char* ziel; • marshal_contextctx; • ziel = ctx.marshal_as<const char*>(quelle); • … • }

  18. {marshaling library } demo Dariusz Parys Developer Evangelist D&PE

  19. Marshaling Library • marshal.h • Standard-Typen • marshal_windows.h • Windows Daten-Typen • marshal_cpp.h • STL Daten-Typen • marshal_atl.h • ATL Daten-Typen • Xyz.h • Eigene Daten-Typen

  20. STL/CLR • Die Standard Template Library Implementierung für .NET • STL Kenntnisse können weiter verwendet werden • Einfacherer Datenaustausch zwischen .NET Collections und STL Containern

  21. STL/CLR Container • Identisch • Container • Algorithmen • CLR verwaltet  GarbageCollected • Header Dateien im „cliext“ Ordner • Namensbereich cliext

  22. STL/CLR - Nutzung • using namespace System; • #include <cliext/vector> • int main() • { • cliext::vector<String^> v; • v.push_back(“Hallo ”); • v.push_back(“Welt!”); • cliext::vector<String^>::iterator it = v.begin(); • Console::Write(*it); • Console::WriteLine(v[1]); • }

  23. STL/CLR - Datentypen • Speicherbare Datentypen • Referenztypen (R) und Handle (R^) • Wertetypen (V) • Built-in Datentypen (C++ und .NET) • Nicht speicherbare Datentypen • Native Klassen • Pointer

  24. STL/CLR Container, Iteratoren und Algorithmen • Implementieren .NET Collection Schnittstellen • Vereinfachtes Interop • Iteratoren wie in STL • Nur lesende, nur schreibende oder beides • Prüfen ob im Gültigkeitsbereich (RangedChecked) • Algorithmen und Funktionen identisch wie bei der nativen STL • Anwendbar auf STL und STL/CLR!

  25. STL/CLR Interop • Container kann aus einer .NET Collection erzeugt werden • Collection kann als Container „adaptiert“ werden • Kein Kopieren der Daten • Iteratoren Paar kann als Collection „adaptiert“ werden • Ebenfalls kein Kopieren der Daten

  26. {STL/CLR } demo Dariusz Parys Developer Evangelist D&PE

  27. Wunschliste nach 2008 • Rund um native Entwicklung • Große MFC Investments und Erweiterungenrund um Windows Funktionalität • ManyCore/MultiCore Support, 64 Bit Development • ModernisierungderInfrastruktur • Schnelle IDE imZusammenhangmitgroßenSourcebeständen • Code AnalyseUnterstützung • VerbesserteKompilierungszeiten • Bessere Debugging Funktionalität • Interoperabilitätstechnologien • Nahezuidentische Performance zwischennativer und managed Welt. • Verbessertes Native/Managed Debugging

  28. {Visual C++ 2008 Feature Pack } announcing

  29. MFC – Die Erweiterungen G Application Architecture Window Support General Purpose NEW! Frames Visual Manager Exceptions CWinApp Tabbed MDI Control Bars Office Ribbon File Services Dialogs ToolBar, Menu, StatusBar Doc/View Docking Panes Database Support Views Vista Common Dialogs Window Controls Vista Common Controls OLE Support Containers New Controls GDI Support More…

  30. VisualManager (1) • Kontrolliert das Look & Feel • ZentralesZeichnendermeistenSteuerelemente • ZurLaufzeitauswählbare Look & Feels • Office XP • Native Windows XP/Windows Vista • Office 2003 • VisualStudio 2005 • Office 2007 (with color schemes)

  31. VisualManager (2)

  32. Vista Common Dialogs

  33. Ribbon

  34. Ribbon (2) CMFCRibbonApplicationButton CMFCRibbonQuickAccessToolBar CMFCRibbonCategory CMFCRibbonBar CMFCRibbonPanel CMFCRibbonColorButton CMFCRibbonButton

  35. Docking Panes

  36. Weitere MFC Features (1) • NeueDialoge (z.B. der Color Picker) • Desktop Alerts (wieder Messenger oderauch Outlook) • Neue Controls • Advanced button • Shell tree und Liste • Mask edit • Property list

  37. Weitere MFC Features (2) • Neue Common Controls • Command button, Split button • Network address control • Benutzereinstellungenwerdenautomatischverwaltet • Die neue MFC basiert auf derImplementierung von BCGSoft • Bitte die Office UI Lizenzseitens Microsoft beachten!

  38. {die neue MFC } demo Dariusz Parys Developer Evangelist D&PE

  39. Office UI Lizensierung • Office UI Lizenz wird benötigt • beim Ribbon Element • beim Office 2007 Look & Feel • Lizenz ist kostenfrei • Registierung unter http://msdn.microsoft.com/officeui

  40. VC++ Libraries – TR1 • TR1 stehtfür “Technical Report on C++ Library Extensions” • tr1::shared_ptr • tr1::function, tr1::mem_fn, tr1::bind • tr1::regex • tr1::tuple, tr1::array, • tr1::type_traits • Zufallszahlengenerator • Kein C99 & special math Support

  41. shared_ptr Vorteile • Automatische Speicherverwaltung • Objekt mit „new“ instanzieren • Löschen des Objektes übernimmt der shared_ptr<T> • Einsatzbereit für jede Klasse • Einfach von jetzt an immer benutzen!

  42. Regular Expressions • Reguläre Ausdrücke sind • Kompakt, leicht gewöhnungsbedürftig • durch einen String dargestellt • Der Ausdruck erlaubt • Vergleiche mit dem kompletten Ausdruck • Suche im Ziel nach Teilen des Ausdrucks • Ersetzung durch einen weiteren Ausdruck

  43. regex_match() • const regex r("[1-9]\\d*x[1-9]\\d*"); • for (string s; getline(cin, s); ) { • cout << (regex_match(s, r) ? "Yes" : "No") << endl; • } • Ausgabe: • 8x10 • Yes • 1920x1200 • Yes • 3.14x137 • No

  44. regex_replace() • const regex r("(\\w+)( \\w+\\.?)? (\\w+)"); • const string fmt("$3, $1$2"); • for (string s; getline(cin, s); ) { • cout << "*** " << regex_replace(s, r, fmt) << endl; • } • Ausgabe: • William H. Gates • *** Gates, William H. • William Henry Gates • *** Gates, William Henry • Bill Gates • *** Gates, Bill

  45. Verfügbarkeit • Visual C++ 2008 • Jetzt, auch in deutscher Edition • Die neue MFC und TR1 • Visual C++ 2008 Feature Pack • Momentan als Beta verfügbar

  46. Zusammenfassung • Visual C++ ist das native Entwicklungswerkzeug und Microsoft investiert in diesen Bereich • Visual C++ ist im Bereich Interoperabilität zwischen der Nativen und der Managed Welt das Werkzeug der Wahl • Mit dem kommenden Feature Pack wird die MFC modern (UI) und hat eine Zukunft

  47. Kontakt: Dariusz Parys • Mein Blog: • http://blogs.msdn.com/dparys • Meine Email: • dparys@microsoft.com

  48. Visual Studio 2008weitere Angebote • Visual Studio Team System Information Day • Regelmäßige ganztägige Informationsveranstaltung von Microsoft • Praxisnahe Demos & viel Raum für Diskussionen • Details & Anmeldung: www.event-team.com/events/visualstudio • TeamConf 2008 – Die Visual Studio Team System Konferenz • VSTS in der Praxis - 22.-24. April 2008 in München • Anwenderberichte (Siemens, ABB, Commerzbank, Datev, Münchener Rück,..) • Fach- und Technologievorträge • Vortragsprogramm und Anmeldung: www.teamconf.de • Visual Studio Launch Promotion • Tauschen Sie Ihre Visual Studio Standard in eine höherwertige Visual Studio Edition Ihrer Wahl • Anrechnung in Höhe von 299 € beim Kauf eines anderen VS Produktes • vom 19. Februar bis zum 30. April 2008 • Nur bei den Partnern: PC Ware, SoftExpress, SOS und Zoschke(befinden sich alle in der Ausstellerhalle)

  49. AsktheExperts Wir freuen uns auf Ihre Fragen: Technische Experten stehen Ihnen während der gesamten Veranstaltung in der Haupthalle zur Verfügung.

  50. © 2007 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

More Related