Transcript
00:01Hi, my name is Jim Barry. I'm with Esri in Redlands, and I'm the program manager for the EDN program.
00:06And with me, as always, is my trusty sidekick Andy Gup.
00:13Or I'm your sidekick.
00:14One or the other. Anyways, you can reach us on Twitter using those names.
00:18But welcome! This is ArcGIS for Developers—An Introduction.
00:22Very high pass, very introductory level look at ArcGIS.
00:28You've seen a lot over the past few days, and you've probably used ArcGIS for many years.
00:33And 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:44But 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:06So it's a big landscape, so the idea today is to give you a high pass.
01:11It'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:30Or, perhaps if you go to the Developer Summit that we run each March in Palm Springs.
01:35How many of you have gone to the Developer Summit?
01:38Okay, some of you.
01:39It's a great experience for geospatial developers.
01:42Best conference for that to get real deep-dive stuff into our developer technologies.
01:48Exactly not what we're doing today.
01:50So 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:02We'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:15So you develop apps but you want to bring maps into them.
02:19So if I can ask, just a show of hands.
02:20How many of you consider yourselves to be GIS professionals, maybe a little bit new to the developer stuff?
02:26Okay, about half the room.
02:27How about the others?
02:28Experienced developers, maybe a little bit new to GIS?
02:31Okay, so about roughly a half.
02:34But 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:46So if you're here as well, that's great.
02:48So what we're going to cover is ArcGIS, but from a developer angle.
02:53We're going to look at it as a developer toolbox.
02:55What 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:06We're going to cover desktop applications, high pass.
03:09I'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:14I'm not going to say the whole thing is easy, because it's not.
03:17But it's easy to get started, and it's easy to grow, and we provide plenty of resources for that.
03:23Then 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:36Then 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:50And then I'm going to take a couple of minutes and go through developer resources.
03:53It'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:59And, 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:05If 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:12It explains what GIS is and shows some case studies for how people are using it.
04:16There's also gis.com that goes into this stuff a little bit more, also it has tabs for learn GIS careers and GIS.
04:24It kind of gets a good feel for what types of things are being done.
04:28You've probably seen this slide before, ArcGIS 10, the Complete System.
04:32What 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:42Let me start with ArcGIS Explorer.
04:43The reason why I start here, it's the freest thing you can do.
04:47You can download, it's a Windows application that anyone can freely download and install and use.
04:52It'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:01You can also bring in some fairly advanced geoprocessing services.
05:05So 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:16You can use ArcGIS Explorer pretty aggressively…
05:18…to do some GIS processes that are normally a bit heavier.
05:23So it's free to use.
05:25It's free to develop against.
05:26You can download the SDK for free, and then you can also deploy for free.
05:30There'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:38Everything from top to bottom, from the application to the SDK…
05:41…to developing and deploying, you can do for free.
05:45And there's really two options for developers.
05:47One is application configuration without any code whatsoever.
05:51ArcGIS 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:14Something that's really custom-tailored to, let's say, I need an application that just does three things.
06:20I don't need to train my users, just need them to do three things.
06:23ArcGIS Explorer provides a customization way to do that.
06:27The second option is the ArcGIS Explorer SDK.
06:29You can create your own add-ins.
06:31You 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:44So 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:04The 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:23Creating 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:36You 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:52What do you do after you create an add-in?
07:54Well, 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:04You can upload it to the world so that anyone can download your add-in and use it.
08:08Or, 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:17Arcgis.com is not just about sharing with the world, it's sharing with a group that you control.
08:22And that's a platform that you can use for sharing.
08:26It provides, in the ArcGIS Explorer options, gives you the option for managing your add-ins.
08:33You 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:39ArcGIS Explorer Desktop team also blogs pretty aggressively.
08:43They go into details about how developers and users can use ArcGIS Explorer.
08:48They tell big-picture stories about what people are using with Explorer.
08:52And if you want to know more details, because this is just…I want to dig in, but I can't.
08:57But 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:13ArcGIS 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:25But there's also a developer angle.
09:29So the first thing I want to do is create a map with ArcMap.
09:35I'm going to add a basemap from ArcGIS Online.
09:39There'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:47Then I have a point feature class of customers, some of my customers in downtown Denver.
09:54In fact, if I zoom in on that layer, it zooms in.
09:59I can zoom out a little bit if I want.
10:01And those are some of my customers in downtown Denver.
10:04And I'm going to go ahead and save that as an MXD or a map document that's sharable and reusable.
10:12So I can save that on disk.
10:13I'll go ahead and do that.
10:15And for those of you who haven't seen ArcMap, that's basically the Hello World of using ArcMap.
10:22Add 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:33So that's create a map, and I'll get back to that one.
10:36We're going to reuse that one over and over.
10:39Okay, so ArcGIS Desktop, there are four options for developers.
10:44There'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:56So we basically expose everything to you that's exposed to us, pretty much.
11:02But there's also a simpler option of add-ins, just like you can with ArcGIS Explorer.
11:07We provide add-in templates that you can use to create add-ins.
11:09And then there's also script tools.
11:12There's Python scripting that you can use in order to customize the experience.
11:16So what does customizing the UI look like?
11:18Well, 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:27You couldn't possibly turn them all on even in a high-resolution screen.
11:31You wouldn't see the map anymore, you'd see nothing but buttons and tools.
11:34So 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:50And you're not coding at all.
11:53Okay, the next is ArcGIS Desktop…I'm sorry, ArcObjects...
11:58The ArcObjects API.
11:59And this is what I was talking about, about all the object models.
12:02I'm not going to ask you if you can read it from there, because I can't even read it from here.
12:06But, 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:15Can be daunting, but this API has been around for over 10 years now.
12:20There 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:35It'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:41Now if you started with this back at version 8.0, you're basically writing everything from scratch.
12:45We had no templates and the community really hadn't jumped in yet.
12:50But a simpler way that started just a couple years ago is creating add-ins.
12:56And 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:10It's really just a ZIP file.
13:12But we call it Esri add-in so that our application can recognize that it's part of the system.
13:16And when you put…and you don't even have to install it.
13:20There'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:31And 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:38So that ZIP file encapsulates everything that you need.
13:43Here's what the templates look like in Visual Studio.
13:45You install the ArcObjects SDK…
13:48…you get these templates to create an ArcMap add-in, an ArcCatalog add-in.
13:56Add-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:10You can create toolbars and menus and combo boxes, and create extensions.
14:14You could do some pretty advanced stuff with add-ins and deploy them and maintain them fairly easily.
14:20In 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:27You know, at the end of the day, you know, you're coding bug fixes or improvements to your add-in.
14:32When 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:42So it's a nice, simple way to deploy.
14:47So you can create add-ins, you can bring add-ins into the system this way.
14:52There's an add-in manager so that you can manage the add-ins more manually if you want to.
15:00The ArcObjects SDK has a pretty extensive help system…
15:03…lots of samples, lots of conceptual help and tutorials as well. Okay?
15:11So what I'm going to do is I'm going to find and install an add-in.
15:16And what I want to…and I'm going to go find an add-in that I want and install it.
15:20Something that was shared.
15:22So 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:40So let me…I happen to know that there is a tool out there for importing GPX files.
15:46These are GPS exchange format files.
15:49And I want to take those points from a GPS device and bring them into ArcMap.
15:53Well, 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:04And I just say, I'll just take the defaults and go ahead and install the add-in.
16:08It says that it succeeded.
16:12And 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:26And it's under Commands, and it's going to pop up here soon.
16:31There's my add-in controls, and there's my GPX import.
16:35So 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:42Asks me to navigate to the GPX file, imports it as a point layer.
16:48So if you share things on arcgis.com, others can download it and install it almost as easily, okay?
16:57Next is ArcGIS Engine.
17:00ArcGIS Engine is sort of like ArcGIS Desktop, except it's only components, there is no interface.
17:05It'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:19And oh, let me see…And so as you can see, I'm totally within Visual Studio.
17:26There's thousands of classes, over a dozen controls.
17:30And this is when you want to create and compile…
17:33…and deploy stand-alone applications using Windows or Java.
17:38I'm going to go with Windows here.
17:40I'm in Visual Studio.
17:42I'm going to create a brand new project.
17:45And when you install the SDK, you get all of these templates that you can choose from.
17:49I'm just going to choose a Windows application using ArcGIS Engine, and click OK.
17:54And this is what's going to be included by the wizard.
17:58And 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:07So 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:23Okay, 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:41I'm going to add a map control to the form, and also the table of contents control.
18:49Once it comes back…and also a toolbar control.
18:54And 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:20It can do it, now it's not going to do it.
19:24Alright, there's my map control.
19:26Okay, now I want a license control in order to control the license that the application will use at runtime.
19:37Oh, there it is. Oh, I have two license controls, I don't want that.
19:44Alright, 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:59Alright, 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:10And 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:25Alright, and then I hit OK.
20:28And 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:35And same thing with the toolbar control.
20:37Now all three of these controls are bound together.
20:40You don't have to write the code that binds them.
20:42They're all now bound together.
20:43Now if I go the toolbar, what do I want?
20:45Well, I want to add some tools for my user.
20:49And like I said, there's dozens of toolbars and hundreds and hundreds of tools to choose from.
20:53I'm just going to go real simple.
20:55I want a zoom-in box, I want a zoom-out box, I want a full extent, and a pan.
21:04It doesn't get more hello-world than this, folks.
21:09And 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:17Alright, and so it's easy to get started.
21:22We used to have a product years ago called MapObjects.
21:26And it was a great product, I loved it.
21:27But everything you had to do, every little thing you had to do, you had to code.
21:31So 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:41But 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:52So Voilà! I've just created the smallest GIS application in the world.
21:58And I have to go to UI design school.
22:01So there you go.
22:02That's pretty quick, and at least to get started.
22:07So that's Engine.
22:09So, but what if you're a new programmer?
22:10How do you get started with Visual Studio?
22:14Well the express editions of Visual Studio are free, and you can create add-ins with the express edition.
22:20And then there's lots of online training, there's beginners books that you'd see at Borders and stuff.
22:24I recommend those for the basics of data types and conditions and looping and things like that.
22:30But the MSDN site also has lots of tutorials and videos and sample code.
22:34And then, if you're like me, you're like…when you're using a technology, you say, Where's the community?
22:40Well, the community for Visual Studio, here's just a couple.
22:42But there's lots and lots of them.
22:44Here's two that I like at least for Visual Basic…
22:47…when I'm hacking around, is vbforms.com and extremevbtalk.com.
22:50These are very, very active.
22:52And 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:59But 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:05So jump into the community when you can.
23:07Geoprocessing, what are your options?
23:09Well, we provide a Python scripting language...
23:11…and you can create add-ins and geoprocessing packages with it.
23:17And there's lots of conceptual help and sample help on the Resource Center.
23:23So let's go back to that ArcMap application.
23:27And I have that point layer of my customers.
23:30And 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:38So I have my customer 3 layer, I want my output layer to…let's just call that output 99.
23:47What distance do I want to buffer these points?
23:49Let's go with 750 feet.
23:51Notice how I'm using that very naturally.
23:53750 feet in quotes.
23:56And then it's got some additional options, I want them fully buffered.
24:01I want the ends to be flat, which they're not going to be, because they're not lines.
24:05I'll go ahead with all I want to dissolve.
24:10I want all of the buffers to be dissolved if they intersect with one another.
24:14And I'll let that run for a little bit.
24:16And 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:24There 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:30And 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:41So that's…and, when I'm writing in Python, I can save that as a tool.
24:47I can save that to the toolbox.
24:48And if I want, I can put that on the interface for people to run.
24:53And 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:03Okay? So I hope…Okay, how do you get started with Python if you haven't touched it before?
25:11Start with Python.org.
25:13It's a great resource.
25:15Lot of doc, lot of samples, tutorials, and the community is there as well.
25:20Of course, there's lots of books and lots of training out there on Python, but I recommend you start here.
25:25Geodatabase, what are your options?
25:27You have three.
25:28As I showed you with Engine, you have all these tools.
25:32Well, there's lots of editing tools in there too.
25:34There's a lot of data management tools in there that you can drag onto the toolbar.
25:37So there are components that are already written that you can leverage…
25:40…into your applications without writing much code.
25:43There's also the geodatabase object model.
25:46Remember, I described the huge ArcObjects object model.
25:48Geodatabase is just one of those parts that gives you pretty much full access to the geodatabase.
25:54You can break as much as you want.
25:58That's what I do.
25:59And then, relatively new is the file geodatabase API.
26:10This is a freely released API you can read and write file geodatabases without needing ArcGIS at all.
26:19So 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:36There's lots of options, and you can use it on Windows or on Linux.
26:40So next, Andy…Andy's going to take you through client/server…
26:44…and the whole web and mobile side of this landscape.
26:50Thanks, Jim.
26:52We'll see if I can click this on and it will actually stay.
26:58Can you hear me now?
27:01In the back?
27:03Alright, ArcGIS Server.
27:07It does help if we switch screens.
27:11Minus two points, right?
27:14We're just striking out on this little clip here.
27:17Whoever invented it needs to…we need to get our money back.
27:21Alright, I think that's going to stay.
27:25Alright, ArcGIS Server.
27:27ArcGIS Server is really the heart of the system that we're talking about.
27:31And 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:43I'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:53I do want to let you know that I'm going to cover a lot of material.
27:57If 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:11There. It's probably a little bit better to see when it's in presentation mode.
28:15ArcGIS Server is a system that lets you work with many clients.
28:20And like I said, ArcGIS Server is really at the heart of this system.
28:24ArcGIS Desktop is a client of ArcGIS Server, ArcGIS Explorer is also a client…
28:29…and many more as you can see there.
28:32And 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:46So 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:00It's using the Silverlight API.
29:03You can look at the information on crime on a time basis, you can create client-side hot spots.
29:11It'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:18So where there's more crime you'll see red, where there's less crime you'll see blue.
29:22This 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:33This application is also built with the Silverlight API.
29:36It 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:50We also threw in some geoprocessing which Jim was talking about.
29:54So 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:04This application was built with the JavaScript API.
30:07It's bringing in real-time flood information and real-time radar.
30:12And 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:19It's other information that's published by other people…
30:21…like you and other services around the country or the world.
30:26This application, City of Greeley, built with the Silverlight API, it's a tax parcel map.
30:32Not only do you have rooftop information, but you also have fire hydrant information…
30:37…water and sewer information, and much, much more.
30:40And the Silverlight API as well as our other APIs…
30:43…give you the framework on which to build these things.
30:46I just threw this one in there because it's beautiful cartography.
30:50This was built as a custom layer.
30:52And 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:08Hopefully, now you're wondering, you've seen these applications, what point am I trying to make?
31:14What's going on behind the scenes and how does this stuff work?
31:17And if I can emphasize anything, your data is at the heart of this system.
31:22And 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:30What 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:38And the way we do that is we create what we call GIS services.
31:41And those are function-specific.
31:44So 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:53Geoprocessing, querying, there's many others that I'll get into in just a minute.
31:59Web services is how that data in the GIS services is manipulated.
32:05And we have three.
32:06We have REST, SOAP, and OGC.
32:09And throughout the week, you may have heard of WMS, web mapping services…
32:13…WFS, web feature services…those are all OGC.
32:17And we also have a SOAP, API in ArcGIS 10.
32:23Client APIs let us wrap the web services so we don't have to do much work.
32:28And we have four of those, four different types available.
32:32We have mobile, JavaScript, Flex, and Silverlight.
32:39If you didn't write those down, I'll have another slide in just a minute.
32:43What is a GIS service?
32:45Remember, 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:00That is all a GIS service is.
33:02And there's many different types, depending on what type of data you have…
33:06…and how you want to deploy it.
33:09Pretty straightforward.
33:11There's lots of them depending on exactly what you want to do.
33:16I mentioned mapping, there's feature services…you may have heard us talk about that this week.
33:20Geoprocessing, which Jim already talked about, search, imaging, geodata.
33:25Lots of these services are available…
33:27If 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:37That shortcut URL is esriurl.com/arcgisservices.
33:44And 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:51So how does all this start?
33:54Where does all this begin?
33:56And it really begins with Desktop.
33:58And the only way to get your service published…
34:02…is either through Desktop or someone's already published it on the Internet.
34:07So what I want to show you here is, I have the same data that Jim was showing you earlier.
34:12And what I have is my customer information as a point layer around the City and County of Denver.
34:17And I also have some census tracts for the same area.
34:21And 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:31These are my points, it's my custom data, and I want to be able to serve that.
34:35So how do I do that?
34:39Now, 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:47But 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:01Now 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:18And when it pops up, you should see the Start button grayed out.
35:22This is the first indication, Yay, I was successful, I was able to publish this service.
35:27But 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:40And this pattern that I'm showing you is very important.
35:43It'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:53And that pattern should always be very similar.
35:56And what you're going to see is the service that you published.
35:59And 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:08But you can drill down into these services.
36:12And my server is cold so it's going to take just a second to connect to it.
36:17You 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:25There we go, it's loaded.
36:27And you can see here, here's my two layers…
36:30…here's my customer info layer that I borrowed from Jim.
36:33Here's my census tracts, here's my spatial reference…very important.
36:40And I want to point out a couple of last things for you down here at the bottom.
36:46Remember my slide? I said, How do we access this information?
36:49This particular service that I published is available through both REST and SOAP.
36:54Very good, because I'm going to be using REST…
36:56…in my JavaScript application that I'm going to show you in just a couple minutes.
37:01And you can see here the different types of things that I can do against this service.
37:06I can view it as a map, I can run an identify process against it, Find, and I can also generate KML.
37:15But what I'm going to do is just click on Show Me the Map.
37:20And what this is, is this is my final test to make sure that that REST endpoint really works.
37:25And you can see here, I can see my points and my census tract data.
37:29Yes, everything was successful.
37:31The last thing I need to do is build that into my application.
37:36It's pretty straightforward so far, right? Pretty cool. Alright.
37:46We talked about these, how do I get the data in REST, SOAP, and OGC?
37:52These are behind-the-scenes frameworks that are letting you access that data.
37:57And 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:11And what REST is, it's a URL-based interface.
38:15And 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:33The way the REST architecture works.
38:36So 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:49That application that's built into the ArcGIS Server REST endpoint…
38:53…remember I clicked on Export Map?
38:55What 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:09And what JSON is, JSON means JavaScript Object Notation.
39:14And 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:21So this is the request that's going out.
39:24It looks just like a URL.
39:25Pretty straightforward, right?
39:27And 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:34And I proved that to you when I was at the REST endpoint.
39:41So let's take a step back for just a second.
39:45We have some web APIs that let you manipulate the REST endpoints.
39:50And the Web APIs that we have are JavaScript; we have JavaScript compact…
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:08And people always asks us, Great, that's lots of choices, but where do I start?
40:13If you're a new developer and you're not familiar with these…
40:16…I recommend that you start with JavaScript.
40:18It's much easier to get going, there's millions of samples.
40:22In order to develop on it, really all you need is a Notepad or Notepad++ to get going.
40:28If you're an experienced developer, I know there's quite a few experienced developers in here…
40:33Go 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:43So maybe you're thinking well, you told me about a REST API and you told me about a web API.
40:50Now, which one do I use?
40:52I'm kind of confused, perhaps.
40:56The nice thing about the web APIs is they wrap…
40:59…they handle all of the web requests for you behind the scenes.
41:03The web APIs you can use a very simple syntax to make the request.
41:08And here I'm showing you a pattern where it says map.add.layer = some basemap.
41:14In 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:21I would have to add parameters to this endpoint and it could get very tedious.
41:26The 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:34And that's not all.
41:36The 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:42It's called the JSON payload?
41:45You 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:52This JavaScript Object Notation stuff.
41:55In 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:03So 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:12And what happened behind the scenes was this REST request…
42:15…that's manipulating the GIS services against my map service data.
42:23That's a lot of information, right?
42:26But the one thing to remember is, those web APIs are making your life a lot easier.
42:33Lots of capabilities inside the web APIs…queries, maps.
42:38You've probably heard about all this stuff all this week.
42:40Feature layers, time awareness, editing, and extents.
42:45The 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:04The web APIs also give you a tremendous framework for integrating multiple services.
43:10I proved that to you, for example, when I showed you the JavaScript application…
43:14…that brought in real-time floodgate data.
43:18And real-time radar information.
43:20You don't have to build this framework by hand.
43:23The 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:32Like that beautiful cartography that I showed you for Boulder County.
43:36You can do that, and it's just a few lines of code.
43:39And that's the real power of the web APIs.
43:44You may have already heard, and I've used and referred to things such as syntax.
43:51And 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:04If I say hola to you, it also means hello. We say different things in the different languages.
44:10As long as you understand the concept…
44:13…you can at least figure out how these particular things are working.
44:17And it's just something to keep in mind as you go throughout the week.
44:21We also talk about patterns.
44:23And 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:34It 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:46And 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:55Because even though the syntax is different, we're accomplishing the same thing.
45:00In this pattern, we're defining a query task…
45:03…which is, I want to get information out of my geodatabase.
45:07The 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:14When it's done, I need to tell it do something.
45:16I'm going to assign it what we call some properties, and then I always have to tell it to execute.
45:23And execute is going to happen when someone clicks on the map, or someone clicks on the button.
45:29And when it's done, up in Step Two, I'm going to do something with that information.
45:35And 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:49So let's take a look at what this looks like.
45:53Alright, 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:01So what I'm going to do in this particular application…can you see it better?
46:07What I'm going to do in this particular application is, this pattern should look familiar, right?
46:12I'm adding my basemap, which is a street map.
46:16I'm adding my custom layer that I just published from Desktop.
46:21And like Jim said, I also added a geoprocesser service here.
46:27And the pattern that all this stuff follows is, here's the pattern.
46:33What do I do when my map loads?
46:35Well, I run all this information here.
46:38And I have another pattern in here that I want to use.
46:41I want to be able to identify a census tract…I almost said tax parcel.
46:47I 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:55I'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:11But that's not all.
47:13Also built into this application, I'm following the same pattern again…
47:18…when I'm running a geoprocessing service.
47:22You're seeing the pattern again here.
47:24I have some features and I'm telling it to execute this geoprocessing task.
47:30And 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:37And that's why these patterns are so very powerful.
47:41So let's look at what that looks like when we actually run it in an application.
47:45Ha! I cheated there.
47:47Alright, so it's actually loaded here.
47:51And 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:00When 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:11I can also click on my points.
48:14This is the point layer that I had in Desktop.
48:16That information is being processed through that Identify task in my code.
48:21And I can also run this geoprocessing service.
48:25And I was calling that Drive Times.
48:26And remember, I said there's a trigger…
48:28…when you want to run one of these functions…these services.
48:33And in this case, I click on Drive Times.
48:35Now, 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:47The 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:02Still with me? Yep.
49:07Alright, if you want to make your life easier…
49:09…you're thinking, Oh, my God, I have to build everything from scratch.
49:12We 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:18The ArcGIS Viewer for Flex…again, I know that there's no hyperlink there.
49:22It'll be available in the PowerPoint after the conference, or you can go to resources.arcgis.com.
49:29We 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:38We also have ArcGIS Mapping for SharePoint.
49:41The 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:53And 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:06Whew! Alright, that was web GIS.
50:14I'm going to switch gears to mobile GIS.
50:15I just wanted to prepare you, context shifting.
50:19Mobile GIS…we have two different categories of our APIs…
50:26…and developer offerings for mobile GIS.
50:28We have ruggedized devices, which includes ArcGIS Mobile and ArcPad…
50:33…and we have smartphones.
50:35I bet…how many of you in here have smartphones?
50:39And those of you who don't you don't have to be ashamed.
50:41Almost everybody.
50:42We have iOS, Windows Phone, and Android.
50:46All of the major flavors.
50:49Our API for smartphones are specifically designed for touch-based interfaces…
50:54…because that's how you're using these.
50:56Some of them have keyboards…
50:57…but I'm guessing most of the time you're using a touch-based interface.
51:00So 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:08These are primarily designed to work in what's called an assisted GPS environment.
51:15So 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:25But it's not super accurate.
51:27Most commonly, these are used in instances such as emergency operation…
51:38The ArcGIS API for iPhone, iOS, is a native Objective-C programming language.
51:45It's using the REST interface that we just looked at a few minutes ago.
51:50It does require a Mac.
51:52So if you're planning on doing iOS development, you're going to need to get a Mac.
51:57And 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:07ArcGIS for Windows Phone is using a C Sharp Silverlight API…
52:12…so you .NET developers should feel very at home.
52:15It's integrated into Visual Studio 2010.
52:17It's also REST-based, which is really convenient.
52:21And if you want to see how this application works on your phone…
52:24…you can download the ArcGIS Windows Phone application.
52:27You can get that off the Resource Center.
52:33Android, native Java API, so if you're a Java developer, this is the way to go.
52:41The 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:52So if you want to get involved in that, see what other people are saying…
52:53It also runs on many devices.
52:56For those of you that do have Androids…
52:58…you may have noticed that there's many different shapes, sizes, manufacturers.
53:03Android also comes as an Eclipse plug-in.
53:06If you're using Eclipse again, that'll be very natural for you.
53:12The 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:24And that information is on the Resource Centers.
53:27ArcGIS for rugged devices.
53:31Designed for harsh field conditions.
53:34And again, which API you're using depends on the requirements for your particular application.
53:40This is for high-accuracy data collection.
53:43And 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:59Or if you need to enter that into your application and update the GIS database.
54:09The ArcGIS Mobile SDK is built on the older versions of the Microsoft operating system for Mobile.
54:17It'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:27So 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:39And it's specifically designed to run in connected and disconnected environments.
54:44ArcPad is specifically designed to run in disconnected environments.
54:49It's for extremely accurate field data collection.
54:53And the example I just gave you is very applicable to this type of device.
54:57You 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:08It uses .NET and it's an XML-based interface that you can manipulate through a UI designer.
55:19As 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:29And 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:36Much 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:45Think about very focused web applications.
55:48These 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:55They have inconsistent interconnections, slower processors…
55:59…the battery life is potentially more limited.
56:02These 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:13Last but not least, I'm going to go through these pretty quick.
56:16If you miss something, come up afterwards or grab the PowerPoints later.
56:21And 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:29Training, if you're interested in the Adobe Flex API, Flex.org is a great place to go.
56:35They have videos that I think are some of the best that I've seen on the Internet.
56:48Getting started with JavaScript, dojotoolkit.org…In our JavaScript API, we use the dojo engine.
56:56That's a great place to go for information on what's in the interface.
57:00Tutorials, W3Schools.com, many examples.
57:06They also have applications in there where you can change different things…
57:11…in JavaScript and see what the results look like in real time.
57:14And I always suggest that to people as a starting point.
57:17A great community for dojo at dojotoolkit.org/community.
57:22JavaScript, basically all you have to do for JavaScript is, there's a million samples out there.
57:26Just search for what you're looking for and you're going to hit something very quickly.
57:33If 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:42The online resources for Silverlight are available at msdn.microsoft.com.
57:48That would be the online documentation.
57:50And there's a great community at Silverlight.NET.
57:55…or ask Silverlight-related questions, that's a great place to go.
58:00Getting started with Android, developer.android.com is the place to go.
58:06For 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:16They have lots of samples and it's a great place to go.
58:22iOS, developer.apple.com, that would be what I write down if you're interested in iOS.
58:30And 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:38Simply just using the emulators in these SDKs isn't going to be enough.
58:42You really want, in the end, to test it on one of these phones…
58:46…before you release it out into the wild.
58:50Windows Phone, App Hub.
58:53Looks like it's spelled there.
58:55App Hub is the place to go if you're interested in Windows Phone development.
59:00And I hope you found that section interesting.
59:02That's all I've got.
59:04I've got a few more things here…
59:07I'll turn it over to Jim to wrap it up.
59:10Resource 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:20We touched on some of it already, I'll touch on some more real quick.
59:23It gives you focused access.
59:27Every 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:34Here's the geoprocessing, conceptual help, detailed help, Python scripting help.
59:39ActionScript.org is the perfect place to go if you're interested in the ActionScript/Flex Flash community.
59:40The JavaScript Resource Center is great because it has hundreds of runnable code that exercises…
59:48…most of the basic functionality that you can copy and paste and run with.
59:52In fact, I met a gentleman a couple weeks ago in South Carolina…
59:56…who built…used the JavaScript API to build a website for his city.
1:00:01And it looked like a lot of the stuff came right from the help.
1:00:05I asked him what percentage of that application came from the help.
1:00:09He said about 97 percent of it was just copy, paste from the help, and he just adjusted some paths.
1:00:15At least to get started.
1:00:16He wants to do more with it, but at least it's something that can get up and running pretty quickly.
1:00:20Silverlight help in the Resource Center is also a great example.
1:00:23We have something in here called the interactive SDK…
1:00:27…where you can actually run in the website here.
1:00:30This is not a static snapshot, it's actually an application.
1:00:33And if you like what it's doing, you just click the code behind and grab that code and run with it.
1:00:40The various development teams and engineers at Esri like to blog.
1:00:43They 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:50So that's a great way.
1:00:51I know here you're talking to a lot of Esri staff, that's great.
1:00:54But 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:00We also have a whole set of discussion forums…
1:01:03…that we're using vBulletin engine, very popular discussion forum engine.
1:01:07This forum right here is just one of them.
1:01:09It's the Python forum.
1:01:11It'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:23So it's a great little forum, there's dozens of other discussion forums out there.
1:01:27We also publish a lot of videos from our conferences…
1:01:30…and presentations we do, training workshops, tech workshops.
1:01:34We 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:42We also have an Ideas site.
1:01:43Have any of you used the ArcGIS Ideas site?
1:01:46Okay, a couple of you.
1:01:48This 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:58And 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:06And 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:19When 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:30A lot of developer help, like adding…like this one for Desktop…
1:02:34…adding and removing tools from menus and toolbars.
1:02:37A lot of descriptive information, a lot of screen snapshots and step-by-step walkthroughs.
1:02:43ArcGIS Online, great place to find code…
1:02:47…find apps, code snippets, layers, layer packages, geoprocessing tasks.
1:02:52You 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:58And ArcGIS Online's a great place to go to do that.
1:03:02There'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:11There's one right there at the top, I think you saw called Python Resources.
1:03:15It's a group someone created.
1:03:16Let's create a group for Python Resources and put all kinds of stuff there.
1:03:21There's web apps and mobile apps that are shared by the community, and you can see these things run.
1:03:25Some of them have source code, some of them don't.
1:03:27Even the ones that don't, sometimes you can get some clever ideas on how people did certain things.
1:03:32And you can always leave comments from them…
1:03:34…for the people that uploaded these things, and ask them questions.
1:03:38Esri 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:47Although the stuff Andy showed, the web and mobile stuff, that stuff's already free for developer use.
1:03:52It's not a part of EDN.
1:03:53But 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:05We 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:15Training, we have a lot of training.
1:04:17That's online…a lot of classroom training.
1:04:19In fact, 40 percent of our training seats this year are remote, online training.
1:04:25And that percentage is continuing to grow.
1:04:28A 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:36So everyone's doing this, we are too.
1:04:39We also have…we still do have instructor-led training.
1:04:42We have Virtual Campus courses, over 80 courses online.
1:04:45Those are self-paced that you can take.
1:04:47Some of them are free.
1:04:48Live training seminars are all free.
1:04:51And you should check that out on the site.
1:04:53Here's an example of a live training seminar.
1:04:55It'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:04But it's training.
1:05:05There's Dave Cardella, you probably saw him during the plenary.
1:05:07And this was a training course that was done a little while ago…
1:05:10…Introduction to the ArcGIS API for iOS.
1:05:13You 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:24So you could always watch the training for free if you weren't able to participate.
1:05:28And 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:38You don't have to be in the Pacific time zone to take advantage of something like this in business hours.
1:05:46Tech support is always a great place to get specific problems answered and knock some ideas against.
1:05:52If you're under maintenance for our products you get tech support, you can log it through a form.
1:05:57We 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:06I mentioned this before about the Developer Summit.
1:06:08This is premier geospatial developer conference of the year.
1:06:11We 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:24It'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:31In fact, we recorded about 130…
1:06:34…deep-dive developer technical workshops from 30 minutes to 75 minutes each.
1:06:39Actually, of them are three hours long…the preconference seminars.
1:06:42We recorded those, too.
1:06:44And 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:52Dev meet-ups is something we started last year.
1:06:54It's just a nice technical social that's run by various teams in regional offices around the US.
1:07:01And we're also kicking this off globally as well, through Esri international distributors.
1:07:07It's a great place to get together and meet other people that are doing what you're doing.
1:07:10We 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:18And it's a fun time.
1:07:20So check that out on esri.com/devmeetup to see when the next dev meet ups are happening.
1:07:29We'll probably in the next 12 months do about 40 of them within the US and more outside as well.
1:07:35They're a lot of fun, and they're free.
1:07:37It's just a few hours after work on a Wednesday or Thursday night somewhere.
1:07:40We 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:47We also promote these and put these up through meetup.com.
1:07:52Has anyone used meetup.com for any reason?
1:07:55Okay, 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:00And if there isn't a meet up group near you, let us know.
1:08:02Get 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:08Of course we're on Facebook, we use Twitter a lot, LinkedIn…
1:08:11…because you're already there, so are we.
1:08:14A 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:25Esri TV on YouTube…constantly putting videos there.
1:08:28We have a blog just for developers.
1:08:31ArcGIS Developer blog.
1:08:32In fact, that's a snapshot of the application that you showed, the Everest application, yeah.
1:08:40Okay, we have Wiki.gis.com…you can contribute!
1:08:42We have thousands of documents, hundreds of contributors.
1:08:46There's a lot of developer content on there as well.
1:08:49How many of you used to use stack overflow?
1:08:52If you're a developer and don't use stack overflow, I think you're missing a lot.
1:08:55It's at least worth a look.
1:08:56It's not ours, but I wanted to mention it anyway, because it's a great resource.
1:09:00It's a Q&A site for developers.
1:09:03You ask and answer developer questions.
1:09:05You can search for content because it's been around for a little while.
1:09:08The community votes on what answers are the best.
1:09:10So 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:16So you don't have to read the whole document in order to get the information you're looking for.
1:09:20There's also a stack exchange, very similar…Q&A site.
1:09:23This one's specific to GIS.
1:09:25Again, 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:31Ask, answer, vote, rate, and support the community.
1:09:36And learn…if you're new to development in general.
1:09:40How many of you have read this book, Code Complete?
1:09:43There'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:49If 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:03And 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:16It'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:23So welcome to the conference, I know we're right in the middle of it.
1:10:26We 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:35And 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:47In 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:54And we totally missed the mark on the GIS pros that are new to development.
1:10:59And we got that in the session evals.
1:11:00So Andy and I went back to work and we totally reorganized this session.
1:11:05So if you could give us feedback to how we can make it even better next year, that would be great.
ArcGIS for Developers—An Introduction
Jim Barry and Andy Gup introduce the ArcGIS platform and the toolkits, APIs, and resources available to developers.
- Recorded: Jul 12th, 2011
- Runtime: 1:11:11
- Views: 116962
- Published: Sep 16th, 2011
- 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 (151.9 MB)MP4 (73.0 MB)
- 960x540:WebM (363.0 MB)MP4 (149.3 MB)
If you don't have an Esri Global Login ID, please register here.