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.
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.
Right-click on these links to download and save this video.
- 480x270:WebM (127.7 MB)MP4 (101.8 MB)
- 960x540:WebM (321.3 MB)MP4 (261.3 MB)
If you don't have an Esri Global Login ID, please register here.