Dev Summit Final Day

24 03 2007

Day 3 Thurs Mar 22

I’m finally getting a chance to blog about this now. Steve, I, and nearly 2 dozen other attendees got totally screwed by the storms in Phoenix. However, at least we didn’t have to sit on the tarmack for nearly 3 hours like the other group waiting at the same gate. Though, by the time I got home 25 hours after leaveing the conference, sleeping in the Phoenix airport and eating only pretzals and snack mix; that wait seemed pretty trivial. I hope everyone else also eventually got home safely.

General Thoughts

This was a short day. Only 2 sessions and then the lunch & closing session. It seemed that about 25-30% of the folks had already left and a number of the ESRI devs had left as well. The sessions seemed a bit less technical that those on Wensday.

Sessions Attended

Building & Using ArcGIS Server Map Caches (Best Practices)

The MapCache is a tile cache created by rasterization & tile cutting of the data you have presented in your MXD. The main take home points of this talk were:

  • Understand what a tiling schema is 1st
  • Design your tiling schema BEFORE trying to build on for production use
  • Design a SINGLE schema that will serve the entire organization and all your data layers. In other words: Level 10 = the same scale for regardless of which layer you are building from; Tile sizes should be equal across various data sources; Use same origin point for all caches.
  • Client can rapidly reproject data to any projection system so use one that makes the most sense for both your data and web services methods (ideally, Geographic).
  • DO NOT use png24. PNG8 best if you need transparency, JPG best if you don’t need transparencey.
  • Smaller tile sizes (128×12 8) do not neccessarily result in faster performance over the web, while they take 5 times as long to produce & take up significantly more storage space than large ones (512×512). Test to make sure performance improvement is worth the extra effort. Use the largeest tiel size you can.
  • Fuse as many layers together as possible to create your base map caches. Therefore instead of Intermitten Streams, Permanent Streams, Rivers, & Lakes all being separate caches, they would be a single Hydrography cache that would appear as a single layer in the map service.
  • Each zoom level should be cartographically distinct
  • Forcing an ExportMapImage call from a web service can be a big performance hit. Understand what would make a client do that and avoid it as much as possible.
  • Building large many leveled caches can be VERY time consuming (days-weeks for worldwide layers). Pick a small area, TEST-TEST-TEST and then TEST before doing the full export, instead of having to do it over & over.
  • Cache will build over the extent of your MXD if the layer(s) you are building a cache for don’t have data in the full extent, background color tiles will be created. A waste of CPU time & storage space.
  • Dynamic cache building (a la TileCache) is planned for future releases.

Creating Windows & Web Apps with WPF

This was not at all about GIS. It was strictly on WPF.

WPF is very powerful & can provide you with a lot of UI design patterns.

Security & Permissions can be tightly controlled. Each app runs in a security sandbox. App origin, app settings, and client settings all interact to chose the most restrictive security level for the app.

You can do stuff with this technology TODAY. But, it’s real power won’t be realized until Visual Studio ORCAS is released and Vista or .Net 3 runtimes are more widely accepted. The 1 code for web & desktop paradigm is only for IE6+ with .Net 3 runtime right now. Must use WPF/E for other browser support.

Closing Session

Open Q&A after lunch. No really hard questions were asked, but Steve & other continued to point out that the extra cost of putting the ADF on a separate server is just not reasonable, and that the overall cost of ArcGIS Server is too high.




Dev Summit Continues

22 03 2007

Day 2 , Wed Mar 21

I was really hanging this morning, for someone who has a beer or glass of wine only occasionally, going beer for beer with professional buisness travelers is never a good idea. But it was free and pretty decent beer so I can’t complain too much.

General Thoughts

I got a whole lot more out of today’s sessions and meetings than the 1st day. The talks I attended went into more depth, the .Net SIG was good, and I took Brian & James’s advice and spent more time talking with devs in the Community center.

A few interesting things I learned in these informal conversations

  • ArcGIS Explorer (AGX) will NOT have a custom skining option. You can mess around with some config files and the AGX document to change color themes, but that is about it. So a custom branded AGX that looked completely like your product but was actually AGX under the art, won’t be easily done.
  • AGX has no inherent editing capabilities, no area measurement tool and no way to discover any attributes about data sources other than local vector sources. You have to capture mouse events and do that work yourself.
  • AGX has no way of directly interperting ArcGIS geometeries, you must provide a map/globe service that is spitting out rasterized data or convert that geometery to E2 geometery yourself.
  • ArcWeb Services can add an ArcIMS service & soon an ArcGIS Server service to maps, but GeoRSS feeds, PostGIS, WMS, OGC, local/server stored vectors (shapefiles,PGDB, GDB, SDE, etc) all have to be progamatically adding in by transforming and adding the geometery to the map yourself. The only other way to get those alternate sources in is to intergrate them with ArcIMS or ArcGIS Server. If you do have a WMS you could but it through the OGC/ArcIMS translator servlet and leverage it that way.
  • A large number of people have compalined about the highly fragmented documentation, poor indexing, incomplete docs, and lack of community comments on EDN & other ESRI help sites. It may just be conference talk but it looks like at least a few people at ESRI are begining to listen. Time will tell.

Sessions Attended

  • Programing Custom Tasks for ArcGIS Explorer
    • The task framework is not direct & intuitive. RTFM on that or you will really be lost. Not directly supported formats such as GeoRSS are not terribly difficult to transform into E2 geometeries and create content from a vast array of data sources. Just don’t expect AGX to do that for you. Deploying custom tasks is SUPER easy. Deploying a malicous task is also possible so watch what you download. They are looking for ways to patch that which won’t create Admin required installs. AGX2 is in the works and the more feedback you give them on the forums and directly, the better it will be.
  • Special Interest Group: .Net
    • A brief marketing talk about MS Visual Studio Team Foundation Server was followed up by Dave Bouwman’s great talk about wrapping feature classes, SDE, & GDB in .Net abstractions using well known code gen techinques from non-spatial DB. It pulled together some of his posts on the subject and made it all look like such a better way to code. I’ve actually used the same techinques on shapefiles using RapTier and either the Jet OleDb or the ESRI OleDb drivers. Shapefiles are not as ammenable to being edited in this manner as PGDB or other real database storage formats are. I can read the data very well and databind on it but updating the gives rather unpredictable results.
    • I would strongly recommend visiting Dave’s blog and checking out his talk and an resources it is an exicting concept. It also makes you wonder, why they don’t just offer Dave a position or short-term contract at ESRI to incorporate all they modern coding techniques in at least ArcGIS 10 if not 9.3. When you see simple object property assignments rather than the AO way of doing it and the self policing code it creates, you wonder why in the world would you want to do it the old way.
    • James Fee hit on the craziness that is the 9.2 server licensing & the unreasonable expectation to pay 1/2 of the 1st license cost (of ~20k at retail) to put the Web ADF on another machine. He was told, “We know people don’t like it, but that is the business model for today. We may be changing it in future releases but don’t hold your breath” (paraphrasing, not a direct quote).
  • Building & Deploying Enterprise Solutions with ArcGIS Server
    • Not a lot of good tech meat here, just an eye opening talk about all the hoops & roadblocks that deploying ESRI server products in lerge organizations that don’t conform to ESRI’s way of doing things can cause.
  • Developing Custom Web Tasks using the .NET Web ADF
    • A lot of technical meat in this session. It went a long way to demonstrate that doing interesting things using this framework is not going to be so easy. You really have to jump through a lot of hoops to make cool things happen, and you have to jump through too many hoops to make super simple things happen. They covered a lot of techniques, tips, & tricks for working with this and I highly recomend veiwing this session on the post-conference web site if available. Especially the code that way demonstrated at the last 3rd of the talk.
  • ArcGIS Mobile SDK
    • A super energetic talk was presented by Jeff & Mike. They have really worked hard to abstract all the underlying native C++ code into a 1st class .NET SDK. They have built a really nice toolkit for VisStudio & using it and the Mobile 5 libaries, you can get some nice applictions working with a very minimal amount of code. It relies heavily on MapCaches produced by ArcGIS Server and they didn’t go into creating those or pushing them out but I’m hoping to get that info in a later session. This was my favorite talk by ESRI thus far.



Thoughts on Dev Summit

22 03 2007

Day 1 (for me) Tues, Mar 20

Due to airline maintance problems, I didn’t get to the Summit until after the Plenary session was over. So I can’t comment on that although several others can.

Rob Elkins - 1, 2, 4, 5
Dave Bouwman
The Steve0

General Thoughts

I was deeply disapointed with the 1st day of Tech Sessions that I attended. I figured that the Best Practices sessions would be general overviews, but the Deep Dives I attended weren’t very deep. This was probably made worse by the fact that they couldn’t get internet connections to work during the presentations. I should have followed James & Brian’s advice to just hang out in the Community Center and listen to Tech Talks and speak with the ESRI Devs themselves. The highlight of that day was getting to meet somany of the other geo bloggers and members of the ESRI team whose names I knew but had never seen or spoken to before.

Sessions Attended

Leveraging ArcWeb Services in GIS (Best Practices)

This was a nearly utter waste of time. They basically just walked through the docs, info & help from ArcWeb Services home page. This site is in fact far more informative than the talk was. The only truly interesting bit of info from this is that AWX v2 will be coming out later in the year. It is currently in alpha right now. This will allow direct connection to ArcGIS Server and possibly OGC web services.

Building AJAX-Based Web Apps with Server & .Net (Deep Dive)

Slight snorkel would have been appropiate. Again, you could learn as much and more from the SDK docs. The main take home message from this was that the out-of-the-box toolkit and base classes have ICallbackEvent handlers pre-cooked into them. Thus you don’t have to directly handle implementing the request & response callback functions in JavaScript. You just pass and recieve delimited text serializations. They delimited text was 30-40% faster than XML. JSON adds another 12-15% and will be directly supported soon (probably 9.3).

Deploying & Tuning ArcGIS Server / Leveraging GeoProces Framework in ArcGIS Engine .Net

The Server deployment was well attended and was also the subject of several very in depth Tech Talks. Grumblings about the licensing model and its pricing structure that actually discourges implementing the best practices models continue.

I caught the last half of the GP in Engine talk. That was rather interesting. Some compliants have been made about sending big tasks off to the GP only to have them fail or crash the coputer with no ryhme or reason. Appearently you can implement a listner that will talk to you about the status of your job as it is processing. That technique is not easily discoered through help docs.

COMMENTS CLOSED DUE TO COMMENT SPAM