Welcome to MSDN Blogs Sign in | Join | Help

All Ready for TechReady 5!

Tim Scudder and I had our tech check for the Deep Dive on Data Driven Experiences presentation that we are giving tomorrow morning at TechReady 5. This presentation will be very similar to the presentation that we gave at MIX07.

If you're at TechReady tomorrow, come learn how technologies like Silverlight, Language INtegrated Query (LINQ), and SQL Server 2005 can help developers build impactful, dynamic applications that reach the broadest possible audience. In particular, Tim and I will be walking through just how developers can productively leverage the machine readable web through query, aggregation, and data binding. We'll be in rooms 618-620 starting at 10:30 AM.

Live from MIX07: Silverlight and XML!

Greetings from MIX07 everyone!

That's right, Scott Guthrie announced this morning, to a sold out crowd at MIX07, the details around Silverlight, Microsoft's cross-browser, cross-platform plug-in for delivering the next generation of .NET based media experiences and Rich Interactive Applications (RIAs) for the Web.

XML and Silverlight

First, let me say how excited I am to begin discussions about Silverlight and XML. Even though all you clever XMLers may have forecasted it, for the past several months, the involvement of the .NET Framework within Silverlight has been under wraps. Thus, it is great to be able to take a step back to dig into what we have created thus far as well as chat about the current thinking for the future of XML in Silverlight.

So, how does XML pertain to all this Silverlight buzz? Well, XML plays a fundamental role in enabling RIAs through Silverlight. For example, let’s take the popular mashup topic. As service offerings become available across the web that allow users to expose rich content in a machine readable format, some really compelling RIAs are possible that unify the experience around data through Silverlight and XML.

For MIX, we have been working on the Socializer, a social networking browser that leverages the machine readable web through Silverlight. This Silverlight sample showcases how users can easily unify experiences around social networking data using Silverlight, RSS, and the Friend of a Friend (FOAF) RDF format. Further, the Socializer demonstrates how Silverlight can be leveraged to create rich user experiences with data through asynchronous usage of web services, thus exposing a smooth, socially aware application shown below!

The Socializer 
The Socializer

XML Features in Silverlight

In the Silverlight 1.1 Alpha release, we have enabled streamed XML reading and writing through the XmlReader and XmlWriter, respectively.

That’s it, you say? For the MIX Alpha release, yes. Over the 1.1 alpha release cycle, we have focused on providing a great XML foundation within Silverlight through the reader and writer in order to enable the delivery of additional pieces of the XML stack within the context of Silverlight in the future.

XML, Silverlight, and the Future

Going forward, we are planning to support LINQ to XML within Silverlight to enable a great story for query, caching, manipulation, aggregation, and data binding using XML.

Additionally, we'd love to get feedback on what types of activities are relevant for you, given this great new programming model of .NET within the browser. In particular, how do you feel about the following features in the browser?

·         XSD Schemas

·         XPath

·         XSLT

·         DOM

Well, the dinner bell is ringing here at MIX07, so that’s all for now. Though, as we're now allowed to talk about Silverlight publically, I am very excited to discuss XML and Silverlight, what types of applications are interesting for you in this space, as well as the types of XML features are relevant for you in the context of the browser. If you have any feedback, feel free to ping me.

I hope that you are as excited as we are about this huge news on Silverlight, .NET, and the browser. If you get a chance, check out the bits and send on your feedback!

Till next time…

Aaron Dunnington
Program Manager
XML Technologies
Microsoft Corporation

Working with Strings of XML and XSL

Recently, there have been a few posts on the .NET XML Forums concerning the usage of XML and XSL strings rather than streams.

Thus, I thought I'd share a snippet of how this type of transformation can be applied using .NET.

Working with Strings of XML and XSL

// XML and XSL content strings
string xmlContent = "YOUR_XML_HERE";
string xslContent = "YOUR_XSL_HERE";

// Load the source XML into an XmlDocument with LoadXml
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xmlContent);

// Load the XSL with an XmlReader attached to a StringReader
XslCompiledTransform transformer = new XslCompiledTransform();
transformer.Load(
new XmlTextReader(new StringReader(xslContent)));

// Create a writer for the result of the transformation
StringWriter writer = new StringWriter();

// Perform the transform
transformer.Transform(xmlDoc, null, writer);

// Write the result of the transformation
Console.WriteLine(writer.ToString());

To summarize, this code does the following:

  • Defines string variables for the XML and XSL
  • Creates an XmlDocument around the XML string
  • Creates an XslCompiledTransform around the XSL string
  • Applies the transformation
  • Writes the transform result string

In the context of this example, the transformation result could have been written to the console output stream directly. However, for this example, the StringWriter demonstrates how to access the transformation result as a string rather than a stream. Likewise, the XmlDocument can be loaded with a stream rather than a string.

If you have any questions or comments, please don't hesitate to send me feedback!

Posted by Aaron Dunnington | 2 Comments
Filed under:

Adventures with Data

After an extraordinarily fun first year here on Windows Live, I have decided to try something new. I have accepted a Program Manager position on the Data Programmability team within SQL Server.  As the technologies that unify object, relational, and XML types have always been great passions of mine, an opportunity on the Data Programmability team was one that I could not pass up. Thank you all for the great times! It has been exceptionally inspiring to have worked with and learned from such a tremendously talented, passionate team.

Furthermore, I am so excited to begin working with the incredibly brilliant SQL Server team!

Lastly, if you're interested, here are the SQL Server Data Programmability team sites:

http://msdn.microsoft.com/data/

http://msdn.microsoft.com/xml/

http://blogs.msdn.com/data/

http://blogs.msdn.com/xmlteam/

http://blogs.msdn.com/adonet/

Posted by Aaron Dunnington | 1 Comments
Filed under:

Now Blogging on MSDN

Greetings Blogosphere!

My name is Aaron Dunnington. If you would like, you can read more about me here.

Prior to blogging on MSDN, my corner on the web was located on Windows Live Spaces. Hence, some entries have been transplanted.

It has been a while since my last post; however, I hope to get back into the routine of blogging.

Thus, welcome to my blog. Let's talk about technology, software development, movies, and any other miscellany that blogging is quite conducive for.

Posted by Aaron Dunnington | 2 Comments
Filed under: , ,

Fun with HTTP

If you are into web development, I highly recommend adding Fiddler, an HTTP debugger, to your tool arsenal. Fiddler allows the manipulation and creation of incoming and outgoing HTTP transmissions.

To do some HTTP fiddling, check out the Fiddler site:

http://www.fiddlertool.com/fiddler/

Posted by Aaron Dunnington | 0 Comments
Filed under:

Broke out the Guitar

Last night, I broke out the acoustic after a hiatus of several years. Soon after, the lasers started flashing and the room filled with fog. I felt like a living room rock star. Then, alas, reality set in and I remembered that I am a geek at heart.

Goodnight Cleveland!

Posted by Aaron Dunnington | 0 Comments
Filed under:

Tabbed Browsing now in Internet Explorer

Along with many other cool new features, tabbed browsing is now available in IE via the MSN Toolbar.

Be sure to che, che, che, che, che, check it out:

http://toolbar.msn.com/

Posted by Aaron Dunnington | 1 Comments
Filed under: ,

AJAX: Great Stuff, Why Now?

Those into web applications have no doubt heard the buzz of late on Asynchronous JavaScript and XML (AJAX), an approach to web development that focuses on harnessing the existing client side processing capabilities of modern browsers. In short, a larger portion of web application code, typically JavaScript, can be downloaded to and executed on the client machine. Further, the client code leverages the XMLHttpRequest object built in to most browser engines to communicate with the server in the background using XML and HTTP.

The most compelling reason for using the AJAX technique is that it enables a more fluid user experience. In other words, the user is not constantly interrupted to jump to a new page. Thus, with the understanding that client processing is far less expensive than network communication, the AJAX approach allows web applications to behave more like desktop applications.

There are, however, some caveats to be aware of before embracing the AJAX paradigm.

First up, application maintenance. With a large portion of code written in JavaScript, without care, applications can become gremlins (the bad kind, not like gizmo). Now, with appropriate measures in place, application gremlins can be mitigated, and we can have gizmo applications. In particular, the gremlin vulnerabilities can exist in the interplay between JavaScript and the application presentation, typically HTML.

Next, as more and more code moves from server to client, intellectual property vulnerabilities may become an issue. Of course, this is very specific to the organization responsible for the application. If the organization is driving an open source effort or primarily focused on providing a service that is coupled to hosting infrastructure, exposing the client application may not be as much of an issue. On the other hand, if the corporate advantage resides in the client application, depending on customer audience, intellectual property exposures should be evaluated. Preventative measures can be taken through JavaScript obfuscation and potentially the future development of JavaScript security standards.

Lastly, for very large applications, the amount of code downloaded to the client machine may pose interesting performance challenges. Could we use AJAX precepts to download more AJAX precepts?

Overall, I am very excited to see the improvement of the user experience in web applications. Here are some great examples of the power and fluidity that results from creative applications of the AJAX paradigm.

http://www.live.com/

http://local.live.com/

One parting question: what has changed recently to cause the flurry of AJAX activity? Was it the acronym itself? These technologies have been around since 1998. Why haven't application infrastructures and tools been maturing over the years? Possibly more importantly, is there a technology out there now that will raise similar questions seven years from now?

Posted by Aaron Dunnington | 1 Comments
Filed under:

Favorite Movies to Date

Here is the ever-changing list of my top film picks:

The Godfather
The Shawshank Redemption
The Pianist
The Matrix
Pulp Fiction
Million Dollar Baby
A Beautiful Mind
Amadeus
Finding Nemo
Forrest Gump
Lost in Translation
The Deer Hunter
Fight Club
The Usual Suspects
Memento

It was somewhat difficult to place these in an ordinal sequence, given their disparity in genre. Movie buffs will notice that Citizen Kane is not listed. Since this film's cinematography was quite impressive for its time, it is easy to see why it is favored amongst critics. It seems as though, however, Kane has not been able to stand the test of time in applicability for general viewing. Hence, the omission from the list.

Of course, this is all subjective.

Posted by Aaron Dunnington | 0 Comments
Filed under:
 
Page view tracker