Scott Hanselman

PDC - Day 2 - CLI302 Avalon Design Time Support

October 29, 2003 Comment on this post [1] Posted in PDC | XML
Sponsored By

Here's a sample of some XAML that's being written on the screen in CLI302.

<FlowPanel>
   <Text Height=”150px” Width=”75px”>1</Text>
   <Text Height=”150px” Width=”75px”>1</Text>
   <Text Height=”150px” Width=”75px”>1</Text>
</FlowPanel>

Feels like the different layouts that I used to do in Java AWT, but as XML and without all the dancing to get it to display right. 

One thing i'll give Microsoft, is that they have been exceeding thoughful about who is going to use this stuff and how their minds work. 

Remember when you first wrote C# and felt a connection with your lizard brain?  As if this language was the language of your own neurons?  That's what XAML feels like for UI.  Standing on the shoulders of giants and reaching back to the lizard brain, if I may mix metaphors.

 

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

PDC - Day 2...

October 29, 2003 Comment on this post [0] Posted in PDC | ASP.NET | XML | Web Services | Tools
Sponsored By

I'll blog as interesting things happen.  There's a thousand interesting things going on here, so it's hard to break it all down into sound bites.  But I guess that's what makes blogs better than typical media, right? Fewer sound bytes.

Indigo is great, no doubt.  Clemens puts it best:

Indigo is the successor technology and the consolidation of DCOM, COM+, Enterprise Services, Remoting, ASP.NET Web Services (ASMX), WSE, and the Microsoft Message Queue. It provides services for building distributed systems all the way from simplistic cross-appdomain message passing and ORPC to cross-platform, cross-organization, vastly distributed, service-oriented architectures providing reliable, secure, transactional, scalable and fast, online or offline, synchronous and asynchronous XML messaging.

But, being a Web Services guy, and being deep in the muck of WS-*.* for the last several months I was confident that this would work itself out. 

What I'm really digging on (as you should be) is Avalon.  I will say this once:

The ramifications of putting Microsoft's weight behind a vector based composition engine can't be overestimated.

I've been all about SVG for a while, as has Patrick Cauldwell.  He's worked on declarative UIs using Adobe's SVG tools.  The Early and Adopter guys have a great explanation about Avalon and how it works.

Here's why I think it's so significant.

Today, when you sit down to write a WinForms app, you do your “File|New Project|WinForms Project” and there's a little section created for InitializeComponent() and then they hide it in a Region. They even put a little comment there to warn you from messing around.  Something like:

//Good luck to you if you edit this and piss off the Designer.

And when you open the little hiding region you see:

this.components = new System.ComponentModel.Container();
this.Size = new System.Drawing.Size(300,300);
this.Text = "Form1";

Isn't this fairly declarative?  It's really just saying, “Hey, here's how it oughta be“ or “Make it like this.“ 

You wouldn't expect to see if statements or for loops in here.  It's just a lot of C# (or VB.NET) code that lays out the Form.  Golly wouldn't it be cool if we could borrow another declarative language, maybe a markup language, preferrably an extensible one. :)  So, they take all that InitializeComponent stuff and move it out to another Source File.  Except this source file is a XAML file instead of C#. 

Imagine the ramifications of this on designers.  The people that we think of today as UI Developers may not be the people who drag buttons onto a Form in 2005-6.  You know how developers always say, “I'm a lousy UI Developer“?  I say, let the designers do that.  The guys that make UI now will write UI interaction code in the future, and interface with XAML files that will be created by Macromedia This or Adobe That.  It brings the ASPX and CodeBehind model to Windows Smart Clients.

Since the forms can almost entirely expressed with XAML, this could usher in a new era in design, with ACTUAL DESIGNERS and lots of 3rd party design tools saving XAML files.  Note that when Adobe showed the Adobe AfterEffects demo in the keynote, all they had to do was add an export plugin to their app to create XAML.  They didn't even need a new app!

Also, it creates a single markup for UI development that is independant of VB.NET and C#.  Now, I overheard some folks saying, “Oh, they just generate the same C# from that XAML file, so really nothing's changed.”  Kind of a simplification, but so what?  That's the whole point of declarative programming models like that.  WHO CARES WHAT THEY DO WITH THE XAML, as long as it brings up a usable UI?  If it's Code Gen, some interpreter, or Black Magic, it's all good.

The last thing that's cool about having a declarative markup for UI development is how it complements the concept of partial classes.  Versions of .NET > 1.1 will have support for a single “logical class definition” being spread across multiple files.  What the means is that the XAML file and the C# file ARE THE SAME CLASS just spread across two files (who also happen to be in different languages.)

It's pure sex.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

PDC - End of Day 1, or beginning of Day 2?

October 28, 2003 Comment on this post [2] Posted in PDC | ASP.NET | DasBlog | Movies
Sponsored By

Just got back from a nice time at The Standard with a pile of Dev Influencers and such. Saw Miguel, Don and Band on the Runtime, Chris Sells, Keith Pleas, Tim Huckaby, Ingo Rammer, Dan Fernandez (C# PM), Julia, lots of INETA folks, lots of MS folks, and it was all great until Bill Evjen was pushed into the Pool by...who? Can't tell ya.

Well, the original Western Movie Star Jack Palance just walked through the Westin's Lobby.  Someone else spotted Pat Morita, and the bartender at the bar was Devin Elston from MTV's Road Rules #2.  Cool.  L. freakin' A.

Also, came back to the Hotel fully expecting to go to bed and ended up hanging out with Forte and the folks from Code Magazine.  Got to the room and noticed that the Longhorn Developer Center is up!  I was really excited for people like Chris Sells for all the work that they've done.  It must be a thrilling feeling to see all your hard work come together.  The momentum being generated here is great.  The biggest things IMHO are the introductions of 1. declarative programming and 2. vector graphics (arguably 1a.) as first class citizens in Longhorn.  I'll have an article up on .NET Developer's Journal later this week about Avalon and my thoughts on these issues.  I'll post it when it's up.

Here's me and Ingo, with Ingo looking wise, and me looking psycho.

Here's what the party looking like towards the end.

Here's Bill falling (being pushed) into the Pool.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

The PDC Keynote Summary - The überpost

October 28, 2003 Comment on this post [0] Posted in PDC | Speaking | Nant | XML | Web Services
Sponsored By

Update: Here's a single aggregate post with the summary of my running commentary that was BlackBerried from the Keynote.

Well...we're sardined into the keynote.  There's no wireless (802.11) so mobloggers only.  The lights dim...

Keynote - Bill Gates

They showed the Red vs. Blue Halo video
* "Working Smarter AND Harder"
* BillG out on stage.
* Record signup and turnout for PDC
* '92 32-bit PDC
* '96 Internet PDC
* '00 .NET PDC
* This is the decade where digital devices will play a deep role in our lives.  This next wave is being driven forward.
* Microsoft R&D budget $6.8B
* People are more concerned about the number of moving parts in a system
* Trustworthy Computing - password over time will NOT be adequate
* WindowsXP SP2 - firewall on by default..."Enhanced memory protection"

Keynote - Bill Gates - continued

* Dr. Watson matters.  We've changed our relationship witht the video driver people...many drivers were lousy, we used crash data to improve drivers
* Hardware in 2006
  4-6 Ghz - 2 cores
  2 GB RAM
  1 TB disk
  GPU 3x today
  1Gb network, 54Mb wireless
* NGSCB - Next Generation Secure Computing Base
* Always on...both your PC and your 'net connection
* Software is the limitation now, not the hardwarw, not the network, not the processor

Keynote - Bill Gates - continued

* Fantastic Video "Behind the Technology" ala VH1's Behind the Music.  Destined to become a classic.  Hopefully it will get posted soon!  They appear to have gotten the ACTUAL VH1 announcer.  Also, it included Puff Daddy, Anthony Michael Hall, Bill Clinton, Warren Buffet, the Meet the Press guy, the Pets.com puppet, and John Sculley (Apple Newton launcher).
* "Peer to Peer is very important."
* Informtation has been stored in binary streams - in hierarchical silos. "We haven't gone beyond the clipboard to structure information."
* Information Agents - needs to be built into the platform.  "Every application tries to be on top and put up its toast.". (A reference to the "little blue toast" popup that Messenger uses to inform the user of presence chnages.)
* "A 26" LCD will cost only $500 in 3-5 years."
* Longhorn: It's all about Avalon (new GDI), WinFS (Metadata/Unified Storage), Indigo (Communication system)

Keynote - Bill Gates - continued

* Hillell Cooperman - Group Program Manager talking about Avalon.
* He ran Visicalc under Longhorn - "a 20 year commitment to compatibility!"
* "Any one here blogging? Who will be first to blog this?" Uh, me?
 
Keynote - Bill Gates - continued

* Dynamic folder views ala "Office 2003 Search Folders" - built into explorer.  He's viewing 1100 items with no slow down.
* Showing "stacks" that are views of data that are spread all over the system.  Smacks of HyperCard.  These stacks are dynamic based on WinFS metadata.
* Aero - click on a person and "view communication history" and query the metadata within WinFS to get all files related to communicating with that person.
* Aero - Common Dialogs for PEOPLE.  The system knows that people are unique.
* Presence info built into the Aero experience.
* Lots of Transparency on all nonclient areas of windows.
* My opinion: The UI look really IS distinct and different than Mac's Jaguar.  I honestly wouldn't have thought it possible.  It's an extraordinarily clean look.  I wonder how hard it is to do the gratuitous animations.

Keynote - Bill Gates - continued

* BillG back on stage
* 3 waves of Software
  1. .NET Today
  2. SQL "Yukon" and Visual Studio "Whidbey"
  3. Longhorn Client and Server
* "Exploiting the client" - that means Smart Clients moving XML around.  Gotta give those 6Gz Pentiums something to do!

No break...
 
Keynote - Jim Alchin

* Jim Alchin here to do "a lap around Longhorn"
* WinFX (yes, that's FX)
- Next API beyond Win32
- DOS->Win16->Win32->WinFX
- Fewer lines of code is the point (Calling back to the "fewer moving parts" concept from BillG)
* Starting the "Lap"
* Longhorn is as much about fundamentals as anything else.  It's to easy today for drivers and apps to piss off other drivers and apps. We're building in Sandboxing and Protection at every level.
* Performance Degradation over time - (Windows Arthritis, why doesn't it get Faster over time?)
* NO REBOOTS - Jim is on a campaign to stop reboots.
* "Click Once" - taking XCOPY deployment to the next level
* A "flight data recorder" built into the OS to diagnosis problems
* "SuperFetch" - the idea thatwe can look at what's going on in a system and determine what you will need in the future.
* Exploit the GPU
* (if such a thing is possible, Jim isn't as dynamic a speaker as BillG.  Perhaps he's nervous.  He seems "off." His voice is quavering.)

Keynote - Jim Alchin - continued

* Being able to add a "non-execute flag" to pages in memory and working with the Hardware Vendors to prevent executing code in a data page. (This would help against buffer overflows from a hardware level.)
* Avalon - There is just ONE driver model in Longhorn (no difference between 2D and 3D.)
* The compositing engine is VECTOR based. (Opinion: the importance of this can't be overestimated.  I would have supported a move to Vectors 10 years ago.  It's a WAY better model for UI, especially considering that the DPI of the output devices are variable. Sceens are either 96dpi or 120dpi, printers at 1200+dpi.  Remeber the Prodigy online service? They pushed vectors around.  Apparently they were ahead of their time!)

Keynote - Jim Alchin

* Don Box and Chris Anderson come out...they are going to develop an Avalon app. Clever banter.
* Don is writing code in Emacs on Longhorn.  The fonts were WAY to small. (No one reads my presentaion tips)
* Everyone yells out to make the fonts bigger.  Don ups the fonts, but turns off syntax highlighting because apparent the contrast of syntax highlighting offends.
* Showing MSBuild. Holy crap it smells like NAnt.  Wow, writing these build files is xml and is 90% the same concept as Nant.  Learn and use Nant now (I say) and use MSBuild soon.
* Chris and Don play very well of each other.  It's good the MS has folks like them to present at keynotes like these.  They are scrupted, but still quipping.  It's very comfortable.
* Showing XAML to write an XML declarative document to describe the Window and it's properties.  The XAML file is codegen'ed into C#.  The XAML is just another input file, like a resource.
 
Keynote - Don Box and Chris Anderson, Jim Alchin

* They've built a Winforms app and rotated the whole UI 10 degrees to the right with a single XML attribute.
* They've added Opacity to all color reference, like FF66FF could become 44FF66FF and 44 is the level of opacity  (or inversely, transparancy).  The rendering is done on the GPU directly, using minimal CPU.
* Storage is a challenge and limited by the folder heirarchy.
* There is no Logical vs. Physical on disk.  You have to physically rearrange your files to get a different view.
* Don has asked Jim why VP's don't write code, and would Jim be his "code monkey"
* Jim is writing the code in VI.  Apparently noone remembers EDLIN.
* They are bantering and commented that Don called a variable "Bob".  Jim prefrrs Hungarian, but says now that Charles (the Hungarian) doesn't work for the company, maybe now we can choose our own variable names.
* Jim is a hunt and peck typist, but is a great sport and not doing a bad job at all.
* They are calling the Avalon command dialog and querying WinFS to search for documents that relate to the selected contact.
* They are really spending some serious time writing code.  Very cool.  Developers, developers, developers isn't just a catch phrase.
 
Keynote - Jim Alchin

* Whew!  They finished the Winforms app and queried the WinFS data store and retrieved all the documents that involved Chris Anderson.
* Indigo - Now Jim is talking about Indigo, the Windows Communication System.  This includes Secure, Reliable and Transacted Web Services
* Collaboration - There's now single API for peer to peer Real Time Communication (RTC), and partitioned networks (NAT, etc.) make RTC a hassle.
* Windows will provide not just a single source/platform/api for contacts, but also for Presence!

Don Box and Chris Anderson again:

* Now they are going to add blogging capabilities to the app!

Keynote - Don Box and Chris Anderson

* using System.MessageBus - the namespace for Indigo, interesante.
* Now, Don is going to use the Indigo system to post directly to his blog (http://www.gotdotnet.com/team/dbox) from the stage.
* They are checking out his blog, and they see that he hasn't blogged since last night.
* BOOM.  Posted.  Check it out.
* Now, they've switched to VB.NET (apparently Chris has been in the closet, and has been attracted to VB.NET since he was 5, but could never explain his feelings.  Don wonders if he could do both languages...)
* Now they've added a component to the sidebar that will receive an Indigo message from their client.  So they'll be talking "Indigo Messaging" for Interprocess Communication.  They added a TextPanel to the SideBar and pushed text out to it.

Keynote - Greg Gilley with Adobe

* They've brought out the folks from Adobe.
* They've got an image editing program (Adobe After Effects) that can export images/vectors/ui as XAML declarative UI directly!
* They imported the XAML file directly into VS.NET and get a form.  Its a VERY dynamic, sexy UI with annimations, charts, gradients.  The kind of stuff you'd have to do in Flash.
* They just called a Web Service and populated the metadata.  The designer created the UI and the WS programmer didn't have to sweat the UI at all.
* Now, Jim Karkanias from Merck
* Awesome, they are going to show how they are using Indigo to support a Health Clinical Trial.  An app after my own heart.
* Cool, real time wireless health data from a health monitor attached to Jim.  Jim has a resting heart rate of 87bpm.
* Now they've created a health anomaly iin Jim and identified a pattern with other people in the study, then they pulled map data in and found out if the patients have location in common.  They they alpha-blend a map of the current pollen count (another WS call) to discover that the anomalous event was an unusual pollen count.

Keynote - Amazon.com and conclusion

* Next, Alan Vermeulen, the CTO from Amazon.com is here to talk about what Amazon is working on around Web Services.
* He's showing a Smart Client that interfaces with Amazon WS.  I've taken video clips of the interface in action, I'll put them up soon.
* There's a calendar of product releases, and you can then overlay your calendar.
* They'll have the demos available at their booth...I'm all over this.  The Amazon guys did a great job at the XMLDevCon and its good to see that they are still cutting edge.

Jim Alchin is wrapping up now...that's all for the FOUR HOUR KEYNOTE.

Time to rest my thumbs.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

PDC - Day 1 in Photos

October 28, 2003 Comment on this post [3] Posted in PDC
Sponsored By

BillG making a point

The CTO from Amazon.  A great presenter and all-around fun guy.

Here's what many thousands of excited geeks look like from above.

The Windows API Roadmap...

And if you read this far, here's an AVI that shows the Amazon.com Avalon Rich Client.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.