I have left Microsoft and this blog is no longer under my control. All of the content should remain for some time however and any new updates can be found at http://davedev.net.
-Dave, September 2013
I felt this years keynotes told a cohesive story better than any Microsoft conference I’ve been to. After months of hearing about 3 Screens and a Cloud we saw a fulfillment on that promise. Demo after demo the same tools (VS2010/Blend4) and the same framework (Silverlight) were used to create applications that ran in the browser, on the desktop and on a Windows Phone.
Not limiting itself to applications we also saw XNA code generate a game that ran on Windows, XBOX 360 and Windows Phone. With achievements being unlocked unto the same XBOX Live account on the Phone and XBOX. I couldn’t have been more proud to see Major Nelson up there on stage showing off the games. That spoke volumes for what has happened to Microsoft in the past 18 months. The Silverlight, XBOX, and Mobile teams had been separate in the past (both physically and from a roadmap perspective). Yet – here they were. Coming together as one Microsoft able to deliver an entirely new platform. A platform that people are truly excited about.
The message also resonated across attendees – it really feels exciting right now to be a Microsoft Developer. What developer, or designer, doesn’t want our applications to run on as many machines and devices as possible? Bigger audience = bigger chance for revenue. We also want the ability to use consistent tools, frameworks and code that will run on numerous devices and operating systems. MIX really delivered on that promise. As of right now I can write an application using Silverlight that runs on Windows, Mac, in a browser (Firefox, IE, and Chrome) and Windows Phone 7 series. Not only that but the tooling lets me work like a designer creating my assets in Adobe Creative Suite (including FXG) and importing them into Expression Studio when its time to add interaction. And, if I need to scale my mobile-web-desktop application I can simply move my data into Windows Azure and take advantage of all the power the cloud has to offer.
We’ve all checked out the betas and release candidate. The April 12th global launch is just around the corner. So what could Microsoft announce that could possibly more exciting for developers?
How about Free?
The Best Code Editor in the world is available free for use. What are you waiting for?
I’ve spoken a lot on Silverilght 4 over the last couple of months so I won’t go into much detail here. Be sure to check out the official Silverlight 4 page for details.
The big announcements here were around two areas:
We announced 60% Silverlight adoption globally at MIX. That is from 0% market adoption in September of 2007 to 60% with Silverlight 3 today. But like any statistics the important thing to follow is the pattern. We were between 30-40% at PDC and now we are well over 50%. But, don’t just take my word for it – riastats.com
When you hit those kind of adoption numbers the conversation I have with people changed from “What is Silverlight?” to “My customers are asking for Silverlight how do I get started?”
Olympics, Monday Night Football, Netflix, and McDonalds. The list continues to grow – as the technology continues to innovate and be adopted. There is even a showcase available now online (with downloadable code) at http://uxkit.cloudapp.net/
The big surprise for a lot of folks I think was the Ebay Desktop Application built on Silverlight. You can check out the live demo starting at 15 minute mark during the Day 1 Keynote. There is also an interview with the team here.
What I liked most about this demo was how Dave Wolf, Vp of Strategy at Cynergy Systems. Dave walked through the entire design process of their initial meetings with E-Bay and how they had a designer sketch the interface right there with a tablet and Expression Blend 3 Sketchflow.
Dave had some really impressive numbers to share:
With most of the major Windows Phone 7 series announcements coming out before MIX10 the focus during the conference turned to the developer story.
Here is some of the information I found interesting:
“This isn’t Silverlight Lite. This isn’t Silverlight different. It IS Silverilght.” – ScottGu
Most importantly MIX10 delivered on real Windows Phone 7 series applications. Be sure to check out the Day 1 keynote starting at around 27:30 to see a slew of applications in action. What’s boggling is that these applications were all build in around 3 weeks by partners who had been given the same tools that are available today.
Above is an XNA created game that was shown running on Windows, XBOX 360 and Windows Phone 7. Major Nelson had logged into his XBOX Live account and as you can see above was able to unlock an XBOX Live achievement on his phone!
What had my heart pounding? Netflix streaming on Windows Phone 7! If you are a big Netflix streaming fan like me the ability to pull down movies on demand (its basically $9/mo for unlimited use of over 10,000 movies and TV shows) all in H264 was amazing news.
One of the other applications shown was Foursquare. Just like Twitter a lot of peoples first reaction to Foursquare is “What is that and why do I need it?” Foursquare was everywhere at MIX – and the more of your friends who are on it the greater value you get from it. Think of it as a geolocation aware friend tracker that awards badges based on achievements and also tips for specific locations. When I was at MIX I was able to pull up a bunch of information from others on where to get the best meals or deals.
The team took it one step further and released all of the source code on Codeplex for you to check out and learn from. Thanks guys!
Everything you need to get started can be found at http://developer.windowsphone.com. Best of all the tools are free – both VS2010 and Blend for Windows Phone 7 series will cost you nothing. There is also an emulator included in with the tools that will let you test and debug applications without having to connect an actual device.
Also be sure to check out the teams blog for the latest announcements and tips on how to get started.
At PDC09 last November, Steve Sinofsky told the audience that Microsoft was committed to making Internet Explorer 9 the BEST browsing experience on Windows. At MIX10 the team really delivered and I think the questions of why doesn’t Microsoft just use Webkit were largely answered.
Webkit works differently depending on the browser implementation. We see this everyday – Safari and Chrome render pages differently. So how do we as developers (and consumers) of the web make sure all pages are rendered the same in every browser and platform? Standards.
Microsoft is supporting HTML 5 in a major way. Just hop on over to the IE testing center and point it to any of your favorite HTML5 sites and see for yourself. If you don’t know any sites there are links from the IE page to the SunSpider results, ACID3 tests and various other HTML5 features you can test out.
The team also announced they are committed to 8 week release cycles during this testing phase. This means your feedback has never been more important. Innovation and new feature turnaround will be moving at a much faster pace.
The IE team had a really innovative approach to improving browsing experience on the web. They looked at the top 7000 sites on the internet (based on traffic) and looked at what were the most common API’s developer called on those sites. Yes – getElementByID() was up there! Rather than trying to create a browser that ran faster overall why not target how existing sites are coded today and make that faster?
Once that was done how do we take the browser to the next level? Seems obvious once you think about it and I wonder why it took so longer. Here we are well into 2010 and every browser on the market today only uses one cpu core and renders everything through software. In an age where even Netbooks have multiple core cpus and dedicated gpu graphic cards why are browsers still stuck in 1997?
The Day 2 Keynote featured numerous demos across IE9, Firefox and Chrome that showed off the difference a GPU accelerated rendering engine can make. You can run those same tests on your PC today over at the IE Test Page.
What kind of things? How about two HTML 5 HD video streams running on a Netbook without any frames being dropped. Seriously – watch the keynote.
If you have been to any of my recent Azure sessions you have probably heard me mention Dallas. I’ve had to consume external data numerous times in my career. Weather it was patent information, geo data, or census data the process was not an easy one. Dallas made a marketplace where you could both consume and sell your own data for developers to consume.
But what about when you need to expose that data with an API? Enter oData! oData is an open standard, released under the Apache license, that allows all platforms to consume data via Atom or JSON feeds.
You can consume these feeds via regular REST API’s over the web or .NET managed code. It doesn’t matter to oData. There will also be an update to SQL Azure that will allow you to take any of your SQL Azure databases and generate an API around it.
During the keynote a couple of different API’s were used to create an application very quickly. One of the more interesting to me was the Netflix oData Source. There is even a browser to generate Netflix queries using Silverilght over at http://kentbrewster.com/netflix-odata/.
oData is all about making data easier to find, consume, and distribute. Regardless of what technology background you hail from oData is something to be excited about.
MIX also gave an update on the well received Spark programs. These programs offer free Microsoft Software to Students, Startups and Web Professionals. This includes full versions of Visual Studio, Expression Studio, SQL Server and Windows Server.
The Philosophy? Why should you have to pay for the Microsoft stack when you don’t even have a revenue stream yet. It should be frictionless to get started on the platform. Spark attempts to solve the problem and MIX10 had a really good example of that.
If you’re a World of Warcraft (Wow) player like me (For the Alliance!) you have probably been to Curse Gaming to grab your latest mods. Michael Comperda from Curse had a pretty interesting story to tell about his experience in the Bizspark program.
Everyone who plays Wow dreads patch day. At worst it means the login servers will probably be down and you won’t be able to play. At best it means none of your mods will work and need updating. Michael talked about their previous implementation of Curse.com on the LAMP stack. During the patch 2.4-2.4.2 patch days they were struggling to maintain half a million downloads and with each new release found it harder to keep up.
With patch 3.01 they moved to a fully Microsoft Web Stack and are now able to sustain well over 1.5 million downloads during a new patch. Not only that they were able to run on 1/3 less hardware but still sustain 3 times the amount of traffic.
The .NET Community is huge. To give you an idea of just how many of us there are the East Coast Untied States (of which my team of nine services) has over 1.2 million .NET developers. That doesn’t even include SharePoint or IT Pros of which there are over 4 million. With a community that large there are numerous topics and industries that get included.
One of those areas that I think has been underserved until recently is interactive design. All of those great Flash and iPhone applications didn’t happen by chance they involved hours of refinement. Iterations of creating a design and throwing it away. Create another one and throw it away again with each approach bringing a different idea. I remember watching a video of one of the top iPhone applications a few years back that showed an elapsed time period of the UI. Buttons would be moved, gradients changed, all for the sake of creating an interface that just felt right.
It is not just about coding an API against a bunch of data services. It is about creating experiences that human beings consume and in a variety of ways (be that web, desktop or mobile). Sounds familiar eh? Like Three Screens and a Cloud? The more people I met the more I realized this was an area design agencies have covered for years. It is also an area some of our fellow developers in Flex and Flash hail from.
I started my career at Microsoft around the same time Silverlight 1 was in beta. I feel like I’ve grown up with it. For me Silverlight also ignited something inside of me – an eagerness for understanding design. I’m not alone either there are numerous .NET Developer who found Expression Studio brought more appeal than Visual Studio. The more I learned the more I appreciated the work of the giants who have come before me. In fact I spent a large portion of my time at MIX10 this year with folks who haven’t really touched .NET all that much. @TheFlashBum @adamflater @jefftapper @jesterxl, @Rhall, and @__Ted__ all brought perspectives I found refreshing and insightful. What is even more interesting is we have common routes. Almost all of them had touched Visual Basic or COM at some point.
So what changed? I really feel before Silverlight and Expression Studio we didn’t have the tools to create any real interactive design solutions. We have them now. But you know what? We still need to build up design skills. We’re developers after all. We’re not alone though – design agencies have had these skills for a while. The Flash folks learned them and so did Flex Developers too. We can learn a lot from each other.
I’d like everyone to check out two great posts about their take on MIX10 from Elad Elrom and Jesse Warden. I think you’ll be pleasantly surprised. These guys don’t dislike .NET Development. In fact – they think they have a lot they can learn from it. But in the Flash/Flex world a lot of solutions to common problems come from the community not Adobe itself. I think Adobe encourages this – the platform is stronger because of its community. In the .NET Community I think we all too often look to Microsoft to solve every problem and be our one stop code solution. On the Flash/Flex side you don’t start from the bare API. You start off from a framework, like Robotlegs. Life is easier because of the amazing work your peers have already done for you. I think we have that in the .NET Space with sites like Codeplex and we’re now seeing it start in the interactive design space. I’ve seen some amazing talent out here in the community and we have a huge opportunity to create our own frameworks, especially with innovations like Expression Blend Behaviors.
So my ask is if your passionate about this space then you should get involved. The first step to bridging that gap is researching online some of the frameworks that have been created. The next step is about getting them into a format we can use in the Silverlight and Windows Phone 7 space. Over the next couple months I’ll be doing my part to help this along with the first step being Developer Happy Hour this week.
Don’t forget about the basics of design either. Bill Buxton always does a great job of hitting on this in his keynotes.
Fortunately, there are a bunch of people at Microsoft too, like Arturo Toledo, who have created a way for you to learn without having to go back to school for a design degree.
Be sure to check out the new .toolbox site and get your learning on. Look me up too I’m on there as DaveDev.
From the Cheesesteaks of Philadelphia to the crab cakes of Maryland my fellow geeks Dani Diaz and G. Andrew Duthie are hitting the road and coming to you! If you have been curious about the latest releases of Developer and Designer tools from Microsoft but don’t know where to start these events are for you.
We’ll be covering eight different cities and will go from using the tools themselves to the patterns and practices people are using to be more productive. Instead of just throwing a bunch of slides and “Hello World” apps at you we are going to build a working application that will spam across the entire day. From where to get the bits, planning/designing your application, to building it and finally publishing it out these events will cover it all.
Here is how the day will pan out:
Creating Rich Internet Applications on the Microsoft Platform using Silverlight 3 and Expression Studio 3
You’re a Developer not a Designer. So how do you shine in this new world of Rich Internet Applications (RIA) while still leveraging your .NET skills? This 2 hour overview will get you up to speed on the latest Microsoft Silverlight, Expression Studio and Visual Studio has to offer. Go beyond hello world and get the latest tips and tricks to make your application shine. You’ll be surprised how easily you can create a working web application that is engaging to your users, and integrates with your existing web architecture.
Level: 200-300 | Length: 1:45
Building Composite Silverlight and WPF Applications using Prism and MVVM
When you have two UI technologies like WPF and Silverlight written in similar languages (XAML) but that run against different assemblies in different situations, it's not unreasonable to want to write a UI once and later be able to choose the best or both options with only a trivial amount of effort. This session will show you how to get the most out of your XAML-based applications and what architectural decisions can help enable these options from the beginning of the development cycle.
Level: 200 | Length: 1:15
Introduction to .NET RIA Services
This session is an introduction on how Microsoft is simplifying the traditional n-tier application pattern by bringing together ASP.NET and Silverlight. Learn about patterns for working with data, implementing reusable and independently testable application logic, and application services that readily scale with growing requirements.
Level: 200 | Length: 0:30
Where to sign up?
Each event is from 1pm to 5pm and will also come after an early morning IT Professional session. So if you’re curious in learning more about Windows 7 and Server 2008 R2 you can come early and stay for the Developer goodness in the afternoon.
Hope to see you there!
I had a great time meeting everyone at PhillyNJ.Net. Lots of interest around Silverlight and Expression especially when it comes to Line of Business Applications. As promised you can now download my slides and code. The deck is a bunch of custom slides I put together that takes you from the ground up. Why should I care about UX as a Developer? What impact does it have on the Enterprise? What’s XAML? Why Expression Studio? Even more importantly it shows you some real examples you can start using today! You can grab that deck here.
The first area we covered was basic templating in Blend and created some custom controls. We also showed off some transforms and animation such as the new perspective 3d transform in Silverlight 3. You can grab the project here.
Databinding is one of the hardest concepts to get your head around. XAML Markup just seems to throw off a lot of people. One of the new features in Blend 3 is the ability to create design time data and then bind your controls to it when running your application. This becomes extremely useful for not only designers but developers as well. It is often we find ourselves with a database but no services wrapped up to it yet to bring that data into our presentation tier.
Blend 3 will allow you to simulate what the collections will look like (remember you can bind to almost anything in XAML as long as you implement IEnumerable or its child IList). Not only will Blend generate the XAML Markup for you it will also allow you to drag other elements from the same collection onto your artboard and wire them up. The example I showed was binding a datagrid (seems this is the very first thing we want to do as a Developer) to the generated collection and then have a Listbox that would show the selected item as we enumerated through the grid.
Sounds complex? It’s really not and once you look at the generated XAML you begin to see the power of it. Blend simply told the Grid I had a static resource collection and set it to the DataContext for me. It then took each item in the collection and bound it to the appropriate elements. You can even edit the generated layout like you would with any other control. You can grab that project here.
Don’t forget I’ll be hitting the road in a few weeks and bringing these sessions into your own backyard. Be sure to check out the Mid Atlantic MSDN Roadshow for more details.
All slides and code here is licensed under a Creative Commons Attribution license.
Whether you are someone who leans more towards design or coding you have probably come across the need for some interesting fonts. Typography is a fascinating area with a long history dating back to the origins of print. When we look at creating an engaging user experience today we are often trying to make a connection with our audience. We “empathize” with our users needs and look to invoke certain feelings. Fonts can do that in amazing ways and its pretty easy to add them to your own applications.
The Microsoft Professional Developers Conference (PDC) site has a great art section where you can download wallpapers, blog bling and the font that they used. Maybe its because I’m such a video gamer but the font really connected with me and brought back memories of playing Wipeout and Star Trek.
I keep a local folder in my documents directory of all the fonts I have found intriguing. Most of these go into my applications or demos I do for that extra sparkle. You can keep them anywhere you would like however I just find this method the easiest to use. That way I can zip up all my fonts if I need to use them on a different machine.
Adding a font to Windows is as easy as double clicking on the filename. The Font Manager window will them pop up (Windows 7 is pictured) and you will be given some typography information as well as samples of the font at different sizes. Just click the install button and windows will register the font for use.
This means ALL windows programs will now have access to that font such as Microsoft Word. Keep in mind that custom fonts are not required to include both uppercase and lowercase. The PDC09 font (it’s official name is Squared) only includes lowercase for example. So don’t scratch your head when word tries to capitalize at the beginning of a sentence and you see invisible letters.
Now that we have made sure the font installed correctly it is time to add it to a Silverlight Application. In this example I am opening up Expression Blend 3, adding a simple gradient to the default grid layout and creating a TextBlock control. I then selected the newly installed squared font from the textbox text properties and added some colors I thought to be pleasing.
Keep in mind one of the amazing things about Blend is we are seeing in real time what our application looks like. This means for Silverlight the artboard is being rendered in Silverlight. While we are in design time it understands the selected fonts and displays them correctly. However if we run the application you will notice something happens.
This is where a lot of people get tripped up. The application compiled, the browser opened up and it looks nothing like what it did in my Blend design surface. So what is up?
It is important to remember one of the core design principles of Silverlight is a small download size. Every time you add a resource such as an image, a font, or a video the initial the size of your application will increase.
Luckily, Silverlight is really smart about this. It gives you the choice of not only which Fonts you wish to include in your application but also which parts of those fonts (Uppercase, Lowercase, etc.) giving you even more control over the size of your downloads. To bring up this menu simply click on the Font Manager button in the TextBlock text properties. As mentioned above the squared font doesn’t use any uppercase which is why you will see the “S” missing. Blend tries to capitalize the first letter of all the fonts being listed.
You can see both the Font Manager button and the Embed checkbox (I circled it in red) in the artboard screenshot above. Keep in mind you do not have to select which pieces of the font to use Blend will automatically include all subsets of that font for you. It is only necessary to check off the Embed checkbox for the font to be included in your application.
Once you click the checkbox two things will happen. A new Fonts directory will be created in your application and the selected Font source file will be copied into it for you.
Blend will then modify the XAML source for your TextBlock to point to the newly installed Font resources in your project.
We are now ready to show off our finished product. Running the application will now show a correctly displaying TextBlock with the selected square font. Amazing how much of a difference fonts can make even on a plain piece of text.
This is a trick you can use in all of your applications moving forward whether it is WPF or Silverlight based Blend and Fonts have got your back.
Want more information like this? The Microsoft Professional Developers Conference is coming up in less than 3 months!
If you register by September 15th you can also save $500 bringing the cost of a ticket down to only $1,595. Be sure to check out the PDC site here for more details.