| About the Author | p. xii |
| About the Technical Reviewer | p. xiii |
| About the Cover Image Designer | p. xiv |
| Acknowledgments | p. xv |
| Introduction | p. xvi |
| Priming the Pump | p. 1 |
| Static web pages | p. 2 |
| Flash | p. 3 |
| Dynamically generated HTML | p. 4 |
| ASP.NET | p. 7 |
| Flash/ASP.NET communication | p. 8 |
| Methods of communicating between Flash and ASP.NET | p. 9 |
| FlashVars | p. 9 |
| LoadVars | p. 9 |
| XML object | p. 9 |
| Web services | p. 10 |
| Flash Remoting | p. 10 |
| Three-tier architecture | p. 10 |
| C# | p. 14 |
| Similarities between C# and ActionScript 2.0 | p. 15 |
| The .NET Framework | p. 16 |
| The common language runtime (CLR) | p. 17 |
| The Framework Class Library (FCL) | p. 18 |
| Setup | p. 18 |
| Installing the .NET Framework | p. 18 |
| Setting up Internet Information Services (IIS) | p. 20 |
| Installing IIS | p. 21 |
| Testing your IIS/ASP.NET installation | p. 22 |
| Installing SQL 2005 Express Edition | p. 23 |
| Visual Studio .NET 2005 | p. 25 |
| Visual Studio .NET 2005 editions | p. 26 |
| Installing Visual Studio .NET 2005 | p. 27 |
| Exploring the Visual Studio interface | p. 28 |
| #Develop: A free alternative to Visual Studio .NET | p. 29 |
| Developing and executing on other platforms | p. 30 |
| Summary | p. 31 |
| C# Primer | p. 33 |
| Data types in C# | p. 34 |
| Variables and memory | p. 35 |
| The stack | p. 35 |
| The heap | p. 36 |
| Object-oriented programming in C# | p. 37 |
| Structs in C# | p. 42 |
| Strings in C# | p. 42 |
| Comparing strings | p. 43 |
| Manipulating strings | p. 44 |
| StringBuilder | p. 46 |
| Dates | p. 47 |
| Conditional logic in C# | p. 49 |
| Comparison operators | p. 49 |
| Selection statements | p. 50 |
| if-else statement | p. 50 |
| switch statement | p. 51 |
| Looping in C# | p. 52 |
| while statement | p. 52 |
| do-while statement | p. 53 |
| for statement | p. 53 |
| foreach statement | p. 54 |
| Enumerations | p. 54 |
| Arrays | p. 55 |
| Collections | p. 57 |
| ArrayList | p. 58 |
| Summary | p. 59 |
| Basics of an ASP.NET Project | p. 61 |
| Getting started in ASP.NET | p. 62 |
| Server controls | p. 66 |
| Code-behind files | p. 72 |
| Page_Load | p. 76 |
| Flash server control | p. 79 |
| Adding a control to the Toolbox | p. 80 |
| Using the epicFlashControl | p. 81 |
| FlashVars | p. 84 |
| Embedding FlashVars using the epicFlashControl | p. 84 |
| A practical example | p. 87 |
| Moving the navbar to ASP.NET | p. 91 |
| Summary | p. 97 |
| Two-Way ASP.NET/Flash Communication | p. 99 |
| The request-response model | p. 100 |
| HTTP request | p. 100 |
| GET and POST variables | p. 101 |
| HTTP response | p. 102 |
| ASP.NET Request object | p. 102 |
| ASP.NET Response object | p. 104 |
| Using the Request and Response objects | p. 104 |
| The try-catch-finally statement | p. 109 |
| Sending mail using ASP.NET | p. 113 |
| Configuring IIS to relay mail | p. 115 |
| Using loadVars to call an ASP.NET page | p. 117 |
| Example: Using loadVars in the navbar | p. 121 |
| Example: Flash e-mail form | p. 124 |
| ASP.NET loadVars handler page | p. 127 |
| Back to the Flash form | p. 129 |
| Tying it all together | p. 134 |
| Summary | p. 135 |
| XML | p. 137 |
| The history of XML | p. 138 |
| Elements of an XML document | p. 140 |
| Text elements | p. 140 |
| Start tag | p. 140 |
| End tag | p. 142 |
| Attributes | p. 143 |
| Character data | p. 144 |
| Comments | p. 144 |
| Summary | p. 144 |
| Communicating Using XML | p. 147 |
| Flash animation using the Zigo tweening engine | p. 148 |
| C# System.IO namespace | p. 151 |
| System.IO.Directory | p. 151 |
| Server.MapPath | p. 152 |
| System.IO.File | p. 152 |
| XML communication with the Flash XML object | p. 153 |
| C# System.Xml namespace | p. 153 |
| XmlTextReader | p. 154 |
| Example of using the XmlTextReader | p. 155 |
| XmlTextWriter | p. 164 |
| Image gallery using XML | p. 168 |
| Logical tier: ASP.NET server-side code | p. 168 |
| Presentation tier: Flash interface | p. 177 |
| Summary | p. 189 |
| Web Services | p. 191 |
| Introducing web services | p. 192 |
| Web service standards | p. 194 |
| SOAP | p. 194 |
| WSDL | p. 195 |
| Creating an ASP.NET web service | p. 195 |
| Creating the GetArea web method | p. 203 |
| Using the Flash XML Web Service Connector | p. 206 |
| Defining a web service in Flash | p. 206 |
| Flash Web Service Connector component | p. 208 |
| Connecting to the HelloWorld web service method | p. 208 |
| GetArea web service example | p. 212 |
| Creating the interface | p. 212 |
| Initializing | p. 214 |
| Receiving the result | p. 215 |
| Completing the code | p. 216 |
| Summary | p. 217 |
| The Google Web Service API | p. 219 |
| Consuming third-party web services | p. 220 |
| Signing up for the Google web service API | p. 221 |
| Creating a web service proxy using ASP.NET | p. 222 |
| Using an Application class in ActionScript | p. 226 |
| Creating a Flash presentation tier for the Google web service | p. 227 |
| Summary | p. 233 |
| Database Connectivity | p. 235 |
| SQL | p. 236 |
| Using SELECT statements | p. 236 |
| Using UPDATE statements | p. 238 |
| Using INSERT statements | p. 238 |
| Using DELETE statements | p. 238 |
| Introducing ADO.NET | p. 239 |
| DataSet vs. DataReader | p. 239 |
| Read-write access | p. 240 |
| Data direction | p. 240 |
| Database access | p. 240 |
| Speed of access | p. 240 |
| Connected vs. disconnected | p. 241 |
| Working with ADO.NET data providers | p. 241 |
| Data provider elements | p. 242 |
| Connections | p. 242 |
| Connecting to an Access database | p. 243 |
| Working with commands | p. 248 |
| Working with DataReaders | p. 249 |
| DataAdapters and DataSets | p. 252 |
| Using DataAdapters | p. 252 |
| Using DataSets | p. 252 |
| Filling a DataSet and passing it to Flash using a web service | p. 253 |
| Summary | p. 255 |
| Product Viewer Application | p. 257 |
| Setting up | p. 258 |
| Creating the Microsoft Access data tier | p. 258 |
| Creating the ASP.NET logical tier | p. 260 |
| Creating the Flash presentation tier | p. 267 |
| Summary | p. 279 |
| Session State and Security | p. 281 |
| Session state | p. 282 |
| ASP.NET server-side state management | p. 282 |
| ASP.NET application state | p. 283 |
| ASP.NET session state | p. 285 |
| The ASP.NET global.asax file | p. 287 |
| Adding a global.asax file to an ASP.NET project | p. 287 |
| Using session state in ASP.NET web services | p. 289 |
| Using application state in ASP.NET web services | p. 291 |
| Adding a shopping cart to the storefront example | p. 293 |
| Securing an ASP.NET web service using session state | p. 303 |
| Summary | p. 307 |
| Flash Remoting | p. 309 |
| Why Flash Remoting? | p. 310 |
| The technology behind Remoting | p. 311 |
| Examining the methods for using Flash Remoting | p. 313 |
| Setting up Flash Remoting .NET | p. 314 |
| Installing the Flash Remoting service | p. 314 |
| Examining the files within the flashremoting directory | p. 315 |
| Installing the Flash Remoting components | p. 316 |
| ActionScript 2.0 Flash Remoting Connector | p. 316 |
| NetConnection Debugger | p. 317 |
| Enabling the Flash Remoting NetConnection Debugger | p. 317 |
| Connecting to an ASP.NET page | p. 318 |
| Creating the ASP.NET | p. 318 |
| Creating the Flash | p. 320 |
| Accessing ASP.NET session state via Remoting | p. 323 |
| Setting up the ASP.NET page | p. 323 |
| Creating the Flash interface | p. 324 |
| Testing the code | p. 326 |
| Connecting to a .NET DLL via Flash Remoting | p. 327 |
| Creating a .NET DLL | p. 327 |
| Calling DLLs from Flash | p. 330 |
| Passing data from a .NET DLL to Flash | p. 331 |
| Setting up the DLL | p. 332 |
| Retrieving the DataSet in Flash | p. 333 |
| Passing objects from .NET to Flash via Remoting | p. 334 |
| Retrieving the objects in Flash | p. 336 |
| Passing objects from Flash to .NET via Remoting | p. 337 |
| Sending an object from Flash | p. 338 |
| Connecting to a third-party web service using Remoting | p. 339 |
| Potential problems with web services and Flash Remoting | p. 341 |
| Summary | p. 343 |
| Creating a Video Weblog Using SQL Server and Flash Remoting | p. 345 |
| File uploading with Flash and ASP.NET | p. 346 |
| The Flash.net.FileReference class | p. 346 |
| Handling file uploads in ASP.NET | p. 348 |
| Uploading a file from Flash to ASP.NET | p. 348 |
| Creating a video weblog using .NET Flash Remoting and SQL Server | p. 355 |
| SQL Server | p. 355 |
| Creating a new database on SQL Server with Visual Studio .NET 2005 | p. 357 |
| Stored procedures | p. 359 |
| Creating a new stored procedure in Visual Studio | p. 360 |
| Creating stored procedures for the video weblog | p. 362 |
| Creating the ASP.NET logical tier | p. 363 |
| Executing a stored procedure using a SqlCommand | p. 364 |
| Creating the BlogEntries.cs file | p. 365 |
| Creating the Flash admin presentation tier | p. 370 |
| Creating the video weblog front-end | p. 384 |
| Summary | p. 395 |
| Index | p. 397 |
| Table of Contents provided by Ingram. All Rights Reserved. |