Microsoft Strikes Back (again)
Categories: Software, ArchitectureAfter attending a MSDN live meeting in Bergen today, I was introduced to several of the new technologies with the Microsoft.Net 3.0 framework. There were two things that caught my attention that I will describe in more detail here: State-handling in Windows Workflow Foundation
This technology allows you to split your application process into states. Most applications already have several states, whether the developer has identified them or not. By chunking the flow process into separate states, code can be allocated to these states. The result, done right, is isolated code related only to the current state. The transition between states is easily handled by events. Pretty cool and very intuitive.
But wait! Wouldn’t this differ from object-oriented programming? Say, if my code is separated by state instead of locical classes? I don’t think so. There’s still need to model good classes to handle business logic at an atomic scale. Now, the state handling will simply control when to use an object. Fits pretty good if you ask me!
2) Windows Commucation Foundation
This is pretty neat. Now even web services are abstracted. The new paradigm is called “I need to talk to some other system so I create code to do so”. It doesn’t really care whether the technology is web services, socket / pipe programming or simple HTTP transfer. The only thing that matters is that you specify an interface as contract for the method you want to communicate through. Then you need to give it a locatable address, before you need to address the method with some sort of binding technology. But the neat thing is that this binding is specified through configuration, NOT code. Previously, you had to create two different classes with different technologies if you wanted a web service AND a pipe connection. Now, you create one class with it’s method, and you assign with as many endpoints as you want. These endpoints represent the binding technology (WS, Pipe, TCP, HTTP…) you want to use.
So the new way of thinking isn’t what kind of technology to use for distributed programming. Now it’s rather… do you want to distribute?
Oh, and one funny thing: There’s no support in WCF for COM! How about that?