On February 27th and 28th, I will have the honor of speaking at Cairo Code Camp in Egypt. It is my first international speaking destination, and I hope to make the best of it by presenting two topics I feel are important to designing better systems.
RESTful Data
I’ve given this talk in many locations, but I’m updating it for WCF Data Services in .NET 4. The gist of the presentation is that developers want objects, not relational data, so give it to them. In the process, you will design a distributed, multi-tier architecture! Here is the synopsis.
REST is an architectural style that allows for a layered, scalable, and cacheable enterprise information system. With WCF Data Services, a database can be surfaced to a service as a REST-style resource collection that is addressable with natural URIs and can be interacted with using the usual HTTP verbs: GET, POST, PUT, and DELETE. This session will describe RESTful Data, the benefits it conveys, and its uses. Then we will set up a data service using an existing database that developers would then access rather than accessing the database directly. We will also extend it in such a manner that the service has control over what data is served.
C# Ninjitsu
I will give a teaser presentation of this at CodeMash for Telerik that covers principles in the post object-oriented C# world. The full presentation contains refactorings and patterns to make your code fluent. Design reusable frameworks, be a C# Ninja. Here’s the synopsis.
C# has humble beginnings as an object oriented language of the purest kind. It was class-based, it was imperative, and it was component-oriented. For many years, the classic object-oriented design principles served class library designers well, and the programming world rejoiced.
Chaos began creeping its way into the world of C#. They were minor things at first: a generic list here, a nullable type there. Developers used these elements to enhance their work. But those that understood utilized them to varying degrees. Some applied the new techniques with wanton abandon. Some kept the old traditions in mind.
Then the dark specter of functional programming infiltrated the language. For those that were doomed to a life of incoherent language usage, there was no hope. But those that held onto the old traditions managed to get by.
There is another way. C# is no longer a purely object oriented language. It is no longer an imperative, class-based, component oriented discipline. It is also a generic, declarative, functional discipline.
I will reexamine the object-oriented principles and introduce new principles. I will then introduce new refactorings as we move toward a more declarative, fluent world.
If you can make it out to the Code Camp, be sure to say hi. It will be the largest developer event in Egypt. I can’t wait to meet my friends in Egypt who I’ve collaborated with on open source projects and the social web. I also can’t wait to check out the pyramids and Cairo museum; a dream I’ve had since childhood!