ASP.NET 2.0 Revealed
Chapter 1: ASP.NET 2.0 at a Glance
- Listing 1-1: Creating a Generic Class in C#
- Listing 1-2: Using Generics in C#
- Listing 1-3: Generics Type-Safe Capability
- Listing 1-4: Generics Working with Value Types
- Listing 1-5: Using Generics to Allow More Than One Unknown Type
- Listing 1-6: Lack of Type Safety Internally for Generics
- Listing 1-7: Generics Supporting Constraints
- Listing 1-8: Using Generics with Methods
- Listing 1-9: foreach Loops Based on an Enumerator Pattern
- Listing 1-10: Using Iterators to Iterate Through a Custom Class
- Listing 1-11: Using the New Yield Keyword in Loops
- Listing 1-12: Assigning and Handling Events Right Away
- Listing 1-13: Accessing Variables Declared in the Upper Scope
- Listing 1-14: Using the Delegate As Usual
- Listing 1-15: The Entry Code for the Second Thread Passed As an Anonymous Method
- Listing 1-16: One Class Split into Several Files Using the New Partial Keyword
- Listing 1-17: Using XML Documentation in VB .NET
- Listing 1-18: Making VB .NET "Generics Enabled"
- Listing 1-19: Point Structure Allows Arithmetic and Comparison Operations
- Listing 1-20: Widening and Narrowing Conversion Operations
- Listing 1-21: Separating Code Using the New Expands Keyword
Chapter 2: Introducing vs .NET for Web Developers
- Listing 2-1: Adding the Foo Class to a Code Directory
Chapter 3: Enhanced Data Controls
- Listing 3-1: The Easy-to-Understand Wizard-Generated Source Code
- Listing 3-2: The Read-Only Marked Field Passed as the Last Parameter
- Listing 3-3: Displaying Data with the DetailsView Control
- Listing 3-4: Defining an ItemTemplate
- Listing 3-5: GridView and DetailsView Working Hand in Hand
- Listing 3-6: books.xml
- Listing 3-7: Displaying Trees Without Any Coding
- Listing 3-8: The Person and PersonCollection Classes
- Listing 3-9: Handling Application Logic with the PersonManager Class
- Listing 3-10: Ensuring Parameter Names Match
- Listing 3-11: Altering PersonManager to Support Editing and Deleting of Records in Memory
- Listing 3-12: Adding a New Person to the Collection
Chapter 4: Working with Master Pages
- Listing 4-1: The Master Page Source Code
- Listing 4-3: Access Any Public Members Through the Master Properties
- Listing 4-4: Assigning Custom Meta Tags
- Listing 4-5: Nesting Master Pages
- Listing 4-6: Combining User Controls and Master Pages
Chapter 5: Integrating Site Navigation
- Listing 5-1: App.sitemap Contains an XML-Formatted Site Map Hierarchy
- Listing 5-2: A Different Way to Create a Real-World Navigation System
- Listing 5-3: Complete API for Accessing the Site Navigation
Chapter 6: Managing Users
- Listing 6-1: Providing a Rich Login Surface Without Writing a Line of Code Through the Login Control
- Listing 6-2: Customizing the Login Control
- Listing 6-3: The PasswordRecovery Control in Action
- Listing 6-4: Using Two Different Templates with the LoginView Control
- Listing 6-5: The Created RoleGroup Subcontrol with Assigned ContentTemplate
- Listing 6-6: Adding a Page for New User Registration
- Listing 6-7: Displaying Registered Users Through a GridView Control in the Protected Area
- Listing 6-8: Acquiring the Current User Record Through GetUser
- Listing 6-9: Performing Simplified Role Administration
Chapter 7: Personalization
- Listing 7-1: Accessing the Defined Profile Object
- Listing 7-2: Accessing the Profile Object in a Type-Safe Manner
Chapter 8: Creating Portals with Web Parts
- Listing 8-1: Zones Serving As a Kind of Container for Your Web Parts
- Listing 8-2: A Comfortable Portal Page Without a Line of Code
- Listing 8-3: Adding Previously Removed Web Parts Using PageCatalogPart
- Listing 8-4: Creating Custom Web Parts with Only a Few Lines of Code
- Listing 8-5: Allowing Users to Enter Their Zip Codes Through a Custom Provider
- Listing 8-6: TheWeb Part Consuming the Provider and Acquiring the Entered Zip Code
- Listing 8-7: Establishing the Connection That Brings Provider and Consumer Together
Chapter 9: Applying Themes
- Listing 9-1: Defining a Bunch of Properties Through a Theme
- Listing 9-2: Creating a Custom Theme
- Listing 9-3: The Theme containing a Named Theme Called Skin
- Listing 9-4: Enabling the User to Select Which Theme to Use
- Listing 9-5: Using Client Callback Is Another Way to Update the Profile Object
Chapter 10: Tracking Traffic with Site Counters
- Listing 10-1: Automatically Logging Button Clicks to the Site Counter System
- Listing 10-2: Accessing Reported Site Counter Data
- Listing 10-3: Implementing a Graphical Page Counter
Chapter 11: The Enhanced Page Framework and Cool New Controls
- Listing 11-1: A Thumbnail List
- Listing 11-2: "Don't Worry, Be Happy!" (Thanks to the GDI+ Smiley Face)
- Listing 11-3: The Image Generator Outputs a Couple Ellipses
- Listing 11-4: Using an Image Generator with the DynamicImage Control
- Listing 11-5: Defining Hot Spots with the ImageMap Control
- Listing 11-6: Switching Views of a Page with the MultiView and View Controls
- Listing 11-7: Creating a Dialog Assistant Page with the Wizard Control
- Listing 11-8: Scrolling with the Enhanced Panel Control
- Listing 11-9: Paging Content with the Pager Control
- Listing 11-10: Uploading Files Is Now Supported by a "Real" Web Control
- Listing 11-11: The HiddenField Control
- Listing 11-12: Using the PlaceHolder to Output Text
- Listing 11-13: The TextBox Control with Autocompletion Fields
- Listing 11-14: Using Validation Groups to Create Several "Virtual" Forms
- Listing 11-15: Posting the Form to a Different Page with the Button
- Listing 11-16: Accessing the Previous Page with the Cross-Post Destination Page
- Listing 11-17: @Page allows setting of any page properties.
- Listing 11-18: Server-Side Page Callback Reverses Entered Text
- Listing 11-19: Yukon Allows Line-Based Cache Invalidation
- Listing 11-20: The @OutputCache Directive Now Supports SQL Server Cache Invalidation
Chapter 12: Going Mobile
- Listing 12-1: Creating Mobile Pages Using the Regular Web Controls
- Listing 12-2: The Browser Configuration File Used to Assign the Adaptive Rendering Class
- Listing 12-3: The MultiView and View Controls Optimized for Mobile Scenarios
- Listing 12-4: Serving Large Amounts of Data to Small Clients Through the Pager Control
- Listing 12-5: Enabling Phone Calls Through the PhoneLink Control
Chapter 13: Configuration for Developers and Administrators
- Listing 13-1: Acquiring and Displaying All Authorization Rules in the Browser Window
- Listing 13-2: Giving Access to Any Configuration Section Through the Configuration Class
- Listing 13-3: Accessing the Configuration Data As Raw XML Data