If you love PostSharp and would like to have it presented to your user group, this post is for you. This is not only possible, but it can also be free. Read on, or forward this post to your user group's leader...
You can indeed invite me to your user groups. I can deliver one of the folling talks:
- Addressing Non-Functional Requirements With Aspects: An introduction to aspect-oriented programming on the .NET platform. After a funny problem statement, I introduce some architectural views on AOP, then I compare different AOP frameworks for .NET and explain the technologies behind (as I am an engineer and not a commercial, I do not consider that PostSharp is the best for all cases).
- Towards More Complex Aspects Using PostSharp: A live demonstration of PostSharp. We start with a simple WPF application and progressively implement missing features using PostSharp: exception handling, asynchronicity, and observability (data binding).
- Addressing Non-Functional Requirements With PostSharp: a shorter version of the previous two talks.
- Contract-First Development in .NET: an architectural introduction to Design by Contract (TM) and concrete examples using available .NET technologies: Code Contracts in .NET 4.0 and validation aspects of PostSharp 1.5.
The talks are generally well quoted. I had a lot of speaking engagements last year (see the list). As I said, I come for free as long as the session is public and free. You will 'only' have to find funds for expenses. I can also talk in commercial conferences and give micro-training sessions in companies. Please contact firstname.lastname@example.org for details.
If your user group is too far from Prague, I can license my content free of charge so that you can give the talk yourself or integrate some slides into your own presentations. Details on this page.
Happy PostSharping... and see you maybe physically!
var googleSearchIframeName = "cse-search-results";
var googleSearchFormName = "cse-search-box";
var googleSearchFrameWidth = 600;
var googleSearchDomain = "www.google.com";
var googleSearchPath = "/cse";