Transcript

00:01Alright, so good afternoon. My name is Nikki Golding, and this is my colleague Jo Fraley…

00:05…and we're going to talk to you guys about the ArcGIS Viewer for Silverlight and the ArcGIS API for Silverlight and WPF.

00:14So we split it into two pieces. I'll be covering the ArcGIS Viewer for Silverlight first.

00:19So for that section, we'll sort of set some ground rules to make sure that we're all on the same page.

00:25So before we talk about the viewer itself, talk about how to compose a map, what a web map is.

00:32We'll talk about where you can download and gain access to the ArcGIS Viewer for Silverlight.

00:39Talk a little bit about how you can extend the viewer if the need arises, and then I'll hand it off to Jo for her piece.

00:48So this falls under the category of just laying some ground rules to make sure that we're all on the same page.

00:54When you create your web applications, there are sort of two main pieces to the web app itself.

01:01The first is the basemap. And the basemap is what sort of sets the context for the entire application.

01:08And that basemap can be an Esri online basemap, or it can be a basemap that you guys create yourselves. And then…

01:17…on top of that, you'll layer your operational layers. So that's the content that your users are updating or the content that's…

01:25…being read in from an RSS feed or whatever the case may be, but the point is that it's dynamic information that can change.

01:35And those two bits, when they come together, are what actually make the web map or the web application.

01:41So just to be sure that…I'm going to use those terms a little bit; I wanted to make sure that we're all on the same page.

01:48So ArcGIS Server is the back end technology behind the viewer for Silverlight.

01:56And ArcGIS Server can, of course, communicate using a series of different protocols.

02:02So just so you know, we'll talk mostly about Representational State Transfer, the REST services that you can use to ingest…

02:09…with the ArcGIS Viewer, though if the need arises, you have other standards, like OGC, that are supported…

02:15…if you needed to bring those into the application itself.

02:19So how many of you are familiar with the REST services directory for your ArcGIS server?

02:25Okay, so the services directory is just where you go to take a look at the services that are running on your local ArcGIS server.

02:34You can also take a look at REST endpoints for other servers, like ArcGIS Online or other organizations…

02:39…that have hosted ArcGIS services.

02:42There are different ways that you can interact with the data. Through the REST endpoints…

02:46…you can take a look at the services, you can determine what type the service is…Is it a map server? Is it a geoprocessing service?

02:54You can also take a look at, for the map services, you can take a look at the parameters about the web map…

03:00…or about the map services…so, what coordinate system is it in? What are the layers within the map?

03:06And you can also take a look at the map itself, using any one of the viewers. You can look at it in the JavaScript viewer…

03:12…or the ArcGIS.com viewer…so on and so forth.

03:17So building your web clients, you obviously have different choices that Esri provides to you.

03:23In this case, we have web mapping APIs, and those are a series of application programming interfaces…

03:29…that if you guys need to build custom applications, you can choose from the JavaScript API, the Flex API…

03:35…or the Silverlight API. So that is, you need to start from the ground up, you have a developer that's skilled…

03:41…in any one of those programming languages, and you can build an application.

03:48The second thing on the slide is talking about, ArcGIS Server Manager. So have any of you built…

03:53…web applications using ArcGIS Server Manager at 10 or before?

03:58Okay, so it's important to know that 10 is the last release where that application builder will be supported.

04:05So the road stops there, for that type of work flow. So the good thing, though, is that we have a couple of options for you guys…

04:11…moving forward, if you're accustomed to that wizard-driven application creation process.

04:18That's where the ArcGIS Viewer for Microsoft Silverlight comes in.

04:22You also have another viewer, which I won't go into detail about, but you can application builder for Flex as well…

04:27…if you have…Maybe you can't install the Silverlight plug-in, but you can use Flex…

04:32…there's an application builder for that as well, just as an FYI.

04:36The application, ArcGIS Viewer for Silverlight, was released in January. It actually was in beta for about a year…

04:44…before we released it, so it's stable, and you guys can actually download it directly from the Resource Center.

04:53So it's just like any other install that you guys are accustomed to running. It's a wizard-based process…

04:59…so you install the application builder, and it is what lays the foundation to enable you to build your web applications.

05:09And again, this is an option for people that don't have developers on staff or contractors that can write code.

05:16You can use the application builder to get up and running pretty quickly without writing any code at all.

05:26So there are two primary components to the ArcGIS Viewer for Silverlight. The first is the application builder…

05:33…and that is an actual application that you go into to build the end product for your user.

05:40So the in…What goes in are your basemaps and your operational layers and your tools…

05:44…and what comes out on the other end is an application that you can use right away.

05:50And there's also an extensibility kit, so if the need arises, and you have a set of functionality…

05:58…that your users are asking for that's not part of the builder, you can actually extend the builder using the extensibility kit…

06:08…and add add-ins to the viewer itself.

06:16So to download the ArcGIS Viewer for Silverlight, you grab it from the Resource Center; it's freely available today.

06:23Again, it was released in January. But this is the URL that you'll need to go to in order to download the viewer.

06:29I should also mention, just real quickly, that the slides are going to be made available to you guys…

06:33…so don't feel like you need to feverishly write down all of the information. So you'll be able to download them.

06:39And if we've used URLs or access to web app, the URLs will be exposed for you, so you'll have access to those as well.

06:48So to install the viewer for Microsoft Silverlight, again, it's a wizard-driven process.

06:54You'll see that there are some prerequisites that are…that the install will check for, so you'll just need to be aware of…

07:01…what you have installed on the web server where you'd like to lay the builder down…

07:06…and then ensure that you have those prereqs in place, otherwise you can't install it.

07:12The next thing to be aware of is, there are two virtual directories that are created on the web server where you install the builder.

07:21The first virtual directory is for the actual builder itself.

07:25So what's the URL that you'd like your users or yourselves to access so that you can work through the application builder process?

07:32The second is, What's the virtual directory where you want the applications to be deployed to?

07:38So in this case I think it's SL Builder for the first option, where the actual application builder will be running from…

07:45…the second one is an apps directory, where when you hit Deploy on the builder, the apps will be copied to.

07:54So when you install, as I mentioned, just reiterating what I was describing previously on the screen shot before…

08:02…just that you have two virtual directories that are created for the builder and the deployed applications.

08:12So working with the application builder. As you're laying the foundation for your application…

08:18…when I talked earlier I talked a little bit about basemaps, and so when you set the foundation…

08:22…you can start with a brand new map. So maybe you're inside a facility that can't reach out to the open Internet.

08:31You can configure the builder so that it points to your basemaps.

08:35Or maybe it's that you have an appliance that has some of the online services running for you.

08:41You connect to that appliance for your basemaps instead of going to ArcGIS Online or public, open Internet.

08:47The other thing that you can start with, in addition to public basemaps or your own basemaps, are web maps.

08:54And those web maps reside on ArcGIS Online, so you can connect to other people's content that's been created…

09:01…and use that as the premise for your application if you see fit.

09:06So in addition to the map and the basemaps, you'll configure each of those items…the data content…

09:16…the user interface of how you want the user interface to be designed…

09:20…and the capabilities that you include within the application.

09:23So is it a GP tool, is it a custom tool, or just additional tools that we provide as part of the application builder?

09:32So when you go through the builder process, it is a What You See Is What You Get, or WYSIWYG experience.

09:39And so what that means is, as you make modifications to the application, when you're moving through the process…

09:46…you can preview the changes as you're making them.

09:50So it's not that you go through this process of building the app, you deploy it…

09:54…and then somebody decides that they want a yellow font instead of blue.

09:58So you can take a look at it as you're developing the application on the fly.

10:02So the other thing to note is that there is a getting started panel…

10:08…and that panel will highlight if you're looking to add a basemap and you click the Show Me…

10:14…it will highlight the tool in the user interface to sort of guide you through the process of building the application.

10:21And as you gain a level of familiarity with the application…

10:24…you can disable the getting started panel so it's not prompting you or in your way.

10:34So this is just pointing out the fact that the application builder actually contains the web application.

10:39So what's highlighted in red on the slide is what your actual deployed app will look like.

10:46The remainder of the real estate on the slide is actually the builder itself…

10:51…where you'll interact primarily with those three panels at the top of the screen to build the application.

11:04And again, it's a What You See Is What You Get experience, so you can sort of edit what you're doing…

11:09…before you deploy the application, and you're able to preview the map content, the tools…

11:15…and the user interface, and the themes, and such.

11:24So this is the Map tab, and the Map tab is where you'll start the process.

11:30And within the Map tab, you have a series of different options available.

11:36You have the basemap selector, so you can choose from Esri online basemaps or your own basemaps…

11:43…you can browse to your own ArcGIS servers, so that's by providing the REST endpoints to your ArcGIS Server…

11:49…to connect to your services directly. You can search for content, and when you go to search for content…

11:55…you have the option to search online, ArcGIS Online. You can search the open Internet…

12:01…so if there are other REST endpoints that have been indexed by whatever search optimizer…

12:08…Google, I guess, in some cases. The search will actually find other REST endpoints that you can use…

12:14…and can also connect directly to GeoRSS feeds, so if you have a GeoRSS feed that's being updated…

12:22…it'll do the live updates using just the GeoRSS, once you provide the pointer to the XML.

12:30So in addition to just the things that I outlined, in addition to the browsing for services and browsing for data…

12:39…you also have the ability to configure the layers. So keep in mind as you're configuring the layers…

12:45…that nothing is being modified on the server side. All of that behavior is being controlled on the client.

12:52So as you're controlling the…changing the symbology, you're not doing anything to the service that anybody has authored…

12:59...you're changing just the rendering on the client in some cases.

13:02Or if you want to generate heat maps or cluster your content, it's all happening on the client side.

13:07So you're not doing anything that's going to affect in any way other applications that point to those services.

13:13So let me just show you an example of how you add and configure your map content.

13:26I don't have anything to…Yes. I can give it a whirl and see if it will stay, but…

13:41Okay. So this is the application builder, and you'll notice that my virtual directory is just my machine name slash builder…

13:56…that's the virtual directory that I chose. So to start the process, you start by creating a new application…

14:05…and then opening whatever basemap you choose. In my case I've just stuck with a topographic basemap.

14:13So if we wanted to choose a different map, we can use the basemap selector here…

14:17…or go back and search ArcGIS Online for other content.

14:22We can browse, and in this case we'll just add information from my local server.

14:30I'll just add some restoration sites that I have running. And you'll notice that there's some intelligence…

14:38…that's built into the application builder itself, and the application, in that this is a large amount of point data…

14:47….and so it clusters it for me by default. So there isn't anything that I need to do, but it's aggregating the data, so that…

14:55…you're not presenting more information than necessary at a particular scale.

15:00You can search for information…this is what I talked about a few minutes ago…so if you want to search based on geography…

15:08…if you want to search ArcGIS Online, we can take a look and see what else is out there for Tennessee…

15:15So we see there are other services that we can connect to if we wanted to and add them directly to the application.

15:23We have a GeoRSS, so I have a GeoRSS feed that…let me just grab the URL for that…

15:42So we can add the GeoRSS feed directly to the application here, and it's added directly to the map.

15:51And so that's just an overview of how you can add content using the map panel if there's…

15:58…Actually, one last thing I want to show you is layer configuration.

16:02So I had mentioned that you can take a look at and configure the layers.

16:07So let's say based on this, I don't like the symbology that whoever the service author created or established.

16:16I can change the symbology so that it's not just a pushpin. I can pick from any of these symbols…

16:23…I can change the size, I can change the shape or the color.

16:25So again, this is all happening on the client side, so we have full control over what we're presenting to our users…

16:30…through these web applications. So that's just a very quick overview of the Map tab.

16:44So the Tools tab. This is where you'll connect to or provide functionality for your users.

16:52So in the Tools tab you have the ability to add a tool, obviously.

16:58But when you add a tool, the tool points to preconfigured tools that Esri's provided for you out of the box.

17:06So that's not to say, Let's take every tool in the toolbox and push it onto the user interface to give them the kitchen sink, if you will.

17:14You have the ability to decide on what functionality you need to support and push it to the app.

17:21The next is…The red toolbox is where you go to add geoprocessing…

17:26…connections to geoprocessing services. So those are tools that you can develop using geoprocessing tools on Desktop.

17:34And when you publish them to ArcGIS Server, you can connect directly to the geoprocessing service.

17:39And so what's nice about that is that you have an option to create tools using GP without writing any code…

17:46…but the nice thing here is that when it connects to that geoprocessing service, the user interface is created for you…

17:52…so you don't have to write any code on the client side to be able to engage with that geoprocessing service.

17:58So it's another way to add additional capability that again does not require that you be a developer in order to do that.

18:06You can…When you go to manage the tools, that's where you decide where you want the tools to reside…

18:13…Do you want them to be on the main toolbar, do you want them to be on another place in the user interface?

18:20And then you can add behaviors. So let's say if somebody mouses over a point, you want to display the coordinates for that location…

18:27…so you can set up behaviors that will achieve that capability, again without writing any code.

18:35So this is just a listing, a functional list of the things that I just talked about. One thing I did forget to mention…

18:41….is that out of the box, the application builder supports editing. Do any of you guys have a need to support…

18:48…editing workflows in your web applications?

18:52Okay, so it'll connect to feature services and read the feature templates that you create…

18:59…and then you're able to provide that editing capability, either through a pop-up or as a tool on the user interface.

19:07So there's a lot of nice features and a lot of functionality that's built in.

19:10It's just up to you to decide how you want to organize it and present it to your users.

19:17So let me show you quickly how to do that.

19:27So here's the Tools menu. This is where you'll go in to browse to the capability that we're providing out of the box.

19:35And in some cases you'll find things like geoprocessing in multiple places.

19:39It's just a different avenue to get to that functionality.

19:43So you can see on the Layer category we have a handful of different types of things you can do with a layer.

19:51So let's take, for example, Configure. We want to add configuring the layer to the user interface.

19:58Now on this side, this is configuring the layer for the application itself.

20:02So if you want to provide that capability to your end users, you can include a layer configuration tool as part of your application.

20:10So you can give them control over the layer order, the symbology of the layer, the transparency of the layer…

20:17…so they don't need to come to you to make a change in how the service appears. They can do that themselves.

20:24So it's one less thing that you guys have to worry about.

20:28Then you can see in the map category, we have all the tools that you saw on the Map tab.

20:34So adding the GeoRSS, the basemap selector, the map contents, search, and then so on and so forth.

20:41So you can see it's a decent list of capabilities that you can add directly to the user interface.

20:47The next thing is the GP service. So again, you can connect to your GP services in the same way that I connected to my map service.

20:57I just provided the REST endpoint for my ArcGIS Server, and I can connect directly to those tools and add them to the user interface.

21:10And then this is where when you go into manage, this controls how you're presenting those capabilities to your users.

21:19So you can control what tools sit on what toolbar.

21:22If you want to sort of drive the user through a particular workflow, then you can organize them in a way where the tools…

21:28…appear left to right to sort of try to facilitate a process for them.

21:35And then you can configure different things, like the map contents or the editor configuration.

21:43So in my case, I've added a feature service to the application. So one, I can control if the users will have the ability to edit the features.

21:54So this is where we can either enable, disable, say edit whatever you want…

21:58…whatever the case may be, you can configure the different options here.

22:02So that's just an overview of the tools that you have available to you.

22:13The Layout tab, this is where you have control over the look and feel of the application.

22:20So you have a handful or more than a handful of different options to dictate how the user interface appears to your end users.

22:29So you can browse through those different themes or different layouts that we have and decide what makes sense to you…

22:37…or what would make sense to your users, which in most cases are two different things.

22:42And you can configure the themes; so the theme is, you know, What's the styling of the application--what's the font color…

22:48…what's the size--so you have full control over that stuff as well.

22:54And I'll just show you really quickly how to do that.

23:05So here's the Layout tab. You can change the logo--that's one thing I didn't mention--you can change the logo.

23:10Let's say that we have a very specific application, and we want to provide a globe as the logo.

23:19You can change the title for the app.

23:26If we have specific links that we want to give to people…

23:31…maybe you want to push them to an area where there's more information about research…

23:35…or there's more information about a facility--or whatever the case may be…

23:38…you can provide the links, and they'll appear up here instead of the Help, the forms, and the blog.

23:44It can be articles you need to do your job, or whatever the case may be.

23:50This is where you would go to set or change the layout, so here's what it would look like using the accordion theme or layout.

24:00This is the basic layout, this is what we refer to as the Glass layout, which is the default layout.

24:06And then here's just something different, called the Under Glow. So I'll go ahead and hit OK.

24:11And you'll notice that the user interface is updated for us.

24:14So now we've reoriented where the tools reside--they're no longer in the top rank, they're in the center…

24:19…we have a zoom slider over here on the left-hand side, so we can provide…we have that flexibility, or you guys have the flexibility…

24:27…to decide how you want items to appear.

24:31We can configure the themes, so again, this is where you control the colors of the text, the accent…

24:37…the banner, what the selection color will be. By default, it's cyan, so you can change it to something else…

24:47…if you want it to be yellow.

24:49So we've lots of different options across the board for creating your own style of application.

24:58So just to review, this is the application builder workflow. So you'll start with the URL to the application builder…

25:08…you'll select a map, or a web map, to set the base for your application, and then you'll configure the content…

25:17…so that is your operational data, your functionalities, that's your tools, and the look and feel for the app, and then you deploy it.

25:28So I mentioned earlier that you want to make sure that you guys know that this is a dynamic workflow…

25:35…so it's not that you build…you go through the process, you build the app, and you have to deploy it in order to see what it looks like…

25:41…you're actually, on the fly, as you're making changes, able to see what the live app will look like.

25:46And even once you deploy the web app, maybe it looked…needed to support a certain workflow on Monday, by Friday that's changed…

25:54…you just go into the application builder and edit the application and save it and it's…overwrites what's already on the web server…

26:04…so it's updated immediately, I guess my point is.

26:06The other thing that you can do is copy the site.

26:09So maybe once you've settled on the user interface and the style of the application and even the tools that you have…

26:17…you can copy that site and then just maybe change the data that's in the site…

26:22…so you don't have to go through the process of picking out the UI, changing the fonts, and making those selections again…

26:29…you just copy it, and it's done for you.

26:35So there are a couple of settings, just to make you aware of what the application builder that you can…

26:42…I mentioned earlier that you can connect to your own basemaps, 'cause in a lot of cases…

26:48…there are customers that can't reach out to the open Internet, so you can set up your own basemaps…

26:54…that will be presented to yourself as you're creating an application or even using the basemap selector to your users…

27:01…there are add-ins that you can create so if you want to extend the capability of the application, you can…you know, the developer…

27:08…they can write add-ins that you can then add to the builder.

27:13And again, once you familiarize yourself with the process of creating the applications…

27:18…you can disable the getting…or just deactivate the getting started window, so that you're not prompted…

27:24…every time you go in to create an app.

27:28And so this is the summary of sort of what we talked about. This is a WYSIWYG user interface, so it's flexible…

27:36…and you guys will be updated on the fly as you're making changes.

27:41And it's easy to deploy…there's a Deploy button, which I didn't actually show, but it's just a button on the user interface…

27:46…that you hit Deploy, and it's copied to your local web server. Yes?

27:55[Audience question] Once it's deployed, you're doing updates to it, you don't have to take the application down…

27:59…and stop the service at all…

28:00No.

28:01…to make your changes then?

28:02And then it gets overwritten, so there isn't anything that you guys need to do to facilitate that. You just go into the builder.

28:09Did everybody hear the question? So the question was, If you're making changes to a deployed web application…

28:16…Do you have to stop the web app, or is there anything that you need to do that will sort of unlock it so that you can make changes?

28:23And the answer is no. All you have to do is go into the builder, select the Edit button, make the changes that you want, and then save it.

28:31And when you save it, the changes are pushed to the configuration of the web app for you.

28:38So you're not going to inconvenience anybody. I think that's probably where you're going.

28:42You're not going to inconvenience anybody when you need to make modifications.

28:49So again, extending the viewer, we have an extensibility API that you guys can use if you have developers.

28:56Are any of you developers that…

28:59…In the room? A couple of you, okay. So there are options for you.

29:05So just in the interests of time, sorry, I don't…eat into Jo's presentation, I'll just blow through these last few slides.

29:13So the extensibility points, the things that you can connect to, to make changes to the application…

29:19…there are four sort of hooking points…and to the viewer that you guys can use as developers.

29:27And there are some requirements in order to do development, and they're listed here.

29:34You need to know that you have to have the Microsoft Silverlight 4 toolkit, which has bit me a couple times…

29:38…when I've tried to do custom stuff, so just know that you have to go to Microsoft and download the Silverlight 4 toolkit…

29:46…in order to do anything with the extensibility.

29:51And then I'm just going to turn it over to Jo, unless you guys have any questions about the viewer.

29:57Do you know if there's a fee in Silverlight for the download?

30:01No. The question was, Is there a fee for the Silverlight download? And the answer is no, it's freely available to anybody. Sir?

30:09[Inaudible audience question]

30:22Yes. Yes. So that is one of the prerequisites, so…

30:26[Inaudible audience question]

30:38Okay. Not that I'm…I mean, unless you can run…You want to take that?

30:55For organizations like yourself that you can't…you're not allowed to install software on your machine…

31:00…you would have to work with your IT department and it has to be deployed on a web server…

31:06…so there's no way to install it on your machine, because Nikki didn't really go through an installation…

31:15…but she said it's a checklist, basically, and so the software, when it's doing the install, will do a check…

31:20…and if it can't find a specific thing that she's listed as required, it will stop. So you won't be able to install it.

31:29And so that is a prerequisite, and for those organizations, you will have to work with your IT department.

31:35[Inaudible audience question]

31:43Correct. Somebody said it's part of 2008 R2, you just have to check it on to do it, but a lot of places…

31:50…we understand in the federal government, you don't even have the ability to go in and add that, so we know that's an issue, but…

31:58…you have to work with your IT department. We can't solve that problem, sorry.

32:03[Audio interruption]

33:58Okay. So I'm Jo Fraley. I'm going to cover the ArcGIS API for Silverlight and WPF.

34:03I'll mainly just talk about them as one and the same…they are two separate installs…

34:07…WPF is typically to build desktop applications…and Silverlight is for more web-based applications.

34:14If you have specific questions about WPF, we can take those, but I'm mainly going to talk about the API for Silverlight…

34:20…and what you can do with the API for Silverlight you can typically do with the WPF.

34:25So my agenda is very similar to what Nikki covered. We're going to talk about how you get started…

34:32…talk about some of the API highlights that just came out, some of the new things that you can do…

34:39Then we'll get into how you can build your first application. And then talk a little bit about building custom apps…

34:44…I'll just show you an example. And then we'll go into the API release schedule of where we are right now.

34:51So the ArcGIS API for Silverlight is a way to create those rich Internet applications.

34:57And so taking advantage of our online services, you can use your own ArcGIS server, you can use our own online services…

35:07…you can use Bing maps as your basemaps, or any other data that you have access to…

35:13…whether it's within your closed organization and access only…things contained within your network…

35:20…or if you have the ability to reach out, you can access any data or services that are out there.

35:27It's integrated very much with the Microsoft development environment, so if you're like me, I love IntelliSense, it's so.,..

35:34…using Microsoft's IDE, Visual Studio, it allows you to create these applications.

35:40So the tools that you'll need to get started.

35:43You need to have Microsoft Visual Studio 2010. You can use the express version...

35:51…if you don't have access to the full-blown version of Visual Studio.

35:55Just like Nikki said, you need the Silverlight 4 toolkit for Visual Studio 2010. And you don't have to have Expression Blend.

36:06Expression Blend is another IDE that Microsoft provides that helps make it easier to build your user interfaces.

36:15So for your WPF or for Silverlight applications, you can use Expression Blend to drag controls onto your canvas…

36:24…and begin to build that user interface or that UI. And so it takes a little bit of getting used to…

36:30…if you're a true developer, which…there was only a few developers in the audience, I think, so…

36:39…it's nice, because it comes more from a design perspective…someone who is good at graphic arts or Photoshop…

36:47…is probably going to find Expression Blend to be very simple, very…a familiar environment for them.

36:58So the libraries…there are several libraries, and depending on what you're trying to do…

37:03…you would make reference to these particular libraries.

37:05So to just do the mapping and getting to layers and graphics and geometry, you're going to make a reference to the client DLL.

37:14If you want to access web maps from ArcGIS Online, you're going to use that client web map DLL, et cetera.

37:21There's also, you'll want to know, there's a toolkit that we provide that's out on CodePlex.

37:26You can get to that toolkit at esrisilverlight.codeplex.com, and so this toolkit just provides you some controls…

37:36…for map interaction, so you don't have to build them yourself--you can use these that we provide. And the source code is out there.

37:46So let's see where you can get the API from. Take a look at some of the examples, the documentation.

37:54Any questions so far?

38:00Okay. So to get started, we want to go to the Resource Center, so we go to resources.arcgis.com…

38:06…and to get to any of the web APIs, we're going to click on Server down on the bottom left.

38:10And then the web APIs are listed under ArcGIS Server.

38:15So here we can get to either…if we're interested in JavaScript, Flex, or Silverlight…

38:22…so we're interested in Silverlight today, so we'll click on Silverlight. And this will take us to the help for Silverlight.

38:30And to be honest, when I'm doing development, I'm constantly looking at the resource page, the help pages…

38:35…to get ideas on how to do things and see how…good examples of…okay.

38:51Of how to do a query or call a geoprocessing service. Let's try that again.

39:05Have the software fail but not the link to…Here we go.

39:11So here's the Start page, and to access the API, you just need to simply download it.

39:17We ask you to log in, just so we can track who is downloading the APIs, so you just need to use your Global ID, and…

39:26…sign in using that. And you'll go through the install, it'll lay down the SDK on your system.

39:36One good thing to always do…The APIs are on a different release cycle than say, Desktop and Server…

39:45…and we can do this because they can add new functionality to the web APIs without it being tied to the Server software.

39:55So we're seeing that once every three to six months, they'll come out with a new release of the APIs…

40:01…and add additional content or additional functionality to the APIs.

40:06And then when we have a big release…like we're just…we're in prerelease right now with 10.1…we'll see…

40:12…each API will do a big release to take into account all the new functionality that you're going to get with ArcGIS Server.

40:18So we'll see a new version of the APIs come out around that time frame.

40:24So one thing good to do, whenever we do a new release, is go to the What's new page for that particular release, and that'll give you…

40:30…more information about what exactly was either fixed or added to this particular release of the API.

40:39Another thing are the samples. And I want to point out that there's the interactive SDK, which is what we're looking at right now…

40:47…there's also a symbol gallery that you have access to, and a lot of times you want to create really nice-looking symbols…

40:55…and this requires, in Silverlight, writing XAML, but we provide several symbols that are already created for you…

41:04…and you just click on the symbol, and you can see the XAML on the right-hand side…

41:09…of what you have to do to actually use that symbol and get it to draw on your map within your code.

41:15You can also download the resource directory and add those to your applications to take advantage of all these symbols.

41:23There's also some nice customized symbols that'll flip, or if you touch on them they expand…

41:31…so there's a lot of different rich Internet applications that, you know---spinning, turning, flashing…

41:39…that you're able to do with the Silverlight API.

41:42So this is a great way to go and find examples.

41:50So under the samples, under the What's new section, this is where we kind of cover…

41:56…for this particular release, what are the new samples that are out there.

42:00So, for instance, getting to a web map with the CSB. So you click on that sample, it'll open up that particular sample.

42:09And then you can see the XAML that it took to do that; you can also see the code behind for that particular example.

42:17So you can just copy and paste the code into your project, or you can just view how it's done.

42:23So we have the Copy to clipboard, and there's C#, if you're a C# programmer, or you can also get to the VB code.

42:31So it's a great way just to see how things are done, and play around with different options.

42:37So, for instance, the toolkit controls, this is that toolkit that I've talked about…

42:41…that you can download from CodePlex, and these are some samples of using that specific toolkit.

42:49Another area that you're going to want to visit quite a bit is the API reference. So if you're wondering how to use a particular class…

42:59…and what properties and methods are on that class, you would use the API reference to go in.

43:05So Nikki showed clustering earlier. Let's say you want to take clustering, the out-of-the box clustering that comes with it…

43:11…but then modify it. So this shows you how to use that clustering class and get to its methods and its events for that particular class.

43:20So this particular API reference is going to become your friend when you start doing development.

43:30There's also a code gallery. And this code gallery has grown over the past years that the Silverlight API has been around.

43:43And so what this is, is you, if you create some cool tool or button using the extent, like Nikki showed the extensibility framework…

43:52…for the Silverlight viewer. If you create some new tool, you can add it, or share it, through this code gallery, and other people…

44:01…can take advantage of it and utilize that. This is also a place you can come to see what other people have done…

44:07…download, see code examples, other than just what our development team puts together on the samples.

44:14So that's basically the…the Resource Center, the samples and documentation, and where you go to get that information.

44:24Let's talk about some of the API highlights. ArcGIS Online is something we've been utilizing, talking about a lot yesterday…

44:34…and you've probably been to other sessions today that talked about ArcGIS Online.

44:38And you can go to ArcGIS Online and create these nice, intelligent web maps that have nice, intelligent pop-ups.

44:45So the idea is that all the APIs--Silverlight, JavaScript, Flex--will take advantage of content you've authored on ArcGIS Online…

44:54…and shared. So instead of you having to do a lot of coding to create nice-looking pop-ups inside of Silverlight…

45:01…you can author a web map on ArcGIS Online, design your pop-ups within ArcGIS Online, and then just consume that web map…

45:09…in your Silverlight application. So instead of making individual references to maybe the five feature classes you have in that web map…

45:17…along with the basemap, you, instead of writing all that code, and fixing symbology, et cetera…

45:24…and generating the nice pop-ups, you just go to ArcGIS Online, create your web map, do your symbolization…

45:32…create your pop-ups, get the link to that web map, and just use that, so that would reduce your many lines of code…

45:39…in your Silverlight application to just one line of code, basically, to reference that web map.

45:46So being able to support those, and we now support those in all of the web APIs, including Silverlight.

45:53This was just recently added--the continuous pan, east or west across the dateline or the 180 line…

46:01…so by default, your maps don't pan across the dateline--it's just an attribute you set.

46:08It's supported in only WGS84 in web Mercator. So that's just a note.

46:13Web Mercator seems to be the most popular tiling scheme and spatial reference that we use…

46:20…because Bing and Google Maps all use that same one.

46:25But it works with your graphics, it works with features, and it works with editing as well, across the dateline.

46:34We introduced a new Info window control, which is a little bit different than a MapTip.

46:41Typically a MapTip is, you hover over a particular feature, and you'll get some information…

46:48…and you can control what that MapTip looks like. So either hovering or clicking on a point, you get that MapTip.

46:54But if I go hover on another point or another line, that MapTip will pop up for that particular feature.

47:01So it's kind of dynamic, and you only have one of those up at a time.

47:06An Info window, it can be displayed at any time. It doesn't have to be on a particular click of a feature or the hover…

47:13…and it can also work with the map interaction, so if you do want it to show up on a click or a hover, you can do that.

47:21But the nice thing about these, there are some times when you want to allow multiple Info windows to be up at the same time.

47:28So it can remain visible while you're doing other interactions with the map.

47:33And it's also anchored at a position relative to the map, so you define what its anchor point is.

47:40Silverlight API supports touch and gestures. I'll talk about Windows Phone tomorrow…

47:48…but that's why we support these touch and gestures, is so you can use Silverlight to create applications for your mobile device…

47:54…so that your Windows Phone applications, be able to zoom in by tapping, or to be able to get a pop-up by tapping.

48:04The double tap would be the zoom in, panning and dragging, or touch and hold to simulate…to get some sort of…

48:12…like magnifier to come up. And also your flick. So the typical mobile gestures that you have access to.

48:23Graphics and editing. The editing and draw magnifier, so being able to click and bring up a magnifier so you can get finer detail…

48:33…when you're doing those edits. Also the ability, instead of just being able to add points, lines, and polygons…

48:38…we've also added the ability to create nice arrows, circles, ellipses, triangle types as well.

48:46So you don't just have the option to do points, lines, and polygons.

48:51Also for editing is the ability to rotate and scale, so if you draw some sort of feature, and you want to modify that…

48:57…you have the ability to do that using the new API…the new version of the API.

49:02The legend control…We added legends at 10 in Server, and so now all the APIs support ingesting those legends, because it used to be…

49:13…a pain in the you know what to go in and create those nice legends with the same symbols that you had in your feature class.

49:20So now when you publish a feature class, or a feature layer, we can consume that, and that legend is built dynamically.

49:29You can also modify it, so if you want a check box, or a radio button, to have an interaction between the legend, or the layer…

49:37…you can do that as well.

49:40Scaling and attribution controls--there's not much to say here.

49:44You can add a scale bar, and you have control over what it looks like, to a certain extent.

49:49You can also create your own, if you want to get really fancy, but we do provide you several options for adding that scale bar to the map.

49:57The attribution control is the copyright text for any visible layers in the map.

50:04So…us at Esri, we're not a data company. We work with a lot of data providers, so a lot of our basemaps…

50:12…we need to give credit where credit is due, so we give the copyright text. So that's the text that you can add to your map.

50:19And you have control, how that text works.

50:23Your IDE integration…We, when we install the Silverlight API, it installs a couple different templates that you have access to.

50:36So these are just screen shots of the two different types of templates, so…you know, Nikki showed using the Silverlight viewer…

50:44…the builders actually build an application.

50:47We give you some functionality to the developer to start with the basic application and template…

50:53…and then they can add additional functionality to it.

50:55So you're not starting totally from scratch, with just a blank canvas, but you have that option as well…

51:00…if you do want to start with a blank canvas. So you just want to know, these templates are out there…

51:04…and I want to show you, in the Resource Center, where some other templates are.

51:10So building applications. I talked a little bit about XAML. There's XAML and there's the code behind.

51:18The XAML is what the user interface looks like. And that's where Expression Blend comes into play.

51:25Expression Blend helps you have a user interface or an IDE to allow you to drag and drop a button control, or a map control…

51:36…or a navigation control onto the canvas and begin to build that user interface. And so what gets written is the XAML…

51:44…for those different controls. And so the user control in the XAML is for those layout elements…

51:50And then you also have to make your references to your libraries. So I talked about the client .dll, I talked about the toolkit .dll…

51:53…and those layout elements, like the buttons, the map, all get placed into that user control in the XAML.

52:09…you have to make reference to those, not only in your code behind in the application, but also in the XAML.

52:16And so the XMLNS declaration is equivalent to you doing an import in VB.NET or a using statement in C#.

52:27So those have to be referenced in both the XAML and the code behind.

52:34So some of the layout containers that you have in XAML.

52:39These container classes allow you to group controls and help with that "I want these to be vertically or horizontally…

52:47…positioned on the page" or maybe I want to do something in absolute x,y, so these controls help you lay out that user interface.

52:55They make it easier for you to control where things will be placed.

52:59So the first one is a grid control. And you just think about a grid…it has rows and columns.

53:03So how do you want to see that layout on the page?

53:09So here's just example XAML. It's showing where you have a button in the first row, first column; a text box, first row, second column, et cetera.

53:24But again, using Expression Blend, I could just drag these…I can drag a grid control on, I could begin to add these other controls…

53:33…and build that UI. Or, if you really get good at XAML, you don't need Expression Blend, you can just type in…

53:41…I see one head shake, No. I mean, there are some good programmers out there that can do that.

53:49I'm like you; No. I use Expression Blend.

53:52The stack panel's really nice, to be able to stack things horizontally or stack vertically.

53:57So it gives you a way to make things look very symmetrical in the application and control how the layout is done.

54:05There's also a canvas. So there's times when you want to position things in a particular x,y location on the page.

54:12So the canvas is where you would do that.

54:16And then there's a couple Silverlight toolkit container classes…

54:20…the wrap panel, of course you fill the space, and then it wraps to the next line…

54:24…and then there's a dock panel that you can dock on the UI in the left, right, top, bottom, center.

54:33So creating a map in XAML. So this is what it would take to actually create a map within the XAML.

54:40So the first thing I need to do is that reference, so that I'm referencing that client library that we talked about.

54:47And that's how you get to a map. So that line has to be in there.

54:53The next one is creating your map. So we use the…where we created a…so where we referenced our map, we have the XMLNS is Esri…

55:07…and so when I go to create my map, I reference that tag, and it references that client library, and says…

55:16…Okay, I want to use a map, and then the name of that map I going to give it is My Map.

55:22The next thing I want to do is add a layer to that map.

55:26So in this case I'm using a tiled map service layer, and I'm going to give it an ID My Layer…

55:31…and then the URL to the REST end point for that particular map layer.

55:36And so what's in the yellow box is…you don't have to create your map and do that within the XAML--you can do it in the code behind.

55:44So it just depends on where you're more comfortable and working in, but there shows you the code behind, so…

55:52…in those three lines, between the Esri map beginning and closing tags, it's one, two, three, four lines of code…

56:01…actually one, two, three lines of code within…oh, four lines of code within the code behind.

56:10And here's an example of the same code, but in VB.NET.

56:19So let's go back to the Resource Center. I just want to show you…under the samples…I didn't mean to click…

57:02…Sorry about that. Is it the Internet? Okay. Well, where I showed you the gallery, as well as the samples, there's also a template gallery.

57:22And so these templates are just example layouts of applications, to give you something to start with.

57:30You can also, when you do the install, in Visual Studio, and you go to create a new application…

57:38…under…I use C#, and so does Nikki, we're using her computer, but…

57:44…under Visual C#, there's a Silverlight folder, and then Esri. And under Esri are the two options for those templates that I showed earlier.

57:54I just wanted to point out, on the Resource Center, there's probably 10 templates that are also different looks and feel…

58:01…have different functionality, that are a great place to start, if you're new to Silverlight and you do want to write your code yourself…

58:09…versus going through the builder like Nikki showed, it's a great way to get started…

58:12…and you get the code behind everything that's in those templates.

58:20We got a threat from our Resource Center, apparently.

58:29So those are the templates. But you can also create your own applications.

58:35I just wanted to show you quick, so you…maybe not…it says we're having Internet issues.

58:44Okay. So here's just a simple application that I built looking at housing affordability…It's going to be really slow.

58:58So as you pan and zoom around the map, you're supposed to get a chart over here showing the updated number of properties…

59:04…There we go. So you see a chart with the number of properties that are in affordable housing or in unaffordable housing…

59:11…in this particular area. So it's just an example application that won't have to be that fancy or do that much…

59:20…but you can build from the ground up and create exactly what you want.

59:31So the release schedule…we just came out with 2.4 in January, to coincide with the release of the builder.

59:39And it has the new functionality with…not a ton of new functionality in 2.4.

59:44What we're going to see at version 3, which will be coming out in tandem with 10.1, will be…

59:53…the printing capabilities that Nikki showed on stage yesterday, geodesic buffers…what else?

1:00:02The new…you'll have access to the new OGC-type services, WPS and additional functionality.

1:00:11But we'll see that around the time frame of 10.1, which we're looking at April-May of this year.

Copyright 2013 Esri
Auto Scroll (on)Enable or disable the automatic scrolling of the transcript text when the video is playing. You can save this option if you login

ArcGIS Viewer for Silverlight and ArcGIS API for Silverlight and WPF

Jo Fraley and Nikki Golding demonstrate how to build, configure, and deploy a web mapping application and use custom functionality and layouts.

  • Recorded: Feb 23rd, 2012
  • Runtime: 1:00:17
  • Views: 1840
  • Published: Mar 23rd, 2012
  • Night Mode (Off)Automatically dim the web site while the video is playing. A few seconds after you start watching the video and stop moving your mouse, your screen will dim. You can auto save this option if you login.
  • HTML5 Video (Off) Play videos using HTML5 Video instead of flash. A modern web browser is required to view videos using HTML5.
Download VideoDownload this video to your computer.
<Embed>Customize the colors and use the HTML code to include this video on your own website
480x270
720x405
960x540
Custom
Width:
Height:
Start From:
Player Color:

Right-click on these links to download and save this video.

Comments 

Be the first to post a comment
To post a comment, you'll need to login.
If you don't have an Esri Global Login ID, please register here.