background

Sessions 2013

    Keynote: Building Modern Device Apps with C++

    C++ is ideal for mobile device applications because it’s easy to get performance right and much of your code is portable across the device platforms you care about. In this session you’ll learn about using Visual Studio to build a Windows Phone app, share code with Windows 8 apps, and use cloud services in your software.

    Sprecher: Steve Teixeira, Microsoft

    Keynote: DirectX Graphics Development with Visual Studio 2012

    Welcome to the new era of highly-interactive applications. End users continue to push the boundaries with their expectations on how interactive every-day applications need to be. This is placing a bigger burden on us, the developers, to create user interfaces that are more graphically-intensive. On the Windows platform, DirectX is the best technology for tackling such applications. Whether you are using DirectX to create an interactive UI for a Windows Store app or a complex CAD system, having the right tools will make your job easier. Come and join us in this session for a tour of the tools and technologies in Visual Studio 2012 for applications that depend on DirectX. Learn about the new tools for creating DirectX apps, writing shaders, working with graphics assets including images and 3D models, and debugging the DirectX code.

    Sprecher: Tarek Madkour, Microsoft

    Windows Embedded 8 Standard im Überblick

    Windows 8 ist zwar vielseitig wie ein Schweizer Taschenmesser, aber in bestimmten Projekten ist Standard Windows als Betriebssystem einfach nicht das Richtige. Vor allem im Embedded Markt gibt es Anforderungen an Flexibilität und Funktionalität, die mit normalen Mitteln und Konfigurationsoptionen nicht gemeistert werden können. Mit Windows Embedded 8 Standard gibt Microsoft Entwicklern die Möglichkeit sich das eigene Betriebssystem aus einem Baukasten maßzuschneidern. Folgen Sie Reiner Gerczuk und Alexander Wechsler in die interessante Welt der Spezialanwendungen und außergewöhnlichen Einsatzzwecke. Diese Session zeigt, dass Windows Embedded überhaupt nicht nach Windows aussehen muss, erklärt wie man es unter härtesten Einsatzbedingungen schützen und selbst erstellte native und/oder WinRT Anwendungen als Betriebssystem Shell einsetzen kann. Die Praxis kommt anhand von Einsatzbeispielen in realen Projekten dabei nicht zu kurz.

    Sprecher: Alexander Wechsler, Wechsler Consulting

    Transactional Memory in C++

    We further show different techniques for supporting various levels of safety annotation, from fully static compiled time checking to some levels of dynamic checking to ease the burden for programmers. It is the intention of the group to bring forward a fully worded proposal for Bristol 2013 as a Technical Specification. Now some of you have wondered if it is too early for TM. Let me say that HW is coming, with Intel's recent Haswell announcement, and IBM's BG/Q, and previously Sun's Rock. SW TM support has been here for quite some time with Intel's STM support of the 1.0 Draft, and most recently GCC C++ 4.7's nearly full support of Draft 1.1. And if you think it is still too early, let me say that one of Hans Boehm's discovery was that locks are impractical for generic programming, because ordering of locks is generally not visible until instantiation. With the introduction of locking (and atomics) in C++11, this now becomes a difficult problem to avoid. Transactional memory is one way to solve the problem. It also helps for fine-grained locking on irregular data structures, and read-mostly structures. In this talk, we will present the proposal for Standardization in C++, including supporting evidence of the usage experience, and performance data. Finally, if you are still wondering is transactional memory fast enough? There are many different software transactional memory systems with different performance characteristics, so there is probably going to be one that fits your needs. TM is coming in many different forms (HW, SW, hybrid systems, lock elision), and for C++ to remain in a good place with the many other languages that already support TM, this is the right time to be prepared with a sound proposal.

    Sprecher: Michael Wong, IBM

    Windows Embedded Compact 2013 – eine technische Einführung

    Für Anwendungsfälle, in denen es auf Real-Time Performance und geringen Speicherbedarf ankommt, stellt Microsoft das Betriebssystem Windows Embedded Compact 2013 zur Verfügung, die neueste Entwicklung in der bekannten Windows CE Betriebssystemreihe. Lernen Sie mit Alexander Wechsler und Reiner Gerczuk, wie Sie mit Hilfe von Windows Embedded Compact 2013 Systeme für die Bereiche Industrial Automation, Retail und Medical Devices entwickeln können. Diese Session gibt Ihnen einen Überblick über Microsofts Plattform für intelligente Devices mit geringem Ressourcenbedarf und zeigt anhand einiger Beispiele, wie Sie unter Verwendung der bekannten Microsoft Entwicklungstools attraktive Anwendungen sowohl auf Applikationsebene als auch auf Systemebene entwickeln und mit Hilfe innovativer Technologien optimale Lösungen für Ihre Kunden erstellen können.

    Sprecher: Reiner Gerczuk, Microsoft

    Trends and Future of C++ Standard and ISOCPP.org

    C++11 is just ratified. The C++ Standard committee is hard at work on the next 3 standards. Yes, the next standards are tentatively targeted for 2014, 2017, and 2022. A minor update release is planned for 2014, to fix bugs from 2011, and remove minor annoyances from the Standard. Bjarne Stroustrup believes that for C++17, we only have resource for 1 major feature, 2 medium features, and a dozen minor features. It is not clear what that one major feature will be. Modules? Concepts? Advanced Parallel C++? Transactional Memory? The plan is to further follow that with another major release of C++ every five years, leading to 2022. What will you want as the major feature for C++17?
    An interesting phenomenon is that we now have the creation of numerous Study Groups. There are focus groups that look at large Evolution proposals. It relieves the Evolution Working Group from having to deal with large features that block smaller features from being processed, but also allows a concentration of experts to work on a feature for delivery at a time of the group’s choosing.
    So here are the additional study Groups beyond the original Concurrency SG:

    SG1: Concurrency and Parallelism
    SG2: Modules
    SG3: File System
    SG4: Networking
    SG5: Transactional Memory
    SG6: Numerics
    SG7: Reflection
    SG8: Concepts
    SG9: Ranges
    SG10: Features
    SG11: Database

    In the interim, there will likely be publication of several Study Group outputs as Technical Specifications (TS). This talk will review the progress of the Standard on these Study groups, as well as key interesting proposals which will make up the major features of future C++ Standard. We will also discuss the formation of the new centralized website for C++ technical knowledge and promotion. As one of the Director of ISOCPP.org, I will discuss the formation of this Foundation and new website.

    Sprecher: Michael Wong, IBM

    Warum wird Code so wie er ist?

    „Mach mal; Zeitdruck; Beispielcode; nur nicht auffallen; es geht doch; mein Code, dein Code; ich kann’s; Ausbildung übers Projekt“ Denken vor machen; über den eigenen Schatten springen, Geistiges öffentlich zu machen, die Deckung verlassen, einstecken können. Softwarequalität ist ein wichtiges Thema im Entwicklungsprozess. Mit Prozessen, Werkzeugen und Wissenserweiterung arbeitet daran Qualität zu steigern. Aber stehen wir, die Code mit Qualität erzeugen, im Mittelpunkt dieser Prozesse und Werkzeuge? Wenn agile Methoden wie SCRUM das Team fördern, ist die individuelle Leistung des Einzelnen immer noch eine Basis für Qualität. Und die Kette ist so stark wie ihr schwächstes Glied. Suchen und zeigen von (auch eigenen) Erfahrungen und Beobachtungen. Muster der Code-Erzeugung von uns und deren Qualität.

    Sprecher: Holger Kolb, DEVCOL

    Einfacheres C++ mit C++11

    Mit dem Release des neuen ISO Standards für C++ in 2011 gibt es neue Syntax und Library Komponenten, die es erlauben C++ Programmcode einfacher zu gestalten. Aber auch lange existierende Library-Konzepte, wie Algorithmen der Standardbibliothek, werden oft in der Literatur und Ausbildung vernachlässigt, weil es zu kompliziert erscheint, dass Konzept der Funktoren zu erklären, oder weil die Fehlbenutzung der Algorithmen Template-Funktionen zu völlig unverständlichen Fehlermeldungen führt. Gerade letzteres bewirkt, dass viele C++ Programmierer eigentlich unnötigen Schleifencode immer wieder programmieren, anstatt nur die passenden Algorithmus-Funktion aufzurufen. Das C++11 Feature Lambda und die aus der Boost Library bekannten bind() Expressions und function Objekte erlauben eine einfachere Nutzung der Algorithmen Library Funktionen direkt an der Aufrufstelle ohne eine separate Funktor Klasse zu programmieren Neben diesem Beispiel bietet C++11 mit der universellen Initialisierungssyntax, der neuen Bedeutung von auto, Lambdas, variadic templates, neuen Library Komponenten wie die Smart-Pointer und der Unterstützung von Concurrency interessante Aspekte, die dazu führen, dass man mit C++11 deutlich einfacher programmieren kann als mit dem früheren Standard-C++. Der Vortrag wird zeigen, wie Sie einfacheren und eleganteren Code schreiben können und vor allem auf potentiell fehlerträchtige Sprachkonstrukte verzichten können.

    Sprecher: Peter Sommerlad, FHO HSR Hochschule für Technik

    Windows XP/Vista/7/8(9/10/n) Desktop Kompatibilität – Wann ist eine Anwendung kompatibel?

    Können Windows-Anwendungen so kompatibel programmiert werden, dass sie auch auf zukünftigen Version funktionieren?
    Schauen wir auf Windows 8:

    Genau genommen befindet sich in Windows 8 zweimal Windows in einer Box. Das eine Windows ist der bekannte Desktop, allerdings mit vielen Neuerungen und Anpassungen. Das andere Windows präsentiert sich mit einer völlig neuen Benutzeroberfläche, die eine neue Dimension der Touch-Bedienung eröffnet. Dieses neue Windows stellt ebenfalls eine neue Windows 8 API (WinRT) bereit. Durch diese Architektur gibt es unter Windows 8 zwei Arten von Anwendungen: Desktop- und Windows Style Anwendungen, die beide auch über einen Windows Store für Kunden bereitgestellt werden können. Darüber hinaus unterstützt Windows 8 als erstes Windows die ARM Prozessor Architektur.

    Eine wichtige Frage lautet nun: „Wie kompatibel verhält sich Windows 8 für bestehende Desktop Anwendungen?“

    Sprecher: Oliver Niehus, Microsoft

    Sicher sein oder sicher fühlen? - Sicheren C++ Code schreiben

    Sicherheitsaspekte werden bei der Entwicklung von Software meist gar nicht oder nur sehr oberflächlich betrachtet. Dabei ist der Schaden, der durch Vertrauensverlust entstehen kann meist sehr hoch. Anwendungssicherheit basiert bei vielen Entwicklern eher auf Annahmen als Fakten. Dabei ist die Definition von sicherer Software sehr einfach: „Sie widersteht Attacken!“
    Nach den Erfahrungen bei Microsoft wiegen die Vorteile, die dadurch entstehen, dass eine sicherere Software entwickelt wird (z. B. weniger Patches und zufriedenere Kunden), die Kosten auf.

    Sprecher: Oliver Niehus, Microsoft

    Media Extensions : Media Apps in Windows 8 und Windows Phone 8

    Diese Session beschreibt wie man komplexe Media Apps unter Windows 8 die über die Standard Funktionalitäten der Windows Media Plattform hinaus gehen realisiert und wie man die Windows Runtime (WinRT) um Media Extension Filter erweitert. Dieser Bereich ist besonders interessant für C++ Entwickler weil dieser Bereich ausschließlich in nativem Code realisierbar ist.

    Sprecher: Gunter Logemann, Microsoft

    Gestensteuerung für Windows mit Kinect

    Diese Session zeigt, was der Kinect Sensor leisten kann und wo die Grenzen sind. Sie zeigt wie man eigene Applikationen mit der Kinect für Windows entwickeln ,und so neue Wege der Benutzerinteraktion realisieren kann. Anhand von praktischen Beispielen wir gezeigt wie man mit der Entwicklung beginnt und was das Microsoft SDK für Funktionalitäten bietet. In C++ !

    Sprecher: Gunter Logemann, Microsoft

    Effiziente Entwicklung im Team mit TFS 2012

    Effiziente Teams integrieren alle Beteiligten entsprechend ihrer Rolle, um die Entwicklung und den Informationsfluss möglichst effizient zu gestallten. Mit Integriertem Storyboarding für PowerPoint können Anforderungen auf eine leichtgewichtige Art und Weise erfasst werden und ermöglichen eine effiziente Kommunikation zwischen Product Owner und dem Team. Das Product Backlog und die Sprint Planung muss effizient verwaltet werden, um die notwendige Transparenz im Team zu schaffen. Code Reviews helfen, dem Team die Code Qualität zu steigern und die Zusammenarbeit zu optimieren. Verbesserungen im Bereich Version Control machen jedem Entwickler das tägliche Leben mit dem Code einfacher, ob CVCS oder DVCS. Schlussendlich gibt es mit dem Feedback Client für das Team eine einfache Möglichkeit, strukturiert Feedback von Stakeholdern einzuholen und schließt somit den Kreis zwischen Anforderung und Implementierung.

    Sprecher: Christian Binder, Microsoft

    C++ Unit Testing mit Visual Studio 2012

    Test Driven Development und der Test First Ansatz erfreut sich in der .NET Welt einer immer stärkeren Beliebtheit. Gerade entwicklernahe Unit Tests bieten ein extrem günstiges Kosten-Nutzen-Verhältnis, reduziert doch schon die Nutzung von Unit Tests bei der Erstellung einer Komponente den Aufwand erheblich, so gibt‘s die Integration dieser Tests in einen automatisierten Build gratis oben drauf und damit wird eine kontinuierliche Qualitätüberwachung zu Null-Tarif möglich. Doch im unmanaged Umfeld waren bislang Unit Tests schwer realisierbar, von Integration in die IDE war eher keine Rede. Dies wird für den C++ Programmierer nun mit Visual Studio 2012 erstmals anderes. Microsoft liefert nun ein Unit Test Framework für die Erstellung von Unmanged Unit Tests, das sich analog zur .NET Welt in Visual Studio und den Team Foundation Server integriert. Neben den Grundlagen zur Erstellung von Unit Tests erfahren Sie in diesem Vortrag auch welche Möglichkeiten bestehen Managed-Unmanged-Mixed-Mode Anwendungen sinnvoll zu testen. Abgerundet wird der Vortrag durch das Aufzeigen der Grenzen und Probleme, die beim Unit Testing zum Alltag gehören.

    Sprecher: Thomas Trotzki, artiso

    Windows 8 Store Apps mit C++ und XAML erstellen

    Unter Windows 8 erhält nun auch der C++ Programmierer die Möglichkeit optisch modernste Benutzerschnittstellen mit XAML zu „deklarieren“ und auf die Windows Runtime (WinRT) zurückzugreifen. Somit steht für Windows 8 Store UI Style Apps erstmals ein neues UI Framework zur Verfügung. Dieser Vortrag vermittelt Ihnen die wesentlichen Grundlagen zu Windows 8 Store UI Style Apps mit dem dazugehörigen Interaktionsmodell und zeigt, wie Sie mit Visual C++ und XAML eigene Store UI Apps erstellen können. Das Konzept des App Stores rundet den Vortrag ab.

    Sprecher: Thomas Trotzki, artiso

    Building and Consuming Cloud Services with C++

    The performance and flexibility offered by C++ makes sense for code that runs on devices as well as in the cloud. In this session you’ll learn about using modern C++ to build and consume Azure cloud services in Visual Studio.

    Sprecher: Steve Teixeira, Microsoft

    What’s New in Visual Studio 2012 for C++ Developers

    This is a fast-paced session taking you through a tour of the new features available to C++ developers in Visual Studio 2012. This talk will cover the breadth of the Visual C++ tools including the improved productivity features in the IDE, the new Application Lifecycle Management tools for C++, C++11 language conformance, compiler optimizations that make your code run faster, and C++ AMP for general purpose GPU compute. Don’t miss it!

    Sprecher: Tarek Madkour, Microsoft

    Performance-Optimierung für parallelen C++ Code auf Windows

    Intel bietet dem Softwareentwickler zahlreiche Werkzeuge zur Hilfe der Programmoptimierung. Dazu zählen, ein zu dem Microsoft Compiler kompatibler C++ Compiler, der sich komfortabel in die Microsoft Visual Studio Umgebung integriert und Bibliotheken wie Intel MKL und Intel IPP. Mit Hilfe der parallelen Programmiermodelle Intel TBB, Intel Cilk Plus sowie OpenMP wird insbesondere die Ausnutzung des vollen parallelen Leistungspotentials moderner Mehrkern-Prozessoren erleichtert. Das Intel VTune Amplifier XE Werkzeug erlaubt eine detaillierte Analyse des Laufzeitverhaltens und ermöglicht auch bei parallelen Programmen das Auffinden von zeitkritischen Programmteilen und kann Beziehungen z.B. zu der Ausnutzung des Datencache herstellen. Wir stellen die wichtigsten Werkzeuge vor und werden am Ende des Vortrags insbesondere das Arbeiten mit den Performancetools an einem Beispiel demonstrieren

    Sprecher: Michael Steyer, Intel

    Microsoft AMP

    Das Programmieren auf einer Grafikkarte ist nicht in allen Fällen sinnvoll. Aber wenn man die Grafikkarte für Berechnungen nutzen kann, sind starke Performance-Gewinne zu erwarten. Bisher war die Programmierung von GPU’s aber eher mühsam und es musste viel spezielles Wissen erlernt werden. Mit Microsoft AMP ist es etwas anders, denn wir können (fast) normales C++ programmieren und so die Grafikkarte mit Input versorgen. In dieser Session wird mit Hilfe mehrerer Beispiele die Vorgehensweise mit Microsoft AMP gezeigt und natürlich werden die Performance-Gewinne gegenüber einer normalen CPU analysiert.

    Sprecher: Bernd Marquardt

    Parallel Development und Profiling

    Parallel Programmieren ist die eine Seite. Aber welche Code-Bereiche sollte man am besten zuerst parallelisieren? Ganz einfach! Natürlich die Teile, die am meisten Zeit oder am häufigsten aufgerufen werden. Hier setzt das Profiling ein. Mit Hilfe dieser Tools können sogenannte Hot-Spots aufgespürt werden, die als erstes parallelisiert werden sollten. In der Session werden die Profiling-Werkzeuge von Microsoft (in Visual Studio) und von Intel (VTune) vorgestellt und mit verschiedenen Beispielen eingesetzt und erläutert. Ein Hauptaugenmerk liegt dabei auf Software, in der mehrere Threads gleichzeitig ausgeführt werden.

    Sprecher: Bernd Marquardt

    C++ Programmieren und Optimieren auf Xeon Phi

    Als erstes Produkt der Intel Many Integrated Core (MIC) Architektur wurde im November 2012 der Intel Xeon Phi CoProzessor vorgestellt, welcher eine Floating Point Leistung von mehr als einem Teraflop liefert. Wir werden die wichtigsten Komponenten dieses Prozessors vorstellen. Für den Programmierer stehen die gleichen parallele Programmiermodelle (Intel TBB, Intel Cilk Plus, OpenMP, …), Programmiersprachen und Bibliotheken (Intel MKL) zur Verfügung, wie auch für die klassische Intel Architektur. Da die meisten Xeon Phi- Anwendungen aber heterogen simultan auf dem Host-Prozessor und dem CoProzessor ablaufen, hat Intel die Programmierumgebung mit Offload-Konstrukten erweitert. Dabei wurde auch das Model, eines virtuell gemeinsam genutzten Speichers entwickelt, welches eine komfortable Programmentwicklung erlaubt. Wir stellen die Details dieser Umgebung vor und zeigen, wie sie sich insbsondere für typische C++ Anwendungen nutzen lässt.

    Sprecher: Michael Steyer, Intel

    Analyse von Anwendungsfehlern mit Hilfe von Memory Dumps

    Die Applikation stürzt ab, reagiert nicht mehr oder hat andere Defekte, die sich im Test Umfeld nicht nach stellen lassen. Wie kann man vorgehen, um trotzdem das Problem im Produktionscode zu finden? Memory Dumps sind hierbei ein sehr effektiver Weg, um Fehler aufzuspüren die nur beim Kunden auftreten. Was ist notwendig, um effektiv mit Memory Dumps zu arbeiten und welche Tools können eingesetzt werden? Warum sind z.B. Symbole für die eine erfolgreiche Analyse wichtig Baustein?

    Sprecher: Martin Grasruck, Microsoft

    Team Foundation Server als ALM Plattform für Embedded Software

    Der Team Foundation Server von Microsoft hat sich als führende Application Lifecycle Management Plattform etabliert. Gerade bei der Entwicklung für die Windows Plattformen spielt der TFS durch die tiefe Integration mit dem VisualStudio seine Vorteile aus. Anspruchsvoller wird es, wenn eine ähnlich gute Integration und Zusammenarbeit in der Software Entwicklung für Embedded Systems auf heterogenen Plattformen das Ziel ist. Noch spannender ist die Umsetzung agiler Praktiken, wenn „harte“ real-time Anforderungen an die Software gestellt werden und aussagefähige Tests nur auf der Zielhardware laufen können. Folgen Sie der Reise eines Software Teams von der Vision einer ALM Plattform für Embedded Projekte, über die ersten Erfolgserlebnisse bis hin zum Ausblick auf die nächsten erreichbaren Ziele. Sie werden sehen, der TFS passt auch für Embedded Systems Engineering!

    Sprecher: Thomas Hemmer, Conplement

    Developing Windows 8 Drivers with Visual Studio 2012

    Visual Studio 2012 changes the way drivers have been traditionally developed for Windows by integrating the entire driver development workflow into it's IDE. In this session you will learn how to build, sign, deploy, test and debug kernel mode driver framework (KMDF) drivers for Windows 8 using Visual Studio 2012 and the Windows Driver Kit.

    Sprecher: T. Roy, Codemachine

    KMDF Driver Debugging Tools

    As a part of the Windows Driver Kit, Microsoft provides some very useful tools specifically for debugging Kernel Mode Driver Framework (KMDF) drivers. In this session you will learn about the functionality provided by tools like IFR, KMDF Verifier, Object Reference Tracer and WDF Debugger Extensions and how to use them effectively to quickly analyze failures in KMDF drivers.

    Sprecher: T. Roy, Codemachine

    Debugging ohne Debugger mit den Debugging API’s

    Wirft eine Anwendung einen Fehler, wird der Debugger gestartet und los geht’s. Nun sind Sie bei Ihrem Kunden und dieser gestattet aufgrund seiner Sicherheitsrichtlinien nicht, dass Sie Ihren Rechner samt Debugger in sein Netz hängen. Was nun? Ein Dumpfile erstellen lassen! Eine sehr gute Möglichkeit, allerdings erfordert das Debuggen mit einem Dumpfile tiefes Wissen, was nicht immer vorhanden ist. Was also noch? Die Anwendung zur Selbstauskunft veranlassen. Das Debugging- und Symbol API von Windows bietet Ihnen viele Funktionen an, mit denen Ihre Anwendung im Falle eines Fehlers eine aussagekräftige Selbstauskunft geben kann. Lernen Sie in dieser Session die entsprechenden API’s kennen und mit C++ nutzen, damit auch Ihre Anwendungen im Falle des Falles Ihnen direkt ausführliche Informationen liefern, die Sie sich ansonsten erst ein einer Debuggingsitzung Stück für Stück zusammenstellen müssen.

    Sprecher: Matthias Wedemeyer


Diese Liste kann noch ergänzt bzw. verändert werden.