Motto - You signed up for this, so Federal Anti-Spam laws do
not apply
Technical content of this issue - 4 out of 5
Today
Today I finally solved my internet problems
once and for all by changing rooms. It meant coming back to the hotel in
the middle of the day to pack up all my stuff and cart it upstairs to another
room, but it was a sacrifice that I am willing to make to service you, my loyal
readers. Oh, yeah, turns out my new room is on the Concierge
Floor. That means there's a little room down the hall with breakfast in
the morning and free booze and snacks at night - so I got that goin' for
me. Plus, I got this great shoe polishing machine in the corner - I got
so excited trying it out that I ended up ruining my brown suedes.
We are up to over 50 direct subscribers, with another
couple dozen getting it via forwarded mailing lists.
General Session - Eric Rudder
This newsletter maintains the highest editorial content and screens
each contributor carefully, that's why I have been the only author so far this
year (plus I was the only one willing to do it). But this morning, after
dropping 37 cents in a coffee cup in front of a guy on the corner, he mentioned
that he had attended the morning general session that I had missed - so here is
his report. He actually wrote this up at the conference center - I
couldn't let a guy off the street back to my room, c'mon, I'm on the concierge
level! Let's have a warm Biff's PDC Newsletter ovation for Mr. Steve
Harshbarger!
"Tuesday’s keynote covered a broad range of topics, mostly centered around
Yukon (the next SQL Server) and Whidbey (the .NET Framework 2.0 and an
associated rev to the Visual Studio IDE). Both are planned for release in late
2004. Here are some highlights.
It seems Microsoft can’t have a conference without showing various PDAs and
cell phones running Windows applications, and this PDC was no exception. The
demo showed using VS to build and deploy a SmartPhone app including camera
integration, contact book integration, and use of a web service. What was
unexpected, though, was the appearance of Batman as PDA pitch man. Our Batman
came on stage with a utility belt full of the latest Pocket PC’s and
SmartPhones, augmented by a backdrop of “Pow”, “Wham”, and “Blammo” graphics.
That’s all well and good for entertainment, but I found one aspect of the
character disturbing. Picture an overweight Batman with his “plastic muscle
chest” (I believe that’s the right term) having slid down and balanced at a 45
degree angle across his Bat-belly. Holy improbable anatomy, Batman!
On a more serious note (ed - careful, we don't allow those), several
new features of Yukon were described. Most notably, we’ll be able to write
stored procedures as managed code in any NET language, and Visual Studio will
be able to debug them interactively. Of course, they still be written in T-SQL,
and in the case VS will provide better graphical tools for writing them. It was
noted explicitly that there will be no reason to write extended stored
procedures – any case requiring that should be accomplished with managed code
going forward.
In the nearer term, Microsoft plans to ship a new set of “reporting services”
for SQL Server before Yukon ships. This looks like a Crystal Reports killer. It
includes graphical tools to author reports (which looked somewhat like the
report writer in Access), tools to create reports in various formats (print,
PDF, Excel, web, Word, email, etc.) from the same definition, and a facility to
distribute reports to users (both push and pull models). The example they
showed included interactive drilldown functionality in the report itself
(hosted in the browser), and they also exported it to Excel with the same
drilldown features retained in the workbook. A beta CD of the reporting
services was distributed later in the day, so I assume it will be available for
download as well. No word on the expected ship date for the tool though.
One other demo showed using InfoPath as a front end to SQL Server. This was
pretty interesting. They showed writing a stored procedure in SQL, then exposed
the procedure as a web service by setting one simple attribute. Then, connected
InfoPath (the new XML forms application in Office 2003) directly to the web
service. Based on an XML schema, InfoPath was able to generate a functioning
form to query, view and modify data in the SQL Server without any code. This
seemed like a compelling alternative to writing Windows or web application for
simple data entry forms.
ASP.NET is getting a number of improvements. First, front page server
extensions will no longer be required for VS.NET to communicate with/deploy to
the server. A new feature called “Master Pages” is being added to let a
developer create elements which should be reused across multiple pages in a
site (a.k.a. “visual inheritance”). Over 40 new ASP.NET controls are being
provided with the aim of reducing the “plumbing code” developers have to write.
Examples cited include components for handling user authentication, membership
and personalization.
Finally, a brief demo of “Whitehorse” was shown. This is a technology to help
development and operations teams communicate better and smooth the process of
deploying applications to production environments. It works like this –
operations staff use a visual tool to define a logical view of the production
environment including classes of servers (e.g., web servers, app servers,
database servers), positions of firewalls, and policies (e.g., “database access
must be done via impersonation”). The developer can then “pre test” his/her
deployment within Visual Studio. The tool validates each component of the app
in the context of the policies of the machines on which it will run and reports
errors to the developer before deployment. According to Microsoft, this will
all but eliminate the need for teams to spend nights and weekends doing
deployments, and will free operations staff from their pagers, let them spend
more time with their families, and generally restore work/life balance to the
IT industry. My take is this was just a bit optimistic (and I did embellish the
claims a bit too…), but properly implemented, this could provide a valuable and
structured way for dev and ops teams to anticipate and prevent common
deployment problems.
Thanks, Biff, for letting me grace your pages with my commentary. And even
more thanks for the work you put in producing this newsletter. Having written
this one piece, I have a deeper appreciation for how much effort goes in to
producing this in real time. "
Ed - Stop, I'm blushing! Thanks for the info Steve! I should
point out some sort of author info, like Steve is VP of Client Service and
Product Development for Softagon in San Francisco, CA (which he is) or that he
speaks 23 languages fluently (which he doesn't) or that he has many writing
credits with Microsoft Press (which he does).
This ends Steve's article, all text from here on in for the rest of this
issue can be blamed on me.
General Session - Gordon Mangione
This talk dwelt on two topics, Yukon and WinFS. The Yukon
stuff focused on developer productivity improvements. These were
interesting, but not life changing stuff in any way so I'm not going to spend
time on them here - there will be more on this after a Yukon and XML talk
tomorrow. Suffice it to say that SQL Server continues to increase it's
lead over Oracle in the developer tools department and is about to lap SQL*Plus
a second time. The edlin interface of SQL*Plus is so old that Jim Allchin
isn't even using it.
The WinFS talk part of the talk was more interesting to
write about. Remember that this is the new file system in Longhorn that
adds rich (hee hee) query abilities to the shell, making finding and managing
files more powerful. It is also the system that I questioned as being too
complex for normal users to truly understand. This talk gave me a little
better understanding of the technology and although I still have questions, I'm
starting to get on board. Gordon (or, Gord, as he's known to the few
thousand of us in the room) started the talk by discussing the problem rather
than jumping right into the technology. This gave the audience a better
frame of reference than yesterday's talk - if you are ever giving a talk
remember this trick, it has made several sessions here very
effective. He spoke of Moore's Law being even more significant for disk
space, with disk space tripling every 18 months - it must be true, he had a
fancy graph to back it up. His claim that we are only a few years away
from people having a terabyte on their desk does seem reasonable,
however. When we have this much data and this many files it is going to
become impossible to use the standard folder mechanism to keep track of
files. WinFS is an attempt to put together a shell that addresses the
scope of this problem. Note that under WinFS is still NTFS.
WinFS encompasses 5 things - People, Calendar, Documents,
Groups and Media, allowing you to search and manage each. At first this
seems like a further scope grab by Windows (which it is), but if you think
about the number of places where you keep track of people, for instance, it
starts to make more sense. I have people in my hotmail account, my NASD
Outlook folder and a personal Outlook folder as well. I am constantly
trying to figure out which store has which people and which information is the
most up to date. Each application is responsible for defining the
attributes and metadata for an object (doc, person, etc.) and making that
information available to the OS for WinFS to operate. When an app is
installed, an XML configuration file defining the attributes of note is
registered with the OS, just like the concept of associating an icon with an
extension works right now. The app can set these values for a file or the
user can do it themselves. Then WinFS lays all of its query functionality
over the database of attributes, allowing the UI to perform all the flashy
stuff we saw yesterday. It may not be a perfect solution to the file
proliferation problem, but it's a good start. By the time it's released
it will probably be even better.
Lunch
If you have never attended a large event at a convention center like
this, try to imagine having one hour to feed 5000 people. It is really
amazing - as you walk into a giant room filled with round 10 person tables,
they direct you to one of dozens of buffet tables to get your food. Then
you are directed to a specific table to sit, kind of like you are directed to a
parking place at a stadium. It really is quite an amazing feat and marred
only by the fact that the food really sucks. Sunday wasn't too bad, but
yesterday they tried to make Chinese and - well, they just shouldn't.
Today I had Halibut - again, awful. In the past the meals are
occasionally decent - hopefully these will pick up. The good part is that
all through the convention center, Microsoft keeps us plied with different junk
food every day. Yesterday we entered the center and found thousands of
Krispy Kreme donuts (way better than Dunkin' Donuts) in the morning, and
cookies, pretzels and energy bars in the afternoon. Today was bagels
and croissants, yielding to candy bars. There's also soda, water,
coffee and fruit available all through the day. We should have Twinkee
day coming up sometime, I can't wait.
Session - "Indigo": Building Services (Part 1), The Fundamentals
After lunch I went down the hall to attend this 12:30 talk, arriving at about
12:32 and seeing a huge commotion at the door. People were stacked up
three deep at the door trying to get into a full room. I peered over most
of them (it's good to be tall) and saw Don Box standing on the dias - guess I
should have been earlier. They have a Hi-Def monitor outside of each
session showing what's going on inside and there were already 4 rows of people
sitting on the floor to watch on the monitor since they couldn't get in.
I gave up - hopefully they will repeat the session later in the week. I
headed over to Manged/Native Interop Best Practices and Common Pitfalls and
found a similar situation there. At that point I went down to the
computer facility, printed out the Don Box slides and read the MSDN article on
Indigo.
Session - "Indigo": Building Services (Part 2), Secure, Reliable, Transacted Services
This session was in a different room than the previous session, so I was able
to get there very early and snag a seat. Once again, the presenter was
Don Box - who showed up slightly late after the previous session ran a little
late and the migration of hundreds, nay, a thousand people from the first room
to this room caused a traffic jam. This talk was pretty good, and started
to go into transactions - not so much transactions between services but within
services. He did one code example, then I had to leave since I had a
super-duper NDA meeting with the Indigo team set up for NASD by our Microsoft
Architecture representative in one of the hotels. So there I go, leaving
a session with dozens of people stacked up outside who couldn't get in.
Indigo - Meeting with the Product Team
So I get to the area of the hotel about 5 minutes late because of
shuttle latency, and I'm trying to find The Standard Hotel. I'm
where it is supposed to be, but there's just a foyer with some elevators,
looks like an apartment building - no sign or marker of any sort. I go
around the corner and see all these signs for a big Mercedes Show - some guy in
a tux tries to give me a brochure. I must be in the wrong place, let's go
back to the apartment. I ask a guy coming out, is this The
Standard? Yes it is. I go in and around the corner out of site is a
desk, then a little further on is a cocktail party in an open area
with many very stylish people - all dressed in various outfits with various
combinations of black and white - most of them distressingly good
looking. I figure that was not the crowd I was looking for and I was
right, this was more of the Mercedes Benz show. I head for an
escalator on fringe of the group when I am stopped by two guys in tuxes who
asked what I am looking for and I say Microsoft. They tell me I need the
other elevator. I don't even know what floor to get off the
elevator - my invite said the room number would be posted in the lobby, so
I go to the desk and ask where the Microsoft meeting is being held. The
clerk says she doesn't know the name - I say, "Microsoft - they're a big
company" (the attitude of the entire situation may have been setting me off a
little). She tartly explained that she knew what Microsoft was, but she
needed the name of the person who was booked in the room. Another clerk
stepped in that had the info so I head up to the room. I get there
and there's 15 people sitting around looking at yet another slide deck on the
wall of the room over the guy's bed (which sits on the floor in this
exclusive, Art-Deco hotel). Most of the slides were review of stuff I'd
already seen, so being a little late wasn't a issue. It wasn't
exactly the in depth meeting with the product team that I expected, but folks
were nice and I got an email contact from the business guy giving the talk.
Indigo - What I learned today
OK, even with all the false starts and weird hotels with the very nice
people at the Mercedes Benz show and the desk clerk that had heard of
Microsoft, I did learn more about Indigo from the talks I got to and the
articles I read. I will try to add a little more perspective to where we
were yesterday.
First, Indigo is more than just Web Services. They are stressing the Web
Service aspects of it and downplaying the rest of it to reduce confusion.
The non-Web Service features are not as far along and aren't clear enough to be
discussed. Indigo also encompasses COM+/Enterprise Services, .NET
Remoting, MSMQ and a couple other technologies I couldn't write down fast
enough. It is the long awaited managed code version of COM+
services. As Indigo progresses through beta, more and more of these
services will be superceded. For instance, once beta 1 comes out, the
current DTC will be invoked "only when neccessary" (that's part of the
cloudiness on the other stuff I spoke of).
The Web Services features are a little more settled. First, and most
important, every feature and capability is built to W3C standards for
interoperability. When two Indigo machines talk there are optimizations,
but for interop Indigo supports WS-Security, WS-Reliable and WS-Transaction (I
hope I got those three right!).
There is a very good
MSDN Article discussing Indigo, if you want in depth info that is (and it
pains me to say this) a better place to get info than this newsletter.
It's pretty detailed, if you want just a few bullet points that I can give
you. Note that this is the Steven Ambrose/Doris Kearns Goodwin section of
the letter, in that most of it is lifted directly from the article listed
above. Here is a paraphrased section from the article (except for the
stupid comments - those are mine):
Indigo is a set of managed frameworks implementing service-oriented programming
on the Windows platform. The Indigo programming model is based on four
concepts-
-
A message is a transmissable piece of data that adheres to the SOAP
data model - Not too complicated so far! In this case
the Indigo framework wraps the concept of a message in a class called (follow
closely here) - Message
-
Messages flow between ports - Still nothing to get too confused
over. Indigo ports are endpoints for communications between
services. Who would like to guess the name of the Indigo class supporting
ports - you, in the back - that's right, Port.
-
A service is a piece of code behind a port - The code you write to
process the messages - that's the service. There is no single class
representing this concept.
-
Services communicate with their ports via channels - This seemed
clear to me, but the subsequent section of the article just added confusion so
we'll leave it at that.
Let's take a look at the code for a service that receives a string message and
prints it to the console (once again - this is lifted from the article):
using System;
using System.MessageBus;
class MsgPrint : SyncMessageHandler
{
// This routine handles the message
public override bool ProcessMessage(Message msg)
{
// This implementation assumes that the message is a
string
Console.WriteLine(msg.Content.GetObject(typeof(string));
msg.Close();
return false;
}
}
class app
{
static app Main()
{
// Here's the Port we spoke of. Nobody on any of
my project
// should ever even consider naming a variable after a
type by
// changing only the case! We assign the handler
and open the
// port and wait.
Port port = new Port(new Uri("soap://localhost/simple"));
port.ReceiveChannel.Handler = new MsgPrint();
port.Open();
// wait forever
Console.ReadLine();
}
}
That's a quick look at writing a bare bones Indigo service. This can now
receive SOAP messages and provide a service - although not a particularly
useful service in this case!
Tomorrow is a talk on the roadmap to get to Indigo and what we should be doing
now to be ready to move to Indigo when it arrives - watch for that in
tomorrow's issue.
Letters – We Get Letters
In response to yesterday's Indigo article, LF from MD writes-
"Hey, guess what? MSFT just invented distributed systems! Again... (check out the
Internet, it's pretty cool)."
Dear LF,
It must be hard out there in the world, struggling in
vain against the inevitable Microsoft tide. We're coming for you,
LF. -Ed.
Note - As I was reading LF's mail in the conference
internet area, I noticed two men in sunglasses and brown suits wearing
earpieces coming towards me from across the room. I thought it prudent to
log off and lose myself in the crowd immediately.
Signoff
Wow, big day - long newsletter! The mail is a little slow this
year folks, surely we can think of a few more sarcastic, wry
remarks to spice up the letters section - especially if I know
my readership!
6 separate breakout sessions tomorrow, Indigo, Yukon, COM
Interop, Indigo, Whidbey and Indigo - gonna be a long day and an info packed
newsletter.
Biff
VP of Human Resources, Biff’s PDC Newsletter