Bio Walt Ritscher is an active speaker; his teaching schedule has taken him throughout the U.S. providing training at corporations, universities and developer conferences.While working with Microsoft Press he was instrumental in creating "early adopter".NET courses for colleges and universities. He is heavily involved in the developer community - founding the .NET Developers Association in Redmond WA
My name is Walt Ritscher and I'm from Seattle. I've been living there for a long time. My main focuses are training and software development. I mix both of those. Right now I'm doing both, working on a project for APA, doing a web site for them.
Microsoft calls it that, but it is formerly know as Avalon.
I don't know why we care but I know why I care. I've always liked the graphic parts of Windows programming and up until recently I had a mix of technologies. You had to know how to do GDI, GDI +, you had to know how to do media, and also the whole gaming and the 3-D pieces. What Microsoft is trying to do is build a new presentation layer for the next version of Windows. They are looking at where our graphics cards are going to be in 2-5 years, they are looking at what you could do with these capabilities that you cannot do now. Just like when we went from the character based world to the windows world, there are a lot of new capabilities that we didn't take advantage of, for 5-10 years. But Microsoft saw ahead as did Apple.
What is interesting to me is that I got this huge new graphics capability; I can mix all these technologies and much more into a single rendering engine. Microsoft is uploading the processing to GPU, they're using Direct X to actually do all the renderings with even when you doing something with a 2-Dimensional object its being rendered in Direct X. All tri-dimensional graphic work is done with Direct X. But the question now is who is writing business applications and the classic demo that everybody talks about it you got a spinning cube in the corner of your window that has got a video playing on the side of it. Everybody thinks that's cute. But how do you put that in a Windows app? That's going to be the solution, how do we solve it. Like with any new tool, it is never the generation of developers that are currently working with it, that adopt it. It is going to be some young company that comes along and says "we're going to figure our how to write this great medical software or this great earth imaging software for showing how earthquakes work, or something like that, or we're going to use that to render the UI. You'll be able to spin the last ten earthquakes and see how they affected the ground shocks etc. That's where you're going to see a play-out. The business app is still going to be a grey form.
Billy Hollis was on the panel with me this morning and he brought up an excellent point. He said that one of the things that's going to make business compelling in WPF is that it is resolution independent. Right now if you're asking yourself, the minimum we can support for this video is 800 by 600 or 1024 by 768. Developers are working on these gigantic screens and they don't want to work at these small resolutions, but they have to because we need to support the lowest common nominator. What WPF gives you is a resolution independent screen. So we can just design the form; when it is placed in somebody's machine that has got 800x600 on it, it's going to look exactly the same as it will look if your reduce the size of the screen app.
Most Avalon has done is vectors. There are a lot of other new exciting things. They've just announced it at MIX O6. They talked about the WPFE (Windows Presentation Foundation Everywhere) which is the new lightweight version. It allows you to do a lot of the things you do in WPF, but it floats of any platform. It is going to run on Linux, it is going to run on Mac. From my understanding what is does is it emits IL and they're going to build something like a Java runtime engine. They'll run that on two platforms and they'll take that IL and convert it into native code. It is small, it is lightweight, it is around 2MB in size, so it should be easy to push out to people's machines. We can push content out through the web to people machines and then they can do interesting graphic apps with it, games etc.
The downside of that is that in the past you're leaving that 10% of Macintosh users or the percent of Linux users, out of the picture right now. What Microsoft is doing is they are going to build this thing so they can run those new systems. This is what I've heard; I haven't seen any demo yet.
My problem is I'm an early adopter and like the new technologies. Some people like to collect new hardware, the new latest video card, but I'm always looking at the new software stuff. Since I'm a Microsoft guy and I work with Microsoft technologies, I always look at what they're putting out. The last two or three jobs I worked on, even ... my client work or Windows forms work the jobs I have been working on have been ASP.NET. You mentioned the new technology called Atlas. The first new technology is Ajax, which in fact is a new buzz word that takes existing standards and says "If you use these 5 or 6 pieces together, that is called an Ajax application".
Now that all the browsers support xml http we can do this. The results are that a lot of websites are flying these Web 2.0 applications that look a lot like a desktop application. They're responsive in a way that we don't usually expect in a website; the fact that I can drag a portion of a webpage around with a mouse is interesting. Is not that you couldn't do that before, but before you it was some gimmick little thing, like a menu. A user would not expect you to pick up a menu and move around on the page, because you don't do that in Macintosh apps or Windows apps. I think Google maps was the turning point. When you first look at Google maps you don't know that you can do anything with the mouse. Then your friend says click here and drag and everybody gets that eye opening experience of "Oh my god, that's cool." And then they tell all their friends how cool it is. I don't use Mapquest, I don't, I always go to Google maps. That's what Ajax is. Microsoft has a new technology. So far I listened to a talk about it last night, and I had the biggest crowd here at VSLive because everybody wants to know what it is. My talk was on Ajax first and then ASP.NET new asynchronous pieces. The last piece was coming in 6 months and that something is called Atlas.
With Ajax you wouldn't do a post back. We already have a bunch of Java Script on the client's side and then matching server side code and in atlas it's all done declaratively. You click the combo box, the panel where you want to move around, you click it and you click another control and you wire the two together and it handles marshalling all the script on the page and handles passing the codes back and forth.
We've talked about Avalon. There's also Indigo which is a beautiful name that became Windows Communication Foundation. Microsoft never seems to come up with the right name in the beginning. Vista originally it was a code name. Another one is Monad, also a code name. Monad is the new Shell Microsoft is writing. They replaced the command line and it's definitely an update for the command line but it's also different from the other command lines. The one that really annoyed me was Origami. It was a great name for a wireless portable device, now called UMPC. I saw the video of it and I saw the hype going and I thought that finally this is a name that's going to compete with things like iPod etc. Origami just makes your mind light up with all these pictures that it can do. You don't know what it does but it's artistic, it's something that just rolls of your tongue. UMPC does not roll; it just drops like a rock.
The new name for Monad is Windows PowerShell. It's powerful and a shell - an app that allows you to shell out and issue commands to some system. It's much more sophisticated than that. You can script them; you can put them in batch files etc. Administrators love Shells. Administrators don't need GUIs. Administrators want to go and say "Something's wrong with this machine? I don't have time to do the beautiful GUI stuff. I just want to go down and say "you tell me what's on the hardware, you tell me what going with my network, you tell me how things are connected, what kind of network streams are going out, maybe I've got a Trojan horse or something." Microsoft has an engineer who studied these things and he decided to come up with a new one. It was code-named Monad. You know when you get to a command prompt and you get the little c icon and you can type things like "dir" that gives you list of files. That's a Shell.
The thing that makes Monad different is that it is a hugely powerful; it does not use Strings, which is how most command shells work. Most of the time we have two commands that you want to use, in a Shell you can pipe the results of one to another. You've got some function here and you can call "dir" and pipe the results to a printer or another command. But the problem with most of these things is that they use strings. If you want to do something serious with the contents being passed you have to use a string parsing language to read the contents so that you can parse the content out like you do with Pearl, something like a regex expression so you can somehow pick out the pieces that you want. Monad is object based and this is the new thing. Everything in PowerShell is an object. You pass objects from one piece to another; the entire .NET framework is accessible from Monad.
So everything you can do in C# Windows applications or Visual Basic Web applications, you can do through Monad; instead of piping a string across, you pipe an object across. So what do you get when you get it out the other side you get an object and objects have methods that you can call, they have properties that you can read. You just say "let me look at your property and I'll give you your string back". Whatever that object knows what to return to you, you'll get back. Once you see how this works it just changes your whole mind about Shell; it is extremely powerful. You can write commands to parse all your files on your hard drive, do a filter on them, make back-up copies to another directory. I've only been looking at it for about 2 days. I'm going to pull out the documentation and settle down in my seat and try to see what I understand about it. Everybody seems to love it.
I just love this new technology. The hardest part is keeping up with it all the time; it is very tiring to always find the new stuff. I keep doing it and it pays off because we write training for it. We write the training ahead of time and when the stuff actually ships my company can go out and do the training.
Developer prep is the website that's going to become our official face to the world that's hiring us, trainers, myself and other experts. I do training through a couple of other companies as well.