MSDN study links for exam 70-483: Programming in C#

Microsoft have announced the exams for becoming MCSD on Windows 8, they are now in beta stage. I here present to you links for the skills measured for the exam 70-483: Programming in C#, the first exam towards MCSD: Windows Metro Style Apps Using C#. As you will notice the link set is not in complete for every detail, but covers the major topics.

exams - 483

Enjoy, and good luck on the exam!

Disclaimer: I have not taken the beta exam myself yet, will do so on August 21, will update the post after that if needed.

UPDATE: Have now taken the exam. Is under NDA now, but I’ve updated the post with some links Smile

UPDATE2: I passed the exam – so at least some of the links should be useful. Good luck!

Manage Program Flow (25%)

Implement multithreading and asynchronous processing.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: synchronize resources; implement locking; cancel a long-running task; implement thread-safe methods to handle race conditions
Implement program flow.
This objective may include but is not limited to: iterate across collection and array items; program decisions by using switch statements, if/then, and operators; evaluate expressions
Create and implement events and callbacks.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: 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 (24%)

Create types.
This objective may include but is not limited to: 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 overriden methods
Consume types.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: enforce encapsulation by using properties, by using accessors (public, private, protected), and by using explicit interface implementation
Create and implement a class hierarchy.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: manage unmanaged resources; implement IDisposable, including interaction with finalization; manage IDisposable by using the Using statement; manage finalization and garbage collection
Manipulate strings.
This objective may include but is not limited to: manipulate strings by using the StringBuilder, StringWriter, and StringReader classes; search strings; enumerate string methods; format strings

Debug Applications and Implement Security (25%)

Validate application input.
This objective may include but is not limited to: 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 asymme
tric encryption

This objective may include but is not limited to: choose an appropriate encryption algorithm; manage and create certificates; implement key management; implement the System.Security namespace; hashing data; encrypt streams
Manage assemblies.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: create and manage compiler directives; choose an appropriate build type; manage programming database files and symbols
Implement diagnostics in an application.
This objective may include but is not limited to: implement logging and tracing; profiling applications; create and monitor performance counters; write to the event log

Implement Data Access (26%)

Perform I/O operations.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: 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.
This objective may include but is not limited to: 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

This Post Has 32 Comments

  1. higi

    Thanks for links, but I think this links are not enough to pass exam, am I right? What else did you study?

    1. Andreas Hammar

      You’re welcome.
      No – the links alone will not give you the knowledge base you need to pass the exam. I’ve created them as a reference for me to brush up on stuff that I already know. If you are totally new to developing for C#, you should wait for the official study material – and try to get some practical experience. If have been working with C# development already, you can actually come quite far by just studying MSDN.

  2. Sathya Narayanan

    I don’t think that the materials are available as on date. I wish there were official study materials at-the-least. No announcements on till now. Thanks for links, the materials, it was excellent, I’ll be attending the exam by this weekend, lets hope for the best :)

  3. Bruno

    Hi, I’m new in C# and I’m thinking of get this certification in order to learn C# while I prepare myself to take the exam.

    Is certified only who pass in the 3 exams? If I pass just in the 70-483 exam I cannot tell that I’m certified, is this right?

    Is there official material to study? Where can I find it?

    Thank you

    1. Andreas Hammar

      Check the offical page for material.

      Technically you are not certified until you’ve taken all three. But you can always say that you’ve passed each exam – and that should account for something.

      If you don’t know C# the first exam is probably most applicable to you, the other are very win8 app specific.

  4. Tony Ku

    Hi Andrea,

    Thanks for the post! What format is the exam in, multiple-choice or is it more about writing pieces of code?

    1. Andreas Hammar

      @Tony Most often multiple choice.
      They have some new elements though where you drag and drop code blocks to create complete code, actually pretty nice!

  5. Denny Eapen

    You get the “Programming in C# Specialist” certification if you pass just the C# exam.

  6. Jose

    Hello Andreas.

    I would like to ask you:

    Did you try any selftest software to practice before taking your exam?

    Thanks for your post.

    Kind regards.


    1. Andreas Hammar

      Hi Jose,
      I did not try any self test exams for any of the tests. For the first two there were none available, didn’t look for the last one.

      I usually find self-test exams to be pretty useful – they give you hint of how the questions will be asked and on what detail level. But MSDN is a gold mine, so dig there for a while and you’ll be on your way :)

  7. Steven

    Hi Andreas,

    I’ve planned to take the exam on 6/6, so I’m currently reviewing everything in order to pass from the 1st try. I’ve been developing programs for the last 8 years, but i wonder if it’s needed to really know all methods and properties and stuff of all classes in the course materials?

    I’m not sure if you are allowed to answer this question, if not I understand :-)


    1. Andreas Hammar

      Hi Steven,

      i would say no, you dont have to know that many API details. However, it is important to understand the concepts and it really helps to have been coding with the different classes, if only in a mini lab project.

      And, as always, some Qs on security, certificates etc,:)

      good luck with the exam!

  8. Peter

    Hello Andreas Hammar

    Currently I have 2.5 years of experience in c#, and now I decided to go for the certification of Microsoft by passing the “Programming in c#(70-483)”.

    Can you please tell me what certificate will I get if I pass this exam(70-483) and how this certification is beneficial doe my future. Waiting of your reply.


  9. Peter

    Hi Andreas Hammar.

    I have 2.5 years of experience in c#, I am really confused that if it is the right time for me to go for this certification(MCSD). I discussed with some of my colleagues and they told me that these certifications are only good or helpful for the freshers. Please suggest me if I go for this exam so I am on the right track or suggest me some good exams that will help me to gear up my career in my field. Thanks.

  10. Harmeet

    I am fresher but i m having good skills of programming. shout I go Mcsd Certification Exam 70-483 ???

    please suggest me!!!

    1. Andreas Hammar

      If you feel that you are familiar with the stuff that the links point: by all means, take the exam.

  11. esha

    hello sir
    how to register this exam..

  12. Chuyeon Lee

    I took 70-483 but I didn’t pass.
    Can I retake this exam without repay?
    I read that I have chance 3 times.

    and… One more question…

    If I pass this I can get certificate for this just same day?

    1. Andreas Hammar

      Exam payment/billing is outside of my expertise, sorry

  13. Chuyeon Lee

    You are developing an application that uses the Microsoft ADO.NET Entity Framework to
    retrieve order information from a Microsoft SQL Server database. The application includes
    the following code. (Line numbers are included for reference only.)

    The application must meet the following requirements:
    • Return only orders that have an OrderDate value other than null.
    • Return only orders that were placed in the year specified in the OrderDate property
    or in a later year.
    You need to ensure that the application meets the requirements. Which code segment
    should you insert at line 08?

    01 public DateTime? OrderDate;
    02 IQueryable LookupOrdersForYear(int year)
    03 {
    04 using (var context = new NorthwindEntities())
    05 {
    06 var orders =
    07 from order in context.Orders
    09 select order;
    10 return order.Tolost().AsQueryable();
    11 }
    12 }

    A. Where order.OrderDate.Value != null && order.OrderDate.Value.Year > = year
    B. Where order.OrderDate.Value = = null && order.OrderDate.Value.Year = = year
    C. Where order.OrderDate.HasValue && order.OrderDate.Value.Year = = year
    D. Where order.OrderDate.Value.Year = = year
    E. Company

    What is the correct answer?
    Plaease help me.

    1. Andreas Hammar

      your answer will come from thoroughly contemplating: “or in a later year.”

  14. Peter

    Thanks for links, I found interesting and useful information for myself. I am preparing myself now for this exam, so it would be great if somebody can give me some advice) Besides, I can recommend another materials, that i use, for example this one

  15. Sunny


    Is this certification 70-483 still relevant as it was launched back in 2012. So wondering if it still makes sense to do it?


Leave a Reply