Jim Barry and Andy Gup introduce the ArcGIS platform and the toolkits, APIs, and resources available to developers.
00:01 Hi, my name is Jim Barry. I'm with Esri in Redlands, and I'm the program manager for the EDN program.
00:06 And with me, as always, is my trusty sidekick Andy Gup.
00:13 Or I'm your sidekick.
00:14 One or the other. Anyways, you can reach us on Twitter using those names.
00:18 But welcome! This is ArcGIS for Developers—An Introduction.
00:22 Very high pass, very introductory level look at ArcGIS.
00:28 You've seen a lot over the past few days, and you've probably used ArcGIS for many years.
00:33 And Esri, for many years, has put out professional GIS products that you can use…
00:38 …to manage spatial data, do good spatial analysis, good cartographic output.
00:44 But also, for almost as long, we've been very aggressive about putting out SDKs and APIs…
00:49 …and exposing even so much as scripting languages on some of our…
00:53 …on our products in order to allow people to customize their use of the product and, in some cases…
01:00 …build applications where our components are completely embedded within yours…
01:02 …parcel valuation, service requests, and those types of things.
01:04 …almost to the point where you can't see it.
01:06 So it's a big landscape, so the idea today is to give you a high pass.
01:11 It's basically to answer the question, I know you can't go into detail right now, but just show me…
01:16 …the whole the landscape so that I can pick what I'm interested in and dive in a little bit further…
01:21 …whether that be additional sessions this week or, perhaps if you take a look at some of the tutorials…
01:26 …or training videos or other types of resources we have on the Resource Center.
01:30 Or, perhaps if you go to the Developer Summit that we run each March in Palm Springs.
01:35 How many of you have gone to the Developer Summit?
01:38 Okay, some of you.
01:39 It's a great experience for geospatial developers.
01:42 Best conference for that to get real deep-dive stuff into our developer technologies.
01:48 Exactly not what we're doing today.
01:50 So basically what we want to show you very quickly, what is there, what can you do with it…
01:54 …what resources are available for you so that you can get started and get the most from it…
01:59 …and then where is the community? So who are you?
02:02 We're assuming that you're either an experienced GIS professional that may be new to tinkering around…
02:07 …with the developer tools or, maybe you're an experienced developer…
02:12 …but you're new to things geo, you're new to GIS.
02:15 So you develop apps but you want to bring maps into them.
02:19 So if I can ask, just a show of hands.
02:20 How many of you consider yourselves to be GIS professionals, maybe a little bit new to the developer stuff?
02:26 Okay, about half the room.
02:27 How about the others?
02:28 Experienced developers, maybe a little bit new to GIS?
02:31 Okay, so about roughly a half.
02:34 But also, there's management, project leads, it's good to have a picture of what's capable…
02:40 …even if you're not the one that's actually going to be designing, but you're the one that's responsible…
02:43 …for its completion and knowing what can be done.
02:46 So if you're here as well, that's great.
02:48 So what we're going to cover is ArcGIS, but from a developer angle.
02:53 We're going to look at it as a developer toolbox.
02:55 What kinds of applications, SDKs, APIs, and scripting languages are there for you…
03:00 …to build applications and customize the way that you do GIS with ArcGIS?
03:06 We're going to cover desktop applications, high pass.
03:09 I'm actually going to do a quick demo or two for you to show how quick it can be to at least get started.
03:14 I'm not going to say the whole thing is easy, because it's not.
03:17 But it's easy to get started, and it's easy to grow, and we provide plenty of resources for that.
03:23 Then I'll go a little bit into geoprocessing and the Python scripting language…
03:27 …either interactively or to create tools, also talk to you about what your options are…
03:32 …as developers with regards to managing and using geodatabases.
03:36 Then Andy's going to take over and show you the client/server angle, web applications…
03:40 …mobile applications, map services, how to create a customized GIS by leveraging…
03:47 …the client/server technologies and developer tools.
03:50 And then I'm going to take a couple of minutes and go through developer resources.
03:53 It's not enough for us to show you what's possible…
03:55 …we want to show you what is available to you that you can use and dig in.
03:59 And, you know, it's not just here's the technology, good luck…
04:02 …there's a whole set of resources that are available for you to use.
04:05 If you're new to GIS, what is GIS, if you've ever seen on the esri.com website…
04:10 …it's a good place to start.
04:12 It explains what GIS is and shows some case studies for how people are using it.
04:16 There's also gis.com that goes into this stuff a little bit more, also it has tabs for learn GIS careers and GIS.
04:24 It kind of gets a good feel for what types of things are being done.
04:28 You've probably seen this slide before, ArcGIS 10, the Complete System.
04:32 What Andy and I are going to show you today is not the complete system…
04:35 …but we're going to touch each one of these points and look at it through a developer's lens.
04:42 Let me start with ArcGIS Explorer.
04:43 The reason why I start here, it's the freest thing you can do.
04:47 You can download, it's a Windows application that anyone can freely download and install and use.
04:52 It's a spinning globe, sure, but you can add your own local data to it…
04:57 …you can reach out and touch and bring in map services.
05:01 You can also bring in some fairly advanced geoprocessing services.
05:05 So what a lot of people don't know is, with ArcGIS Explorer, you can actually…they say well…
05:09 …that's a nice spinning globe viewer for map visualization, but you can tap into geoprocessing services.
05:16 You can use ArcGIS Explorer pretty aggressively…
05:18 …to do some GIS processes that are normally a bit heavier.
05:23 So it's free to use.
05:25 It's free to develop against.
05:26 You can download the SDK for free, and then you can also deploy for free.
05:30 There's no license manager…
05:32 …there's no license control or authorization files or royalties or license fees that have to be paid.
05:38 Everything from top to bottom, from the application to the SDK…
05:41 …to developing and deploying, you can do for free.
05:45 And there's really two options for developers.
05:47 One is application configuration without any code whatsoever.
05:51 ArcGIS Explorer is designed very liberally to be able to change the interface…
05:58 …to change the appearance of the application, to change the colors and the schemes…
06:02 …and the tools and the ribbons and the logos and the splash screens so that you can really turn…
06:08 …and save that customization, or save a bunch of those customizations…
06:11 …and really turn that application into yours.
06:14 Something that's really custom-tailored to, let's say, I need an application that just does three things.
06:20 I don't need to train my users, just need them to do three things.
06:23 ArcGIS Explorer provides a customization way to do that.
06:27 The second option is the ArcGIS Explorer SDK.
06:29 You can create your own add-ins.
06:31 You can create your own buttons with code that you write against our SDK or through Visual Studio…
06:36 …with other components to bring additional functionality…
06:40 …that you develop into ArcGIS Explorer that wasn't there.
06:44 So application configuration, we give you a manager application and it gives you a bunch of tabs…
06:51 …and lots of check boxes and lets you really dial that thing into the way that you want it to look like…
06:55 …and then save that configuration and share that configuration…
06:58 …with anyone or with everyone in your organization.
07:04 The SDK is very well documented, there's conceptual help, there is sample code…
07:10 …there is basically object model diagrams, everything you need to understand…
07:18 …what the SDK can do and how you can leverage it.
07:23 Creating add-ins…when you install the SDK, we install a bunch of templates for use…
07:29 …with Visual Studio so that you don't have to develop…
07:33 …if you want to build a button that has code in it, you don't have to develop that from scratch.
07:36 You start a button base project, it adds all the references for you, stubs out all the code for you…
07:46 …and then you just go in and code for the events and deploy it.
07:52 What do you do after you create an add-in?
07:54 Well, you can install it on your machine, you can put it in a shared location…
07:57 …for everyone that's using ArcGIS Explorer just takes it, or you can share it on arcgis.com.
08:04 You can upload it to the world so that anyone can download your add-in and use it.
08:08 Or, if you create a group in arcgis.com and you control access to who can see the things in that group…
08:16 …you can share it in the group as well.
08:17 Arcgis.com is not just about sharing with the world, it's sharing with a group that you control.
08:22 And that's a platform that you can use for sharing.
08:26 It provides, in the ArcGIS Explorer options, gives you the option for managing your add-ins.
08:33 You might have lots of buttons and galleries and dockable windows that you can manage…
08:37 …and it provides an interface for doing that.
08:39 ArcGIS Explorer Desktop team also blogs pretty aggressively.
08:43 They go into details about how developers and users can use ArcGIS Explorer.
08:48 They tell big-picture stories about what people are using with Explorer.
08:52 And if you want to know more details, because this is just…I want to dig in, but I can't.
08:57 But today at 5 p.m. in the Desktop Developer Island, I'll be going through…
09:02 …configuring and customizing ArcGIS Explorer Desktop, and I'll be digging in…
09:06 …and actually showing you code, how to configure the application…
09:08 …how to write add-ins, how to share them on arcgis.com.
09:13 ArcGIS Desktop, of course our flagship professional GIS product, is great for GIS people…
09:21 …to do spatial analysis, manage data, cartographic output, all that good stuff.
09:25 But there's also a developer angle.
09:29 So the first thing I want to do is create a map with ArcMap.
09:35 I'm going to add a basemap from ArcGIS Online.
09:39 There's a World Streets layer that I want to put in there…
09:42 …and use that sort of as reference for the rest of the map.
09:47 Then I have a point feature class of customers, some of my customers in downtown Denver.
09:54 In fact, if I zoom in on that layer, it zooms in.
09:59 I can zoom out a little bit if I want.
10:01 And those are some of my customers in downtown Denver.
10:04 And I'm going to go ahead and save that as an MXD or a map document that's sharable and reusable.
10:12 So I can save that on disk.
10:13 I'll go ahead and do that.
10:15 And for those of you who haven't seen ArcMap, that's basically the Hello World of using ArcMap.
10:22 Add a base layer from online, add a point dataset from something that's sitting on my disk…
10:28 …and then save that map, save the state of that map into something that I can use again.
10:33 So that's create a map, and I'll get back to that one.
10:36 We're going to reuse that one over and over.
10:39 Okay, so ArcGIS Desktop, there are four options for developers.
10:44 There's customization of the UI and its functionality; there's a ArcObjects SDK…
10:50 …that has thousands of object classes, and over a hundred object model diagrams.
10:56 So we basically expose everything to you that's exposed to us, pretty much.
11:02 But there's also a simpler option of add-ins, just like you can with ArcGIS Explorer.
11:07 We provide add-in templates that you can use to create add-ins.
11:09 And then there's also script tools.
11:12 There's Python scripting that you can use in order to customize the experience.
11:16 So what does customizing the UI look like?
11:18 Well, through the Customize window, there's the Toolbars menu…
11:22 …and it gives you access to dozens of toolbars that have hundreds of tools.
11:27 You couldn't possibly turn them all on even in a high-resolution screen.
11:31 You wouldn't see the map anymore, you'd see nothing but buttons and tools.
11:34 So this is a great idea if you have a shop of GIS people to really…
11:39 …just put the toolbars and the tools on there that they need, remove the stuff that they don't need…
11:44 …and you can lock that down, password protect it so that all your users are using the same interface.
11:50 And you're not coding at all.
11:53 Okay, the next is ArcGIS Desktop…I'm sorry, ArcObjects...
11:58 The ArcObjects API.
11:59 And this is what I was talking about, about all the object models.
12:02 I'm not going to ask you if you can read it from there, because I can't even read it from here.
12:06 But, it just goes to show you that practically everything you can do in ArcGIS…
12:11 …through the interface and more is exposed through the ArcObjects API.
12:15 Can be daunting, but this API has been around for over 10 years now.
12:20 There are so many samples that we've included and built up over the years…
12:24 …there are so many applications and samples that the users have created…
12:27 …and built up over the years, for most, 99.whatever tasks, you really shouldn't…
12:32 …have to write too much from scratch anymore.
12:35 It's really just a part of picking and choosing what you want to start with…
12:38 …and then coding from there as a launch point.
12:41 Now if you started with this back at version 8.0, you're basically writing everything from scratch.
12:45 We had no templates and the community really hadn't jumped in yet.
12:50 But a simpler way that started just a couple years ago is creating add-ins.
12:56 And this is a very easy way to deploy…we give you templates in Visual Studio…
13:03 …you pick the template you want, you code away…
13:06 …and then you build that thing as what's called an Esri add-in file.
13:10 It's really just a ZIP file.
13:12 But we call it Esri add-in so that our application can recognize that it's part of the system.
13:16 And when you put…and you don't even have to install it.
13:20 There's no registration, there's no install wizard, its really just taking that single file…
13:25 …dropping it in the default well known location…
13:28 …or another well known location that you designate on a network share.
13:31 And the next time ArcMap starts up…
13:34 …it reads those add-ins that are in the well known location and brings it into the system.
13:38 So that ZIP file encapsulates everything that you need.
13:43 Here's what the templates look like in Visual Studio.
13:45 You install the ArcObjects SDK…
13:48 …you get these templates to create an ArcMap add-in, an ArcCatalog add-in.
13:56 Add-ins doesn't give you as much of an extensive set of possibilities as the ArcObjects API does…
14:04 …but we do hit center mass on the big bulk of at least 80 percent of what people do.
14:10 You can create toolbars and menus and combo boxes, and create extensions.
14:14 You could do some pretty advanced stuff with add-ins and deploy them and maintain them fairly easily.
14:20 In fact, as a developer, let's say you have the add-in…
14:23 …in a network share location and your users are working with it.
14:27 You know, at the end of the day, you know, you're coding bug fixes or improvements to your add-in.
14:32 When they leave for the day, all you do is swap out that add-in at that well known location…
14:36 …and the next time they start up ArcMap the next morning, they get the new tool…
14:40 …with the new fix or the new, enhanced functionality.
14:42 So it's a nice, simple way to deploy.
14:47 So you can create add-ins, you can bring add-ins into the system this way.
14:52 There's an add-in manager so that you can manage the add-ins more manually if you want to.
15:00 The ArcObjects SDK has a pretty extensive help system…
15:03 …lots of samples, lots of conceptual help and tutorials as well. Okay?
15:11 So what I'm going to do is I'm going to find and install an add-in.
15:16 And what I want to…and I'm going to go find an add-in that I want and install it.
15:20 Something that was shared.
15:22 So I'm going to start up a web browser and go to arcgis.com…
15:27 …and search for an add-in that's been shared…
15:29 …and I'll show you how fairly quick it is to install.
15:40 So let me…I happen to know that there is a tool out there for importing GPX files.
15:46 These are GPS exchange format files.
15:49 And I want to take those points from a GPS device and bring them into ArcMap.
15:53 Well, if I just click the Open button and I open with the Esri add-in file…
15:59 …it's going to at some point give me an installation wizard.
16:04 And I just say, I'll just take the defaults and go ahead and install the add-in.
16:08 It says that it succeeded.
16:12 And now when I go to ArcMap and I go into the Customize…
16:17 …into my Customize window, there's a place where all the add-ins will go when the installer installs them.
16:26 And it's under Commands, and it's going to pop up here soon.
16:31 There's my add-in controls, and there's my GPX import.
16:35 So at that point, all I have to do is drag it and drop it onto the toolbar, and I can use that GPX importer.
16:42 Asks me to navigate to the GPX file, imports it as a point layer.
16:48 So if you share things on arcgis.com, others can download it and install it almost as easily, okay?
16:57 Next is ArcGIS Engine.
17:00 ArcGIS Engine is sort of like ArcGIS Desktop, except it's only components, there is no interface.
17:05 It's just all of the controls that ArcGIS…or most of the controls…
17:10 …that ArcGIS Desktop uses plus the entire same access to ArcObjects API.
17:19 And oh, let me see…And so as you can see, I'm totally within Visual Studio.
17:26 There's thousands of classes, over a dozen controls.
17:30 And this is when you want to create and compile…
17:33 …and deploy stand-alone applications using Windows or Java.
17:38 I'm going to go with Windows here.
17:40 I'm in Visual Studio.
17:42 I'm going to create a brand new project.
17:45 And when you install the SDK, you get all of these templates that you can choose from.
17:49 I'm just going to choose a Windows application using ArcGIS Engine, and click OK.
17:54 And this is what's going to be included by the wizard.
17:58 And let's say I want to go ahead and use an Engine license…
18:02 …and default to an ArcInfo license, use the Network Analyst extension.
18:07 So I pick which licenses and which extensions I want to use, and the install wizard…
18:11 …will add all the references, add all the dependencies, and stub out all of the code…
18:17 …that I need in order for my project to get a really nice kick start.
18:23 Okay, so a lot of the code was there, and now I'm going to…
18:28 …once the wizard is done, I'm going to go ahead and add a map control.
18:41 I'm going to add a map control to the form, and also the table of contents control.
18:49 Once it comes back…and also a toolbar control.
18:54 And show you the hundreds of tools that you can…
18:57 …I'm not going to put hundreds of tools on there, but…
19:00 …come on, come back to me…Okay, alright.
19:20 It can do it, now it's not going to do it.
19:24 Alright, there's my map control.
19:26 Okay, now I want a license control in order to control the license that the application will use at runtime.
19:37 Oh, there it is. Oh, I have two license controls, I don't want that.
19:44 Alright, so the license control is going to let me use an ArcInfo license or an ArcGIS Engine license…
19:50 …and now I'm going to add the table of contents control, and the toolbar control.
19:59 Alright, now, my map control, I could do this programmatically by code…
20:05 …but I'm going to add the map document that I just created a couple minutes ago.
20:10 And it's reading the local data, it's reading across to and checking out the layer…
20:16 …that's coming across from ArcGIS Online, making sure everything looks good…
20:25 Alright, and then I hit OK.
20:28 And now, the next thing I want to do is take this table of contents control…
20:31 …and make it a buddy of the map control.
20:35 And same thing with the toolbar control.
20:37 Now all three of these controls are bound together.
20:40 You don't have to write the code that binds them.
20:42 They're all now bound together.
20:43 Now if I go the toolbar, what do I want?
20:45 Well, I want to add some tools for my user.
20:49 And like I said, there's dozens of toolbars and hundreds and hundreds of tools to choose from.
20:53 I'm just going to go real simple.
20:55 I want a zoom-in box, I want a zoom-out box, I want a full extent, and a pan.
21:04 It doesn't get more hello-world than this, folks.
21:09 And now I'm going to fire that bad boy up…
21:12 …and I'm going to show you what this application looks like.
21:17 Alright, and so it's easy to get started.
21:22 We used to have a product years ago called MapObjects.
21:26 And it was a great product, I loved it.
21:27 But everything you had to do, every little thing you had to do, you had to code.
21:31 So when ArcGIS Engine came out, people were daunted by the 20 times sheer size of the SDK…
21:38 …and thinking it was going to be so much harder to use.
21:41 But what they didn't realize is that there are hundreds of tools that are already prebuilt for you…
21:48 …that handle most of the applications…handle most of the stuff that you would want to do.
21:52 So Voilà! I've just created the smallest GIS application in the world.
21:58 And I have to go to UI design school.
22:01 So there you go.
22:02 That's pretty quick, and at least to get started.
22:07 So that's Engine.
22:09 So, but what if you're a new programmer?
22:10 How do you get started with Visual Studio?
22:14 Well the express editions of Visual Studio are free, and you can create add-ins with the express edition.
22:20 And then there's lots of online training, there's beginners books that you'd see at Borders and stuff.
22:24 I recommend those for the basics of data types and conditions and looping and things like that.
22:30 But the MSDN site also has lots of tutorials and videos and sample code.
22:34 And then, if you're like me, you're like…when you're using a technology, you say, Where's the community?
22:40 Well, the community for Visual Studio, here's just a couple.
22:42 But there's lots and lots of them.
22:44 Here's two that I like at least for Visual Basic…
22:47 …when I'm hacking around, is vbforms.com and extremevbtalk.com.
22:50 These are very, very active.
22:52 And lots of times when I have a problem or a question, I just search the site…
22:56 …and find the answer because chances are I'm not the first one that hit it.
22:59 But if I did, I just post it…there's lots of people out there are just itching to jump in…
23:03 …and help you solve your problem.
23:05 So jump into the community when you can.
23:07 Geoprocessing, what are your options?
23:09 Well, we provide a Python scripting language...
23:11 …and you can create add-ins and geoprocessing packages with it.
23:17 And there's lots of conceptual help and sample help on the Resource Center.
23:23 So let's go back to that ArcMap application.
23:27 And I have that point layer of my customers.
23:30 And what I can do before I even deploy a tool…
23:33 …I can do some interactive Python right here in the Python window.
23:38 So I have my customer 3 layer, I want my output layer to…let's just call that output 99.
23:47 What distance do I want to buffer these points?
23:49 Let's go with 750 feet.
23:51 Notice how I'm using that very naturally.
23:53 750 feet in quotes.
23:56 And then it's got some additional options, I want them fully buffered.
24:01 I want the ends to be flat, which they're not going to be, because they're not lines.
24:05 I'll go ahead with all I want to dissolve.
24:10 I want all of the buffers to be dissolved if they intersect with one another.
24:14 And I'll let that run for a little bit.
24:16 And if you noticed, as I was typing there was an auto code complete, it was giving me the options…
24:21 …and the methods and the arguments in the drop-down.
24:24 There was also a lot of help that was occurring over here in the right-hand side…
24:27 …so I don't have to keep going back and forth to the documentation.
24:30 And it went ahead and it buffered all my points by 750 feet, it dissolved them together…
24:34 …because that's what I told it to do, and now I have a polygon layer that I can use for subsequent analysis.
24:41 So that's…and, when I'm writing in Python, I can save that as a tool.
24:47 I can save that to the toolbox.
24:48 And if I want, I can put that on the interface for people to run.
24:53 And then Andy's going to show you how you can even take that Python script…
24:56 …and publish it as a geoprocessing service so that web and mobile clients can hit it as well.
25:03 Okay? So I hope…Okay, how do you get started with Python if you haven't touched it before?
25:11 Start with Python.org.
25:13 It's a great resource.
25:15 Lot of doc, lot of samples, tutorials, and the community is there as well.
25:20 Of course, there's lots of books and lots of training out there on Python, but I recommend you start here.
25:25 Geodatabase, what are your options?
25:27 You have three.
25:28 As I showed you with Engine, you have all these tools.
25:32 Well, there's lots of editing tools in there too.
25:34 There's a lot of data management tools in there that you can drag onto the toolbar.
25:37 So there are components that are already written that you can leverage…
25:40 …into your applications without writing much code.
25:43 There's also the geodatabase object model.
25:46 Remember, I described the huge ArcObjects object model.
25:48 Geodatabase is just one of those parts that gives you pretty much full access to the geodatabase.
25:54 You can break as much as you want.
25:58 That's what I do.
25:59 And then, relatively new is the file geodatabase API.
26:10 This is a freely released API you can read and write file geodatabases without needing ArcGIS at all.
26:19 So anyone who doesn't even have Esri technology at all can download this file geodatabase API…
26:25 …and read and write file geodatabases whether they want to use it for exchange…
26:26 …whether they want to use it as a part of their application, or maybe the error applications…
26:32 …output or input needs to interact with an organization that has ArcGIS…
26:36 There's lots of options, and you can use it on Windows or on Linux.
26:40 So next, Andy…Andy's going to take you through client/server…
26:44 …and the whole web and mobile side of this landscape.
26:50 Thanks, Jim.
26:52 We'll see if I can click this on and it will actually stay.
26:58 Can you hear me now?
27:01 In the back?
27:03 Alright, ArcGIS Server.
27:07 It does help if we switch screens.
27:11 Minus two points, right?
27:14 We're just striking out on this little clip here.
27:17 Whoever invented it needs to…we need to get our money back.
27:21 Alright, I think that's going to stay.
27:25 Alright, ArcGIS Server.
27:27 ArcGIS Server is really the heart of the system that we're talking about.
27:31 And so what I'm going to do is give you an overview from an architecture perspective…
27:36 …let you know what all the pieces are, and I'm going to talk about the APIs…
27:40 …and the services that make up this architecture.
27:43 I'm going to liberally sprinkle some demos in there for you to keep your interest…
27:47 …and at the very end I'm just going to give you a very quick…
27:50 …high-level audit of some getting started suggestions.
27:53 I do want to let you know that I'm going to cover a lot of material.
27:57 If you don't have a chance to write down some of the links and shortcuts that I provided for you…
28:02 …they're available in the PowerPoint after the session is done and when they're posted up on esri.com.
28:11 There. It's probably a little bit better to see when it's in presentation mode.
28:15 ArcGIS Server is a system that lets you work with many clients.
28:20 And like I said, ArcGIS Server is really at the heart of this system.
28:24 ArcGIS Desktop is a client of ArcGIS Server, ArcGIS Explorer is also a client…
28:29 …and many more as you can see there.
28:32 And that's the real power, is because you can take your data and you can use ArcGIS Server…
28:37 …to collaborate and to share your information publicly or even within your peer group on projects.
28:46 So just to show you a few examples in addition to what you may have already seen…
28:50 …this week and in the plenary, and tell you which API was used to build these applications…
28:55 …on some of the capabilities that you can do, this is a crime map for the City of San Francisco.
29:00 It's using the Silverlight API.
29:03 You can look at the information on crime on a time basis, you can create client-side hot spots.
29:11 It's an algorithm that exists on the client application that enables you to tell…
29:16 …areas where there's higher amounts of crime.
29:18 So where there's more crime you'll see red, where there's less crime you'll see blue.
29:22 This information is a library that we were able to pull into the Silverlight application…
29:28 …so that people can look at this and make better decisions about where crime is happening.
29:33 This application is also built with the Silverlight API.
29:36 It was tracking in near real time a young boy that summited on Everest…
29:41 …and we were able to incorporate social media, we were able to bring his points and his tracks…
29:46 …into ArcGIS Server so that people around the world could track his progress.
29:50 We also threw in some geoprocessing which Jim was talking about.
29:54 So on a daily basis, we knew not only how far he went, but you could see the elevation…
29:59 …on what they gained or lost on that particular day.
30:07 It's bringing in real-time flood information and real-time radar.
30:12 And this is mainly just to give you an idea that it's not just ArcGIS Server information…
30:17 …that you can bring into these applications.
30:19 It's other information that's published by other people…
30:21 …like you and other services around the country or the world.
30:26 This application, City of Greeley, built with the Silverlight API, it's a tax parcel map.
30:32 Not only do you have rooftop information, but you also have fire hydrant information…
30:37 …water and sewer information, and much, much more.
30:40 And the Silverlight API as well as our other APIs…
30:43 …give you the framework on which to build these things.
30:46 I just threw this one in there because it's beautiful cartography.
30:50 This was built as a custom layer.
30:52 And if you have custom mapping information and you want to integrate it…
30:55 …into your map, this tax parcel map for the…I want to say the City of Boulder…
31:01 …for the County of Boulder…it's a beautiful presentation, one of the best I've seen.
31:08 Hopefully, now you're wondering, you've seen these applications, what point am I trying to make?
31:14 What's going on behind the scenes and how does this stuff work?
31:17 And if I can emphasize anything, your data is at the heart of this system.
31:22 And as Jim was talking about, your data could be a shapefile, it could be a CSV file…
31:27 …it could be a geodatabase or a file geodatabase.
31:30 What ArcGIS Server does, is it gives you the framework to take your data…
31:35 …and make it available to other people to collaborate with.
31:38 And the way we do that is we create what we call GIS services.
31:41 And those are function-specific.
31:44 So if you have mapping data in your geodatabase and you want to share it with someone…
31:49 …you can use what we call a mapping service, and so on.
31:53 Geoprocessing, querying, there's many others that I'll get into in just a minute.
31:59 Web services is how that data in the GIS services is manipulated.
32:05 And we have three.
32:06 We have REST, SOAP, and OGC.
32:09 And throughout the week, you may have heard of WMS, web mapping services…
32:13 …WFS, web feature services…those are all OGC.
32:17 And we also have a SOAP, API in ArcGIS 10.
32:23 Client APIs let us wrap the web services so we don't have to do much work.
32:28 And we have four of those, four different types available.
32:39 If you didn't write those down, I'll have another slide in just a minute.
32:43 What is a GIS service?
32:45 Remember, I said if you have data in your database and you want to share it with someone…
32:50 …the GIS service enables your customers, your clients, your colleagues…
32:55 …or your users to edit, use, and display your data.
33:00 That is all a GIS service is.
33:02 And there's many different types, depending on what type of data you have…
33:06 …and how you want to deploy it.
33:09 Pretty straightforward.
33:11 There's lots of them depending on exactly what you want to do.
33:16 I mentioned mapping, there's feature services…you may have heard us talk about that this week.
33:20 Geoprocessing, which Jim already talked about, search, imaging, geodata.
33:25 Lots of these services are available…
33:27 If you go to the shortcut URL that I provided, it talks about when you're in Desktop…
33:33 …how you can publish these services in ArcGIS Server.
33:37 That shortcut URL is esriurl.com/arcgisservices.
33:44 And again, if you don't have time to get these while I'm presenting…
33:48 …they'll be provided to you after the conference.
33:51 So how does all this start?
33:54 Where does all this begin?
33:56 And it really begins with Desktop.
33:58 And the only way to get your service published…
34:02 …is either through Desktop or someone's already published it on the Internet.
34:07 So what I want to show you here is, I have the same data that Jim was showing you earlier.
34:12 And what I have is my customer information as a point layer around the City and County of Denver.
34:17 And I also have some census tracts for the same area.
34:21 And what I want to do is be able to publish this as a web service so that near the end of my presentation…
34:28 …I'm going to consume that in a web app.
34:31 These are my points, it's my custom data, and I want to be able to serve that.
34:35 So how do I do that?
34:39 Now, I've cheated a little bit, and I already have ArcGIS Server installed…
34:44 …and I'm not going to talk about how to install ArcGIS Server.
34:47 But once you have it installed, in Catalog in ArcGIS Desktop, I'm simply right-clicking…
34:54 …on my MXD, and there's an option that says, Publish to ArcGIS Server.
35:01 Now for the purposes of time, I'm not going to walk you through all the defaults…
35:04 …but if you do click through all the defaults and just say Yes, Yes, Yes, the end result…
35:09 …is under your GIS Servers tab in Catalog, you should get a service that pops up.
35:18 And when it pops up, you should see the Start button grayed out.
35:22 This is the first indication, Yay, I was successful, I was able to publish this service.
35:27 But that's not all! What you need to do after you're done with this is…
35:34 …you're going to go into a web browser and you're going to go to what's called the REST endpoint.
35:40 And this pattern that I'm showing you is very important.
35:43 It's going to be the name of your machine and, in this case, I have ArcGIS Server…
35:47 …installed on my laptop /arcgis/REST/services.
35:53 And that pattern should always be very similar.
35:56 And what you're going to see is the service that you published.
35:59 And what this REST endpoint is, is it's just a dictionary that ArcGIS Server creates…
36:05 …that says, here's the information, here's all your services.
36:08 But you can drill down into these services.
36:12 And my server is cold so it's going to take just a second to connect to it.
36:17 You can drill down into these services and you'll see here…
36:20 …in just a second that there is a lot more information available.
36:25 There we go, it's loaded.
36:27 And you can see here, here's my two layers…
36:30 …here's my customer info layer that I borrowed from Jim.
36:33 Here's my census tracts, here's my spatial reference…very important.
36:40 And I want to point out a couple of last things for you down here at the bottom.
36:46 Remember my slide? I said, How do we access this information?
36:49 This particular service that I published is available through both REST and SOAP.
36:54 Very good, because I'm going to be using REST…
37:01 And you can see here the different types of things that I can do against this service.
37:06 I can view it as a map, I can run an identify process against it, Find, and I can also generate KML.
37:15 But what I'm going to do is just click on Show Me the Map.
37:20 And what this is, is this is my final test to make sure that that REST endpoint really works.
37:25 And you can see here, I can see my points and my census tract data.
37:29 Yes, everything was successful.
37:31 The last thing I need to do is build that into my application.
37:36 It's pretty straightforward so far, right? Pretty cool. Alright.
37:46 We talked about these, how do I get the data in REST, SOAP, and OGC?
37:52 These are behind-the-scenes frameworks that are letting you access that data.
37:57 And if you look at when I ran this page, this application that's built into ArcGIS Server…
38:08 …you'll notice something very interesting in the URL.
38:11 And what REST is, it's a URL-based interface.
38:15 And you see there where it says Export, and a question mark, and BBox…
38:19 …which stands for bounding box, this is the reason why people like REST-based interface…
38:25 …because they're very easy to manipulate.
38:33 The way the REST architecture works.
38:36 So what you just saw, and this is just a recap, is I took an MXD…
38:40 …I took the data that Jim gave me, I published it to ArcGIS Server…
38:44 …and it went into the geodatabase, it was available on my web server.
38:49 That application that's built into the ArcGIS Server REST endpoint…
38:53 …remember I clicked on Export Map?
38:55 What that did is that that made a REST request, which looks just like a URL…
39:00 …it made a request of the server, the server did something…
39:04 …and it sent me some information back where it says JSON right there.
39:14 And there's a lot of information that comes back…
39:17 …and I'll show you an example of what that looks like in just a second.
39:21 So this is the request that's going out.
39:24 It looks just like a URL.
39:25 Pretty straightforward, right?
39:27 And what I can do is, I can take that URL, I can copy and paste it…
39:31 …put it in my browser, and information is going to come back.
39:34 And I proved that to you when I was at the REST endpoint.
39:41 So let's take a step back for just a second.
39:45 We have some web APIs that let you manipulate the REST endpoints.
39:55 …which is specifically built for Mobile, it's the much lighter weight library…
39:59 …that you download to the browser; we also have…
40:01 …Adobe Flex; and we have Microsoft Silverlight/Windows Presentation Foundation.
40:08 And people always asks us, Great, that's lots of choices, but where do I start?
40:13 If you're a new developer and you're not familiar with these…
40:18 It's much easier to get going, there's millions of samples.
40:22 In order to develop on it, really all you need is a Notepad or Notepad++ to get going.
40:28 If you're an experienced developer, I know there's quite a few experienced developers in here…
40:33 Go with what you're comfortable with, go with what your team skill set is…
40:37 …or go with which one of these APIs matches your requirements the best.
40:43 So maybe you're thinking well, you told me about a REST API and you told me about a web API.
40:50 Now, which one do I use?
40:52 I'm kind of confused, perhaps.
40:56 The nice thing about the web APIs is they wrap…
40:59 …they handle all of the web requests for you behind the scenes.
41:03 The web APIs you can use a very simple syntax to make the request.
41:08 And here I'm showing you a pattern where it says map.add.layer = some basemap.
41:14 In comparison, if I wanted to use the REST API…and this is going on behind the scenes…
41:19 …that's how we're communicating with ArcGIS Server.
41:21 I would have to add parameters to this endpoint and it could get very tedious.
41:26 The web APIs take a lot of that complexity away from you…
41:30 …and it makes it much easier for you to build applications faster.
41:34 And that's not all.
41:36 The bonus is, remember in that diagram I showed you we were making a request…
41:40 …to ArcGIS Server and information's coming back?
41:42 It's called the JSON payload?
41:45 You can use the REST API if you want to, but you're going to have to do something…
41:50 …with this information that's coming back.
41:55 In comparison, within the web API, all I have to do is…
41:59 …a single line of code to make this stuff display on my map.
42:03 So what I just showed you is that first line, is I make the request to the server…
42:07 …one line of code, and the information comes back, one line of code.
42:12 And what happened behind the scenes was this REST request…
42:15 …that's manipulating the GIS services against my map service data.
42:23 That's a lot of information, right?
42:26 But the one thing to remember is, those web APIs are making your life a lot easier.
42:33 Lots of capabilities inside the web APIs…queries, maps.
42:38 You've probably heard about all this stuff all this week.
42:40 Feature layers, time awareness, editing, and extents.
42:45 The web APIs are very powerful so that even if your project is adding points to the map…
42:50 …or simple polygons, as your needs grow, the capabilities are within these APIs to help you out…
42:58 …and make your life so much easier so you don't have to build this functionality by hand.
43:04 The web APIs also give you a tremendous framework for integrating multiple services.
43:14 …that brought in real-time floodgate data.
43:18 And real-time radar information.
43:20 You don't have to build this framework by hand.
43:23 The framework is already built into the APIs so that you can display a basemap…
43:29 …with parcel information on top of it or any other custom data.
43:32 Like that beautiful cartography that I showed you for Boulder County.
43:36 You can do that, and it's just a few lines of code.
43:39 And that's the real power of the web APIs.
43:44 You may have already heard, and I've used and referred to things such as syntax.
43:51 And I mainly just want to impress upon you as you go throughout your other sessions…
43:56 …even if you're in a session where they're talking about a different language…
43:59 …that you know or you're new to a programming language, syntax is just like how we speak.
44:04 If I say hola to you, it also means hello. We say different things in the different languages.
44:10 As long as you understand the concept…
44:13 …you can at least figure out how these particular things are working.
44:17 And it's just something to keep in mind as you go throughout the week.
44:21 We also talk about patterns.
44:23 And if there's one takeaway you have from this session, if you can understand the patterns…
44:30 …that are behind the APIs, you can apply that to any situation.
44:34 It can solve your problems, and even if you can't get something to work…
44:38 …and you go back and you look at our Resource Center documentation…
44:42 …which is in resources.arcgis.com, that pattern will help you.
44:46 And this particular pattern that I'm showing here that I'll demonstrate is a five-step pattern…
44:52 …that's very common throughout all of our APIs.
44:55 Because even though the syntax is different, we're accomplishing the same thing.
45:00 In this pattern, we're defining a query task…
45:03 …which is, I want to get information out of my geodatabase.
45:07 The next…Step Two is saying, When that's done…
45:10 …because remember, I'm sending a request to Server, and something's coming back.
45:14 When it's done, I need to tell it do something.
45:16 I'm going to assign it what we call some properties, and then I always have to tell it to execute.
45:23 And execute is going to happen when someone clicks on the map, or someone clicks on the button.
45:29 And when it's done, up in Step Two, I'm going to do something with that information.
45:35 And these patterns, and this is just one example of the many that we have…
45:39 …if you just remember that there's a pattern to it you can always go back and troubleshoot…
45:44 …or you can remember the pattern and build your applications faster.
45:49 So let's take a look at what this looks like.
45:53 Alright, so this particular application, remember I said I wanted to consume my custom points…
45:58 …and my county boundaries that Jim gave me?
46:01 So what I'm going to do in this particular application…can you see it better?
46:07 What I'm going to do in this particular application is, this pattern should look familiar, right?
46:12 I'm adding my basemap, which is a street map.
46:16 I'm adding my custom layer that I just published from Desktop.
46:21 And like Jim said, I also added a geoprocesser service here.
46:27 And the pattern that all this stuff follows is, here's the pattern.
46:33 What do I do when my map loads?
46:35 Well, I run all this information here.
46:38 And I have another pattern in here that I want to use.
46:41 I want to be able to identify a census tract…I almost said tax parcel.
46:47 I want to be able to identify a census tract, and if you look at this, even if you don't understand it…
46:52 …that five-step pattern that I just showed you is there.
46:55 I'm saying I want to be able to identify something, I'm assigning it some properties…
47:00 …and see down here I'm saying, when it's done, go ahead and execute it…
47:06 …and then I'm going to simply project that on a map in a pop-up window.
47:11 But that's not all.
47:13 Also built into this application, I'm following the same pattern again…
47:18 …when I'm running a geoprocessing service.
47:22 You're seeing the pattern again here.
47:24 I have some features and I'm telling it to execute this geoprocessing task.
47:30 And then when it's done, I'm going to run that function that says Get Drive Time Polys…
47:35 …and I'm going to display that on the map.
47:37 And that's why these patterns are so very powerful.
47:41 So let's look at what that looks like when we actually run it in an application.
47:45 Ha! I cheated there.
47:47 Alright, so it's actually loaded here.
47:51 And just to prove to you that this is live and running on my machine, you can see here…
47:56 …this is running that Identify task that I programmed into my application.
48:00 When I click on it, it's executing the Identify task, it's running this query…
48:06 …behind the scenes and returning me this information that I asked for, which is population.
48:11 I can also click on my points.
48:14 This is the point layer that I had in Desktop.
48:16 That information is being processed through that Identify task in my code.
48:21 And I can also run this geoprocessing service.
48:25 And I was calling that Drive Times.
48:26 And remember, I said there's a trigger…
48:28 …when you want to run one of these functions…these services.
48:33 And in this case, I click on Drive Times.
48:35 Now, when I click on my map, it's going to go out to ArcGIS Server…
48:41 …and it's running this geoprocessing task.
48:47 The main takeaway for this is, follow the patterns, the patterns are there in the documentation…
48:53 …and they provide you with some very powerful toolsets…
48:55 …that you can build very quickly within these applications. Cool, right?
49:02 Still with me? Yep.
49:07 Alright, if you want to make your life easier…
49:09 …you're thinking, Oh, my God, I have to build everything from scratch.
49:12 We have some extendable solutions that you can use out of the box…
49:15 …and you've already seen some of them this week.
49:18 The ArcGIS Viewer for Flex…again, I know that there's no hyperlink there.
49:22 It'll be available in the PowerPoint after the conference, or you can go to resources.arcgis.com.
49:29 We have Silverlight templates for you .NET developers…
49:32 …we also have a Silverlight toolkit which has things such as the magnifying glass…
49:37 …that you can move on the map.
49:38 We also have ArcGIS Mapping for SharePoint.
49:41 The whole idea behind these extendable solutions and, in particular, the ArcGIS Viewer for Flex…
49:48 …is you can get the source code and you get functionality that's going to give you a huge kick start.
49:53 And if all else fails, even if it doesn't give you a kick start you can go in there and look at some of the patterns…
49:59 …that they use to do some of the functionality that you think is cool…
50:02 …or you need for your particular project.
50:06 Whew! Alright, that was web GIS.
50:14 I'm going to switch gears to mobile GIS.
50:15 I just wanted to prepare you, context shifting.
50:19 Mobile GIS…we have two different categories of our APIs…
50:26 …and developer offerings for mobile GIS.
50:28 We have ruggedized devices, which includes ArcGIS Mobile and ArcPad…
50:33 …and we have smartphones.
50:35 I bet…how many of you in here have smartphones?
50:39 And those of you who don't you don't have to be ashamed.
50:41 Almost everybody.
50:42 We have iOS, Windows Phone, and Android.
50:46 All of the major flavors.
50:49 Our API for smartphones are specifically designed for touch-based interfaces…
50:54 …because that's how you're using these.
50:56 Some of them have keyboards…
50:57 …but I'm guessing most of the time you're using a touch-based interface.
51:00 So the workflows, or the way that you use these phones, is much different…
51:05 …than the way that you would build any other application.
51:08 These are primarily designed to work in what's called an assisted GPS environment.
51:15 So the GPS, you may have noticed sometimes, that depending on which application you're using…
51:19 …it has a big circle that says you're within a couple miles, sometimes it's within 50 to 100 feet.
51:25 But it's not super accurate.
51:27 Most commonly, these are used in instances such as emergency operation…
51:38 The ArcGIS API for iPhone, iOS, is a native Objective-C programming language.
51:45 It's using the REST interface that we just looked at a few minutes ago.
51:50 It does require a Mac.
51:52 So if you're planning on doing iOS development, you're going to need to get a Mac.
51:57 And if you to see how this application works, you can download the application today…
52:01 …off of iTunes and just search for ArcGIS for iOS.
52:07 ArcGIS for Windows Phone is using a C Sharp Silverlight API…
52:12 …so you .NET developers should feel very at home.
52:15 It's integrated into Visual Studio 2010.
52:17 It's also REST-based, which is really convenient.
52:21 And if you want to see how this application works on your phone…
52:24 …you can download the ArcGIS Windows Phone application.
52:27 You can get that off the Resource Center.
52:33 Android, native Java API, so if you're a Java developer, this is the way to go.
52:41 The nice thing about Android is, you'll be able to develop applications for it on Windows…
52:47 …in Linux, and on Mac boxes. It's very flexible in that respect.
52:52 So if you want to get involved in that, see what other people are saying…
52:53 It also runs on many devices.
52:56 For those of you that do have Androids…
52:58 …you may have noticed that there's many different shapes, sizes, manufacturers.
53:03 Android also comes as an Eclipse plug-in.
53:06 If you're using Eclipse again, that'll be very natural for you.
53:12 The last thing I want to mention on Android is, ArcGIS API for Android is currently in public beta…
53:17 …so if you're not participating in the program and you're interested in doing Android development work…
53:23 …make sure you get on board with that.
53:24 And that information is on the Resource Centers.
53:27 ArcGIS for rugged devices.
53:31 Designed for harsh field conditions.
53:34 And again, which API you're using depends on the requirements for your particular application.
53:40 This is for high-accuracy data collection.
53:43 And one of the most common, one of the best examples I know of…
53:47 …is if you're standing in the middle of an intersection and you have three or four manhole covers…
53:53 …you need to have a very accurate GPS…
53:56 …to know which one of the those manhole covers you need to go down and service.
53:59 Or if you need to enter that into your application and update the GIS database.
54:09 The ArcGIS Mobile SDK is built on the older versions of the Microsoft operating system for Mobile.
54:17 It's a .NET API specifically for Windows Mobile 5 and Windows Mobile 6…
54:23 …as well as the pocket PC .NET compact framework.
54:27 So if you have requirements that run on these ruggedized devices…
54:32 …then you're going to need to use the ArcGIS Mobile SDK.
54:39 And it's specifically designed to run in connected and disconnected environments.
54:44 ArcPad is specifically designed to run in disconnected environments.
54:49 It's for extremely accurate field data collection.
54:53 And the example I just gave you is very applicable to this type of device.
54:57 You want to know which manhole you're going down, or if you're sending some field workers out…
55:02 …with the ArcPad device, you want to make sure that they're going down into the right manhole cover.
55:08 It uses .NET and it's an XML-based interface that you can manipulate through a UI designer.
55:19 As I wrap up, I want to impress upon you that building applications for mobile…
55:25 …is much, much different than building applications on the web.
55:29 And just a few suggestions for you to consider as you leave the session…
55:33 …and you're thinking about this throughout the rest of the week.
55:36 Much smaller screens…you can't take a fully loaded, fully functional…
55:41 …command and control web application and expect to squeeze it onto a tiny screen.
55:45 Think about very focused web applications.
55:48 These phones have different workflows than you would use…
55:51 …when you're sitting at your desktop with your 19- or 20-inch screen.
55:55 They have inconsistent interconnections, slower processors…
55:59 …the battery life is potentially more limited.
56:02 These are just some takeaways for you to think about, because you're seeing…
56:05 …a lot of web applications, but mobile is a much different environment.
56:13 Last but not least, I'm going to go through these pretty quick.
56:16 If you miss something, come up afterwards or grab the PowerPoints later.
56:21 And what I'm going to do as I wrap up here is just throw out some ideas…
56:24 …if you're getting started on these web APIs and just hit some of the highlights.
56:29 Training, if you're interested in the Adobe Flex API, Flex.org is a great place to go.
56:35 They have videos that I think are some of the best that I've seen on the Internet.
56:56 That's a great place to go for information on what's in the interface.
57:00 Tutorials, W3Schools.com, many examples.
57:06 They also have applications in there where you can change different things…
57:14 And I always suggest that to people as a starting point.
57:17 A great community for dojo at dojotoolkit.org/community.
57:26 Just search for what you're looking for and you're going to hit something very quickly.
57:33 If you're building on Silverlight, Silverlight.net is the place…
57:37 …to get the plug-ins, the place to find information for the SDK.
57:42 The online resources for Silverlight are available at msdn.microsoft.com.
57:48 That would be the online documentation.
57:50 And there's a great community at Silverlight.NET.
57:55 …or ask Silverlight-related questions, that's a great place to go.
58:00 Getting started with Android, developer.android.com is the place to go.
58:06 For the vast majority of stuff on there, especially if you're getting started…
58:11 …Google and Android has done a fantastic job at documenting the functionality in that API.
58:16 They have lots of samples and it's a great place to go.
58:22 iOS, developer.apple.com, that would be what I write down if you're interested in iOS.
58:30 And I can't stress more, if you're going to be doing mobile web development…
58:34 …make sure that you have a mobile phone that you're going to be testing on.
58:38 Simply just using the emulators in these SDKs isn't going to be enough.
58:42 You really want, in the end, to test it on one of these phones…
58:46 …before you release it out into the wild.
58:50 Windows Phone, App Hub.
58:53 Looks like it's spelled there.
58:55 App Hub is the place to go if you're interested in Windows Phone development.
59:00 And I hope you found that section interesting.
59:02 That's all I've got.
59:04 I've got a few more things here…
59:07 I'll turn it over to Jim to wrap it up.
59:10 Resource Center is the place to go to get started with…
59:14 …not only for all the user stuff and ArcGIS, but all of the developer content.
59:20 We touched on some of it already, I'll touch on some more real quick.
59:23 It gives you focused access.
59:27 Every product or area of ArcGIS has its own resource center…
59:30 …where we give you focused access to those resources, like the Help.
59:34 Here's the geoprocessing, conceptual help, detailed help, Python scripting help.
59:39 ActionScript.org is the perfect place to go if you're interested in the ActionScript/Flex Flash community.
59:48 …most of the basic functionality that you can copy and paste and run with.
59:52 In fact, I met a gentleman a couple weeks ago in South Carolina…
1:00:01 And it looked like a lot of the stuff came right from the help.
1:00:05 I asked him what percentage of that application came from the help.
1:00:09 He said about 97 percent of it was just copy, paste from the help, and he just adjusted some paths.
1:00:15 At least to get started.
1:00:16 He wants to do more with it, but at least it's something that can get up and running pretty quickly.
1:00:20 Silverlight help in the Resource Center is also a great example.
1:00:23 We have something in here called the interactive SDK…
1:00:27 …where you can actually run in the website here.
1:00:30 This is not a static snapshot, it's actually an application.
1:00:33 And if you like what it's doing, you just click the code behind and grab that code and run with it.
1:00:40 The various development teams and engineers at Esri like to blog.
1:00:43 They like to blog to let you know the latest of stuff that they're working on…
1:00:46 …and also to hear back from you with whatever comments that you leave for them.
1:00:50 So that's a great way.
1:00:51 I know here you're talking to a lot of Esri staff, that's great.
1:00:54 But in between these conferences, this is a great way…
1:00:56 …to find out what's new and to talk to those who are doing it.
1:01:00 We also have a whole set of discussion forums…
1:01:03 …that we're using vBulletin engine, very popular discussion forum engine.
1:01:07 This forum right here is just one of them.
1:01:09 It's the Python forum.
1:01:11 It's Python, and the audience that I'm seeing in here is not only people that are doing geoprocessing…
1:01:17 …with Python and they have questions or problems, but also people that are learning Python as they're using ArcGIS.
1:01:23 So it's a great little forum, there's dozens of other discussion forums out there.
1:01:27 We also publish a lot of videos from our conferences…
1:01:30 …and presentations we do, training workshops, tech workshops.
1:01:34 We even sometimes grab the handheld camera and run around at Esri…
1:01:37 …and talk to people and we throw that on the video site as well.
1:01:42 We also have an Ideas site.
1:01:43 Have any of you used the ArcGIS Ideas site?
1:01:46 Okay, a couple of you.
1:01:48 This is great, this is where…this is another way that we get to hear from you…
1:01:52 …about what types of functions and things that you want included or fixed in ArcGIS.
1:01:58 And not only can you enter your idea, but the rest of the community…
1:02:03 …can vote on your idea with Promote and Demote buttons.
1:02:06 And most teams at Esri, particularly product managers, our engineers and developers…
1:02:11 …even our team, we're reading this thing all the time and we're using it as a major piece of input…
1:02:17 …in order to figure out what to do next with the product.
1:02:19 When an idea is under consideration or implemented into the product…
1:02:23 …we badge it so that you know that it's already been taken care of…
1:02:26 …or already underway at least on the whiteboard.
1:02:30 A lot of developer help, like adding…like this one for Desktop…
1:02:34 …adding and removing tools from menus and toolbars.
1:02:37 A lot of descriptive information, a lot of screen snapshots and step-by-step walkthroughs.
1:02:43 ArcGIS Online, great place to find code…
1:02:47 …find apps, code snippets, layers, layer packages, geoprocessing tasks.
1:02:52 You know, before you write something from scratch, it's good to search around…
1:02:55 …and see if someone's already done it and if they've shared it.
1:02:58 And ArcGIS Online's a great place to go to do that.
1:03:02 There's over 3,000 public groups that you can join and get the stuff that they're sharing…
1:03:08 …whether it be apps or maps or layers or what have you.
1:03:11 There's one right there at the top, I think you saw called Python Resources.
1:03:15 It's a group someone created.
1:03:16 Let's create a group for Python Resources and put all kinds of stuff there.
1:03:21 There's web apps and mobile apps that are shared by the community, and you can see these things run.
1:03:25 Some of them have source code, some of them don't.
1:03:27 Even the ones that don't, sometimes you can get some clever ideas on how people did certain things.
1:03:32 And you can always leave comments from them…
1:03:34 …for the people that uploaded these things, and ask them questions.
1:03:38 Esri Developer Network is a subscription-based product…
1:03:42 …that you can get basically the entire ArcGIS stack for an inexpensive developer license.
1:03:47 Although the stuff Andy showed, the web and mobile stuff, that stuff's already free for developer use.
1:03:52 It's not a part of EDN.
1:03:53 But if you want to get ahold of Server, whether it be on your machine…
1:03:57 …or in an Amazon EC2 AMI, ArcGIS Engine, ArcGIS Desktop, it's all a part of Esri Developer Network.
1:04:05 We have a jump page, which lets you control your licenses…
1:04:09 …control your subscription, also some links for resources and also some social media links.
1:04:15 Training, we have a lot of training.
1:04:17 That's online…a lot of classroom training.
1:04:19 In fact, 40 percent of our training seats this year are remote, online training.
1:04:25 And that percentage is continuing to grow.
1:04:28 A lot of people are asking for cost-effective ways to get training…
1:04:32 …in a way that they don't have to sit in a classroom for a whole week, or travel somewhere.
1:04:36 So everyone's doing this, we are too.
1:04:39 We also have…we still do have instructor-led training.
1:04:42 We have Virtual Campus courses, over 80 courses online.
1:04:45 Those are self-paced that you can take.
1:04:47 Some of them are free.
1:04:48 Live training seminars are all free.
1:04:51 And you should check that out on the site.
1:04:53 Here's an example of a live training seminar.
1:04:55 It's a one-hour training seminar, live webcast…
1:04:59 …with an interactive text chat to talk to the instructors during the Q&A period.
1:05:04 But it's training.
1:05:05 There's Dave Cardella, you probably saw him during the plenary.
1:05:07 And this was a training course that was done a little while ago…
1:05:10 …Introduction to the ArcGIS API for iOS.
1:05:13 You want to get started with iOS iPhone apps, you want to use our API…
1:05:17 …if you weren't able to attend the live webcast, of course, we record these…
1:05:21 …and we put them up on the training site as well.
1:05:24 So you could always watch the training for free if you weren't able to participate.
1:05:28 And whenever we do one of these live training seminars, we do them three times a day…
1:05:33 …spaced out around the clock in order to get the greatest global reach as possible.
1:05:38 You don't have to be in the Pacific time zone to take advantage of something like this in business hours.
1:05:46 Tech support is always a great place to get specific problems answered and knock some ideas against.
1:05:52 If you're under maintenance for our products you get tech support, you can log it through a form.
1:05:57 We also have a live text chat…
1:05:59 …where you can talk to a developer support analyst or technical support analyst for help.
1:06:06 I mentioned this before about the Developer Summit.
1:06:08 This is premier geospatial developer conference of the year.
1:06:11 We had almost 2,000 people here last year in March…
1:06:15 …and it's a great place to get all the deep-dive developer stuff and get yourself ready…
1:06:21 …for the next 12 months of using this technology.
1:06:24 It's typically in March in Palm Springs, California…
1:06:27 …but the cool thing is, if you can't get there, we record all these sessions.
1:06:31 In fact, we recorded about 130…
1:06:34 …deep-dive developer technical workshops from 30 minutes to 75 minutes each.
1:06:39 Actually, of them are three hours long…the preconference seminars.
1:06:42 We recorded those, too.
1:06:44 And we put them all up on the Resource Center for free…
1:06:47 …so that you could watch all of those tech workshops if you're not able to get to the Dev Summit.
1:06:52 Dev meet-ups is something we started last year.
1:06:54 It's just a nice technical social that's run by various teams in regional offices around the US.
1:07:01 And we're also kicking this off globally as well, through Esri international distributors.
1:07:07 It's a great place to get together and meet other people that are doing what you're doing.
1:07:10 We normally invite a keynote speaker of developer interest…
1:07:14 …let you do the Lightning Talk so that you can share with other people what you're doing.
1:07:18 And it's a fun time.
1:07:20 So check that out on esri.com/devmeetup to see when the next dev meet ups are happening.
1:07:29 We'll probably in the next 12 months do about 40 of them within the US and more outside as well.
1:07:35 They're a lot of fun, and they're free.
1:07:37 It's just a few hours after work on a Wednesday or Thursday night somewhere.
1:07:40 We get a back room of a brew pub or a restaurant…
1:07:42 …make sure it's got Internet connectivity, and we just go for it.
1:07:47 We also promote these and put these up through meetup.com.
1:07:52 Has anyone used meetup.com for any reason?
1:07:55 Okay, so you could just go to meetup.com and search for Esri to see if there's a meet up group near you.
1:08:00 And if there isn't a meet up group near you, let us know.
1:08:02 Get on Twitter, let us know, send us an e-mail, whatever…
1:08:05 …and we'll see if we can work with you to get a meet up group going.
1:08:08 Of course we're on Facebook, we use Twitter a lot, LinkedIn…
1:08:11 …because you're already there, so are we.
1:08:14 A lot of people at Esri are on Twitter, great place to find out what's going on…
1:08:19 …what's new, new blog posts, maybe ask some quick questions as long as they're under 140 characters.
1:08:25 Esri TV on YouTube…constantly putting videos there.
1:08:28 We have a blog just for developers.
1:08:31 ArcGIS Developer blog.
1:08:32 In fact, that's a snapshot of the application that you showed, the Everest application, yeah.
1:08:40 Okay, we have Wiki.gis.com…you can contribute!
1:08:42 We have thousands of documents, hundreds of contributors.
1:08:46 There's a lot of developer content on there as well.
1:08:49 How many of you used to use stack overflow?
1:08:52 If you're a developer and don't use stack overflow, I think you're missing a lot.
1:08:55 It's at least worth a look.
1:08:56 It's not ours, but I wanted to mention it anyway, because it's a great resource.
1:09:00 It's a Q&A site for developers.
1:09:03 You ask and answer developer questions.
1:09:05 You can search for content because it's been around for a little while.
1:09:08 The community votes on what answers are the best.
1:09:10 So when you go to a question and it's got 12 answers, you know the best answers…
1:09:14 …as voted by the community have already bubbled up.
1:09:16 So you don't have to read the whole document in order to get the information you're looking for.
1:09:20 There's also a stack exchange, very similar…Q&A site.
1:09:23 This one's specific to GIS.
1:09:25 Again, it's not ours, but I wanted to mention it because if you're doing GIS…
1:09:29 …even GIS development, this is a great place to go.
1:09:31 Ask, answer, vote, rate, and support the community.
1:09:36 And learn…if you're new to development in general.
1:09:40 How many of you have read this book, Code Complete?
1:09:43 There's lots of books out there, and you go to Borders…
1:09:45 …oh, you know, shelves of how to do whatever with development.
1:09:49 If I had to recommend one book for someone who is a GIS professional…
1:09:52 …that's just getting started with the hacking…
1:09:54 …maybe not classically trained in software development…
1:09:58 …of the entire development cycle, the center section is coding…the coding itself.
1:10:03 And this book helps you with a lot of the concepts of starting to think like a coder…
1:10:08 …so that you can code efficiently and write code that works well…
1:10:13 …it's efficient, it's easy to test, it's easy to modify.
1:10:16 It's a great book, it's been around for years…
1:10:18 …but it's just recently been updated to reflect some new technologies.
1:10:23 So welcome to the conference, I know we're right in the middle of it.
1:10:26 We have 30 developer track sessions, product islands…
1:10:29 …you can talk directly to the engineers and developers…
1:10:31 …you've got specific problems you can go to the tech support island.
1:10:35 And I just want to mention, esri.com/sessionevals is a place you can go for all the sessions…
1:10:40 …that you go to give us some feedback if you wouldn't mind, and let us know…
1:10:44 …how it went and how we can modify it for next year.
1:10:47 In fact, we did this session last year…
1:10:50 …but we had it all oriented toward experienced developers that are new to GIS.
1:10:54 And we totally missed the mark on the GIS pros that are new to development.
1:10:59 And we got that in the session evals.
1:11:00 So Andy and I went back to work and we totally reorganized this session.
1:11:05 So if you could give us feedback to how we can make it even better next year, that would be great.
© Esri 2013 http://www.esri.com