These are ready-made presentations that I offer for user group meetings, conferences, technical workshops, ... whatever. Although they are all listed in English language, I can also do them in German. Please feel free to contact me at oliver@sturmnet.org if you would like me to do a presentation for you - even if it's about a topic not yet listed.
The presentations in this list are usually prepared already, and in most cases I have done them at least once before. Sometimes I also list presentations that haven't been done or prepared, so please don't assume I can just do everything in the list tomorrow! It might take a bit of preparation time... shoot me an email if you're in any way interested.
I've recently started to list related links and downloads for presentations as well, but these are far from complete. If you attended a presentation and you are looking for slides or samples, please let me know and I'll make them available.
.NET 3 - The Game Challenge
Windows Presentation Foundation (WPF) and Windows Communication Foundation (WCF) are two important pillars of Microsoft's next generation development platform. Newly christened as .NET 3, these technologies are available today, but they will get much more important as Visual Studio Orcas comes closer. This session provides an overview of both technologies by demonstrating their combined use in a network enabled Connect Four game.
Dynamic Languages and .NET
Last year Microsoft announced their future plans for dynamic language support in the .NET CLR, and existing projects like IronPython and PowerShell as well as the new DLR bits provide some insight into the application of dynamic principles to the .NET environment. In theory the distinction between static and dynamic languages is clear, but in today's programming world the lines are often blurred. Do we want to be Dynamic? Why? And what is it that Microsoft does for us in that regard? The session shows practical examples and explains the status quo as well as the future plans.
Bluffers guide to C# 3.0
Damn if C# 3.0 doesn't go and introduce a whole new set of keywords into the language that you will have to learn. Fear not! If you want to impress your colleagues with your mastery of new terms like lambda and LINQ expressions, type inference, unspeakable names and extension methods, then come along to Ian and Oliver's session. They will endeavour to make you masters of the new language in only an hour and allow you to speak C# 3.0 with confidence. If you want to see cool techniques you can impress your colleagues with in '10 cool things to do with C# 3.0 ', this session will give you the introduction to C# 3.0 you need.
10 cool things to do with C# 3.0
Want to impress your friends with your programming skills? Get all the girls (guys?) for yourself? Be better than all those 1337 j4V4 h4X0r5 you meet at work? Be the guy with the biggest sch^H^H^H... ah, that was a different talk. Sign up for this session NOW to make it happen! Ian and Oliver will show you how to win fame and adulation among your fellow programmers with the new features they discussed in their previous session the Bluffers guide to C# 3.0.
Bind it, baby!
The WPF (Windows Presentation Foundation) platform brings an array of new techniques into Windows programming. One of these is data binding. It's no longer about databases and collections alone - data binding has grown to provide an elementary building block for WPF applications. Its extensibility makes it a useful tool in every WPF programmer's repertoire.
Complex controls for WPF
If you've been trying to develop controls for WPF, you have probably noticed that the precise thing that makes WPF a paradise for application developers is not all fun for control developers - the flexibility of the UI design has to come from somewhere. Beginning with the content model, through structural complexities and the XAML/code decision, to design time support, a complex control for WPF is not just complex by name. This session explains the problems and demonstrates practical solutions.
Introduction to LINQ
.NET Language Integrated Query (LINQ) is one of the technologies that will be released in the Orcas Visual Studio timeframe. It promises to be an important new development in the world of data querying and handling, as it provides unified language extensions that span many different usage scenarios. Whether you're currently working with ADO.NET, XML or arbitrary collections of objects, LINQ will make your life easier. This session provides an overview of the technology with a focus on LINQ to Objects, and comprehensive demos.
An overview of WPF - the end of Windows Forms?
Windows Presentation Foundation (WPF) is an important pillar of Microsoft's new and upcoming development platform. It's available today as part of .NET 3, but its importance will grow considerably with the release of Orcas drawing closer. Other tools like Expression Blend complete the picture, providing functionality but at the same time adding complexity to the development environment. This session shows what the framework contains and how to use it in your applications, as well as shedding some light on Microsoft's ideas of software development tomorrow.
A silver light at the end of the tunnel
Silverlight (previously WPF/E) is a browser plugin with capabilities similar to Flash. Or maybe it's a next generation runtime environment for thin (or even fat) client applications? Then again, maybe it's going to make Java applets obsolete, and you might have heard somebody say it will bring Linux developers over to .NET while allowing them to use obscure programming languages like Python or Ruby. If you are wondering whether any or all of these myths can be true, this session is for you, as it shows how to use Silverlight and explains the integration with existing tools and technologies.
Multi-threading in .NET - Erlang style
Concurrency and scalability suffer in a lock based data sharing model as it is regularly used with multi-threading in .NET. Erlang, a functional programming language that is used in many of the worlds most scalable and stable environments, uses a message passing system to exchange information between "threads". Important aspects of this that can be used in .NET and this session explains how.
Functional programming in C# 3
The newest version of C# introduces a number of language features that finally make it very easy to employ a functional style of programming. However, from the perspective of an imperative programmer, there are lots of questions surrounding functional programming. Why would I want to do it at all? Should I drop all state information in my apps? What useful functional patters are applicable to C#? This session uses many practical examples (and some theory) to try and answer these questions.
Taking efficiency one step further - F#
Microsoft Research describes F# as "a scripted/functional/imperative/object-oriented programming language". Combining all those aspects in one language is certainly not an easy task, but they've done a good job of it. F# is interesting both as a language to actually consider for your projects and as a source of features that might make it into the mainstream .NET languages tomorrow. The session uses many examples to give you a good general overview of F#.
Interactive graphics programming
Windows Forms makes UI programming really easy. But as soon as you want to use the mouse for more than selecting UI elements, that support doesn't help too much... this presentation leads through the development of an elaborate "crop" function, somewhat similar to the common functionality in image manipulation software.
Inductive and task-based UI
The idea of "Inductive UI" came along with Microsoft Money and since then this type of user interface has been one of the most efficient ones. A lot of applications apart from Money use Inductive UI or a variation of it. But the rule is: what's good for the end user, usually creates more work for the developer. This presentation introduces a simple framework that does the necessary work for you.
Validity checking? Business Rules?
Not all data is equal, as everybody will tell you who's been developing business applications. There are rules for the validity of information, and these have to be checked and the end user must be provided with helpful information through the UI. But exactly when do you do this? And how? And what about the next customer who wants everything to work just a little bit differently? This presentation introduces a framework for validity checking and answers all these questions.
Extensible LINQing
LINQ to SQL, LINQ to XML, ... we've all heard these, but what about LINQ to <my own source of data>? LINQ is, above all, an extensible technology, and so it is possible to use the same convenient language extensions known from the main LINQ projects to query information from any arbitrary data source. This presentation explains the theory behind it all and includes a live code demonstration of using LINQ to query information from a web service. LINQ to web service?
Object/Relational Mapping with XPO
Everybody talks about object/relational mapping these days, but (why) is it a good idea, and what problems does it solve? Many ORM tools are available today, with certain very relevant differences making decisions difficult. This presentation tries to answer some of the common questions. eXpress Persistent Objects (XPO) is the popular commercial ORM tool by Developer Express, and the second large part of the session is a live demo of using XPO to persist and handle object data.
Object/Relational Mapping in real-world applications
Object/Relational Mapping (ORM) is all the hype, but people tend to find it
difficult to make the transition from the record- and database-centric thinking
they've been working with for so long. How's the relationship between stored
procedures and ORM? What roles can technologies like XML Web Services, Remoting
and Windows Communication Foundation play in an ORM world? Even basic things can
be made difficult by a paradigm shift like the ORM approach - how do basic
Windows Forms and ASP.NET applications change when using ORM?
The session uses Developer Express XPO for code demonstrations.
PowerShell from a developer's perspective
PowerShell (used to be Monad) is Microsoft's new command line shell, and it's based on .NET. As such, it is also an interesting extensibility platform, as it is possible to use PowerShell as a configuration and scripting frontend for your own applications or services. Microsoft use it for Exchange Server 2007, and you can do the same - this presentation shows how.
Inversion of Control and Dependency Injection
Two hot topics these days, but what do they really mean? There are so many products available that promise to provide these patterns to you, but what they actually do? This presentation provides the explanations and the largest part is a live demo of implementing IoC and DI in a sample application - from scratch that is, showing exactly how everything works.
Extending Visual Studio with DXCore
Using the Visual Studio SDK is obviously the most powerful approach to extending Visual Studio, but even with the newest developments in the .NET direction the SDK can be very intimidating, to say the least. DXCore, the VS extensibility layer that makes products like CodeRush and Refactor! possible, is freely available to everyone, and it allows to create all kinds of nifty extensions for Visual Studio in just a few lines of code. This presentation explains some of the basics before delving into several live demos of creating extensions.
.NET productivity with Developer Express
Developer Express has many different products for .NET, and productivity is generally a very important target. This presentation gives a quick overview of the products CodeRush for .NET and Refactor! (IDE productivity), as well as eXpress Persistent Objects and the eXpressApp Framework (business applications). Short demonstrations of the functionality and time-saving details provide food for thought and further discussion.
Developer Express Refactor! - Advanced refactoring in Visual Studio
Refactoring is the process of changing implementation details of methods, classes or other code entities, to promote readability, efficiency and/or performance, without changing the external interface of the code entity. Refactor! is a product that allows developers to perform Refactoring right there in the Visual Studio code editor. The aim of the session is to give an overview of the features in Refactor! and their use in C# as well as VB.NET projects, and to provide an introduction to the extensibility model in the product.
Designing a model based application architecture
Basing an application on a model is a good idea because it makes it very easy to modify those parts of the application behaviour that depend on model data. But creating a useful model and the framework architecture to make it easily reusable is not a simple task. This session aims to describe some of the basic decisions that had to be made during the ongoing development of the eXpressApp Framework, a reusable application framework being developed by Developer Express, and includes a number of code demos demonstrating the application of the Model idea to non-XAF projects.