Presentation is loading. Please wait.

Presentation is loading. Please wait.

ArcGIS Server The Good, the Bad, and the Ugly. Steve Foster GIS Programmer City of Frisco.

Similar presentations


Presentation on theme: "ArcGIS Server The Good, the Bad, and the Ugly. Steve Foster GIS Programmer City of Frisco."— Presentation transcript:

1 ArcGIS Server The Good, the Bad, and the Ugly

2 Steve Foster GIS Programmer City of Frisco

3 What does Server do 1. Client requests a map from Server by specifying layers and extent 2. Server renders the requested map and returns an image (i.e. jpg) to the client ( Note: cached images are pre-rendered ) 3. Client displays image for user

4 The Good Available at www.ESRI.com or your any ESRI salesman www.ESRI.com

5 The Good Web application: Allows distribution of spatial data to anyone with a browser Web application: Allows distribution of spatial data to anyone with a browser Map utilizes full window! Map utilizes full window! Centralized management reduces cost of ownership Centralized management reduces cost of ownership Heir apparent to ArcIMS Heir apparent to ArcIMS

6 Scalable * Source: ESRI System Design Strategies

7 ArcGIS Mobile Requires Advanced Enterprise level of Server $$$ Requires Advanced Enterprise level of Server $$$ Photos taken from www.ESRI.com/arcgismobile Lightweight applications that run on a variety of platforms Locally cached data for disconnected operation, Syncs when connected

8 The Good (continued) Ability to integrate with Enterprise applications through web services Ability to integrate with Enterprise applications through web services Flexible Flexible Choose from Java or.NETChoose from Java or.NET Powerful Powerful Custom geoprocessing tasks developed with Model builderCustom geoprocessing tasks developed with Model builder Limited editing of layersLimited editing of layers Support for most ESRI extensionsSupport for most ESRI extensions Network Analyst Network Analyst Spatial Analyst Spatial Analyst 3D Analyst 3D Analyst Sever Data Interoperability Sever Data Interoperability

9 Easy to create Out-Of- The-Box website  Wizard based  Relatively low skill level required

10 1. Use ArcMap to create your map document

11 2. Use ArcCatalog to publish map service

12 3. Use ArcGIS Server Manager to create your website

13 OR Use Visual Studio with Map Template

14 Use ArcCatalog to Manage ArcGIS Server

15 Your Done! It really is that easy

16 The Bad Or at least not so good

17 The Bad Web application Web application Limited by the technology (HTML)Limited by the technology (HTML) The best web apps don’t measure up to a good desktop app The best web apps don’t measure up to a good desktop app Different browsers (IE, Netscape, Firefox, etc) makes testing more difficultDifferent browsers (IE, Netscape, Firefox, etc) makes testing more difficult Timing problems in a multi-threaded environment can be difficult to debugTiming problems in a multi-threaded environment can be difficult to debug Relatively new product, Support personnel not up to speed yet Relatively new product, Support personnel not up to speed yet

18 Source: System Design Strategies, Dave Peters, ESRI, 2007

19 Poor Documentation of ADF

20 Complex Development Environment Much more complex than extending ArcGIS desktop Much more complex than extending ArcGIS desktop Several different technologies Several different technologies HTML, ASP.NET, AJAX, VB and/or C#, JscriptHTML, ASP.NET, AJAX, VB and/or C#, Jscript Requires Microsoft Visual Studio 2005 Requires Microsoft Visual Studio 2005 Requires a fairly high skill level to customize code Requires a fairly high skill level to customize code

21 The UGLY

22 Bugs  True curves causes errors in Identify  Certain combinations of null and non- null values in table cause search to fail  Zoom function sometimes fails to refresh map (Timing problem with window resize event)  Map tiles sometime fail to draw (source file for toolbar incorrectly specified App_Code\FriscoTools.vb)

23  Caching does not work correctly when “PrimaryMapLayer” is set to a non-cached layer (Documentation omission).  TOC collapses when refreshed (wrote my own)  TOC update contains 100’s of repeated elements. (SP4)  Dynamic rendering speed unnecessarily slow. Depends on what layers are in the map, not what is drawn.  Custom cursors don’t behave correctly

24 Suggestions

25 If possible…wait for Server 9.3 If possible…wait for Server 9.3 Faster?Faster? Improved Diagnostics (log files)Improved Diagnostics (log files) Major additions to DocumentationMajor additions to Documentation Microsoft ASP.NET AJAX Final releaseMicrosoft ASP.NET AJAX Final release Print taskPrint task Use Mozilla Firefox with Firebug extension for debugging Use Mozilla Firefox with Firebug extension for debugging Use Fiddler with IE (not as good but some bugs limited to IE) Use Fiddler with IE (not as good but some bugs limited to IE)

26 Use Visual Studio to set properties of controls

27 Edit the Source to reposition elements

28 Debugging: Monitor Event Viewer for ASP Errors

29 Optimization Server is slow Server is slow Keep it simple Keep it simple Cache everything possible / minimize dynamic rendering Cache everything possible / minimize dynamic rendering Keep symbology simple on dynamic layers, Use optimized symbol set Keep symbology simple on dynamic layers, Use optimized symbol set Online seminar: Authoring and Publishing Optimized Map Services (http://training.esri.com/acb2000/showdetl.cfm?did=6&Product_id=908) Online seminar: Authoring and Publishing Optimized Map Services (http://training.esri.com/acb2000/showdetl.cfm?did=6&Product_id=908)

30 Reverse Proxy Server (ISA) Client Browser DMZ Client Browser Client Browser Client Browser WWW Web ArcGIS (SOM, SOC) Server ArcServer: Dual Xeon/Dual Core 3.0 GHz (8Gb) SDE / SQL 2005 Server ATLAS: ArcIMS Server (internal) Frisco6: Xeon 2.4 GHz (2Gb) Secure Internal Network City of Frisco Server Configuration Oops! I didn’t budget for that!

31 Resources ESRI Developer Network (EDN) ESRI Developer Network (EDN) http://edn.esri.com/http://edn.esri.com/http://edn.esri.com/ Discussion ForumsDiscussion Forums Latest DocumentationLatest Documentation EDN Media Kit ($1500/yr) EDN Media Kit ($1500/yr) ArcGIS Server (all editions) & extensionsArcGIS Server (all editions) & extensions ArcIMSArcIMS ArcGIS Engine & ExtensionsArcGIS Engine & Extensions ArcGIS Image ServerArcGIS Image Server ArcView (+$500), ArcEditor(+$1500), ArcInfo (+$2500)ArcView (+$500), ArcEditor(+$1500), ArcInfo (+$2500) ESRI Developers Blog ESRI Developers Blog http://blogs.esri.com/Dev/blogs/arcgisserver/http://blogs.esri.com/Dev/blogs/arcgisserver/http://blogs.esri.com/Dev/blogs/arcgisserver/ Examples of code customizationExamples of code customization ESRI Developer Summit ESRI Developer Summit March 17-20 Palm SpringsMarch 17-20 Palm Springs ESRI Training ESRI Training Developing Applications with ArcGIS Server Using the Microsoft.NET FrameworkDeveloping Applications with ArcGIS Server Using the Microsoft.NET Framework

32 EXAMPLES

33 Create an Error Log Private Sub Page_Error(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Error Private Sub Page_Error(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Error Dim exception As Exception = Server.GetLastError() Dim exception As Exception = Server.GetLastError() Server.ClearError() Server.ClearError() My.Computer.FileSystem.WriteAllText("C:\ESRI_ArcGIS_Server\Log\Error.txt", Date.Now.ToString("yyyy-MM-dd") & "," & Date.Now.ToString("HH:mm:ss") & "," & Session.SessionID & ", PAGE ERROR TEXT: " & exception.ToString & vbCrLf, True) callErrorPage("Page_Error", exception) callErrorPage("Page_Error", exception) End Sub End Sub Note: Add to Default.aspx.vbNote: Add to Default.aspx.vb

34 Toolbar: Adding Tools & Commands Sample TOOL Sample TOOL ' Zoom in to the rectangle area defined by user. ' Zoom in to the rectangle area defined by user. Public Class ZoomRect Public Class ZoomRect Implements IMapServerToolAction Implements IMapServerToolAction Sub ServerAction(ByVal args As ToolEventArgs) Implements IMapServerToolAction.ServerAction Sub ServerAction(ByVal args As ToolEventArgs) Implements IMapServerToolAction.ServerAction Dim map As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map = CType(args.Control, ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) Dim map As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map = CType(args.Control, ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) Dim pea As RectangleEventArgs = CType(args, RectangleEventArgs) Dim pea As RectangleEventArgs = CType(args, RectangleEventArgs) Dim peanut As System.Drawing.Rectangle = pea.ScreenExtent Dim peanut As System.Drawing.Rectangle = pea.ScreenExtent If peanut.Height < 15 And peanut.Width < 15 Then If peanut.Height < 15 And peanut.Width < 15 Then Dim center As Integer Dim center As Integer 'Y 'Y center = peanut.Y + (peanut.Height / 2) center = peanut.Y + (peanut.Height / 2) peanut.Height = map.Height.Value / 2 peanut.Height = map.Height.Value / 2 peanut.Y = center - (map.Height.Value / 4) peanut.Y = center - (map.Height.Value / 4) ' X ' X center = peanut.X + (peanut.Width / 2) center = peanut.X + (peanut.Width / 2) peanut.Width = map.Width.Value / 2 peanut.Width = map.Width.Value / 2 peanut.X = center - (map.Width.Value / 4) peanut.X = center - (map.Width.Value / 4) End If End If map.Zoom(peanut, True) map.Zoom(peanut, True) End Sub 'IMapServerToolAction.ServerAction End Sub 'IMapServerToolAction.ServerAction End Class 'ZoomRect End Class 'ZoomRect Sample COMMAND Sample COMMAND ' Zoom to the Extent of City ' Zoom to the Extent of City Public Class ZoomFullExtent Public Class ZoomFullExtent Implements IMapServerCommandAction Implements IMapServerCommandAction Sub ServerAction(ByVal info As ToolbarItemInfo) Implements IServerAction.ServerAction Sub ServerAction(ByVal info As ToolbarItemInfo) Implements IServerAction.ServerAction Dim map As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map = CType(info.BuddyControls(0), ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) Dim map As ESRI.ArcGIS.ADF.Web.UI.WebControls.Map = CType(info.BuddyControls(0), ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) map.Extent = New ESRI.ArcGIS.ADF.Web.Geometry.Envelope(2450000, 7080000, 2511000, 7132000) map.Extent = New ESRI.ArcGIS.ADF.Web.Geometry.Envelope(2450000, 7080000, 2511000, 7132000) End Sub 'IMapServerToolAction.ServerAction End Sub 'IMapServerToolAction.ServerAction End Class End Class

35

36

37 Frisco GIS Team Susan Olson Susan Olson John Morley John Morley Amy Rose Amy Rose Bud Videan Bud Videan Brian Macke Brian Macke

38 Coming Attractions NCTCOG Regional GIS Meeting NCTCOG Regional GIS Meeting May 22, 2008 May 22, 2008 Frisco City Hall (96°50’4”W 33°9’N) Frisco City Hall (96°50’4”W 33°9’N) Integration of Spatial and Business data systems at the City of Frisco Integration of Spatial and Business data systems at the City of Frisco

39 Demonstration Frisco Interactive maps at http://maps.friscotexas.gov/ Frisco Interactive maps at http://maps.friscotexas.gov/ http://maps.friscotexas.gov/ Frisco Home page: www.friscotexas.gov Frisco Home page: www.friscotexas.gov www.friscotexas.gov This presentation will be available on our GIS page This presentation will be available on our GIS page


Download ppt "ArcGIS Server The Good, the Bad, and the Ugly. Steve Foster GIS Programmer City of Frisco."

Similar presentations


Ads by Google