Today I passed the MS 70-483 exam. In my opinion it’s now the right time to let you know how I prepared myself for that particular certification. It would be a pleasure for me to help you improve your knowledge and prepare you for the certification.
Because there are many ways to prepare, I’ll show you different kind of resources.

If you plan to take a certification exam, I’ll recommend you to have at least the following tools ready for use:

  • Windows 8 RTM
  • Visual Studio 2012 Express

You have to write code. There are some topics which are only available on .NET 4.5 platform which requires Visual Studio 2012.

Official preparation materials

All the listed preparation materials on the official certification page, in fact a single book, are not available up to now. The book Exam Ref 70-483: Programming In C# is planned to be released on 30 April 2013.

Alternative books

As an alternative for anyone who likes to read a complete book about the technology itself, there is another book recommended by the community called Pro C# 5.0 and the .NET 4.5 Framework.

Web based video training

On March 19, 2013 Jerry Nixon and Daren May released some videos in a series called Programming in C# Jump Start. You can find their videos on Channel 9.

Guide based on web research

If you already have a wide knowledge of C# and you just want to get fit for the certification, then you can follow the link list below. I tried to link any resources (mostly from msdn) I used to prepare myself for a successful certification with the skills measured from the official certification page.

I recommend that you at least have basic understanding of C# development. Because of that, I won’t show any links about the basics. You have to be familiar with the most common concepts of C# development otherwise you won’t be able to pass this certification. In addition, these are all links I have used to prepare myself. It is possible that I have a lot of experience in some but little in another topic.

Manage Program Flow

  • Implement multithreading and asynchronous processing.
  • Manage multithreading.
    • synchronize resources; implement locking; cancel a long-running task; implement thread-safe methods to handle race conditions
  • Implement program flow.
    • 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

Create and Use Types

  • Create types.
  • 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.
  • Find, execute, and create types at runtime by using reflection.
  • 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.

Debug Applications and Implement Security

  • 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

Implement Data Access

  • Perform 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.
    • 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

Keep in mind that you’ll need to have a sufficient understanding of the different topics listed above. Otherwise, you will not be able to answer the questions on the exam. On the other hand you don’t need to be an expert in every topic.

If you passed your exam, you have the first third of the MCSD: Windows Store Apps using C# exam. Congratulations!

Share this

Claudio Bernasconi

Claudio Bernasconi is a professional software developer, Microsoft certified technology specialist, blogger, technology enthusiast and founder of CarParking Schweiz. Since 2010 he works for KMS AG in Lucerne, Switzerland.