Snapshot of the Silverlight 4 Wish list
It’s only been about 9 months since Silverlight 2 was released in October 2008, we are nearing the release of Silverlight 3, and already the momentum is building for Silverlight 4. A thread recently has been started on the Silverlight forum to capture people’s wish list. You can read the full forum thread here and add on your own wishes.
I’m preparing to finish writing part of a chapter that talks about “The Road Ahead” for our soon to be released Silverlight 3 book so I had some help pulling together a summary of what people are asking for already as of today. The following is just a snapshot but thought you might find it interesting if you didn’t have time to read the long forum list – The top 10 or so on the list all had multiple people requesting those items.
| Printing support |
| Right-click context menus |
| Host HTML content |
| Better shaders |
| Better mouse support |
| Fix WriteableBitmap |
| Mic support |
| Better LocalMessage APIs |
| Better File IO Support |
| Full 3D w/GPU acceleration |
| WebCam support |
| Concurrent release on Linux |
| Audio streaming |
| Chrome in OOB applications |
| Deep linking/Navigation in OOB apps |
| Reconsider OOB model |
| Export UI as bitmap |
| Complete source code for controls |
| Better Unit Testing |
| Text right to left |
| Mobile support |
| Better tables (merge columns and such) |
| Copy text from a textblock |
| Make TCP/IP compatible w/Flash |
| SQL reports |
| Expose PixelShader.SetStreamSource() |
| Improve rendering performance |
| Tweening/morphing support |
| Intellisense in XAML for Blend |
| Animated images |
| Pop-up Silverlight windows |
| Faster Silverlight windowless mode |
| Silverlight as ActiveX control |
| Better compression |
| Custom Open/Save file dialogs |
| Complete DX10 support |
| Silverlight apps directly installed OOB |
RIA Services Domain Data Source Invalid Property Errors
Silverlight 3 has made it a little easier to pin point these types of errors but it can still be complex at times. One of those times is when the invalid property is on the DomainContext of your .NET RIA Services DomainDataSource control. You might see it getting this type of AG_E_PARSER_BAD_PROPERTY_VALUE exception.
If taking the line number to the XAML file along with the position indicates it’s the DomainContext property that’s where it gets interesting. I’ve been caught in this trap a few times as I scratch my head trying to figure out why it thinks DomainContext is invalid when I know for sure it is a valid property. Unfortunately, there’s not an inner exception that you can get more details from so you are kind of stuck! So how do you get more info?
The quickest way I have found is simply remove the DomainContext property and set it via the code behind with some quick temporary code. Then when you run the code in the debugger you will still get the exception but now will get a much clearer message typically than you got before. In this case I was simply looking for a method that wasn’t exposed so the fix was easy now that I found the problem!
First look at Bing.com
Today was the first day that Bing.com was open to the public. In case you didn’t hear Bing.com is the new brand for Microsoft’s search You can read the press release here. It will take a while to decide if it’s better than live.com was, or for that matter if it is any better than Google or Yahoo. My guess is that it will be better in some ways and still lacking in some. But clearly they have been thinking through more about how the user uses search.
One quick search comparison that I think quickly highlight how they are going after the “Organized Search Experience” and the “Simplified Tasks and insight” as they put it. First, I tried searching on my camera – Nikon D200 and here’s what I got for results from Google
That same search on Bing.com produced the following results
You can see on the left, a list of tasks or actions I can take. So if I click on Lenses it takes me to search results for Lenses.
Bing.com is clearly a work in progress as some things still say Live or Virtual Earth but rebranding takes time. I also hope that more work is done on the display of search results to use more of my display. Currently Google, Bing and Yahoo all only utilize half of my wide screen monitors which is pretty crazy. Maybe they could all spend some time on new layouts of results for wide screens!
Virtual Earth was also rebranded Bing Maps for Enterprise – more details on that here. I’m still a little skeptical on that rebranding, but I will try to keep an open mind! I can understand the consumer part of that being rebranded because it was already confusing being called Live Search Maps, but Virtual Earth had enterprise name recognition.
So go try Bing.com and let me know what you think of it! I think it’s interesting to watch as the search game evolves – I still think there’s room for a lot more innovation that Google, Yahoo and Microsoft just don’t know what it is yet. It will probably be some small startup that will have the magic invention!
Visual Studio 2010 / .NET 4 Training Kit May Preview
Along with the release of the Visual Studio 2010 Beta there is now an updated training kit. You can download the updated training kit here.
The training kit is has presentations, labs and demos for the following topics
- C# 4.0
- Visual Basic 10
- F#
- Parallel Extensions
- Windows Communication Foundation
- Windows Workflow
- Windows Presentation Foundation
- ASP.NET 4
- Entity Framework
- ADO.NET Data Services
- Managed Extensibility Framework
- Visual Studio Team System
The training kit is a good way to get to know some of the new features of .NET 4 and Visual Studio 2010.
Update .NET RIA Services Domain Service from Model
You might start looking for this option if your working with .NET RIA Services and make a change to your underlying data model and want to reflect it in your .NET RIA Services Domain Service. This option doesn’t exist but you can accommodate for it not being there with a slight work around.
Using my example, I just added a table X to my database. I then went to my Entity Framework model and did a “Update Module From Database” and selected my new table to add it to the model. At this point the most important thing to do before worrying about .NET RIA Services is to save and build your project. If you fail to do this its likely that when the .NET RIA Services wizard runs it won’t see the change yet.
Next, assuming we already have a Domain Service created let’s call it “MyDomainService" for our example. You can’t simply right click and say “Update Domain Service and have it see the new Table X we just added. So the simplest way right now to handle that is to create a new temporary domain service – let’s call it “MyDomainServiceTemp”. When you see the selection of entities select only the new Table X you just added. If you are allowing edit make that selection as well as indicate if you want metadata. The wizard will now generate the files for the new temporary domain service. Once the code generation is completed, open up the new domain service and copy the methods from the temp file to your real MyDomainServicve file. You will need to do the same thing for the Metadata file that was generated. Once you have copied the code from both files, delete the temporary domain service files from your project and build. At this point you now have added the new Table X to your domain service.
Adding columns is easier, really the only thing you have to deal with if you add a column is to add it to the metadata buddy class.
I’ve already passed along my 2 cents that this should be a right click update model type experience, however, you too should post on the forums that you want it added as well!
Suppressing ValidationException During Debugging
Validation for Silverlight .NET RIA Services throws a ValidationException if during validation it detects invalid data.
When your debugging this can cause your debugger to break on the property setter each time a validation error occurs.
After 5 or 6 times of getting that exception and having to switch over and continue will drive you crazy. Yes, Microsoft is aware that throwing an exception for validation isn’t the best plan, but currently that’s the only option for Silverlight.
You can turn off breaking on this unhandled exception by adding the type to the list of exceptions and unchecking breaking on user-unhandled exceptions of that type.
Go to the Debug – > Exceptions menu item and click the Add… button on the right side In the Type select “Common Language Runtime Exceptions” and input System.ComponentModel.DataAnnotations.ValidationException in the Name field.
After you click OK – you should now see it show up in the list as you do below.
Uncheck the far right check box “User-Unhandled” and it should look like the following
Now simply click “OK” to save the change and go back to your debugging without the interruptions!
Windows 7 RC Just Around the Corner
There have been rumors floating around for a while, but today Microsoft confirmed via the Windows 7 blog that Windows 7 RC is on track for April 30th download on MSDN and public downloads on May 5th.
You can start reading now about some of the changes since the beta here and here.
There’s also a good blog post here on the end to end security changes. One highlight I saw was the right click enable of Bitlocker on a disk volume.
Another good one is on mobile security here – it talks about how in Windows 7 you will be able to have multiple active firewall policies. The DirectAccess sounds real interesting I will have to add that to my list of things to research. DirectAccess basically sounds like it deals with the need to jump on / off VPN to get to server resources like a SharePoint stored file. BitLocker To Go (sounds like take out food!) is for removable USB drives – I’m hoping this will make it easier to protect the contents without driving me crazy!
Windows 7 will be able to Burn ISO Images Natively which will be nice (details here). I didn’t see though what everyone wants ability to simply mount an ISO – let’s just hope I missed it and it will be a surprise!
I’m really looking forward to the RC, I’ve been running Windows 7 Beta since it came out on a desktop machine and my X61 tablet. In reality the desktop was a better experience, but with the tablet the main issue was with the suspend and issues after it wakes up. So like all things if you just don’t sleep you won’t have problems! I chalk that all up to the drivers and hopefully now as we hit RC with this drop of Windows 7 things should be smooth on both computers.
So go put a note on your calendars to check MSDN on the 30th!