Silverlight 4 – whats new..

By Erik Nyberg at November 21, 2009 08:11
Filed Under: ArcGIS, Silverlight

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

My first attempt with Google Wave and ArcGIS Server

By Erik Nyberg at November 06, 2009 10:30
Filed Under: ArcGIS, Google Wave

image

So I (finally) got my sandbox account for Google Wave a few days ago and I have now started to play around with the APIs. There are a lot of new concepts to learn when building applications for Google Wave and I have just started so I still have a lot to learn. The first example I did was very basic and that was to write a simple gadget for Wave containing a ArcGIS Server map using the ESRI JavaScript API. This gadget can be included in a wave and will display a map:

image

This is the simple workflow to build your own ArcGIS Server Map within a Google Wave:

1. Just create a simple XML file that looks like this:

<?xml version="1.0" encoding="UTF-8" ?>
<Module>
  <ModulePrefs title="Hello Wave">
    <Require feature="wave" /> 
  </ModulePrefs>
  <Content type="html">
    <![CDATA[     
    <!-- ADD YOUR MAPPING LOGIC HERE -->
    ]]>
  </Content>
</Module>

So where my comment is (“add your mapping logic here”) you can just paste in your html code that contains the mapping functionality. In my example I just used some sample code from ESRIs Resource center: http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jssamples_start.htm

3. Host this XML file somewhere on the web so you get a public URL to the file

4. Then just create a new ‘Wave’ and click Debug->Extensions->Add Gadget so this popup opens:

image

5. Just type in your URL to the XML file and hit “Add by XML”. The map has now been added to your wave and you can use the functionality within Wave (in this case just map navigation). This is all you have to do!

6. You can also add the gadget to your Wave using “Add Gadget by URL” (the green button below) if you don't want to run it in debug mode:

image

This is obviously a very basic example but the Google Wave APIs are very interesting and I have a lot of ideas on how to integrate Google Wave and GIS using ArcGIS Server. I hope I get some time soon to blog about more advanced things you can do when combining ArcGIS Server and Google Wave..

Here are some useful links regarding Google Wave:

Google Wave on Wikipedia http://en.wikipedia.org/wiki/Google_Wave
Google Wave homepage http://wave.google.com
Google Wave API http://code.google.com/apis/wave/guide.html
Google Wave Developer Blog http://googlewavedev.blogspot.com/
How to build gadgets http://code.google.com/apis/wave/extensions/gadgets/guide.html
Intro (only ~2 min) YouTube video http://www.youtube.com/watch?v=rDu2A3WzQpo
Blogpost - “A complete guide” http://mashable.com/2009/05/28/google-wave-guide/
Google Wave Developer Preview at Google I/O 2009 http://www.youtube.com/watch?v=v_UyVmITiYQ&feature=related

ESRI MapIt – 60-day trial period.. not?

By Erik Nyberg at September 22, 2009 05:06
Filed Under:

My trial period for MapIt expired like I was expecting it to do after 60 days. But when I tried to reinstall it on my Windows 7 machine it actually worked! So now it looks like I have got another 60 day trial on the same machine..
Bug or a nice friendly approach from ESRI?? Either way it would be nice if ESRI could drop the time limitation since they already have limited functionality during the evaluation:
-The Spatial Data Assistant only imports 100 records from a shapefile into SQL Server or only geocodes 100 records in a SQL Server table. 
-The Spatial Data Service only returns 100 records for a single query.

 

I have also contacted ESRI to see if I can get a MapIt license as part of my EDN subscription. My guess is no, but waiting for a reply..

 

SDASplash

ESRI Web Mapping APIs – Samples and Live User Sites

By Erik Nyberg at September 19, 2009 16:44
Filed Under:

Here is a good ESRI page if you are working with any of the ArcGIS Server APIs and want to get some ideas, inspiration or possible solutions.

Url: http://www.esri.com/software/mapping_for_everyone/api/index.html

image

There is first of all one getting started page that helps you get started with the APIs.

You will also find a Sample Gallery divided in 3 categories: JavaScript, Flex and Silverlight.

samplegallery

There are also some references to online data that you can use in your applications:

maplayers

You will also find live user sites and you can submit your own site if you would like publicity:

usersites

Introduction to "ArcGIS API for Micrsoft Silverlight/WPF"

By Erik Nyberg at September 13, 2009 12:02
Filed Under:

The first version (1.0) of the ArcGIS API for Microsoft Silverlight/WPF was released by ESRI in July 2009 after a few public beta versions earlier this year. 

I first downloaded and played around with the first beta version at a hotel in Las Vegas a couple of days before the ESRI Developer Summit in Palm Springs in March. It was really simple to get started with the new API, especially since I had worked with Silverlight previously. 

During the developer summit it was a lot of sessions and a lot of fuzz about the new API and I must say that I think ESRI done a really good job with this API. They have made it really easy to use which is good (unlike the WebADF). They have also sorted out the bugs found during the beta process so the released first version is very stable and work very well. There are however a few important things missing still but that has more to do what the ESRI REST API exposing rather than the Silverlight API. Most of the things I am missing will hopefully be implemented in ArcGIS Server 9.4 so let me come back with that list after the 9.4 release. One major thing that is missed however in Silverlight (not just the ESRI API) is good printing capabilities and I was a bit surprised that Microsoft didn’t include this in Silverlight 3. I have been told that it will be included in the next version of Silverlight (4) which is good. There are however workarounds for printing right now (like using the WriteableBitmap API) but I think there should be an easier way of doing this.

So getting started with Silverlight and the ArcGIS API for Silverlight/WPF is very easy like I mentioned before. ESRI have done a good job helping developers getting started. I have listed a few software below that might be useful when you get started with Silveright and the ESRI API.

Software requirements 

You need to have at least these three key components downloaded and installed on your computer in order to build map applications with the API:

  1. Visual Studio 2008 sp1 or
    Visual Web Developer Express sp1.
    -The latter one is free and can be downloaded here.
  2. Silverlight Tools for Visual Studio (or VWD)
    -This installs all you need to get started with Silverlight on your machine such as the Silverlight runtime, the Silverlight SDK, Tools and templates for VS etc.
  3. ESRI ArcGIS Server Silverlight/WPF API         
    -This is the actual API from ESRI and it is just a ZIP file that you can extract wherever you want on your machine. It contains the dll'a you need to reference from your Visual Studio project. You must log in with your global ESRI user in order to download the API.

 

 

Once you have installed the three components above you are ready to build your mapping applications with Silverlight and the ESRI API. You could in theory use other applications instead of VS2008 or VWD but I can't see why you would want to do that..
There are additional tools that you probably will find really useful when designing and writing your Silverlight applications:

ESRI ArcGIS Silverlight Toolkit
-Includes source code and libraries for the ESRI ArcGIS Silverlight Toolkit SDK.

ESRI Silverlight API Contrib
-A codeplex project that adds additional functionality to the ESRI Silverlight API. It has been created by: http://viswaug.wordpress.com/

Expression Blend
-This is the design tool for Silverlight and WPF. You can download a free trial version of it but after it expires you need to pay for it (around 600 dollars for Expression Studio)

Sketchflow
-Sketchflow is a tool that allow you to sketch your applications before you start writing them. Once you have come up with an workflow of the application the sketch can easily be transformed to code.

Silverlight Toolkit 
-This is a codeplex project with a bunch of controls for Silverlight. It includes all the source code so that you can go through and take a look on how they written the tools.

Deep Zoomer Composer 
-This is a tool that allows you to prepare your images for use with the Deep Zoom feature in Silverlight 3.

.NET RIA Services
-Enables you to work with .NET RIA Services which is an excellent way of bringing together Asp.NET and Silverlight.

Fiddler
-Fiddler is an excellent tool to see what is going on between your client and the server. It helps you troubleshoot issues that might come up when working with Silverlight.

 

Build your first application
ESRI have created a really good video that explain how to get started with the Silverlight API: http://resources.esri.com/help/9.3/arcgisserver/apis/silverlight/help/index.html (under getting started)

It explains how to get started and how to build your first application with the API. Once you have done that you can then start to play around with the API and look at all the good samples from the ESRI websites which will teach you how to do most basic things you want to do such as adding different types of data, create tools, overview maps etc. This is a great first place to look at and get to know how to build your application using the API.
If you do have questions along the way or want to have something explained you can post your questions on ESRI’s Silverlight forum where people are very helpful. You can also find interesting samples in the code gallery which might be useful to look at.

This just show you have to get started with the Silverlight applications but the workflow is almost the same if you want to build a Windows Desktop WPF application instead. Y
ou can work with the API both in Silverlight 2 or Silverlight 3 but I recommend you to work with Silverlight 3 if possible.

About me..

My name is Erik Nyberg and I work as a GIS software developer in London UK.

Twitter: eriknybergNET
Email: erik[at]eriknyberg.net
LinkedIn

 

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.

 

 

Page List