Art 的个人资料Art's Place照片日志列表更多 工具 帮助
9月23日

WebGIS - WinInet Limited connections

I am always on the lookout for increased performance in WebGIS applications, especially with 9.2.  Part of this search is an understanding of the basic components that I need to use to develop these applications.  I shared part of this at the last ESRI UC.

At the last ESRI User Conference, I gave a presentation on Developing Web Applications with ArcGIS Server .NET.  At the session, I had a few slides that discussed Best Practices one of which was to Understand the network.  More specifically, at most, browser uses 2 simultaneous connections per domain. 

Well, recently, we found more specifics on this in the form of a MS Article ID: 183110 published January 23, 2006.  In summary:

WinInet limits the number of simultaneous connections that it makes to a single HTTP server. If you exceed this limit, the requests block until one of the current connections has completed. This is by design and is in agreement with the HTTP specification and industry standards.

IE uses Wininet.  The HTTP 1.0 spec mandates 4 simultaneous connections while the HTTP 1.1 spec (RFC2616) mandates the two connection limit.

However, in this article it also documents how to override these default settings.  We (Rex Hansen and I) have recently tried this and found that by increasing the default connections to 5, we observed a noticeable performance increase, especially on load. 

NOTE: I do believe that there is a point of diminishing returns and I have not gone to that level of detail yet. Also, the MS Article warns not to do this in your everyday web surfing.

So, for all you WebGIS developers out there, try this out with 9.2 and let me know your findings.  As we do more, I will report it soon.

9月16日

AGS - almost there!

WOW!  The response on server has been out of this world.  We have product roll outs going on worldwide that introduce ArcGIS 9.2 (with a heavy emphasis on server).  We are just about done with it, still a bit left to do though... I have noticed a bunch of posts on AGX by James Fee and Jai Singh - Euan and his crew have been working 24/7 getting it ready for the masses - it too, will be awesome!
 
It has been a long road to final, we are almost there - hang tight.  Speaking of final - now that we are almost there... We are still looking for .NET WebGIS Developers to join our team here in beautiful Redlands, CA at ESRI.  If you are interested, send me an email.
 
As for me, I plan on starting to blog again on a more frequent basis.  Nonetheless, I myself have been scheduled to head out to the Middle East/North Africa UC (Amman, Jordan) and the European UC (Athens, Greece) towards the end of October.  The interest in Server is World-Wide!
 
 
1月23日

ESRI Dev Summit .NET SIG

Ok - I was just informed that there is a change in schedule for the Dev Summit on the .NET SIG (Java SIG as well) and the .NET SIG is now a lunch time event on Friday, March 17 from 12:00 - 12:45.  So grab your lunches and head over!
 
Still looking for more ideas...
1月20日

ESRI Dev Summit

Ok - the first ever ESRI Developer Summit is coming up and of course another .NET SIG on Friday, MArch 17 @ 5:15 - 6.  I will be hosting this again and am looking for some ideas for the SIG.  This is a time for .NET Developers (desktop and Server) to share and network together.  I will be discussing some of the new stuff I have been working on with 9.2 Server (yeah, all the cool stuff) and hopefully exposing you to some really cool stuff that others have been doing with .NET.
 
Send me comments - we want this SIG to be special!
12月23日

Christmas time

Well, it's almost Christmas, and I just got all my shopping done.  Time  to settle down and relax before the next year kicks into high gear - so I decided to take the rest of the year off. 

The next year will be even busier at ESRI than this one was.  We will be getting Beta 1 out to the beta users (work on beta 2 has already started), Beta training classes will be kicked up a notch for internal staff, the Developer Summit sessions will be needing some work, etc, etc..  A lot to do.

In the upcoming days, I will try and get some sleep, spend some quality time with the family...  Hope to find the time to blog more on the really cool things yet to come from ESRI Development

Merry Christmas, Happy Hanukah, Happy Holidays and a very Happy New Year.
12月13日

Anyone interested in working for ESRI?

My team is currently in need of some good GIS .NET Web Developers.  You will have the opportunity of working with the .NET Server team in a fast paced, highly motivated environment in beautiful Redlands, CA.
 
Skills required:
 
.NET (preferrably C# and .NET 2.0)
ESRI Server Technology experience (ArcIMS, ArcGIS Server)
Working knowledge of Javascript (not just simple validation)
ASP.NET
Team player
Loves GIS and the Web/Server
Highly motivated to get out quality products
Good communicator (preferrably with writing skills)
 
Anyone interested?  If so, send your resume to ESRI Human Resources thru the Career page on esri.com or just send them to me (ahaddad@esri.com), I will forward to HR, maybe setup a phone interview.or send them to ESRI HR and ref this blog entry and the .NET Server team position for Web Developers.
 
In case anyone knows anyone that might be looking for a position on the ArcGIS Server .NET team, please tell them about it!
12月12日

IIS Metabase Corruption - Part II

I wanted to update you on this as you might run into it yourself at some point... hopefully not. Any way, I resolved it this way:
 
Problem:  IIS Metabase is corrupted - no backup.  Try to resintall and get the following error:
 
Error writing encrypted data to the Web Servers Configuration database (Metabase)
0x8009000f=Object already exists (see image)
 
Solution:
 
1) uninstall iis.

2) Reboot into safe mode

3) remove the following folders and files ( while in safe mode ) 
A)  %windir%\system32\inetsrv
B) c:\inetpub\ 
C) %windir%\iisX.log X(w2k-iis5.log; xp,w2k3-iis6.log)

4) reboot machine.

 

12月8日

Windows .NET Development

Been a while (again).  Well, we are on the road to Beta 1, fixing showstoppers for the release, fixing sdk content, fixing broken development (mine) machines... which brings me to my topic for the day:
 
Windows .NET Development
 
Over the years, I suppose I have grown use to the idea that I will need to:
 
1) Uninstall/Reinstall software
2) Reboot hardware
3) Clean out my registry
4) you get the idea...
 
Yes, pretty amazing what you can getuse too.  Well, we are now in crunch time, and my machine is hosed to the point where I cannot continue with my 9.2 Development work.  Something about IIS Metabase being corrupted.  No matter how many times I uninstall/reinstall IIS, same problem.
 
<Rage>
$%^&JJKDI &^*(D N*&*DS*&(DS !!!!!!
</Rage>
 
Whew... I feel better now.
 
As a rule of thumb, I try and have my development machine scrubbed at least once a quarter if not more.  I had just scrubbed my machine two weeks ago and now find the IIS Metabase is corrupted.
 
I am trying to fix the problem now so that I can get back to 9.2 - what all our users are waiting for. 
 
BTW - 9.2 is starting to look pretty good...
 
Oh well, I will be up to the late hours of the night trying to fix this Windows issue... be back to work after that.  I know you other Windows developers feel my pain.  For some reason we keep doing it... must be something there...
 
 
10月11日

Async Programming Patterns in .NET 2 RC1

Working with .NET 2 has been great... up until I ran into this little problem going from Beta 2 to RC1.
 
The Asyncronous programming pattern allows us to use the framework to execute syncronous methods asyncronously.  By specifying a delegate that matches the executing method, the compiler will generate type safe methods such as BeginInvoke and EndInvoke (and others) to handle asyncronous operations. I will let you read all about it for yourself at MSDN.
 
In short, the problem is:
 
when impersonating in ASP.NET, the process identity use to flow to the async calls at Beta 2 - as a matter of fact, Keith Brown wrote an MSDN article to this fact.  At RC1, this no longer is the case and there is no supporting documentation that I can find to discuss this anywhere...
 
In ArcGIS Server, we use impersonation to connect with the GIS Server as the specified Identity within our GIS web controls. Bottom line is that each connection should be allowed to carry its own identity.  For example, if I add three AGS Services to my Map Web control, each one may have its own user/pwd combination for access to the service. I should be allowed to specify each connection with its own identity and asynchronously execute each to blend the images together then output one combined image.   Obviously, doing this syncronously would be, well, slow.
 
Well, the work around we came up with is to spin up our own Threads and explicitly impersonate on a per thread basis.  Although we have this working now, I am still looking for a "better" solution.  Will post more as I get more info...
 
BTW, 9.2 ADF is coming along well... that is for another post.
9月20日

Developer Conference in Sweden

Yes, a developer conference in Sweden.  The first ever ESRI Sweden Nordic Developer Conference in November.  This is an ESRI hosted conference and I have discovered that ESRI Sweden (along with Microsoft and IBM) are sending out approx 30,000 invites!  I have been asked to present technical sessions at this conference (mostly on .NET and ArcGIS Systems) as well as give the keynote on opening day.  This will be my second trip to Sweden - a great country.  Very exciting.
 
This will give us some practice for the one we want to have in the US closer to February 2006...
9月18日

Been a while...

It has been a while since I last blogged... it is not that I have not wanted to blog or that politics are in the way of me blogging or anything like that - quite the opposite.  I have just been too busy.
 
Well, a lot has been happening.  In that while, things at ESRI have not been dark.  Quite the opposite.  We have been working hard on a bunch of things like trying to complete 9.2 for Beta, get more focus on developers thru EDN, working on figuring out the Developer Conference stuff that was mentioned at the UC, starting a new "kickball" league, working on getting approval for a "public beta" of bits (and the infrastructure to support those bits) for the .NET Web ADF - you know, the new Spatial Controls for Web GIS that we showed you at the UC this past summer.
 
So, a little about the 9.2 spatial controls for ESRI server products.
  • Support for multiple Servers and Services - works with ArcGIS Server, ArcIMS, ArcWeb Services, OGC, and any other custom datasource that you care to implement using the new Datasource API.
  • Support for multiple Datasources in the same view - yes, we now support adding data sources (i.e. Services) to the map and manage the drawing for you asyncronously.
  • Support for .NET 2.0 and the new ASP.NET Parts framework
  • IDE Integration with VS.NET 2005 (in addition to VS.NET 2003)
  • A new Web Services publisher and framework - a new ASP.NET Handler framework written especially for ArcGIS System Web Services (*.agsx) - much faster than in 9.1
  • No more image loading graphics
  • All controls are AJAX enabled
  • Game-style navigation
  • Seamless pan support - Tiling, not enlarged images as some blogs speculated at the UC - all working thru AJAX.
  • No more image loading graphics
  • Map Tips Control
  • A new navigation control
  • ArcIMS AXL Object library - comprehensive support for ArcIMS Services in .NET.  This is not the ActiveX Connector... it is a completely new implementation written in C# with a clean object model.  Fully embraces ASP.NET.  I am really excited about this one.
  • Did I mention - No more image loading graphics ( ok, I will keep that in there for backward compatibility, but by default, it will not be enabled ;)
  • and more....

Hope this wets your appetite a bit, we have been working real hard on making this something that all of our users want to use.

I know that Brian and Rob are working hard on getting the EDN web site updated as we discussed at the .NET SIG - more on that later.  I agree with James Fee that there should not be any marketing videos on the EDN web site and I have spoken to Brian about this... I know he has a cool new video camera and is shooting some ad-hoc videos around campus - he even said he would video interview my team and get that up on EDN talking and showing off the new Web ADF and the cool new Multi-source Spatial Controls with AJAX support!  Still waiting on that one... Brian???

Oh, almost forgot, I have asked my team to start blogging and begin getting more information on using the Web ADF and ArcGIS with .NET in general.... hope to see more ESRI blogging real soon.

8月10日

Testing and .NET

I noticed a few blog posts on NUnit testing with ArcGIS and .NET in particular.  I have long been a fan of NUnit.  After moving on to VS.NET 2005 and .NET 2.0, I started to become familiar with the new features of Whidbey and noticed the new Test menu item in the IDE - this is the Team Test, part of the team sute.  Well, I tried it and it is very nice.  Even includes an automated wizard to created base tests for me and a complete management facility to run and manage the tests.  Here is a link to the new test features:
 
 
more later...
 
 
7月25日

UC Plenary and the AEWeb Demo

Ok - by now you have all heard of ArcExplorer and the GeoWeb.  The one aspect I want to hilight is the demo that was listed and shown as the ArcIMS Designer and Viewer. 
 
BTW, I thought that Sheila, Adam and Larry did an awesome job with the demos - I have been on stage before and it is not an easy thing to do. 
 
Todays details: the Web Application Site builder (aka Designer ) is a .NET winforms based application (not COM).  It is a site builder tool for creating ArcExplorer Style web applications for your own sites.  The output can then be reloaded in the builder for some customizations or opened in Visual Studio.NET and work directly with the web controls and underlying OM.  The ArcExplorer Web that was shown is an ASP.NET web application that sported some of the new web controls and user experience enhancements that the .NET Server team (one of my teams) have been working on and that I eluded too in my AJAX postings.  Yes, the .NET Server team is setting the pace for the richer user experience and web client framework development work at ESRI.
 
All these 9.2 controls will be AJAX enabled and work together against pluggable data sources - yes, I said pluggable - in the .NET 2.0 framework.
 
We will be discussing and showing some of these things in the Road ahead sessions for Server in the upcoming days - we can also discuss the details if you want in the .NET SIG on Wed at 12:15 (Room 3 SDCC) or the bloggers meetup on Wed at Dick's Last resort - 6 PM - correct?
 
More later...
7月21日

More .NET SIG at ESRI UC

The .NET SIG is shaping up well... Brian Flood has agreed to give a brief presentation on some of the work he has been doing. We will also have a show and tell on some new IDE Integration work for .NET Developers ESRI has been doing. Some feedback to me from the blogspace has been to have a sort of Panel Discussion in an open format. I have asked some key dev folks to be there for this purpose (folks like Euan Cameron, Brian Goldin, Rob Elkins, Sud Menon among others). Should prove interesting. See you there!
7月19日

Another ESRI Blogger

Andrea Rosso now has a blog site!  Andrea is the ArcWeb Services Dev Lead.

Behind the Scenes - Preparing for the UC

The amount of effort that goes into the UC is amazing.  For some, the UC prep actually starts shortly after it ends, then people start really thinking about it in January, with a warm up at the BPC.  Things settle down for a bit and then heats up again 3-4 months before it happens with a flurry of emails and meetings.  Things really get crazy 2-3 weeks before the big day.  From the development side, it is a lot of long hours working on the UC story and presentations all the while keeping schedules for the current release that we are working on.  I really must commend the people working at ESRI - to do all of this takes a certain kind of passion - yes, ESRI folks are really passionate not only about the GIS Software we build, but also our user base that we really really really really really listen too. 
 
I make it a point to try and get out of the office at least once a year and make site visits to our users and just listen to them - well, I do more than that, but you get the idea.  With the UC, I get to meet more of those same users.  Believe it or not, ESRI staff working at the conference do take the comments back to ESRI, read them, and then see how we can accomodate them in our future work.
 
My team is responsible for a number of development projects at ESRI, all of which are critical path for 9.2 (Engine and Server).  We are also responsible for a number of UC events like pre-conference, technical sessions, Road aheads and SIGS.  Dealing with both at the same time is *almost* unbearable... but we do it - and in the end, it is all worth it.
 
In my years at ESRI (since 1995), I have always been a part of the UC - believe it or not, my favorite time of the year.  I have been up on the main stage during the plenary a few times, presented many technical sessions on everything from the first ArcExplorer, MOIMS, ArcIMS, ArcGIS Server moderated paper sessions and most definetly, heavy into the UC nightly events - need to look up that ESRI underground.
 
Re-reading that last paragraph - Yes - I was one of the original "GIS on the Web" pioneers at ESRI.... funny how time flies - that will be another post.
 
Looking back at all this, I must say that I am very proud to be working at ESRI and especially of my team, I see the work that they are doing (and what you will soon see at the Conference) - awesome stuff!!!  Makes it all worth while....  See you all at the UC!!!
 
 
7月18日

New ESRI Blogger

Yes, yet another ESRI Blogger - Ryan Olson.  For those of you who do not know Ryan Olson, he is an up and coming developer at ESRI on the ArcGIS Server .NET team (my team) and is one of the key folks responsible for a lot of innovations to Web GIS in 9.2 especially on the ArcIMS side. 
 
Ryan will also be at the UC this year... so for those of you who want to know more about the AXL Object Library for .NET, he is the one to find.
 
There are still a lot of key ESRI folks that I would like to see set up a blog - folks like Sud Menon, Jay Theodore, Euan Cameron, Sentha Sivabalan, Anne Reuland - just to name a few.
 
-- Art
7月16日

Lack of sleep ramblings...

After being up most of last night working, I decided to take a break and see what bloggers have been doing and saying.  There are quite a few sites with lots of good stuff.  I have always wanted a good way of finding out what users want and are doing with GIS tools/software and with blogging/bloggers, I can do just that any time I need. 
 
One thing that helps with keeping up on blogs  is the whole RSS thing, it would be nice if the folks that did not have RSS on their sites to add it.  It would be easier for folks to get the info... food for thought.
 
I think I will start a list of GIS bloggers on this site that I find interesting.
 
Well, enough for now, I need to get some sleep and then get back to it... work on 9.2 never ends
 
 
7月15日

More AJAX - Thoughts on Web User Experience

Enhanced, richer, user experiences with the Web browsers are definetly easier with AJAX - things like game style navigation (yes, even with .NET 1.1 and WebControls, not just .NET 2.0) become pretty straight forward.  A couple of things to consider now as I move forward....
  1. A Web Client Framework
  2. Queing mechanism for Javascript to handle the events fired by the game style handler.
  3. Possibly consider the concept of "multiple threads" in Javascript - multiple, simultaneous AJAX calls.
In the end, I might not even need #'s 2 and 3... this is fun!
 
Oh yeah - I better get back to my UC presentations before I forget.  I guess sleep is for AFTER the UC...
 
stay tuned...
7月14日

AJAX

AJAX - I like it...
 
One thing I kept wondering about is the XmlHttpRequest object and its performance in both IE and Mozilla based browsers.  An alternative is some fancy Javascript work with iframes for postbacks.  The initial findings are that in IE, the performance is the same.  However, in Mozilla, at least in our tests, the XmlHttpRequest  is definetly slower... makes you wonder how many people have tested this aspect of Ajax.
 
Hmmmm, I wonder how far we can take this in the world of GIS...   stay tuned.