A couple of days ago I published my first post after an absence of 8 months, where I promised to tell you about the course I worked on for the past couple of months.
The 20487B course is an official Microsoft course, which myself and several other experts from Sela have been working on for the past 8 months.
As with the previous course I wrote for Microsoft (10263 – developing WCF services), this course also took a lot of time to develop because it involved creating an elaborated lab scenario, 14 course modules, and a whole lot of writing (688 pages in total, not including PowerPoint slides).
As the name implies, this course is about Web services and Windows Azure, but in fact, it covers a whole lot more. The purpose of this course is to teach developers how to create server-side distributed applications, using the Microsoft .NET stack. In this course, we cover the following topics:
- Entity Framework – creating code-first models, working with DbContext, using LINQ to entities, Entity SQL, and more.
- ASP.NET Web API – creating HTTP-based services and extending the Web API pipeline (message handlers, media type formatters, etc.). The modules also cover dependency injection, OData, and Web API security (basic stuff).
- WCF – creating WCF services, hosting, message patterns, async operations, transactional services, and WCF security (the patterns, async, transactions, and security were originally part of the 20487A course, but in the new version, 20487B, we decided to make these as optional modules to free more time to other content).
- Windows Azure
- Hosting – this course mainly focuses on Web Sites and Cloud Services. Due to time limitations, we do not cover virtual machines.
- Storage – using blobs, tables, and queues from .NET. The module also covers securing storage access with shared access signatures and policies.
- Service bus – relays, queues, and topics. We might be adding material on notification hubs in the future.
- Diagnostics – configuring and collecting diagnostics data from deployed cloud services.
- ACS – securing Web API services and service bus using ACS.
- Cache – deploying Windows Azure Caching solutions and using them from .NET applications.
- Other stuff
- Cloud computing – concepts and considerations.
- Hosting and deployment – IIS, MSDeploy, GIT/TFS integration.
- Scalability – architectural design and concepts, pitfalls, CDN, and traffic manager.
This course covers several topics which are still being updated (aside maybe for WCF which is only updated on newer version of the .NET Framework). Therefore, for the first time, Microsoft has decided that this course will be frequently updated to reflect changes to APIs, and new added features to the technologies (new Windows Azure services, EF6 changes such as async methods and connection resiliency, and new features of Web API, such as attribute-based routing).
Heads up to any MCT who is going to deliver this course:
The virtual machines we used for the course have the Windows Azure SDK 2.0 installed on them. Because of new SDKs and updated NuGet packages, labs may get broken, if newer versions of Windows Azure NuGet packages require newer versions of the SDK.
For such cases, we included in the labs the required steps for installing the old versions of NuGet packages, instead of the new ones. If students reports issues running the code, mainly exceptions about missing assemblies, you should instruct them to use the uninstall the current version and install the older version, which is specified in the lab notes. As part of supporting the course, we will be trying to identify NuGet package issues and inform MCTs about them.
Currently, I know of an issue with the Caching lab (module 12), because the new Windows Azure Caching NuGet package requires SDK 2.1. For this lab, please install version 184.108.40.206 of the package, as specified in the lab notes.
If you are an MCT and have any questions about the course, the content, or how to deliver parts of it, feel free to send me a message.
I’d also like to mention the other team members from Sela, who took part in authoring this course:
- Authors – Yaniv Rodenski, Manu Cohen-Yashar, Ofir Makmal, Yuval Mazor, and Sasha Goldshtein.
- Project Management team – Ishai Ram, Baruch Toledano, and Gal Tfilin.
- Lab development, technical writers, testing, and IT – Israel Olcha, Roman Bryansker, Roee Moshe, Alex Lipov, Gil Blumberg, Morin Rodenski, Ernan Maisels, Lee Narkis, Meital Valenci, Daniel Sterman, Amith Vincent, Kavitha Ravipati, and Anuradha Sridhar.
Many thanks to the MSL team who was in charge of this course and to Steve Michelotti, our technical reviewer.