Last day of TechEd, we started by attending WSV414 - Advanced Automation Using Windows PowerShell 3.0 showing new features in PowerShell 3.0 and in general how Microsoft has improved import for automation of administrate tasks in Windows Server 2012 and all new Server products as well. As also mentioned in the first keynote, cloud-computing is an important area for Microsoft, and a part of this transition for Windows to become a “cloud-enabled OS” (left slide) is to allow remote administration of Windows machines through PowerShell cmdlets. Right slide shows some of the new features in PowerShell targeting new users (like me…) of which I especially look forward to have IntelliSense support in the PowerShell ISE.

IMG_1128 IMG_1132 

The “Common Engineering Criteria” is the name of the effort by Microsoft to “PowerShell-enable” all administrative tasks in Windows Server and Server products in general, and having it available on several “end-points” like remoting and Web Access, which enables you to simply open an url on the server and execute PowerShell commands in a “command window”-like interface:

IMG_1137 IMG_1141

Some of the improvements to PowerShell ISE (including IntelliSense) and how to call and display data from a REST-based webservice:

IMG_1147 IMG_1151

We have started developing PowerShell scripts in ScanJour for deploying our test environments. With the new features in PowerShell 3.0, it looks to be a lot easier to get started authoring PowerShell scripts.  The session didn’t mention anything on testing PowerShell scripts, but I think there soon will be a need to be able to write unit tests for PowerShell scripts as well, as they easily contains just as much logic as a small C# program. Maybe Fakes (which has been mentioned several times during the conference) can help in mocking external dependencies for PowerShell scripts as well?


DEV324 - A Modern Architecture Review: Using the New Code Review Tools was held by a speaker from Australia, which he started to talk about (and even show a commercial for an Australian beer), but the session got up to speed and did contain some interesting topics about code review. Not so much about the new “request codereview” feature in Visual Studio (he actually only showed slides of this), but more in general about how to use the tools like Layer Diagram (middle slide - requires Visual Studio Ultimate) or NDepend (right slide - commercial tool) for getting an overview of a codebase, and find “weak spots” in the code.

IMG_1154 IMG_1157 IMG_1160

Also of course using Code Analysis in Visual Studio for finding potential issues in the code. Here the speaker suggested to create a “Product Backlog Item” for a code warning like a potential SQL injection. Personally I think it depends on the situation how to solve it. Optimal solution would just be to talk to the developer and have it fixed, but if that’s not possible for whatever reason, I think a potential SQL injection is serious enough to get a bug (my concern is simply that it won’t get fixed otherwise…)


An interesting “definition of bug” from the speaker was that every bug should have an IntelliTrace attached. I like the idea, and we get closer by the ability to collect IntelliTrace files on production servers with Visual Studio 2012, but there probably still is some time before we get to this point.


In DEV412 - Identify & Fix Performance Problems with Visual Studio 2012 Ultimate the speaker started with talking about the importance of starting load testing from day one at a project, in order to identify performance issues as soon as possible (left slide). Middle slide gave an overview of the tools support in different flavors of Visual Studio and to the right an overview of the steps in order to identify a performance issue in a web application (where he had injected various sleep statements and for-loops).

IMG_1168 IMG_1169 IMG_1171

A pattern for load tests is to make the load test only test functionality of one user story, again in order to ease identification/isolation of performance bottlenecks if they should occur, and also serves as a starting point for implementation of load tests. Right slide gives an overview of setup for test controller and agents in order to run distributed load tests. At this point there was a question from the audience on using CodedUI tests for load tests, to which the speaker made it clear that even though it could be possible to use CodedUI testing for load testing scenarios, it’s certainly not the purpose of CodedUI tests and it’s much simpler to achieve same result using a dedicated load/stress testing framework. Seems this speaker knows his testing tools well.

IMG_1172 IMG_1176 IMG_1178

Last part of the presentation was on the profiling tools in Visual Studio 2012. First an overview of the different types of profiling (of which he used “Sampling” for his presentation) and an example of comparing profiling results before and after some bottlenecks in code was identified and changed.

IMG_1181 IMG_1184

From my experience profiling is a very effective way to see if code behaves as expected.


Last session for me at this conference was DEV301 - ASP.NET Roadmap: One ASP.NET - Web Forms, MVC, Web API and more which covered new features in ASP.NET 4.5 (left) with focus on the new “One ASP.NET” feature. As you can see on the right slide, the feature is not finished yet, but should be included in RTM of Visual Studio 2012.

IMG_1186 IMG_1187 

As I understood this feature, it allows you to create multiple web frontends for the same application, which is showed below where we have MVC app (left) displaying the same information as the WebPages app on the right. Might be useful when having a website with both a rich browser-targeted and a simple mobile frontend.

IMG_1189 IMG_1190

And then there will support for OAuth of which he showed how to implement login using Google account.

IMG_1191 IMG_1192

Unfortunately my camera went out of battery at this point, so no more pictures, but think I got the most interesting parts of the conference covered. Hope you have enjoyed reading these posts from the conference. At least it has been very valuable for me every evening to go through my notes and pictures, since all the impressions you get on such a conference easily gets mixed together.