One of the most interesting new feature in Silverlight 4 is the COM interoperability functionality. This enables developers to access other components on the users machine (if the user allows the application to have elevated permissions).
There is a few examples out from Microsoft on how developers can access Microsoft Excel through it’s COM interfaces and pass data between the Silverlight application and Excel (and the other way around). This is quite cool but I wanted to develop my own COM classes and hook them up with a Silverlight mapping application.
So what I have done here is to build a mapping application with ESRI ArcGIS Server where the user can access data from ArcSDE (and also update the data). This can obviously be done by webservices (or the WebADF) today but in this example this is all happening on the clientside which is quite cool! This is just an example but the interesting thing now is that it is now possible to access ArcObjects (and other COM objects) on a users machine from a web (OOB) application!
It might also be possible to stream down a COM dll from the server in a trusted application, register it on the client machine and then access it from Silverlight. I haven't tested this yet but I heard people mention it at the PDC. That would make it really simple to deploy your own COM classes and then do more stuff on the client machines!
Anyway, here is a video on how to integrate ArcSDE with your Silverlight application:
I have a lot of ideas on how this can be useful to existing ArcGIS users (both desktop and server). You could potentially build COM classes with the ArcObjects functionality you want to use on the client side and have that streamed down and registered (and license with an Engine license perhaps?) on the client machine.
There is also other libraries that would be useful to get access to from a web mapping application.
These Out-Of-Browser applications (with elevated permissions) can be centrally managed through Group Policies (in Active Directory) which will make it very easy for IT admins to manage these applications within a Enterprise.
Links
Tim Heuer - Silverlight 4 Beta – A guide to the new features
Tim Heuer - COM Object Access in Trusted Applications (video)
The ArcGIS API for Microsoft Silverlight™/WPF™
c331b126-7686-4f0c-9bd9-fc128d777451|1|5.0
So one of the new features in Silverlight 4 is that you can make controls ‘dropable’ which means that you can drag files from the local machine and drop them on controls in Silverlight and access these files. This can be handy in a mapping application if for example a user wants to add data in to the application and view it on the map. I just quickly created a simple video that demonstrate this:
Links:
Tim Heuer - Silverlight 4 Beta – A guide to the new features
Jesse Liberty - Using Silverlight As Drop Targets
16950724-fe49-46e3-a7af-4358e987197a|0|.0
So Microsoft released the first beta version of Silverlight 4 at the PDC earlier this week. I am very impressed with the release frequency from the MS Silverlight team and they also seem to add the stuff that we developers are asking for! Good job! If Microsoft continues to develop Silverlight with this speed and with the same good quality then I am thinking about becoming a fulltime Silverlight mapping developer :)
There are a lot of new stuff coming in Silverlight 4 and here are some of them (my favourites):
- Comprehensive printing support – FINALLY! I expect a good client side printing solution in ESRI-s Silverlight API next year!
- The CLR now enables the same compiled code to be run on the desktop and Silverlight without change – yes!
- Enhanced databinding support – again..
- MEF supports building large composite applications - nice
- Webcam and microphone to allow sharing of video and audio for instance for chat or customer service applications
- Bring data in to your application with features such as copy and paste or drag and drop – this could be useful in mapping applications – add data!
- Support for Google’s Chrome browser – This is good! No more annoying scrolling issues..
- Performance – Starts quicker and run 200% faster than the equivalent Silverlight 3 application
- Multi-touch support – I need a new multitouch laptop!
- Provide support for ‘toast’ notification windows – eg. Outlooks popups
- Read and write files to the user’s MyDocuments, MyMusic, MyPictures and MyVideos folder (or equivalent for non-windows platforms) for example storage of media files and taking local copies of reports
- Run other desktop programs such as Office, for example requesting Outlook to send an email, send a report to Word or data to Excel
- COM automation enables access to devices and other system capabilities by calling into application components; for instance to access a USB security card reader – Major one!
Ok, so there are a lot of new good features in Silverlight 4 and a lot of them can be useful for mapping applications. The one that strike me as the most interesting is the last one. Silverlight is now starting to erase the clear border from a desktop application and a web application. With this new functionality you can call COM objects on the client computer to do specific things. There is obviously a security model in place to minimize the risk for a hacker to abuse this functionality.
I have seen a good example (see link below) on how Skype and Silverlight now can be integrated through this functionality.
So what does this mean for our mapping applications written using the ESRI Silverlight API? Well, I guess it will be possible to access client side ArcObjects from Silverlight? I guess it will be possible to write own client side libraries that we then can easily install on the client side and access from Silverlight? We can also access other libraries that are usually installed on machines – any of them that we can use to create new functionality?
So the big question now is to think about all the good stuff that we now can enable in our mapping applications using this new COM functionality!
It will be very interesting to see what ESRI will do with the Silverlight API for ArcGIS Server in Silverlight 4. I can see a number of features that now can be added in to their API that enables the new good functionality in SL4. I guess we will find out at the developer summit 2010..
Silverlight 4 will be released Q2 2010..
Links:
Microsoft Silverlight 4 – whats new and how to get started
Shawn Wildermuths blog
Tim Heuer
Silverlight 4 and Skype
18779995-3e77-4388-9d6d-b11d36767aed|0|.0