Recommended Book (click for Amazon link)
About
Prepare for MCSD Exam 70-483—and help demonstrate your real-world mastery of programming in C#. Designed for experienced IT professionals ready to advance their status, Exam Ref focuses on the critical thinking and decision-making acumen needed for success at the MCSD level.
Cost
$165.00
Resources
Watch Series
- C# Tutorial (YouTube) [free]
- C# Fundamentals (YouTube) [free]
- Programming in C# (Microsoft) [free]
- C# Tutorial for Beginners (YouTube) (2012) [free]
Developer Samples
Preparation Resources [free]
- File system and the registry (C# programming guide)
- Connecting to data in Visual Studio
- Editing data in your application
Language Sections [free]
- Inside a C# Program
- Main() and Command-Line Arguments
- Types
- Arrays
- Strings
- Statements, Expressions, and Operators
- Classes and Structs
- Properties
- Interfaces
- Indexers
- Enumeration Types
- Delegates
- Events
- Generics
- Iterators
- LINQ Query Expressions
- Lambda Expressions
- Namespaces
- Nullable Types
- Unsafe Code and Pointers
- XML Documentation Comments
Platform Sections [free]
- Application Domains (C# and Visual Basic)
- Assemblies and the Global Assembly Cache
- Attributes
- Collections
- Exceptions and Exception Handling
- File System and the Registry (C# Programming Guide)
- Interoperability
- Reflection
Exam Objectives
- Manage program flow (25–30%)
-
- Implement multithreading and asynchronous processing
- Use the Task Parallel library (ParallelFor, Plinq, Tasks); create continuation tasks; spawn threads by using ThreadPool; unblock the UI; use async and await keywords; manage data by using concurrent collections
- Manage multithreading 2
- Synchronize resources; implement locking; cancel a long-running task; implement thread-safe methods to handle race conditions
- Implement program flow 2
- Iterate across collection and array items; program decisions by using switch statements, if/then, and operators; evaluate expressions
- Create and implement events and callbacks
- Create event handlers; subscribe to and unsubscribe from events; use built-in delegate types to create events; create delegates; lambda expressions; anonymous methods
- Implement exception handling
- Handle exception types (SQL exceptions, network exceptions, communication exceptions, network timeout exceptions); catch typed vs. base exceptions; implement try-catch-finally blocks; throw exceptions; determine when to rethrow vs. throw; create custom exceptions
Resources
- Implement multithreading and asynchronous processing
- Create and use types (25–30%)
-
- Create types
- Create value types (structs, enum), reference types, generic types, constructors, static variables, methods, classes, extension methods, optional and named parameters, and indexed properties; create overloaded and overridden methods
- Consume types
- Box or unbox to convert between value types; cast types; convert types; handle dynamic types; ensure interoperability with unmanaged code, for example, dynamic keyword
- Enforce encapsulation
- Enforce encapsulation by using properties, by using accessors (public, private, protected), and by using explicit interface implementation
- Create and implement a class hierarchy
- Design and implement an interface; inherit from a base class; create and implement classes based on the IComparable, IEnumerable, IDisposable, and IUnknown interfaces
- Find, execute, and create types at runtime by using reflection
- Create and apply attributes; read attributes; generate code at runtime by using CodeDom and lambda expressions; use types from the System.Reflection namespace (Assembly, PropertyInfo, MethodInfo, Type)
- Manage the object life cycle
- Manage unmanaged resources; implement IDisposable, including interaction with finalization; manage IDisposable by using the Using statement; manage finalization and garbage collection
- Manipulate strings
- Manipulate strings by using the StringBuilder, StringWriter, and StringReader classes; search strings; enumerate string methods; format strings
Resources
- Create types
- Debug applications and implement security (25–30%)
-
- Validate application input
- Validate JSON data; data collection types; manage data integrity; evaluate a regular expression to validate the input format; use built-in functions to validate data type and content out of scope: writing regular expressions
- Perform symmetric and asymmetric encryption
- Choose an appropriate encryption algorithm; manage and create certificates; implement key management; implement the System.Security namespace; hashing data; encrypt streams
- Manage assemblies
- Version assemblies; sign assemblies using strong names; implement side-by-side hosting; put an assembly in the global assembly cache; create a WinMD assembly
- Debug an application
- Create and manage compiler directives; choose an appropriate build type; manage programming database files and symbols
- Implement diagnostics in an application
- Implement logging and tracing; profiling applications; create and monitor performance counters; write to the event log
Resources
- Validate application input
- Implement data access (25–30%)
-
- Perform I/O operations
- Read and write files and streams; read and write from the network by using classes in the System.Net namespace; implement asynchronous I/O operations
- Consume data
- Retrieve data from a database; update data in a database; consume JSON and XML data; retrieve data by using web services
- Query and manipulate data and objects by using LINQ (intro)
- Query data by using operators (projection, join, group, take, skip, aggregate); create method-based LINQ queries; query data by using query comprehension syntax; select data by using anonymous types; force execution of a query; read, filter, create, and modify data structures by using LINQ to XML
- Serialize and deserialize data
- Serialize and deserialize data by using binary serialization, custom serialization, XML Serializer, JSON Serializer, and Data Contract Serializer
- Store data in and retrieve data from collections
- Store and retrieve data by using dictionaries, arrays, lists, sets, and queues; choose a collection type; initialize a collection; add and remove items from a collection; use typed vs. non-typed collections; implement custom collections; implement collection interfaces
Resources
- Perform I/O operations