Microsoft Techdays Paris 2013 - Day 1

7 minute read

I’ve participated microsoft techdays paris in congress palace of paris between 12 and 14 february. I was surprised by the number of the attendants of this conference, a lot of passionate professionals, students, organizers and speekers. I missed several sessions because the halls were not big enough for accommodating so many people.

A lot of topics were covered during the 3 days, such as ALM, ASP.NET MVC, Visual Studio 2012, Windows Server, Office 365, Agile, TypeScript, Windows Phone, Windows 8 etc. I’ve chosen about 12 sessions in all, and most of them are helpful for my daily work.

Here is my personal card and the palace map for attending this conference.

Next I will make some conclusions for the sessions I’ve attended in the first day.

Opening:

Fake assembly: is a technology for isolate unit test. It provides two methods: stubs and shims. Blend: is used to design applications and is integrated in VS 2012

Session 1: Plongé au coeur du .NET 4.5 (Finaxyx, MindMatcher)

New features in .NET 4.5

  • Garbage collector: better background garbage collection for server
  • Large Object Heap(LOH): better allocator. Allocation >= 80k bytes belongs to LOH. LOH is only collected on generation 2 collection.
  • Multicore Just-in-Time(JIT): transform IL code to machine code. ProfileOptimization class is used to optimize the transformation.

NGEN(Native image GENeration) vs JIT: http://msdn.microsoft.com/en-us/magazine/cc163610.aspx

MPGO(Managed Profile Guided Optimization): tool to optimize code generated by NGEN

JIT debugger: RE-JIT, ICorDebug


Session 2: ASP.NET Web API, SignalR, UX

API: framework for building RESTful web services

It’s Standard; heart of app; Simple, autonome

HATEOAS is RESTful API framework

SignalR is a framework for building real-time application

Problem: HTTP is not adapted: it’s stateless, it support only request/response Html5, web sockets Advantage: http extension, support proxy, bi-directional communication Disadvantage: instable, need to write protocol

Solution:

  • Short pooling: a lot of traffic, expensive
  • Long pooling: server keep a connection with some time
  • Forever frame: most used
    • 1)Http /1.1 200 ok
    • 2) <script>eval({id:’1’})</script>
    • 3) <script>eval({id:’2’})</script>

SignalR:

  • 1) all proved techniques
  • 2) suitable for browser
  • 3) automatic server
  • 4) prgramming abstraction

SignalR API:

  • support persistent connection(low level)
  • hubs(high level)

SignalR Performance:

  • 250k ~ 500k/s
  • SignalR 1.1 is 18 times rapid than version 1.0


Session 3: C# .NET énigimes

2001 .net 1.0 2012 .net 4.5 vs2012

C# language specification is installed when VS is installed,its path is: “C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC#\Specifications\1033”

  • 1) explicit type is not always recommanded, it depends on the situation.

For example:

It’s recommanded to use var because you have already know the value’s type.

var str = "Hello World!"; 

It’s recommanded to use explicit type when you don’t know the value’s type.

string str = methodName();

If you see the machine code desassebled by ILDASM, you will see the code generated by var and explicit type are same. So none of the them have advantage.

  • 2) i++ vs ++i
    int i =1;
    i = i++;
    console.writeline(i); //Result => 1
    
  • 3) stack vs heap

stack Last In First Out

heap ramdom

  • 4) property

  • 5) yeild return:

yield return is very useful in conditional iterator or infinite collection.

You don’t need to know the next item in collection before returning it, which is a benefit for infinite collection or UI pagination.

foreach (var str in RunYieldOrderTest())
{
    if (str == "charles")
    Console.Write(str);
}
 
public static IEnumerable<string> RunYieldOrderTest()
{
    var names = new List<string>() { "charles", "soleil" };
    Console.Write("name1");
    yield return "charles";
    Console.Write("name2");
    yield return "soleil";
}

http://stackoverflow.com/questions/410026/proper-use-of-yield-return

  • 6) execution order
    int i = 0;
    var s = string.Format("{0} {1} {2} {3}", ++i, i++ * ++i, i, i++ + i++); //Result => 1 3 3 7
    

Session 4: Améliorer votre productivité avec Visual Studio 2012

Visual Studio Version history:

  • VS 97(Version 5.0) -> VB 5.0
  • VS 6.0(Version 6.0) -> VB 6.0
  • VS .NET 2002(Version 7.0) -> C# 1.0
  • VS .NET 2003(Version 7.1) -> C# 1.1
  • VS 2005(Version 8.0) -> C# 2.0
  • VS 2008(Version 9.0) -> C# 3.5
  • VS 2010(Version 10.0) -> C# 4.0
  • VS 2012(Version 11.0) -> C# 5.0

In order to improve the productivity in VS 2012, you have to know the new functionalities which are:

  • Integrated videos You have integrated tutorials in VS 2012. You can also activate subtitle when clicking “CC”.
  • Multiple separated screens. You can split your screens to several screens, And
  • Different color theme. You can configure different color themes with Dark mode, Blue mode and Light mode in “Tools” -> “Options” -> “General” -> “Color Theme”
  • Integrated Search There is a quick search which is a global search, and prompt a list just under the search field.

“Ctrl”+”F” is more powerful because it can exist when you develop, but you must finish you search or leave it in another tab to continue your development.

  • Solution explorer Now you have you “class view” in your solution which will list all the levels of elements (class, method, interfaces etc) in your namespace.

You have also a search field in you solution explorer, you can search all the element with the keyword you search.

  • sample code in “Samples Gallery”
  • Web development You have auto-completion for jQuery and all the jQuery documentation is integrated.
  • Debugging You can download remote debugger and configure a remote machine for remote debugging.

Session 5: ASP.NET MVC new features (Infinite Square)

News:

  • New template for desktop and mobile
  • HTML5 support
  • Authentication OpenID, OAuth
  • Separation of controllers into different folders
  • Default IIS Express for applications
  • Different display for different user agent, ex: Iphone, Ipad etc
  • Bundling: combine multiple files into one Integrate multiple files to App_Start\BundleConfig.cs
  • Minification: Delete useless space of files

All the above sessions are more about CSharp ASP.NET. The day 2 is more about Visual Studio 2012, TFS and ALM.

I hope this articile can do some help! Enjoy coding!

SUN Jiangong

SUN Jiangong

A senior .NET engineer, software craftsman. Passionate about new technologies.