My TechEd Europe 2013 Recap

For some strange reason I thought that I would have time to shortly analyze the all session I participate in at the end of day. I tried that but on the third day I had to give up. In this blog post I shortly comment the all sessions (including the one I have already blogged). I include link only to the European version in Channel9. The most sessions were recorded and are already available as screencasts or videos in Channel9. The only exception I know are the preconference seminars from day 0. They were not recoded.

As a comment on my strategy with sessions: I tried to avoid taking session that discussed things that I already knew well. Secondly, I tried to avoid session having rating 200 (intermediate) or 100 (basics), and focus on advanced (300) and expert level (400) stuff. On each day I did few exceptions to this especially if I was tired and wanted to relax or if I simply did not found anything else interesting.

Day 0 (Monday)

From 0 to DAX (no video)

Comment: Nice introduction and clear to the DAX syntax. I saw only the first part of this, since I chose to visit in two pre-conference tracks.

Install and Configure Microsoft SharePoint 2013 (no video)

Comment: I missed the first part, in which presenter probably installed servers. On the afternoon part, they installed and configured SharePoint. I got few good tip and tricks, but there rather little new to me.

See also my earlier blog post on the Monday.

Day 1 (Tuesday)

Keynote 1: The Cloud OS: It’s Time!

Comment: The first thought after this was “O-key, it’s cloud time – once again. According Microsoft it have been cloud time for last three years.” I admit that Microsoft have done many good improvements to its tools and services. I especially appreciate that now MSDN subscribers get some resources from cloud for free.

Modern Application Lifecycle Management

Comment: Brian introduces new improvements in Team Foundation Server 2013. There are many good improvement in web access I truly like. However, clearly the best improvement in Team Foundation Server is that it supports now Git.

Do You Have Big Data? (Most Likely!)

Comment: Surprisingly good presentation on big data and Microsoft Hadoop implementation HDInsight. Some ideas after the presentation: “Processing data in Hadoop takes time. Or perhaps you just don’t want to use Hadoop for calculations that would be fast.” “Tools as somewhat primitive, but I cannot deny that HDInsights web console is (still) pretty cool.”

I took session on Hadoop on TechEd 2012, last year. Then you had to write some Java to get any data out of Hadoop. Quite a progress on tools and .NET support. E.g. now there is ODBC driver for Hadoop you can use in .NET code, SQL Server Analysis Services and Integration Service and with Excel and other office tools that supports ODBC data sources. Still, as far as I know, the .NET tools and APIs for Hadoop are somewhat limited. Therefore, if I needed right now write some code on Hadoop, I would seriously consider using Scala or Clojure instead. (Yes, no Java, if I can avoid using it. Functional programming shines when you need to manipulate data.)

Advanced Debugging of ASP.NET Applications with Visual Studio 2012

Comment: This was one of the greatest disappointments. The biggest problem in the presentations was that most demos failed partially or totally. Yet, there were few food tip and tricks I wrote down.

See also my earlier blog post on Tuesday.

Day 2 (Wednesday)

Building End-to-End Apps for Microsoft SharePoint with Windows Azure and Windows 8

Comment: I was a bit late from this, as the session I planned to have was canceled due absence of presenter – and that was announced 15 minutes after the session should have started.

Anyway, what makes this presentation interesting is the extensity of the demo solution. The applications utilized cloud database, cloud hosted SharePoint apps, SharePoint document libraries, SharePoint workflows, Win8 apps and Windows Notification Services. (I might have missed something.)

Building Modern, HTML5-Based Business Apps on Windows Azure with Microsoft Visual Studio LightSwitch

Comment: LightSwitch have been for long in my “check out this” -list. I’m glad that I finally did use an hour for LightSwitch. I also took a lab on LightSwitch. I didn’t complete it as at some phase I started to get “SQL server compilation task related exception”. As The Holy Google recommended to upgrade an extension in visual studio, I gave up. I’m not going to upgrade anything on lab machines. Next I have to figure out in which case LightSwitch is the best solution and in which cases you should rather use Access Services, InfoPath or build the application from scratch by using ASP.NET or Silverlight or something similar. This is definitely worth of another blog post.

Flexible Source Control with Team Foundation Service and Git

Comment: Even if there was not much new for me on this presentation, I can definitely recommend this session. I discussed with Martin Woodward on Tuesday evening on our needs and constraints relating to version control. He agreed with me that Git is better alternative for us than TFS Version Control system. Our discussion might be a reason why he underlines in this presentation that Git is very handy e.g. if you need to deliver source code to customer (as we often need to). A longer answer to question ‘why’ is worth of another blog post.

Cybercrime: The 2013 Ultimate Survival Guide

Comment: I was a bit tired and wanted to have something entertaining (but still useful). This is a fluent and inspiring presentation on cybercrime. I have to say, that it clever to have this kind of very appealing hacking presentation and deliver a lot of security related improvements at the same time.

The hidden agenda in this kind of “the gray hat security presentations” seems to be: “(i) Did not know that currently security is a big issue? You should seriously prepare for cyber threats. (ii) Did you know that there are severe security problems in Java and Android? (iii) But hey, we have lately invested a lot of in security. If, or better as you want to invest to the cutting edge security technology, buy it from us.”

Very nice rhetoric. It took quite a while to identity this chain of arguments from me – and I’m professional on argumentation and analysis of it. (My major in University was theoretical philosophy and it’s heavily about argumentation analysis.)

Build Data-Rich Solutions Faster with Microsoft Visual F#

Comment: Great talk. Alike Dustin Chamber, I’m a F# fan boy. It’s really pity that is not used more widely.

Day 3 (Thursday)

Keynote 2: Windows is the Future

Comment: Even if the title is silly, the content was good for a keynote. I liked this keynote more than the first one, even if the subject was not quite what I do for living. Windows 8.1 brings quite a lot of good upgrades – and it’s free.

BUILD 2013 Recap

Comment: Good overview on what new there is in Windows 8.1 for developers.

Real Experiences and Architectural Domain-Driven Design Patterns Applied on Microsoft .NET Development

Comment: This is a really good introduction to Domain Driven Design. After the talk Rovegård told that he is going to put the source code of the examples to GitHub. Once he had done that, he’s going to inform that in his blog

If I have time, I’ll “translate” C# implementation into F#. I suspect that F# as a functional-first, multi-paradigm language fits better to DDD than C# (or any object-orientation-first languages in general). This is just a gut feeling. I’d like to test my presupposition in a case having eloquent, corresponding C# implementation so that I can easily compare F# and C# implementations.

A Journey to the Dark Side of Social Networking

Comment: I have commented this already here. Great stuff.

Hackers (Not) Halted

Comment: One more “gray hat security” -session. See the related blog post. The session consists handy tip and tricks for the dog owners, who needs cheap pants for their dogs.

Day 4 (Friday)

Deep Dive into the Windows Azure Active Directory Graph API: Data Model, Schema, Query, and More

Comment: I planned to take Scott Hunters Web API session, but unfortunately, if was full. So I took this instead. Until now, querying users from AD have not been too easy. E.g. if you needed to write a custom client-side people picker control, you have had to build service side implementation by yourself. In future, this is not those case if you can use Windows Azure AD.

Web Deployment Done Right

Comment: The title is misleading. It should be “Why in Windows Azure Web Deployment is Done Right”. The presentation is solely about Continuous Deployment on Windows Azure. If you haven’t seen earlier, how it happens, check this out. The most interesting thing I didn’t know was that in Azure Deployment from Git is significantly faster than deployment from TFS Version Control system. We have had similar benchmark result when comparing Git + TeamCity and TFC Version Control + TFS Build automation. The first combination is significantly faster.

Authentication and Authorization Infrastructure in Microsoft SharePoint 2013

Comment: I was one of the best sessions in TechEd. First part the presentation is definitely worth of watching even if you don’t do SharePoint development. It’s mostly on claims based authentication (CBA) model and Azure Access Control Service (ACS). Second half is a deep dive into SharePoint authentication model and its extensibility points. On the second part Pialorsi for instance demonstrates how to use Facebook to authenticate into SharePoint and explains how to implement own claim provider and deploy it to your own on premises SharePoint farm.

Getting a Designer/Developer Workflow That Works

Comments: I have mixed feelings on this presentation. On one hand there as few very good ideas. (I would say them good, even if I had not done something similar.) But on the other hand, rest of the presentation as either a bit naïve. I also disagree some of the author’s idea. I doubt, if it is really wise wireframes as a tool in contract negations in a way the author recommends. It is hardly the optimal way to deliver what customer needs and not only what he had ordered. Designer/Developer workflow is among those subjects I’d like to write more.

What’s New in Windows 8.1 Security: Modern Access Control Deep Dive

Comment: This was surprisingly inspiring presentation. The main argument was “Passwords are a poor way to authenticate. Don’t use passwords for authentication – it is not absolutely necessary. Here you have three better alternatives: biometric fingerprints, TPM key attestation and virtual smart cards.”

Day 1 in TechEd 2013 – From DAX to SharePoint

I was near by the venue at 8am. However, it took approximately 30 mins to find exactly correct location. It’s weird how long it took from me to find an enormous conference center – or better the correct entrance. Later I found out that I chose wrong exit from Metro. If I had chosen different exit, it would not have been possible to miss.

After registration and an unsuccessful attempt to find cloakroom, I entered a seminar room. The subject in the room was “From 0 to DAX”. I’m satisfied. The lecture created pretty good idea what it is all about to write DAX – plus few good tip and tricks. I’ll try to fit a hands-on lab on the subject to my program. And if I manage to arrange some time in work, there is an Excel-report most people hate that might benefit from an upgrade to PowerPivot and DAX…

To be honest, I selected “From 0 to DAX” somewhat randomly. It was in the first room I found among the three tracks I found most useful. I had decided that if the morning’s lecture is not extra interesting, I switch the track on afternoon. So I did. I chose to spend afternoon on SharePoint installation and configuration track.

After afternoon’s SharePoint installation and configuration session, I remember best the lecturer’s (Todd Klindt) joke about SharePoint information dialog saying: “It should not take long…” He agreed: “It should not take long – but it does.”

If you ask from me the single biggest usability problem in SharePoint is that oftentimes it’s damn slow. Luckily improved caching makes it faster for many common scenarios. Yet, a power users cannot avoid such actions that are slow. The second biggest usability issue reveals that I’m a developer: the issue is the lack of proper statically typed, concise development model for common development task like for creating content types, web templates and provisioning files. Comparing to clever and modern convention-before-configuration -based frameworks like ASP.NET MVC and Entity Framework, it’s hard to believe that SharePoint’s tool-driven and clumsy feature framework is from the same company.

Back to the subject. The most useful parts of the lecture were probably the PowerShell scripts that makes installation and configuration a bit less painful. I’ll add link to the script here, once I find it. After criticizing SharePoint I have to say that I truly appreciated that you can do almost everything with PowerShell. I also liked the way lecturer managed slowly progressing installation and configuration: He kept on telling anecdotes, best practices and tip and tricks. I wrote down that database aliases might be useful e.g. in migrations and that you should use a white list to circumvent loopback check rather than turn it off entirely.

Related links:

The potential in Nokia’s alliance with Microsoft

I see a lot of potential in Nokia’s alliance with Microsoft. Of course there are also many severe disadvantages and risks in it (linked articles are in Finnish, sorry). Since I happen to know better the bright side than the dark one, I’ll write on it. If you are more interested in doomsday visions see e.g. this blog post or this post’s comments.

Why I find this partnership interesting? Nokia and Microsoft together have great potential for delivering the next generation business phone after the rise of social media. I really like the way social media have invaded to mobile devices. Now I can follow where my superiors’ and colleagues are on map and how their gym programs progress – and all that nicely in one place, in my Facebook feed. That is kind of entertaining but not business critical.

IPhone is made for consumers, it is not meant to be platform for business applications. Android tries to offer same nice stuff as iPhone
but better and with lower price. Of course there are business applications that have been made for iPhone and Android. Nonetheless, the focus is not in business but in entertainment. The emphasis on the business needs (rather than entertainment and socializing) is exactly where I see the strength of Nokia-Microsoft alliance.

In practice, the biggest opportunities in my opinion are:

  • Easier and cheaper integration with Line of Business (LoB) systems
  • Out of the box integration with some supportive systems like intranet and CRM
  • Easier and cheaper access to business data (via mobile phone)
1) Easier integration with Line of Business (LoB) systems

Silverlight 3[*] and .NET 3.5 contains a nice set of tools that make integration to LoB systems easier and faster to implement.

This is quite a nerdy beginning, but it’s really relevant in my opinion. On newspaper and news websites, this advantage is almost fully ignored, probably because it is “too technical” to most readers. Therefore, I start with it.

There are many systems in require 24/7 attention or cases where  the companies currently have to use custom made hardware to access the system. I’m now thinking of manufacturing, security, healthcare, inventory and critical IT systems. Many of the tasks related to these systems could be done by a mobile phone with good big touch screen, but building integration to mobile devices is too expensive.

The price comes from three main things: the work needed for design, implementation and testing, custom hardware and the changes during the software project.

1.1. Hardware costs

I start with custom hardware. It is easy to understand why custom hardware is overly expensive. It is obviously better, if normal mobile phone does the same thing than custom-made devise.

Historically mobile phones have had severe limitations relating to control devices, screen size, memory and processing capabilities. These limitations that have forced many companies to build custom hardware instead of utilizing normal mobile phones.

That has changed. You can manage most of the tasks needed in inventory handling by iPhone or any other modern smartphone. They have big enough touchscreen. Processors are faster and faster and memory is cheaper. Of course, there are and will be situation where you need custom hardware, but they are fewer and fewer. So, now the question is how easy it is to build integration between LoB systems and normal mobile phone.

1.2. Decreasing amount of unnecessary work with good development tools

I suppose that peoples understand well why development work costs. Good development tools and proper level of abstraction decrease significantly the costs of work. I’m not saying that Nokia didn’t have good tools. I’m saying that Microsoft has even bigger arsenal of extensible tools than Nokia has ever had. Both Nokia and Microsoft have worked a lot for proper level of abstraction. Probably some parts of work can be combined and some cannot. As a result of this all, the costs of custom LoB mobiles application will decrease.

1.3. Tackling the impact of changes with proper level of abstraction

The last costly thing is the changes and rework. In practice, there are always big changes in software projects. The requirements tend to be very volatile in software industry. Often, you start building five story element house and end up 10 floor above the ground  and 3 underground levels. The answer is not to design things better so that there won’t be any changes. That has been tried for decades and it has been found a deceptive path. Approximately 80% of software projects trying to do that fail. 20% of them won’t ship anything usable at the end. Rest of failing projects goes significantly over budget or given schedule, or deliver only a small subset of the original scope. (See. e.g. Steve Cornel, 2004, Software Estimation, pp. 24-25.)

Preparing for the change and rework are necessities in software industry. Proper level of abstraction in chosen technology and development tools is a big advantage. Proper abstraction layers is only a small part of answer, but nevertheless a significant part. E.g. .NET framework contains a nice abstraction layer for client-server communication, Windows Communication Foundation (WCF).

1.4. At last

Both Nokia and Microsoft have invested a lot to these three things (the lesser work amount, lesser need for custom hardware and better capability to adapt to change). I cannot say if they have invested more than other companies or shipped better products/tools.

I have to say that Microsoft has made few big mistakes in its search for proper level of abstraction. E.g. ASP.NET Webforms lures web developers to a poor, hard-to-test two-tier architecture that is fragile and difficult to change once requirements change. Fortunately Microsoft has learned from the mistakes and has recently done many big and good changes in its technology roadmap.

Currently, Microsoft technology stack for implementing LoB system for mobile devices is very promising and extensive. It’s not prefect, but definitely one of the best you can have.

2) Out of the box integration with some supportive systems like intranet and CRM.

I’m expecting to see nice out of the box applications that integrate Nokia phones to Microsoft server and cloud service products.

In practice, this means:

  • Extensive and easy to use integration between WP7 and SharePoint[**]. There is already some integration between them – both mobile website based and native phone software. I haven’t had change to test them by myself due to my employer’s current phone policy. I have seen impressive demos but I don’t know if it works in real-life situations.
  • Extensive and easy to use integrations to Microsoft Dynamic products, especially CRM. I have not followed much what happens on Dynamics area. Anyway, nice, easy and cheap integration to CRM data and reporting would be clear benefit.

Both SharePoint and Microsoft CRM (a part of Microsoft Dynamics product family) are also part of Microsoft cloud services. I’m pretty sure that Microsoft makes better profit by selling cloud services (like Office 365 and Microsoft Dynamics CRM Online) and server software licenses than by selling mobile operating systems. Actually, I suppose, it does not really matter if effort to mobile operating system causes big losses in income if it boosts significantly sales on cloud services and server software license area.

This is beneficial also for Nokia. It is clear that Nokia will make good profit, if big companies want to buy Nokia smart phones for their employees just because it is easy and cheap to integrate with the supportive systems like mail server, instant messaging services, intranet, extranet and CRM. I see this as a clear win-win situation even if Microsoft wins probably a bit more.

3) Easier and cheaper access to business data

Microsoft has done good progress in business intelligence stuff during the last decade. Microsoft’s self-service BI is a good concept. For instance Excel services is really nice and easy way to do some simple reporting and publish it to everyone in the company or in the partner network. It is good alternative for more traditional reporting tool, like SQL Server Reporting Services.

However, currently all available easy to use reporting stuff tends to be too heavy for mobile phones – including Excel services and SQL Server Reporting Services. It is also difficult to scale reports so that it is usable in small screen as well as on big screen. If you want to have some nice reporting to mobile phone, you have to do a lot of custom development and that is expensive.

Thus, I’m expecting to see better abstractions in BI systems so that you can more easily scale the same data and reports to mobile devices and to PC with big screen. Certainly this is not the first thing Nokia and Microsoft need to take care of.

However, together they have good capabilities to deliver better reporting and BI tools for mobile devices. Apple and RIM lack hardcore server backend knowledge in BI and they don’t have much experience in BI development tools. Microsoft has. Google doesn’t have mobile hardware knowledge and experience. At least it is not as strong in mobile hardware as Nokia. Neither does it have similar BI tool comparable to MS Business Intelligence Studio, SSRS Report Builder, PowerPivot, PerformancePoint Services and Excel Services. (Please correct me if I’m wrong. I’m not an expert in Google offering and development tools.)

In short: If you want to have reliable and fast to implement reporting system for mobile devices you need to know a lot of hardware and backend systems, and you have to offer good, easy-to-use tools for report builders. Only Microsoft and Nokia together are strong in all these areas.


*) You can develop Windows Phone applications in two ways, by using XNA or Silverlight 3. XNA is used in XBox games and Silverlight is Microsoft attempt to create a UI toolkit you can use everywhere (on desktop, web, mobile, Windows, Linux…). Silverlight former name was WPF/E (Windows Presentation Foundation Everywhere). Recently, Microsoft has announced that their attempt to run the same Silverlight application everywhere was too ambitious and they have descaled this goal a bit.

**) SharePoint is a very nice platform for intranets, extranets and BI reporting portals. You can use it also public web, but to be honest, it is not the best tool to use in public websites. There are many significantly better and cheaper platforms to public web sites than SharePoint. IMHO, SharePoint is to public website CMS what IE6
is to browsers.