Data Access Layer Scenarios Frame

- J.D. Meier, Alex Homer, Jason Taylor, Prashant Bansode, Lonnie Wall, Rob Boucher Jr, Akshay Bogawat


  • BLOB
  • Batching
  • Connections
  • Data Format
  • Exception Management
  • Security Considerations
  • Stored Procedures
  • SQL Commands
  • Validation
  • XML


Category Scenarios
General Determine the data access technology (ADO.NET, LINQ, DAAB).
Determine relevant data access strategies and patterns
BLOB (Large Object Data) Determine where you will store large data objects
Determine the format for storing large data objects
Batching Determine when to perform batching
Design to perform bulk updates and inserts
Determine how to improve performance of your batch operations.
Connections Design your approach for connection Pooling
Design an authentication mechanism for data access
Design to protect connection strings
Design to pull data from multiple sources
Concurrency and Transactions Determine your concurrency strategy
Determine your transactions strategy
Determine your approach for failed transactions.
Determine to handle long running, disconnected and asynchronous transactions.
Design for concurrency conflicts (optimistic approach, pessimistic approach)
Data Format Design the data format for business entities (DataSets, DataReaders ,XML, and custom classes)
Design your data mapping strategy (OO to relational, table based, Document oriented)
Design how to pass data across layers and tiers (data serialization).
Exception Management Determine a strategy for exception handling
Design for unhandled exceptions
Design for retries and to handle timeouts.
Determine what to catch, what to throw and what to re-throw.
Determine if you need custom exceptions
Design exception logging
Determine error monitoring and notification requirements
Manageability Considerations Design your abstraction layer for your data sources.
Determine how to manage across multiple data sources.
Performance Considerations Determine relevant strategies and patterns for improving performance
Choose effective protocols for optimal performance in your environment.
Choose strategies to improve your connections
Determine how to improve database throughput
Determine how to improve database utilization
Determine how to improve database CRUD (create, read, update and delete) operations
Determine how to optimize your SQL queries
Security Considerations Determine your data store authentication strategy (SQL Server authentication, windows authentication)
Determine your data store authorization strategy
Determine which identities can access the database.
Design for protection of connection strings and credentials
Design for protection of sensitive data
Design to prevent SQL Injection
Determine strategy for protecting data source information, when handling exception.
Services Determine how to bind to your services
Determine how to use the data from the services
Design for reliability issues
SQL Commands Determine whether you will use stored procedures or inline SQL with parameters (dynamic SQL Vs Stored Procedure Vs ADO.NET Object Model)
Design how to optimize for parameter based calls.
Design for optimized SQL queries
Validation Determine effective SQL Validation strategies and patterns.
Determine how to leverage object model for type safety (instead of string based parameters)
Determine if you need to Design for enforcing data integrity.

Last edited Jan 30, 2009 at 9:41 PM by prashantbansode, version 1


No comments yet.