All the students showed up. Nice.
We had an interesting first day of lectures, lots of commentary, exercises, and a little challenge to top things off at the end of the day. We started the day discussing some of the real-world enterprise challenges most of the students face. Some common themes quickly emerged. Things like "security", "management", and "cost" were common themes. Dealing with "application integration" issues seems to be one of the pervading concerns that many of the others tie into. It was fascinating to hear what they had to say.
Then we began discussing how to align Microsoft's distributed technologies with these business needs. We started by focusing on three fundamental questions that a lot of other decisions hinge on:
- Where should my code run?
- How should my code communicate?
- Where should I put my information?
We're trying hard this week to "separate the wheat from chaff" with respect to Microsoft's plethora of distributed technologies that can be used to answer these questions today. As a result, we've had to discuss things that most courses have simply dismissed as legacy such as DCOM, COM+, and MSMQ, but are still widely used and needed in many distributed systems. We're also discussing where things like .NET Remoting fit in the picture, especially give the SO hype and things like ASMX/WSE2.
It struck me as refreshing to discuss DCOM and COM+ without speaking of it in the past or using harsh words like "dead" or "legacy", which simply doesn't represent reality.
We compared the pros and cons of the various code hosting models, as well as the tradeoffs between the different communications mechanisms, in what some students might refer to as "painful detail", but in our minds it's necessary to evaluate difficult scenarios where a variety of things could fit. And being able to articulate your position with concrete details is often necessary when debating architecture and design.
In the end, there's not a single "right answer" for any situation, but criteria definitely exists to guide such decisions. That was our focus.
Mr. Onion and
Mr. Box were in good form and carried most of the day.
Programming challenge: at the end of the day, we held a contest that required students to write code to chase a technology trail. It was a race. They were to start by sending a specific HTTP message to a specific endpoint (it required a special header so you had to write WebRequest code). The HTTP response contained the name of a private queue on the network that they subsequently had to read a message from. The message contained a WSDL document from which they had to generate a WS proxy class. Invoking the WS proxy returned the address to a .NET remoting endpoint, for which they already had an interface assembly. The .NET Remoting call returned a secret, identifying the winner. It took the winner about 20-25 mins. It required them to use every communication technique that we discussed in detail today. Hard? Easy?
Posted
Nov 02 2004, 08:32 PM
by
Aaron Skonnard