visual c 2008 was ist neu l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Visual C++ 2008 { Was ist neu? } PowerPoint Presentation
Download Presentation
Visual C++ 2008 { Was ist neu? }

Loading in 2 Seconds...

play fullscreen
1 / 50

Visual C++ 2008 { Was ist neu? } - PowerPoint PPT Presentation


  • 126 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Visual C++ 2008 { Was ist neu? }' - yorick


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
visual c 2008 was ist neu

Visual C++ 2008{Was ist neu?}

Dariusz Parys

Developer Evangelist

Microsoft Deutschland GmbH

agenda
Agenda
  • Visual C++ 2008
    • Wohin geht die Reise?
    • Marshaling Library
    • STL/CLR
  • Visual C++ 2008 Feature Pack
    • Die neue MFC
    • TR1
  • Zusammenfassung
begriffskl rung
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!
visual c historie
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

visual c historie5
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

roadmap visual c
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
roadmap visual c7
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
visual c 2008 ein erster schritt
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!
visual c 2008 ein erster schritt9
Visual C++ 2008Ein erster Schritt
  • Interoperabilitätstechnologien
    • Marshaling Library
    • STL/CLR
vc 2008 common controls und vista
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!
klassendesigner
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
string klar welche abbildung
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
ziele der marshaling library
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
marshaling library
Marshaling Library
  • Unterstützt den Entwickler bei der Transformation der Daten
  • Übernimmt die Verwaltung des allokierten Speichers während des Marshaling Prozesses
marshaling library kontextfrei
Marshaling LibraryKontextfrei
  • #include <msclr/marshal.h>
  • Using namespace msclr::interop;
  • {
  • const char* quelle = “Hallo”;
  • System::String^ ziel;
  • ziel = marshal_as<System::String^>(quelle);
  • }
marshaling library mit kontext
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);
  • }
marshaling library18

{marshaling library }

demo

Dariusz Parys

Developer Evangelist

D&PE

marshaling library19
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
stl clr
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
stl clr container
STL/CLR Container
  • Identisch
    • Container
    • Algorithmen
  • CLR verwaltet  GarbageCollected
  • Header Dateien im „cliext“ Ordner
    • Namensbereich cliext
stl clr nutzung
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]);
  • }
stl clr datentypen
STL/CLR - Datentypen
  • Speicherbare Datentypen
    • Referenztypen (R) und Handle (R^)
    • Wertetypen (V)
    • Built-in Datentypen (C++ und .NET)
  • Nicht speicherbare Datentypen
    • Native Klassen
    • Pointer
stl clr container iteratoren und algorithmen
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!
stl clr interop
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
stl clr26

{STL/CLR }

demo

Dariusz Parys

Developer Evangelist

D&PE

wunschliste nach 2008
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
mfc die erweiterungen
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…

visualmanager 1
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)
ribbon 2
Ribbon (2)

CMFCRibbonApplicationButton

CMFCRibbonQuickAccessToolBar

CMFCRibbonCategory

CMFCRibbonBar

CMFCRibbonPanel

CMFCRibbonColorButton

CMFCRibbonButton

weitere mfc features 1
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
weitere mfc features 2
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!
die neue mfc

{die neue MFC }

demo

Dariusz Parys

Developer Evangelist

D&PE

office ui lizensierung
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

vc libraries tr1
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
shared ptr vorteile
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!
regular expressions
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
regex match
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
regex replace
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
verf gbarkeit
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
zusammenfassung
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
kontakt dariusz parys
Kontakt: Dariusz Parys
  • Mein Blog:
    • http://blogs.msdn.com/dparys
  • Meine Email:
    • dparys@microsoft.com
visual studio 2008 weitere angebote
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)
ask the experts

AsktheExperts

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

slide50

© 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.