Rants Tagged with “Silverlight 2”
To all you New York/New Jersey area Silverlight'ers, I will be in New York twice in the next few weeks:
If you are into Silverlight, this is an opportunity for some good information on Silverlight 2 in your area!
Microsoft launched Project Rosetta today. To quote the site:
Project Rosetta is a site dedicated to helping designers and developers build applications in Silverlight while taking advantage of skills they already know.
It seems like a laudable effort to try and find a place to help people (though the site seems to really be focused on Designers) create great Silverlight 2 applications. Of note, I particularly liked the From Flash to Silverlight article that is up on the site. Let me know what you think!
I've uploaded a new version of my code from my Silverlight 2/Data Services MSDN Article. I took the new Silverlight 2 Data Services client that was released and updated the code example. If you want to get the code, you can download it from my site here:
http://wildermuth.com/downloads/sl2_ds_example.zip
I've also changed and updated the examples (more elaborate versions of the article code) using it on the Silverlight Data site, including both the Entity Framework and the NHibernate examples. Let me know if find any bugs.
As the end of the year is creeping up on us, we are proud to announce our Winter/Spring schedule for the Silverlight Tour. If you are working on next year's training budgets, don't forget to include us now that we have next our Winter/Spring schedule set. Here are the new dates and cities:
- January 5-7th, 2009: Atlanta, GA
- January 19-21st, 2009: San Francisco, CA
- February 16-18th, 2009: Chicago, IL
- March 2-4th, 2009: Seattle, WA
- March 23-25th, 2009: Washington, DC
- April 6-8th, 2009; Denver, CO
- April 27-29th, 2009: Boston, MA
As always our partners also teach the class outside the United States including Latin America, Canada (in English & en French) and in Australia. We are also announcing a new partner soon to teach the class in the United Kingdom! We also offer the workshop as a private class to individual companies.
If you are interested in attending the class and your city is not listed, please feel free to contact us to recommend cities where we might find enough interest to hold the class.
Mike Flasko to the rescue! The ADO.NET Data Services Team has released an interim build of the ADO.NET Data Services Library to address .NET 3.5 SP1 incompatibilities. While this is just a stop-gap measure, its of great relief that I announce this news as my new MSDN Magazine article was broken because of the incompatibility.
Follow the link for all the information, warnings and download links. As Mike says, this is an interim build to address the incompatibility but that you shouldn't rely on it for production machines. The real build will come with Silverlight 2's release whenever that actually happens.
LOTS OF UPDATES: Read down to see more info.
I just installed the Google Chrome browser and to no one's surprise, it doesn't support Silverlight 2. Not sure why it doesn't work since it supports WebKit. What I find most interesting is that it thinks its rendering it. It may be Google's Plug-in/Process model that is breaking it.
To see what I mean, visit my http://www.silverlight-tour.com site. On that site, I test to see if the plugin can load and show a non-Silverlight version of the map when Silverlight isn't supported. When it is supported, I show the Silverlight app. When you follow the link you'll see that the Silverlight 2 app is taking space, just not loading. So the Silverlight.js script thinks its supported and tries to load it. Hopefully we'll hear more about this soon. Keep tuned and i'll let you know what I find out.
UPDATE: Google's Task Manager definitely shows that Silverlight 2 is loaded in a separate process, but interestingly the page with Silverlight is getting odd info in the Task Manager (e.g. no memory):

Another UPDATE:
Flash doesn't seem to work either:

After re-running the Flash installer it now works. Must have had a heads up to a fix that was required.
UPDATE: Instead of not working, Silverlight 2 its just sorta working. Sometimes yes, sometimes no.
As some of you may have seen, my new article in MSDN Magazine (and online) was recently published. Because we're in a bit of a no-mans-land with builds, the current article only works with .NET 3.5 SP1 Beta and Silverlight 2 Beta 2. This means if you're like most of the world and updated to the full release of .NET 3.5 SP1, some of the code in that article is not going to work for you. I hope to have a new drop of the code (and maybe the article too) once Silverlight 2 ships and is fully compatible with ADO.NET Data Services/Entity Framework that are in the full version of .NET 3.5 SP1. See my other article talking about the incompatibilities here:
My apologies to anyone who spent too much time trying to get the code in the article working. Such is the problem with beta software and hopefully we'll have a solution sooner rather than later.
My new article on creating Silverlight 2 applications that use ADO.NET Data Services is in the new issue of MSDN Magazine. In this article I show you how to create a ADO.NET Data Service as well as how to call that service using the Silverlight 2 Data Service Library.
What is cool about this approach is that you can issue LINQ queries on the client (in Silverlight 2) that will communicate with Data Services via the REST interface and execute queries and update data on the server. The substantial difference that you will have to get used to is the use of Asynchronous LINQ queries in Silverlight 2. Check out the article for all the details.
I am still working with Siebrand Dijkstra and his people at School Master, BV and they've opened my eyes to another interesting development.
In looking at their code, I convinced them that their interface might be better as an Abstract class that derives from UserControl for some user controls they are creating:
public abstract class OurUserControl : UserControl
{
// ...
}
All was well until we tried to get the XAML partial class to compile with their class. The problem revolved the problem that the partial class that the XAML file creates derives from UserControl, no matter what we did in our 1/2 of the partial class:
public partial class Page : OurUserControl
{
public Page()
{
InitializeComponent();
}
}
So I set out to see if there was a solution. In looking at the XAML editor in Visual Studio I noticed the x:Subclass property of the UserControl element:
<UserControl x:Class="Foo.Page"
x:Subclass="Foo.OurUserControl"
xmlns="..."
xmlns:x="...">
...
</UserControl>
This didn't work, the base class for the generated class (page.g.cs) was still UserControl. I tried to figure out another way when their developers decided to try and change the UserControl to the XAML instance of their class, adding their namespace to the XAML:
<my:OurUserControl x:Class="Foo.Page"
xmlns:my="clr-namespace:Foo"
xmlns="..."
xmlns:x="...">
...
</my:OurUserControl>
I was so sure that this wouldn't work that I dissuaded them from even trying, but they persisted. Oddly, it worked...even without the x:Subclass attribute. I am still a little surprised it worked. The only drawback is that Blend does not support it but expect that it will be fixed by release...at least I hope so.
Now I have to figure out what the heck x:Subclass is really for. Where's my Reflector?
UPDATE: The client doesn't mind that I mention them so I'll tell you that its the great people at SchoolMaster. Siebrand Dijkstra and his crew are doing some interesting things with Silverlight.
I love teaching the Silverlight Tour as pretty much every class I teach I learn something new. I get used to certain features of Blend that do what I need but because of some bugs, I have gotten too good at hand-editing my XAML. In my current class (a private class for a Dutch software company), one of their very bright engineers showed me this trick:
I was explaining how you can specify the rows/columns in the main grid by clicking on the top/left bars as seen below:

I was starting to explain that the nested grid must be edited by hand or by using the row/column editor when I hand raised in the back. He explained that if you double click on a container (or a ContentControl), it will switch to editing that container with the same functionality. He pointed out that the yellow outline indicates the current container focus:

Cool! That will make a lot of my editing much easier. I started playing around with the feature when I got back to the hotel and found out that it works with ContentControls too (Button, etc.):

This way I can draw directly inside a button. I always used some odd tricks to get this to work. I hope this is relatively new...I'd feel silly if its been there since v1.0.
Let the ridicule begin!