Hello, I am a fan of Niall Merrigan and also of certification training, and since he has moved on to covering the .NET 4.0 and new SharePoint exams I thought I would put out an article in the same style for the 70-561- Microsoft .NET Framework 3.5, ADO.NET Application Development ,which he evidently hasn’t covered.
Here goes!
Please note that this is in no way a complete guide and understand that you use this guide at your own risk.
Connecting to Data Sources (12 percent)
· Manage connection strings. May include but is not limited to: using the ConnectionStringBuilder; leveraging the ConfigurationManager; protecting the connection string; using Security Support Provider Interface (SSPI) or SQL Server authentication; correctly addressing the SQL Server instance; managing “User Instance” and AttachDBfilename
· Manage connection objects. May include but is not limited to: managing connection state, managing connection pool; implementing persistent data connections; implementing Multiple Active Result Sets (MARS); encrypting and decrypting data
· Work with data providers. May include but is not limited to: limitations, behaviors, performance, installation issues, deployment issues; ODBC, Microsoft OLE DB, SqlClient, managed providers, third-party providers, native providers
· Connect to a data source by using a generic data access interface. May include but is not limited to: System.Data.Common namespace classes
· Handle and diagnose database connection exceptions. May include but is not limited to: implementing try/catch handlers
Selecting and Querying Data (22 percent)
· Build command objects. May include but is not limited to: building Parameters collections; using input and output parameters and return values; selecting an appropriate CommandType action; selecting an appropriate Execute method; using the CommandBuilder class; choosing appropriate CommandBehavior
· Query data from data sources. May include but is not limited to: writing queries to solve assigned problems; implementing data paging; sorting, filtering, and aggregating data
· Retrieve data source data by using the DataReader. May include but is not limited to: retrieving data from SELECT statements; retrieving data from stored procedures; working with multiple result sets
· Manage data by using the DataAdapter or the TableAdapter. May include but is not limited to: retrieving data from SELECT statements; retrieving data from stored procedures; working with multiple result sets; working with JOIN products; creating updatable DataAdapters and TableAdapters; modifying TableAdapter Fill methods
· Execute an asynchronous query. May include but is not limited to: handling asynchronous events
· Handle special data types. May include but is not limited to: Binary Large Objects (BLOBs); Filestream, Spatial, Table Value Parameters
· Query data sources by using LINQ. May include but is not limited to: extended method; CLR delegate; lambda expressions; classes of the System.LINQ.Expressions namespace
· LINQ
· Manage exceptions when selecting data. May include but is not limited to: identifying and resolving syntax errors; security exceptions
· SqlError
Modifying Data (24 percent)
· Manage transactions. May include but is not limited to: selecting an appropriate transaction isolation level; participating in local transactions; participating in distributed transactions; using declarative transactions
· Manage data integrity. May include but is not limited to: cascading updates or cascading deletes; auto number management; server-generated value management; client-side data validation; business rules, constraints
· Update data. May include but is not limited to: update data by using stored procedures; update datasets to data source; managing concurrency
· Manage exceptions when modifying data. May include but is not limited to: resolve exceptions from data integrity, constraint, or referential integrity violations; data locking conflicts; data collision issues
· SqlError
· Transform data by using LINQ. May include but is not limited to: aggregation operators; JOIN operator, QUERY operator, LIKE, etc.
Synchronizing Data (15 percent)
· Monitor event notifications. May include but is not limited to: implement notifications by using SqlDependency or SqlNotificationRequest
o Examples
· Cache data. May include but is not limited to: SqlCacheDependency, Local Data Cache
· Manage update conflicts between online data and offline data.
· Partition data for synchronization.
· Implement Synchronization Services. May include but is not limited to: SyncAgent, SyncTable, ClientSyncProvider, ServerSyncProvider, SyncAdapter
Working with Disconnected Data (16 percent)
· Manage occasionally connected data.
· Programmatically create data objects. May include but is not limited to: DataTable; DataSet
· Work with untyped DataSets and DataTables. May include but is not limited to: populating a DataSet or DataTable
· Expose a DataTableReader from a DataTable or from a DataSet.
· Work with strongly typed DataSets and DataTables.
Object Relational Mapping by Using the Entity Framework (11 percent)
· Define and implement an Entity Data Model. May include but is not limited to: mapping schemas and storage metadata; EDM Generator
o Samples
· EDM
o SSDL
· Query data by using Object Services. May include but is not limited to: querying data as objects and shaping results; working with objects; managing the Object Context; customizing objects
· Map data by using the Entity SQL Language. May include but is not limited to: manually define mapping files; execute an Entity SQL Query by using EntityCommand
· Access entity data by using the EntityClient Provider. May include but is not limited to: managing EntityConnection; creating EntityCommand; executing a query by using EntityDataReader; managing EntityTransaction