2. Goal: To provide a basic guide and the corresponding resources to help attendees get started using the Esri Flex Application Programming Interface (API) in conjunction with ArcGIS Server.
3. Overview What is Flex and How does it Work? Why use Flex? Why Do-It-Yourself (DIY)? Getting Started Learning Pathways Brief Examples Lessons Learned Resources Questions
4. What is Flex? Flash Builder IDE Flex SDK MXML ActionScript Flex Class Library Flex is a Software Development Kit (SDK) for building expressive web applications that deploy consistently on all major browsers Flex was created to make it easier for developers to construct applications using Flash platform Two core pieces: MXML and ActionScript February 2008 Adobe released Flex 3 SDK under open source Mozilla Public License Applications can be developed using Eclipse Integrated Development Environment (IDE) (free) or Adobe Flash Builder ($$) Source: http://www.adobe.com/products/flex
5. What is MXML? MXML (no official meaning) XML based markup language Used for laying out user interface components and data sources Similar to HTML but more structured and richer set of tags (about 100) Complies to .swf file (small web format, opens with Flashplayer) or .air Flash Builder IDE Flex SDK MXML Simple Example: <mx:Canvasid="siteTitle" width="239.5" height="46" top="46" left="168“ backgroundAlpha="1.0" styleName="titleIconCanvas" borderSides="top,right" cornerRadius="0" includeIn="State1"> <mx:Labeltext="Radon Test Results" fontWeight="bold" fontSize="22“ left="-2" top="1“ fontFamily="CourierNew" width="100%" height="25“ textAlign="center" color="#1f5c5b"/> <mx:Labeltext="Waupaca County, Wisconsin" fontWeight="bold" fontSize="12“ fontStyle="italic" left="0" top="23" fontFamily="Verdana" width="200" height="20“ textAlign="left" textDecoration="none" color="#000000"/> </mx:Canvas>
6. What is Action Script? ActionScript (Current Version: 3.0) Object-oriented programming language developed by Macromedia ECMAScript, which means syntax is similar to Javascript ActionScript makes things happen! MXML and ActionScript go together Complies to .swf file (small web format, opens with Flashplayer) Flash Builder IDE Flex SDK ActionScript Simple Example: <![CDATA[ importmx.controls.Alert; private functionmyFunction(txt:String):void { Alert.show(txt,”MyAlert”,Alert.OK); } ]]> <mx:VBox width=“500” top=“10” left=“10”> <mx:TextInput id=“myText” width=“95%”/> <mx:Buttonid=“myButton” click=“myFunction(myText.text)” label=“click me”/> </mx:VBox> Example Link
7. How Flex Works Flash Builder IDE Client Web Browser Flex SDK Flash Player MXML ActionScript Flex Class Library Data Data Web Server .air .swf Flex Remote Objects XML/HTTP, REST, SOAP Web Services J2EE/Cold Fusion/PHP/.NET AIR Runtime on Desktop Computer Existing Applications and Infrastructure
8. Flex & ArcGIS Server Client Web Browser Flash Player Data Web Server XML/HTTP, REST, SOAP Web Services Data ArcGIS Server Server Object Manager (SOM) and Server Object Container (SOC) SDE Geodatabase File Geodatabase
9. Why Use Flex? Pros Tons of Core Components (About 100) Large User Base (especially among GIS community) An easy to use integrated development environment (IDE), aka Flash Builder 4 (previous version is Flex Builder 3) Polished visual appeal, slick animation effects MXML/ActionScript 3.0 very similar to JavaScript so it’s fairly easy to learn Fast Deployment Esri has made it easy to use Flex with ArcGIS Server Lots of online resources
10. Why Use Flex?Cont. Cons Database access isn’t easy as it could be (but it is possible) Integration with Microsoft .NET solutions is complicated (WebOrb) Requires Adobe Flash Player to be installed on client (Adobe claims 99.5% of web clients in US/Canada have ver. 10 installed) Applications can be resource intensive Doesn’t work well on mobile devices Another new programming language to learn
11. Why DIY? Pros Save $$$ (no vendor contracts) No Vendor Lock-in Maintain future applications in-house Quicker adaptation of new technology Flexibility to do what you want, when you want Gain the knowledge to evaluate vendor products (if you choose to purchase services in the future) Springboard to other programming languages Cons Takes time (which costs $$) Learning curve (if you build from scratch) Just one more thing to learn/maintain
12. Learning Pathways Flex in a Week Videos ArcGIS Sample Flex Viewer Application Sample Flex Viewer 2.2 Sample Flex Viewer 1.3 ArcGIS Flex API Samples (access from ArcGIS Resource Center) Browse/Download Code Gallery Samples Modify Code Gallery Samples Build your own widget and/or modify Sample Flex Viewer Create your own custom site from scratch (if deemed necessary)
13. Getting Started Quick and Easy Requires access to AGS services (you can use Esri Services for free) Download Esri Sample Flex Viewer Application (ArcGIS Resource Center) Modify Sample Flex Viewer base config.xml file to point to ArcGIS Server services Modify widget config.xml files
14. Getting Started More Involved Access to ArcGIS Server services (you can use Esri Services for free) Download Esri Sample Flex Viewer Application (ArcGIS Resource Center) source code Download latest Esri Flex API source code Download Adobe Flash Builder 4 (Free 60-day trial) Flash Builder 4 Premium: $699 ($299.00 for upgrade from previous ver.) Flash Builder 4 Standard: $249 ($99.00 for upgrade from previous ver.) Setup Flex Project (import source code, setup config.xml files) Compile and test the application
15. Brief Examples Example 1: ArcGIS Viewer for Flex Example 2: Custom Widgets Example 3: Custom Flex Application
16. Brief Examples ArcGIS Viewer for Flex Example 1: ArcGIS Viewer for Flex Ready to deploy GIS Web client for ArcGIS Server Configurable, so you can easily add tools & data without programming
23. Brief Examples Custom Widgets Custom Sample Flex Viewer Widgets Use the EsriBaseWidget Class Plug right into Sample Flex Viewer Application Just copy/paste any existing widget and modify as needed Modify the config.xml to include your new widget! Custom Widgets Example Link
24. Brief Examples Custom Application Custom Flex Application Goal: create a streamlined, simplified Flex application (started this prior to the release of Sample Flex Viewer 2.2) for viewing Radon Test Data Created with the idea to reuse the base code for future applications Started small, grew more complex with each end-user review Approx. 160 hours to build (this was mainly due to fact that I was learning as I went) Learned basic object oriented programming through the process Custom Flex Application Example Link
25. Lessons Learned Flex in a week video series: great starting point Document (this can be as simple as good comments in your code) Research: chances are someone else might have encountered a similar problem Make your code as re-usable as possible (very difficult) Look into “FlashVars” Flex coupled with PHP provides even more functionality Share your code, especially if you “borrow” heavily from others
26. Resources Flex Tour de Flex (http://www.adobe.com/devnet/flex/tourdeflex.html) Flex in a Week Videos (http://www.adobe.com/devnet/flex/videotraining.html) Flex Developer Center (http://www.adobe.com/devnet/flex.html) Flex Cookbook (http://cookbooks.adobe.com/flex) Flex Examples (http://blog.flexexamples.com) Balsamiq(http://balsamiq.com/) Stack Overflow (http://stackoverflow.com/)
27. Resources Cont. ArcGIS Server Flex API ArcGIS Server Blog (http://blogs.esri.com/Dev/blogs/arcgisserver/default.aspx) ArcGIS API for Flex (http://help.arcgis.com/en/webapi/flex/index.html) ArcGIS.com Gallery (http://www.arcgis.com/home/gallery.html) ArcGIS API 1.3 Code Gallery: Moved to ArcScripts(http://arcscripts.esri.com) API 1.3 code is still very useful!