Preface 1. Introducing Web Portals and Dropthings.com Defining a Web Portal Defining a Web 2.0 Portal Using a Web Portal Navigating Dropthings Using ASP.NET AJAX Using C# 3.0 and .NET 3.5 Summary 2. Architecting the Web Portal and Widgets Using a Widget Framework Adding Widgets Maximizing the First-Visit Experience Rendering a Second-Visit Experience Improving ASP.NET AJAX Performance Adding Authentication and Authorization Preventing Denial-of-Service Attacks Summary 3. Building the Web Layer Using ASP.NET AJAX Implementing the Start Page of a Web Portal Building a Custom Drag-and-Drop Extender for a Multicolumn Drop Zone Implementing WidgetContainer Building Widgets Page Switching: Simulating a Nonpostback Experience Using the Profile Object Inside a Web Service Implementing Authentication and Authorization Implementing Logout Summary 4. Building the Data and Business Layers Using .NET 3.5 Introducing LINQ to SQL Building the Data Access Layer Using LINQ to SQL ......... 5. Building Client-Side Widgets 6. Optimizing ASP.NET AJAX 7. Creating Asynchronous, Transactional, Cache-Friendly Web Services 8. Improving Server-Side Performance and Scalability 9. Improving Client-Side Performance