Plan the application layers
- Plan data access; plan for separation of concerns,
- Appropriate use of models, views, controllers, view components, and service dependency injection;
- Choose between client-side and server-side processing;
- Design for scalability;
- Choose between ASP.NET Core and ASP.NET;
- Choose when to use .NET standard libraries;
Design a Distributed Application
- Design a hybrid application;
- Plan for session management in a distributed environment
- Plan web farms; run Microsoft Azure services on-premises with Azure Pack;
- Enable deferred processing through Azure features (including queues, scheduled, and on-demand jobs, Azure Functions, and Azure Web Jobs, etc.)
Design and Implement the Azure Web Apps Life Cycle
- Identify and implement Start, Run, and Stop events
- Code against application events in applications;
- Configure startup tasks, including (IIS, app pool configuration, and third-party tools)
Configure State Management
- Choose a state management mechanism including (in-process, out of process, and Redis- based state management);
- Plan for scalability;
- Use cookies or local storage to maintain state;
- Apply configuration settings in web.config files;
- Implement session less state (including Query Strings)
- Configure middleware to enable session and application state in ASP.NET Core
Design a Caching Strategy
- Implement page output caching
- Implement data caching;
- Create cache profiles;
- Implement HTTP caching;
- Implement Azure Redis caching
- Plan a content delivery
- Network (CDN) strategy, for example, Azure CDN
Design and implement a Web Socket strategy
- Read and write string and binary data asynchronously
- Choose a connection loss strategy; decide when to use
- Web Sockets; implement Signal R;
- Enable web socket features in an Azure Web App instance
Design a Configuration Management Solution
- Manage configuration sources, including XML, JSON, and INI files;
- Manage environment variables; implement Option objects;
- Implement multiple environments using files and hierarchical structure
- Manage sensitive configuration;
- React to runtime configuration changes;
- Implement a custom configuration source;
- Secure configuration by using Azure Key Vault
- Use the Secret Manager tool in development to keep secrets out of your code for configuration values
Interact with the host environment
- Work with file system using file providers; work with environment variables;
- Determine hosting environment capabilities;
- Implement native components, including PInvoke and native dependencies for hosts including Linux and Windows;
- Use ASP.NET hosting on an Open Web Interface for .NET (OWIN)-based server
Compose an application by using the framework pipeline
- Add custom request processing modules to the pipeline;
- Add, remove, and configure services used in the application;
- Design and implement middleware;
- Design for kestrel, Http.sys web server and IIS;
- Design and implement startup filters