RoadToWinFX

OTHER DEVELOPER SITES

Windows Communication

UK Community Developer Days

DeveloperFusion

CodeProject


Powered by ASP.NET
Top WinFX Bloggers



WELCOME TO THE ROADTOWINFX

Welcome to the 'RoadToWinFX' site, a community site
dedicated to bringing you the best blog entries, code, competitions
and articles about Microsoft's next-generation managed APIs.

NEWS


RECENT BLOG POSTS ON WINFX TECHNOLOGIES

(Below are syndicated blog entries from bloggers on WinFX technologies, please visit their respective sites for further entries.)
I am in Microsoft Research by Savas Parastatidis [WCF]

After posting my last entry on the ThinkWeek paper, it occurred to me that I haven't mentioned the fact that my team, Technical Computing @ Microsoft, is part of Microsoft Research now. Yes, exciting times even though not part of my plan when I joined Microsoft. You see, two years ago I opted to join a product group and declined an offer I had to join Microsoft Research. Now, here I am :-) Oh well.

The reason we are part of Microsoft Research is because the role of Tony Hey, our Corporate Vice President, has been greatly expanded and he is now responsible for the 'External Research' organization within Microsoft Research (we don't yet have a dedicated web page but that's coming soon I guess). Our Technical Computing @ Microsoft team is just one of the teams reporting to him now. The vision and our interactions with scientists/researchers all around the world remains induct and we have a clear mandate from him to execute, execute, execute on that vision :-)

I now have Microsoft Research web page (it's a placeholder for the moment... will try to update it soon).

My first ThinkWeek paper by Savas Parastatidis [WCF]

Today Roger Barga* and I submitted a ThinkWeek** paper. It's my first since I joined Microsoft and I am really excited about it. Roger of course has submitted a number in his long and successful career in Microsoft Research.

I thought that my first ThinkWeek paper would be on 'data networking' and 'knowledge mashups', since I've been writing that paper for months now; it's better this way though since I got to work closely with Roger and learn a lot about how ThinkWeek papers should be written. I seriously enjoy working with Roger. We are now executing towards implementing a common vision, and we are starting to produce some truly amazing stuff (at least I am excited about our plans:-).

Let's hope that our paper will reach Bill Gates or that our senior executives will agree with our vision.

 

* Roger is the senior architect in my team and he's an extremely clever guy (don't trust his MSR web page... he just hasn't updated his title/role since he joined the Technical Computing @ Microsoft team).

** Bill Gates allocates a week of his time (twice or three times in a year, I think) to read papers that anyone in the company can write. The papers do go through filtering and a review process (with the comments published for anyone to read). The subject can be anything really... new ideas, business opportunities, evaluation/review of a technical space, etc.

Jim on InfoQ... 11 years and he still can't pronounce my last name... :-) by Savas Parastatidis [WCF]

We first met on October 1st, 1996, when we ended up sharing an office in Newcastle while starting our PhDs (we started on the same date and we finished 4 years later with only few hours difference... he finished ahead of me by few hours but I got through the viva first :-). 11 years have passed and he still can't pronounce my last name but, I must admit, he does a much better job than most non-Greek native speakers :-) (just joking mate)

He's still ugly but even so does a great job at giving a high-level overview of MEST, SSDL, and messaging in a service-oriented world. Ah... good memories... the endless discussions on how to build scalable, service-oriented systems, how much WSDL 2.0 sucks, all-things REST, etc. I miss those days but I am trying to move on :-) I am not sure I agree with all of his explanations but I don't think I would have done a better job. Really great to see him online. I am probably seeing him live in a couple of weeks when I visit London.

Anyway... go watch.

Live search in a Silverlight avatar by Lester Lobo [WPF]

Try out tafiti.com... Not heard of it... its a new search site from Microsoft which provides Live search results in a Silverlight interface... The site is in beta but it shows the power of Silverlight.. You would need to install the Release candidate of silverlight to get it running... Check it out

Share this post

 

Shawn has prepared Genghis v0.8 by Chris Sells [WCF]

Shawn Wildermuth has prepared a v0.8 release of Genghis that includes a bunch of stuff that the folks that put the v0.6 release together dropped. The v0.8 release has all the good stuff from the v0.5 release and all the new stuff from the v0.6 release in a .NET 2.0 package.

Shawn's really done all the work for Genghis since I came to Microsoft. Thanks, Shawn.

Reflexil add-in for .NET Reflector by Lutz Roeder [WPF]
Sebastien Lebreton has created an add-in to manipulate the IL of assemblies. Added Paste2Xaml application and Ab2d.ReaderWmf class library by Andrej Benedik [WPF]

Paste2Xaml is a WPF application that can read Windows metafiles (wmf), Enhanced Metafiles (emf) or get matafile objects from clipboard and can convert it into xaml. It can also export embedded images that can be used in exported xaml. The metafiles can also be imported at runtime with new Ab2d.ReaderWmf library.

The following diagram shows how it is possible to import 2D vector drawing from almost any drawing application into WPF world:

Ab2d Overview diagram

Paset2Xaml Screenshots:

Main Paste2Xaml window

Main Paste2Xaml window - a graph from Microsoft Excel 2003 has been pasted to the application (the application is already showing a WPF representation of the graph)



Export Dialog

Export Dialog - showing the xaml text and all the export options for a metafile with 2 embedded images.



The graph from Microsoft Excel 2003 shown in XamlPad

The graph from Microsoft Excel 2003 shown in XamlPad.



See www.wpf-graphics.com/Paste2Xaml.aspx for more.

Signalling “End Of Session” by Kenny Wolf [WCF]

When authoring a session-ful channel, it’s important to signal “end of session” correctly so that the runtime (or any other user of the channel) knows when to stop reading messages, and to start shutting down his side of the conversation (with CloseOutputSession and/or channel.Close). A null Message/RequestContext signals end-of-session to the caller. In particular, depending on your channel shape, you should do the following:

  • IInputSessionChannel/IDuplexSessionChannel: Return null from channel.Receive(). Correspondingly, return true from TryReceive with the “message” out-param set to null. And of course, cover your bases by having BeginTryReceive complete synchronously with a signal to return true + message = null from EndTryReceive.
  • IRequestSessionChannel: Return null from channel.ReceiveRequest(). Correspondingly, return true from TryReceiveRequest with the “context” out-param set to null. Lastly, have BeginTryReceiveRequest complete synchronously with a signal to return true + context = null from EndTryReceiveRequest.
WebHttpBehavior vs WebScriptBehavior by Steve Maine [WCF]

If you want to use the [WebGet]/[WebInvoke] programming model in WCF, you need an endpoint with the right binding and the right endpoint behavior.

The binding is the out-of-the-box WebHttpBinding. The endpoint behavior can be either WebHttpBehavior or WebScriptEnablingBehavior.

What's the difference between the two?

The WebHttpBehavior is a general-purpose behavior that supports UriTemplate dispatch and POX/JSON/byte stream formats on the wire. Use it for general purpose HTTP/REST/Web-Style services.

The WebScriptEnablingBehavior is a "profile" of the WebHttpBehavior functionality designed specifically for interop with ASP.NET AJAX clients. It adds in some AJAX-isms like the ability to automatically generate ASP.NET AJAX client proxies.

.NET Sidebar Gadget Creator Tutorial 1 by Mark Schmidt [WWF]

Here's the first of what I hope is a few more tutorials. This is pretty much introductory and explains some of the reasons why I decided to research creating a better user experience for Vista Sidebar gadget that use .NET. I show the issue that prompted me to create the application by installing and attempting to uninstall my ScreenSaver Gadget. I then show some of the registry access code one has to write in JavaScript (if you don't use the .NET Sidebar Gadget Creator). This is followed by using the creator application to generate the included sample gadget, installing it and then uninstalling it. I also briefly show the underlying JavaScript code and show that there is no registry access needed at all.

This is my very first ever video tutorial so bear with me. Right click and Save As to view it on your computer.

What are we giving away at Mix:UK? by Ian Moulster [WPF]

 

People have been asking me what sort of give-aways there’ll be at the Mix:UK event. Well, I've been told I can't really say anything and will be shot if I do.

However, I am allowed to be vague...so all I'll say is that attendees may be getting full retail versions of a couple of mainsteam Microsoft software products, may be getting some kind of t-shirt shaped clothing, may be getting some kind of handy pocket-sized storage device, and may get some other bits and pieces.

And of course we may also have some cool prizes at the event for attendees, which could involve games consoles and other stuff.

But then, we may not do any of this. And of course if you don't actually turn up on the day, or disappear off before we hand it out, you won't get it even if you're a registered delegate.

Hopefully that's vague enough to allow me to keep my job.

Join the Mix:UK Facebook Event by Ian Moulster [WPF]

If you haven't already seen it, we set up an "event" on Facebook to represent the real-life Mix:UK event. Get yourself invited by visiting the event page on Facebook and clicking on "Add to my events" just under the Mix logo on the right-hand side of the page.

Then indicate that you're attending from the options that are displayed.

Of course, if you want to come to the real mix event head on over to the registration page at www.microsoft.com/uk/mix07, there aren't many places left!

MVP Insider - Q&A with Ken Cox (Visual Developer - ASP/ASP.NET) by John Bristowe [WCF]

Ken Cox (MVP Profile) is a programming writer and .NET developer who lives in Nipissing Township, Ontario during the fair weather months, and Victoria, British Columbia in the winter. Ken is currently writing ASP.NET 3.5 For Dummies to be published by Wiley by the end of the year. As a contributing editor for Visual Studio Magazine, he writes articles and product reviews. His current ASP.NET development tasks include an e-commerce Web application for ordering groceries online. Ken was awarded MVP status when Active Server Pages was first released and has continued to grow with Microsoft's Web technologies. He's a regular participant in the Microsoft ASP.NET newsgroups, a frequent blogger, and an active member of the Victoria .NET Developers Association. In a previous life he was a broadcast journalist in Toronto and Quebec City for major Canadian and international news networks. He holds a Bachelor's degree in Radio and Television Arts from Ryerson University in Toronto and a Certificate in Technical Communications from George Brown College.

1. What does being an MVP mean to you?

The MVP award is quite an honour. It means that I've gained a certain amount of expertise in ASP.NET and then volunteered my time to help others. In terms of benefits, it means that I get "insider" access to people and resources at Microsoft. That special relationship goes both ways because Microsoft listens carefully to what MVPs say. It's all quite flattering! The MVP designation opens doors for me outside of Microsoft as well. For example, book publishers are eager to enlist MVPs just because of the programme's reputation in technical communities. At Microsoft-sponsored events, developers often say, "Gee. You're an MVP?"

2. If you could ask Steve Ballmer one question about Microsoft, what would it be?

Why doesn't Microsoft develop chip-based technology where you could plug in and run software directly from a USB-like thumb drive? Installation programmes spend hours decompressing and transferring files from a DVD to the local hard drive just so the software can run on the machine. Putting packaged software on a secure type of flash drive would make it load and run faster. If the flash drives were re-writable, they would also cut the amount of plastic going into the garbage.

3. What do you think the best software ever written was?

That would be DOS-based TBBS (The Bread Board System) written by Phil Becker of eSoft. Before the Internet, online communities used dial-up bulletin boards to exchange information. Disk space and RAM were hugely expensive back then, so Becker wrote TBBS in machine language to make it lean and lightning fast. (He had previously worked as a computer systems engineer on the Apollo moon programme and the Viking Mars Lander programme.) With add-on boards, you could connect 64 modems to one TBBS machine. I wrote games for that platform in Becker's database-driven dBase dialect called TDBS.

4. If you were the manager of Visual Studio, what would you change?

I'd like him/her to negotiate a special version of Windows Vista or a one-click configuration that takes into account Visual Studio's need for elevated permissions and settings. I've heard too many stories about people who have tried to do development and debugging on Vista and run into problems. Some developers were so frustrated that they ended up downgrading back to XP. I'm hesitant to upgrade to Vista because I can't afford the downtime. A special Developers SKU of Vista - perhaps with Visual Studio pre-installed - would avoid these issues for all of us.

5. What are the best features/improvements of Visual Studio?

The Web page editor in Visual Studio 2008 is a major bonus for ASP.NET developers. You can work in Design view, Source view or both (Split view) and it doesn't reformat your code. I think the new ListView control is going to be very popular because you can do almost anything you want with the markup it generates. LINQ is a major addition, especially for people like me who have struggled with the old SQL syntax and its lack of IntelliSense support.

6. What was the last book you read?

The last computer book that I read was SharePoint 2007 Development Unleashed because I was the technical reviewer. For the most part, I just dip into computer books to get specific information. Does anyone (except the technical reviewer) read a computer book from start to finish? My last pleasure reading was Marley & Me by John Grogan. It's a touching book (for dog owners) about the life of the author's lovable dog Marley. Highly recommended.

7. What music CD do you recommend?

Musically, I'm stuck in the 60's so if I had to pick one, it would be Sergeant Pepper's Lonely Hearts Club Band. That album has such great, innovative music and wonderful engineering that it's hard to beat. Most of my CDs are digitally mastered "re-purchases" of LPs that I first bought during what the deejays call "The greatest decade of music in rock and roll history". My favourite CDs are by The Beatles, the Beach Boys, and the Four Seasons.

8. What makes you a great MVP?

While too humble to accept the word "great", it's probably that I'm fascinated by technology but have no formal training in computers or programming. That contributes to my philosophy that if I can learn to develop software, anyone can. It's also empathy for those who find writing software satisfying but also hugely frustrating. Too often, things don't go as you expect, nothing is easy, and the documentation is never sufficient. Most people hit dozens of annoying little snags and just need a quick pointer to get on their way again. Many of us work alone and need a second pair of eyes to see the obvious. Those are the people I like to help. A great MVP has the attitude that 'we're all here to help each other' and gets a big kick when someone replies, "That's just what I needed! Thanks!"

9. What is in your computer bag?

Not my laptop. It's on the kitchen table for browsing the news sites at breakfast. Let's see... There's a warning tag about installing the Fujifilm software before connecting the digital camera; an empty cellphone case; a pad of paper with notes from a prospective client; a Swiss Army warranty card; a networking cable; two pens; a wrapped candy; a flashing red LED safety light for the dog's collar; and a Pocket PC whose battery is totally flat.

10. What is the best thing that has happened since you have become an MVP?

That would be an MVP Summit on the Microsoft campus in Redmond. I had a chance to sit in a room with the top ASP/ASP.NET experts from inside and outside Microsoft. I remember hearing guys like Scott Guthrie, Rob Howard, and Nikhil Kothari talking about what they were planning to put into their Web platform. My head was spinning with their plans and came away pumped up with enthusiasm. The worst part was that it was all confidential and I couldn't talk about it until months or years later.

11. What is your motto?

"Docendo Discimus". I learned it in high school Latin class and it stuck with me. It means "We learn by teaching" and that's exactly what happens in the computer world. Someone that you've never met has a very practical issue to resolve, so you research the answer. You almost always benefit from your own contributions - even if it's not right away. I have literally learned from my own answers by looking them up on the Internet years after I posted them to help someone else. The more I learn by helping others, the more marketable I become.

12. Who is your hero?

Tough choice. Bill Gates would be tops for his vision, industry leadership, and philanthropy. I love the idea that a guy can "make his own luck" to build a computer empire and then give most of his riches away to worthy causes. In a more practical vein, my hero is Scott Guthrie who runs Microsoft's Web Tools and Technologies division. Scott's a brilliant guy with astounding technical depth. Even while running a large division "Iron Man" Scott writes dozens of very practical blog posts, gives presentations all over the world, and answers emails from people like me. Despite his success and fame, Scott remains a very personable, approachable, and likeable guy.

13. What does success mean to you?

Success is more of a feeling than something you can measure. It's doing something worthwhile that brings you joy and satisfaction. Sometimes the reward for success is a tangible item like money - which recalls the old quip, "Money doesn't buy happiness but it does buy yachts to go around looking for happiness in." For me, success is usually the happy knowledge that I've achieved a goal, earned respect for an accomplishment, or made a positive difference. Today, success for me would be getting another chapter of the ASP.NET 3.5 book finished.

I'm in love with Tafiti by Ian Moulster [WPF]

I have fallen for Tafiti in a big way. Who is Tafiti? Actually Tafiti is a "what" rather than a "who" - and there's a reasonable chance you'll fall for it too.

Tafiti is an interface to Live search, built using Silverlight that scores high on the cool factor. In fact, anyone who sees me using it a) wants to know what it is and b) immediately wants to use it themselves.

Here are the pieces that I really like:

  1. Very cool interface that feels a world away from your standard web search engine interface
  2. The ability to save search results by dragging them on to a "shelf" next to the search results
  3. The fact that this "shelf" is maintained across sessions and even across machines if you're logged in using your Live Id
  4. The fact that you can email the shelf to other people, or post it to your Live Space
  5. The ability to search not only the web, but books, RSS feeds, images and news too
  6. The fact that you can filter the search results to really pinpoint what you're looking for
  7. The cool and eerie tree view that circles your search results around in 3D, with a slider bar to affect how many results are displayed. I find that I tend to click on results using the tree that I wouldn't have using the standard display.

But enough already, what's the URL. Unsurprisingly, it's www.tafiti.com.

Oh and why "tafiti"? Read the FAQ on the site for details.

Vista Virtual Desktop Manager by Kam VedBrat [WPF]

I recently discovered this project over on codeplex. It's a virtual desktop manager for Windows Vista that uses the live thumbnail preview API's exposed by the Desktop Window Manager. It's still very beta, but a great example of some of the innovation that can be built on the platform that the DWM provides.

WSS Setup for EP - Basic or Advanced Mode ? by Solutions Monkey [WCF]

Microsoft Dynamics AX Enterprise Portal supports both Advanced mode and Basic mode installation of WSS. “Advanced” is the recommended approach for production systems.The difference between Basic and Advanced mode of SharePoint is well documented by SharePoint documentation http://office.microsoft.com/en-us/winsharepointadmin/HA011607841033.aspx.

 

The limitations in Basic mode ( which uses WMSDE) includes lack of sql mgmt tools , full text search , db size  etc. WMSDE could be used for light usage scenarios or as dev env and can later be migrated to a regular sql server installation.

 

Advantages of Server Farm Configuration

• Performance and capacity could be increased by adding additional servers running Windows SharePoint Services and SQL Server.
• Load balancing could be achieved by using hardware or software (NLB) service.

Testing Ideals by Michael Hunter [WPF]

I have been thinking about what an ideal software development process might look like:

  • The product team would understand exactly what their customers want to do and how their product could help their customers do so.
  • Developers would understand exactly how to translate that vision into code.
  • Developers would write code which does exactly what they want it to, code which has zero defects.
  • Installing the application would work every time with zero problems.
  • Once it is installed the application would update itself automatically and transparently; these updates would install with zero problems every time.
  • The application would continually self-test itself and automatically report any failures to the product team.
  • The application would guarantee zero loss of data or productivity due to failures on its part.
  • Customers would have a trivial process for reporting issues and providing suggestions to the product team.
  • Customers would allow the application to report failures to the product team, and report every issue they find and suggestion they have to the product team, and have zero qualms about doing so.
  • The product team would have either a fix or a "Nope and here's why" back to the customer within some short timeframe after receiving the report.

Note that testing does not appear in this list. Testing is necessary today at least because:

  • The product team does not understand exactly what their customers want to do.
  • Developers do not understand exactly how to translate that vision into code.
  • Developers do not write code which does exactly what they want it to.
  • Developers do not write code with zero defects.
  • Installing the application does not work every time.
  • Applications do not update themselves transparently. (Yes, many applications update themselves. I haven't yet seen one which does so transparently, so that I do not realize it has done so.)
  • Updates do not install correctly every time.
  • Applications do not continually self-test themselves.
  • Applications do not guarantee zero loss of data due to failures on their part.
  • Applications do not guarantee zero loss of productivity due to failures on their part.
  • Customers do not have a trivial process for reporting issues and providing suggestions to the product team.
  • Many customers do not allow the application to report failures to the product team.
  • Most customers do not report every issue they find and suggestion they have to the product team.
  • Most customers do not have zero qualms about submitting crash reports (in part because the reports may contain personal and confidential information (like the full contents of that steamy love letter to your Significant Other)).
  • Product teams do not have a fix back to the customer within a short timeframe after receiving a problem report.

I do not think this has to be so.

One way to fully test a software application, and by implication find every bug in that application, and so eventually have bug-free code, would be to build the tests into the application. (Thanks Roger for suggesting this.) This is the intent of Design By Contract: Pre- and postconditions are defined for every method, and every method checks its preconditions before it does anything else and checks its postconditions after it has done everything else. This could be extended outside individual methods by creating daemons which periodically verify the consistency and correctness of the system as a whole.

While this is a start it does not make the application fully tested. Incorrect functionality would not be found, as the pre- and postconditions and consistency checks would be verifying only what the developer thinks should happen, which will not necessarily match what the other members of the feature team - or the customer - thinks should happen. Nor would this catch performance issues, or security holes, or usability problems.

Many of these however could be found by design and code reviews. Static analysis tools like lint and FxCop and PreFast can find other types of errors. Dedicated application of root cause analysis, where the product team analyzes every issue and takes steps to eliminate its cause, could largely prevent these and other defects from ever recurring.

Even with all of that testing still seems necessary. Today we test our products in order to gather information our management uses to make business decisions about our product, such as whether to continue working on it or to ship it in its current state. One reason we do that is because undesirable business consequences tend to result when customers attempt to use software whose level of unfinishedness goes beyond their tolerance levels. One cause of this customer satisfaction is the loss of productivity they experience when they have to take time to redo work which was lost when the software crashes, when they have to take time to report problems, when they have to take time to install patches.

I believe this is achievable. For example, I have not yet lost data from Microsoft OneNote despite it crashing on occasion. Web controls tend to update themselves fairly transparently. Microsoft's Online Crash Analysis makes submitting crash data simple (although not transparent).

Some of the pieces are here at least in part. The others seem eminently feasible. What are you doing to help this ideal world come into existence?


*** Want a fun job on a great team? I need a tester! Interested? Let's talk: Michael dot J dot Hunter at microsoft dot com. Great testing and coding skills required.

Silverlight 1.1 VirtualEarth Viewer by Greg Schechter [WPF]

Microsoft Live Search Maps (aka Virtual Earth) at http://maps.live.com, is fantastic web technology that just keeps on getting better and better with birds-eye views, persistent collections, directions, etc.  However, given that its rendering is straight HTML and DHTML, the visual experience when zooming and panning is sometimes a little jarring in that you see black patches while tiles load, and tile layers pop instantly from one to the other during zooming.

The underlying graphics functionality in Silverlight provides an opportunity for a smoother viewing experience.  And I've had fun writing a Silverlight 1.1 (note Silverlight 1.1 is still in its Alpha stage) that provides just that.  You can find it, along with the source, at the Community Gallery on silverlight.net.  Click on the screenshot to visit the app:

VEViewer

(Extra points if you can tell me where screenshot is from - other than Rob and Dave!)

This app asynchronously requests tiles from the VirtualEarth tile servers (important note about this below).  Upon completion of the load, an animation is set up to fade the image from fully transparent to fully opaque, while the tiles below the image remain in place.  This results in a very nice fade-in effect as you zoom in and out and move around.  That and a continuous make for a great map browsing experience.  (And going fullscreen in IE with F11 is just beautiful.)

Important Note:  The URLs used to access the tile servers are not guaranteed to be supported by Microsoft and at any point are subject to change where they would no longer work.  Production code should not take any dependency on these tile servers.

Have fun!

New WPF App: Microsoft Robotics Studio 1.5 by Rob Relyea [WPF]

I just added to the Channel 9 WPF Application Portfolio page (which I remember via http://robrelyea.com/wpf/apps) another Microsoft shipping product that is using WPF.  I think they did so in v1.0 and now have just shipped v1.5 of Microsoft Robotics Studio.  The Visual Programming Language (vpl.exe) part of the Studio was written in WPF.

Here is a screenshot (click for a closer look) I took from VPL using VPLTutorial4 (which I downloaded with the Sumo Competition for Microsoft Robotics Studio (1.5)).

image

Hopefully they used some Xaml as some data formats...but I'm not sure... .NET Reflector 5.0.40.0 by Lutz Roeder [WPF]
New version of Reflector has updates for Orcas Beta 2.

Copyright © 2005 Jonathan Hodgson & Simon Thorneycroft | All Rights Reserved.
* Except syndicated blog entries above which belong to their authors.
All trademarks and products are the copyrights of their respective owners.