Workshop: IoT Firestarter
Doug Seven (@dseven)
This was fun, really really fun!
Doug began by explaining the concept of IoT, and how you can build small things and then begin connecting them and actually analyze what they do.
We were then get started with a Particle Photon kit and lab with this in slightly different ways. First of all, to build a node-js application where with a simple script turn on and off a diode, plugged in on a breadboard. The next step was to use a photo resistor to control the brightness of the diode. I already have a plan to build an app that through this Photon can open or close my garage door. Will return if I do create it! The advantage of Particle Photon is the price, $19 is really nothing and there is a store where you can order accessories, sensors, and whole kits for various lab aroung the IoT jungle.
We also played around taking this information about temperature, sent it to Azure through the Azure IoT Hub, further into the Power BI which in real time can visualize temperature differences and whatever graphs you would like to see.
This entire area is so damn interesting and exciting, you wish you had more time to put into it.
Windows 10 MVVM in Depth
Brian Noyes (@briannoyes)
This session was not really what I expected when it didn’t really go “in depth”. It was rather an intro to MVVM and XAML development and not that Windows 10 specific. Brian asked everyone there if they knew what MVVM was, if some worked with WPF, or Windows Phone before and almost everyone said yes. Hence, I think that a basic course in MVVM not really correlated with the title of the session. I was, although, some minor things about Windows 10, as the SplitView control to build hamburger menus (google it…) and that you have more opportunities to widen your graphical design in Windows 10 LOB applications.
Design Practices for a Secure Azure Solution
Michele Leroux Bustamante (@michelebusta)
This was no a no demos session, rather an overview of how to build secure solutions in Azure. There was a lot of concepts that perhaps aimed more towards operations and maintenance, but two things I think is interesting is the Azure AD which allows account management to reside in Azure and use their Azure AD Authorization Provider for login and permission management. It is also possible using AD Sync to synchronize your on premise AD to Azure.
Another interesting part is the Key Vault which is an encrypted storage for keys and other items used by apps and services in Azure. This is a place where you can store, for example, connection strings and then simply retrieve it in the app instead of having them in the app/web.config residing in your version control system.
Another interesting thing is Data Masking. A way to mask data when, for example, moving production data down to development or test environments. There are third party tools that help with this through SSIS package. No concrete advice on supplier of these tools, but important to investigate and consider the next time you do it.
Top 10 Entity Framework Features Every Developer Should Know
Philip Japikse (@skimedic)
It was in fact 11 features which I all already where aware of, or use daily. Support for migrations in two different DataContexts per project, lazy/eager-loading, logging, support for stored procedures and so on. Unfortunately not the session for me.
Keynote – What Does an Open Source platform look like?
Scott Hanselman (@shanselman)
Scott talked a lot about how Microsoft is continuing its journey through the Open Source world and gave some tips along the way for developers in general.
http://www.sourceof.net is a page where you can see all the source code for all of the code Microsoft has chosen to share.
A very interesting thing about the new project.json file in Visual Studio. When you create a new asp.net 5 project, it will create a global.json file in the Solution Items. Since the new project structure in Visual Studio is folder based, this is where you will find which folders Visual Studio will be looking at to find the projects. What Scott had done was to install ASP.NET MVC’s nuget packets in a website (the defaults) and then wanted to demonstrate how easy it can actually be to debug things INSIDE the MVC’s dll’s. The thing you can do is to fork MVC on github and then add the path to the local files in global.json’s projects array. What happens then, if the versions on nuget and the forked repository match each other, is that the files from the file system will be compiled and used instead of the nuget packages. Really, really cool!
When creating a asp.net 5 application and then take a look at the project.json file you will see that there are two different frameworks referenced. One is the full .NET Framework (which we’ve used until today) and the other one is .NETCore, which is the stripped-down version used for running the application on platforms other than Windows.
It will because of this be complicated to both Windows and “the others”. A great advantage here is that certain classes of course are not represented in .NETCore because there is no reasonable translation. For example, using the registry in a .NETCore execution environment on a Linux machine. Visual Studio will help you a bit in this case and will show you in IntelliSense that a particular class or method actually does not exist in .NETCore and you simply need to make a decision to solve it in other ways.
Lessons Learned from Developing a Windows 10 businessapplication
Billy Hollis (@billyhollis)
Because we wanted to spread ourselves a little and not go at the same sessions all the time, I took the opportunity to attend a session of Universal Windows Apps. Billy went through some tips and even showed a LOB application built on the UWP framework. Not much new compared with WPF, or Windows Phone, but the biggest news is the support for responsive applications and easier control over which available API’s there is depending on the device it runs on. Because Windows 10 can run on everything from phone to XBox, you can relatively easy customizing its interface and functions depending on the device the application is running on.
Book recommendation: Sketching User Experiences
Comparing Angular 1 and 2 Angular
Ward Bell (@wardbell)
After watching this session, I am not that afraid of Angular 2 any longer. Obviously, there is no easy migration path from version 1, but there is much you can do now to facilitate that. For example, do not use $scope, you can instead use the “controller as” to use the controllers as a view model ($scope) and thus obtain much cleaner code.
To simplify the migration, you can move the event handling with $broadcast, $emit and $on to a wrapper service. Remaining unclear is $watch, there might be a convenient way to solve this as well.
Aurelia: Next Generation Web Apps
Rob Eisenberg (@eisenbergeffect)
Initially; oh my, how beautiful Aurelia is! The first thing that strikes me and what Rob also highlighted is how they have tried to build Aurelia to not being in the way of developers. A component consists of nothing but a plain class, no Aurelia code. Big advantage compared to Angular2’s decorative @Component.
All components can be used directly as a HTML element alternatively dynamically added via the <compose> element. That is, if you create a TodoComponent class it can be used in your html via <Todo></Todo> alternative use <compose> with some attributes.
ValueConverters is a way to create what in Angular are called filters. You use them the same way, by using a pipe, and Aurelia locates them by naming conventions: ToUpperCaseValueConverter can thus be used as “value | toUpperCase”.
Rob also showed something that’s really mind blowing; you can build a feature in Aurelia that makes it possible to write all their views in markdown format and allow the feature to convert this into html (in this case, with the help of a third-party library). He also demonstrated how they have written a feature that allows the use of angular syntax for data bindings instead of Aurelia’s. It’s hardly something you want to do except during a migration perhaps, but it still shows how extremely powerful, extendable and modular Aurelia really is.
Workshop ASPNET 5
Damien Edwards (@DamianEdwards), John Papa (@john_papa), Ward Bell (@wardbell)
Very exciting new stuff in ASP.NET 5. The entire pipeline has been redesigned for easier hooking into your own middleware and handle requests. This is the new way instead of using DelegatingHandler as you used to.
The Web API and MVC, is now using the same base Controller class which simplifies things a lot. Moreover, one can now mix both MVC and Web API in the same controller which is perhaps good, but on the other hand, not quite the right thing to do.
New in ASP.NET 5 is TagHelpers which acts a bit like directives in angular. One can build their own html elements that simply generates HTML and scripts that is sent back to the client. They may even have a relationship to each other so that they can be built like wrappers with templates, much like “transclude” does in angular.
ASP.NET 5 comes with a completely rewritten support for Dependency Injection and this time they have gone so far that they actually have built their own DI container, which is used by default in a new ASP.NET project. I asked a bit on the level of support the container has and the answer was that it supports most of the way you register dependencies, but if you really want to customize you can of course use the abstractions and use your DI container of choice.
Overall, the entire initiation process for an ASP.NET application is extremely easier now. No Owin classes, no Global.asax, no Config classes; Now, Startup.cs is you entry point using three methods: Startup (), ConfigureServices () and Configure ().
An empty ASP.NET application in Visual Studio is also really empty, it doesn’t even support a static file, everything is opt-in.
Steven Guggenheimer (@StevenGuggs) & Scott Guthrie (@ScottGu)
Both these keynotes is kinda the same as always, commercials… So on that note, nothing specific to report except that they DO have a lot of stuff in the Azure platform. I remember the days back when there was just web application deployment (that took forever). But looking at it now you have a lot of SaaS solutions, and if that is not enough, spin up a VM and do whatever you like.
ES6 The future of the Web (and How You Can Use It Now)
Dan Wahlin (@DanWahlin)
This session really didn’t give that much since it went through a lot of what we are already working with using TypeScript. Unfortunately, the wrong choice of session.
A lap around Azure API Apps
Brady Gaster (@BradyGaster)
Brady was a really fun guy who works in a group on Microsoft (together with Mads Kristensen, the Web Essentials guy you know…) that builds all the Azure tooling in Visual Studio.
Azure API Apps is one way to deploy ASP.NET Web API to Azure and it adds a layer above the API where you have the opportunity to configure the instance autentication, ie you don’t need to manually add it in the app itself.
A framework that completely passed over my radar is Swagger which is a tool to tag your Web API actions with certain attributes. Once you have done that you can, both manually and in Azure, generate a kind of meta data file that can be sent to third parties or used in Visual Studio to *drum roll* generate C# API clients. It will work much like WSDL files and “Add Service Reference”.
One interesting thing in Azure is that you can put a kind of gateway layer over your Web APIs, which allows one to see the statistics of all calls, manage API keys for a particular API and test their API methods like the old test page when building WCF services.
Angular2 in 60-ish minutes
Dan Wahlin (@DanWahlin)
After watching this session, I want to state that I am not so afraid of Angular2 anymore. It actually looks really good, though a migration from version 1 to 2 is not something you whip up in 10 minutes. But it’s very much cleaner and easier to use, though a clear change from the current version.
The last session scheduled was Azure App Service Architecture, but it turned out to be an ASP.NET 5 Part II, which was a continuation of another session from earlier today. Quite unnecessary, even though, it went through some things a bit deeper than what I saw at the workshop on the same subject.
So, finally back in Las Vegas for the 2015 edition of Anglebrackets. After a journey that started Friday 23th October we arrived at 06:00pm on the 24th. The hotel is as nice as the last visit and I immediately recognized the sounds of slot machines and the scents when strolling around the hotel. Me and my colleague Susanne took a walk down The Strip in the evening and had a burger at Fat Burger’s. We also went down to the Bellagio to watch the fountain which I missed last time I was here. Then suddenly, the food coma showed up for a visit and it was time to get some sleep and recharge before the first day’s workshop.
The Science of Great Design
Mark Miller (@MillerMark, @GreatUI)
This workshop came to be very much about how the brain and senses work. Like always trying to find the easiest way to identify a simple object. One example is optical illusions where the brain has to work on high pressure to “solve” the illusion. The reason is that we must rapidly process the information in order to avoid danger, for example predators.
When we later during the day focused on a bit more graphic elements, Mark talked a lot about “Emphasis & Information Relevance” as two values should match each other. A good example is a table, where it’s relevant information should be clarified with high contrast for the user. Header rows should play a less important role but adds value from an informational perspective and should therefore be clear, but don’t take too much space. The last part is the table and cell borders. Perhaps they should be included, but certainly not have such a prominent role that the brain needs to process them too much. These three groups of information falling within the term “Clarity”, is the middle way between “Emphasis” and “Information Relevance”.
Along with these values (Emphasis & Information Relevance) are also:
“Visual Noise” – information or items that disrupts the ability to understand, or see, what’s relevant.
“Weak Signal” – A way to hide or reduce the way the relevant information appear.
Mark also talked about Responsiveness & the Feedback Loop which is how quickly the brain processes information. An example of this is that you always start sprint races with a gunshot instead of a flash because the auditory cortex is 45 milliseconds faster than in the visual cortex.
The nerve system is also made up of different sizes of the nerve fibers, which controls how fast they communicate information to the brain. Muscle nerves that control movement is the largest, and sends signals to the brain at a speed of 119 meters per second. In contrast, pressure, pain and temperature has smaller nerve fibers. This is why you often have time to think: “oh, this is gonna hurt” when kick your toe where you shouldn’t.
These events are placed into your a “Feeback Loop” that helps us verify that we act as intended. But, when we communicate with machines they often (more often that not), add a delay and the feedback loop becomes extended. There are some guidelines for how we should communicate to the user that we have a negative deviation from the expected response time.
The journey began on Friday, October 25 when I left Karlskoga by train heading for Oslo. The first flight at 6:35am via Paris, Los Angeles and finally Las Vegas, Nevada.
Sunday October 27thThe flights went very well, Airbus A380 was clearly a very cool experience. Shit, that airplane is huge!
Arriving in Las Vegas 08:00pm there was food and a “some drinks” together with my colleagues Odd and Daniel along with a friend of Daniel before it was time to get some sleep for the workshop on Sunday morning.
Application Architecture for Multiple UIs
I though this workshop would include a lot more patterns & practices on a deeper level, it was the most entry-level stuff. I did not attend the last hours because of that. Paul went through how to easily create your own ORM which in practice is not that difficult until it comes to a little more complex scenarios.
Showing a Hello World demo is not that hard, it’s when you get to the more advanced scenarios of a framework that you really need to put some effort in it. We actually talked about this with Hanselman in the hallway and his conclusion was that Scandinavian developers have a high level of knowlegde. He told us, if we think a session is bad, just leave and go to another one, you have paid to learn, so learn. I always feel bad about leaving a session since that sends a message to the speaker, but he mean that’s a kind of a feeback aswell.
Monday 29th October
Advanced ASP.NET Web Forms
This session was exactly what we wanted to see. Damian is extremely easy to listen to and has in-depth knowledge of what he ‘s talking about. Here we got a review of some new features in ASP.NET 4.5 and some tips & tricks on how NOT to use the framework. He talked about FriendlyUrls & Routing, async and RequestValidation.
Understanding Dependency Injection & Writing Test Variable Software
Although I have pretty good knowledge of Dependency Injection and Inversion of Control, it’s always nice to hear someone else talk about it. Miguel stated that he will continue to nag about DI until it’s mainstream and I agree entirely with that. When I build applications today (for any purpose really), DI is a must for loosely coupled code, extensibility and maintainability.
He went through the different DI frameworks available on the market. I may not have learned that much at this session, but it was great fun to see how impressed the audience was. I agree with Miguel here, he’s right on the spot, we need to see this as a regular development routine, not a special feature!
AngularJS SPA Jumpstart
I had no experience on AngularJS at all so this was interesting. John Papa, I’ve read a lot from in the past so I know that he is competent and knows what he’s talking about. It was a very good review of the basics of AngularJS even if I would have needed another half hour / hour to figure out the last concepts of the framework to get the whole picture. I became more curious about it and that’s a good rating. AngularJS is about a framework to build SPA’s (Single Page Applications).
It was a session that both Daniel and I had high expectations about. The idea was to be shown how to use C# today compared to the early versions. There are many who write “old” C# code even now when we have LINQ, lambda expression and async. I anticipated a high level, but it ended up that we walked away after 15 minutes. The sound was extremly bad, the speaker dropped the microphone and appeared to be either hungover or just had a bad demo day. We went on to…
Building an End-to -End AngularJS App
Here we got some additional AngularJS details and even though we arrived a little late in the session, it was a good continuation of the earlier AngularJS session we attended by John Papa.
Tuesday 29th October
Choosing Your SPA Framework Weapon: AngularJS and DurandalJS
I thought it would be a little more action in this session, but it was mostly a “you have to choose depending on what you are building “-talk on AngularJS or Durandal. I’ve heard this so many times before and I think it’s a little wierd to say so when it’s actually the help to make that decision you need. It depends, ON WHAT? I don’t think he was going through what you need to know to make that choice, that’s what I expected from this talk. The differences he showed was good, but not enough.
What’s New in Visual Studio 2013 ASP.NET Web and Cloud Tools
Not listening to Scott Hanselman when at a conference is a shame, so of course we attended this session! Here we got to see some new features in Visual Studio and Windows Azure. Incremental deploy to Azure is awesome. Being able to modify a webpage css directly in the browser when debugging and saving it back to css file is even more cool (although I think it was in a beta, it will probably be released soon). Visual Studio 2013 now has the possibility to connect multiple browsers in debug mode and refresh them all at the same time, no more Alt+Tab+F5🙂
What do Web Developers need to know in 2014?
A panel discussion on what a developer needs to know today. Douglas Crockford is the man who, among other things, came up with the json format. The sound was a bit bad from Michele, so we didn’t that much from her. The conclusion of this session was that developers need to be more agile and not focus so much on a finished product. Build something simple and get it on the market in order to take further decisions on what the next step is based on input from users and measurements.
Wednesday, October 30
Web API 2 – Web Services for Websites, Modern Apps, and Mobile Apps
Scott blamed his computer for behaving strangely, I think he was hungover since it was mostly giddy and he seemed distracted. It was at least a bit of a review on Web API 2 and how to use it in mobile apps, but it was mostly just waiting on demos that didn’t work as expected…
Mobile First Responsive Design with Bootstrap 3
Mobile ASP.NET Web Forms – Making the Impossible Possible
Also a good review of how to abstracting web forms and move the logic from code- behind and instead use multiple views of a controller, even in Web Forms! This is something that we’ve already, partially, implemented at my job but I got some ideas on how to take it a step further. This loosely coupled views for the same model is something I love about MVC and MVVM.
Thursday, October 31
A Day of Phonegap
Last but not least, a little summary of my first visit to Las Vegas (and hopefully not the last).
Las Vegas is a crazy place, everything is extremely huge and everything is so… alive. We visited some night clubs, such as Voodoo at the Rio, which is a terrace at the top of the hotel with fantastic view and great music.
I got to eat good sushi at RA Sushi, ribs at the Hard Rock Café and shop a bunch of stuff to my lovely wife🙂
I thought I would be more tempted to gamble, but when you see a billion slot machines, you get tired of them🙂 We talked about attending a poker tournament, but we didn’t find the time (or maybe that was just us prioritizing other stuff).
We did go to Rock of Ages at the Venetian and I must say, that was so frickin’ awesome. We bought our tickets at our hotel, MGM Grand. Brought the voucher to the Venetian and went in. We got the worst seats at the very back row, totally waaay back from everyone else. It seemed like one of those who worked there felt a bit sorry for us, so he asked us to follow him. He got us some seats on the 3rd row from the stage, the Rock Star seats🙂. It was an unforgettable evening of show and rock music from the 80’s.
So darn good it almost brought a little tear at the end when they performed Journeys “Don’t stop believin'”
And here are some more images from Sin City! Sorry about the quality, taken with my iPhone 4…
Update available, scroll down!
When I started working at my current employer I noticed that My Documents was mapped to a network share. That didn’t occur to me as a problem, at the moment.
Last week the IT department decided that it was a good idea to move users to a new domain and also avoid having My Documents stored on a network share. Now they should be stored in the regular c:\users\username\documents directory. Fine with me!
Alright, its just copy and paste you think🙂
Here is the insane part that I still haven’t got working:
IISExpress stores the applicationhost.config file in your whatever My Documents/IISExpress/config directory. Visual Studio does the same thing with all your important WebApplication1 projects as well as other templates and settings. This is not that hard to move since you can reconfigure Visual Studio to point to the new location.
For IISExpress the path to the applicationhost.config file is a little different since that is stored in some hidden path buried deep down inside IISExpress and makes use of the %USERPROFILE% environment variable(which of course I now have pointing to the c:\users\username directory). If you just move the file (and relocate the My Documents library) and try to start IISExpress with a command prompt, you end up with this:
“An error occurred while reading configuration information. Make sure that the configuration file \\?\UNC\server\users\jonas\_data\IISExpress\config\applicationHost.config exists, it is accessible, and contains valid configuration information.”
This is totally acceptable since IIS Express have this hidden storage with all the path’s that’s important in your life. I still would like to know where… Trust me, I have searched the registry a couple of times for this.
A solution to one part of the problem
On the other hand, this is quite easy to solve with a reinstall of IISExpress. After you’ve done that you can start it via command prompt again.
Here’s the bad, crazy, insane, reeeeally frustrating bits
When I open my solutionfile in Visual Studio (with projects that take advantage of IISExpress) I get this error message:
C:\whateverproject.csproj : error : Creation of the virtual directory http://localhost:54000/whatever failed with the error: Filename: \\?\UNC\server\users\jonas\_data\IISExpress\config\applicationHost.config
Error: Cannot read configuration file due to insufficient permissions
The old configurationfiles still resides on the network share and this error indicates that the “new” domain don’t have permissions to access it. I COULD resolve that by fixing the access but I don’t wan’t Visual Studio to use that file in the first place. WHY does Visual Studio still use that path for the configuration?
I have searched the registry both one and five times without finding it.
Also, looking at all the environment variables using a simple “set” does not give any path containing the network share.
I’ve probably sent a dozen e-mail back and forth with Microsoft on the matter and yesterday I received this. It’s to bad there is no workaround, but always good to know that there is an issue (not only with my setup)
This problem happened because of a bug on IISExpress.
When the CustomUserHome registry key value is configured, which is set by running IISExpress.exe with -userhome parameter, Visual Studio can’t get the right path from IISExpress and still get the wrong path of the user profile directory.
I have logged a product bug on that issue and reported to bug and the bug would be fixed in the next release of IISExpress.
When the bug is fixed, Visual Studio will work from the directory which is configured by the CustomUserHome registry key value and your problem will be solved.
Unfortunately there is no work-around right now. So, until the bug is fixed, I’d like to recommend to remove the CustomUserHome registry key value and makes the “new” domain user have the access permission on the share as you said in your mail as the following.
Here is my story, the one when i attended Microsoft //build 2012. The conference that i almost missed out due to sitting on a train from Oslo to my hometown when the tickets where released. Thanks to my good friend/coworker/travel buddy Daniel Hellkert, who helped me with registration by the phone, I was able to get one of the tickets.
Friday & Saturday, October 26/27
My trip started already on Friday 26th when i left Karlskoga for Oslo by train. In Sweden we never really trust the train company arriving on time so to be sure not missing my flight to the US i departed from home the day before.
After having a good breakfast at Baker Hansen in Oslo (near my apartment used when i work in Norway) I left for Gardermoen and the trip really started of. As some of you know this was actually my first trip to the United States. I was so excited! My flight did one hour stop and change of plane on Keflavik Iceland and then left for Sea-Tac International, Seattle. The flight went well and, actually during the whole trip, everything was on time. Amazing!🙂
I took a cab to the hotel, checked in and made myself comfortable in the big room, just waiting to throw myself into the king size bed, excited to just be there. Daniel of course was delayed from Frankfurt so he missed his flight and had to go buy bus from Vancouver to Seattle, thus arriving a bit later than expected. When he finally arrived we went down to the Koral Bar & Kitchen located on the first floor at the hotel for some beers and a burger, discussing what we should do the days before the conference started. After having a couple of beers and the standard Captain Morgan & Coke we got some sleep, ready for the next days adventure.
Sunday, October 28
After getting a “good” night sleep (timezone’s disturbing a little bit of course) we wen’t down to a cafe for some breakfast. Then we took a cab and left for the Museum of Flight which was a fantastic idea to visit. Later this afternoon i will show my kids the photos i took and I have a guess they will be quite amazed, I was! They have a lot of different kinds of airtraffic related stuff stored in there; Air Force One, Concorde, a Boeing 747, and also a space center with some cool gears from, for example Apollo 11. Here are some photos from the visit. Do go there if you are visiting Seattle, we both agreed the time spent was worth it.
When visiting Seattle, the first thing you think of is: I MUST go up the Space Needle. Daniel on the other hand had Trip Advisor installed and quickly found another place that was cheaper AND higher. The Columbia Center Sky View. So we took a cab downtown Seattle, navigating the streets using the phone and finally got to the amazing building. The first elevator took us up to the 40th floor really fast (as the ears quite quickly tell you) and the second took us up the remaining 33 ending at the stunning 73rd floor! The view was absolutely fantastic as you can see on the photos. Later on we caught some other Swedish guys that had visit the Space Needle and was quite amused to tell them that we looked down on them🙂 We also grabbed some lunch at the fantastic DragonfisH restaurant where we had some delicious sushi. Daniel told me that the standard lunch was supposed to be sushi and a White Russian for desert. You should comply to standards shouldn’t you?
When we finally got back to the hotel we went to a place that came to be THE place that ended almost all days of our visit. the Joey Bellevue located just outside the hotel. This was a combined restaurant and sports bar with great beer, great food and great personnel (although asking for id the last couple of days, especially if you are 32, was a little bit disturbing. At least when they didn’t accept Swedish drivers license and had us run to the hotel room to pick up our passports. Yes, run. We where in a hurry to catch Taken 2 on the Lincoln Square cinema).
Monday, October 29
Monday started of with some breakfast and then headed of to Microsoft Building 40 to attend a streamed event of the Windows Phone 8 launch. The event was organized by Magnus Mårtensson and was really good except for some minor network issues.
After that we went back to the hotel for a while before it was time for //build registration at Microsoft Building 92. When we arrived the lines was depressingly long and we had to stand there for maybe an hour. Glad it didn’t rain though. The lines was also something that came to be a default routine at //build and I’ve seen a lot of complains about having this kind of event at campus. More about that later on…
After getting the bag with the standard stuff (you know, the t-shirt and the promotional stuff) we went to the Microsoft Commons and entered the welcome reception. There was beer and some food (although me and Daniel didn’t have that much of an appetite at the moment, although there is always room for beer). We hooked up with Johan Lindfors and some other Swedish guys but didn’t stay that long. There was also some mingle with the ASP.NET team but it was so crowded that we didn’t care to join.
Tuesday, October 30
So, finally the conference really started! Keynote time! Really looooong lines time? YES!
Breakfast at the big food tent located at building 92, and then standing in line to get into the even bigger tent built for the keynotes. This was quite an amazing construction though, not the average wedding tent🙂
I think that the keynote was probably one of the best parts of the conference, more specifically since Steve Ballmer did a lot of demos himself. Kind of adds a little more to it instead of some product specialist doing it on stage.
And of course, as you all know: we got the swag🙂 I think that Ballmer did a fantastic job delivering the SkyDrive 100Gb gift to the audience, followed by the Surface RT. Let’s say it was expected, but when it became reality, the cheering was awesome. A bit later into the keynote we saw a slide saying “Wait, there is more..” and Richard Kerris (Vice President of Nokia) went up on stage talking a bit about the new Nokia Lumia 920, which has “working maps”🙂 He announced that all attendees was getting a 920 device. Looking at the keynote now i get the same goosebumps as I did when I was there. This was awesome stuff and I have been using them all week and both of them are fantastic devices!
I’m not going to get into more details about all the sessions as I have done in my other conference posts. I’m just going to describe some of the highlights from each day.
- The release of EntityFramework 5 contains a lot of nice new things, more specific: support for enums (I’ve been waiting for this since the first release!), spatial data types and some major performance improvements.
Wednesday, October 31
Wednesday starting of with the more technical keynote where Satya Nadella, Scott Guthrie, Scott Hanselman, Dave Campbell, Jason Zander, Josh Twist did some presentations about all the new stuff coming in different areas of Microsoft products.
- Great network and proximity support in Windows Phone 8 (Got an NFC card from the Nokia booth that i have been playing around with a bit and see some really great things doable with this)
- Using Visual Studio and Blend together to build great apps for Windows 8. I’ve always written my XAML in the code editor. I really can’t answer why I’ve done that but now I feel that it’s just to time consuming and should move over to using the design surface in Blend more often. It looks really easy!
Thursday, November 1
- SignalR is great, give me something to work on using it. Also, Damian Edwards Australian accent is nice listening to!
- Mads Torgersen talking about easy asynchrony is a really good presentation that i urge you to watch. It is more of an explanation about what they have made around async/await but also some really nice features on how it can be used just to get you going in the direction of the asynchronous programming model. I think they are spot on when they have parts of the framework that don’t even have synchronous api’s.
- Scott Hanselman is the most competent presenter there is, period!
Friday, November 2
- App to app communication (as well as device to device) is a bliss. You can write your applications to allow interaction between them using a common way that will support different kind of communication without you changing your code. It’s all about uri’s! You can open your app using a uri protocol from, for example, an SMS or NFC interaction with the same entry point in your app.
- Jon Galloway and Scott Hanselman‘s talk about Bleeding Edge ASP.NET made me laugh, SO many times!
I have met some really nice people at the conference. First of is Justin Rusbatch who asked for a tweetup at Joey’s (surprise…) where we actually was sitting at the moment so he joined in and we hooked up almost every day togheter with Filip Ekberg, Andreas Gustavsson and Adam Cabler. We also had some good chats with Johan Lindfors, Magnus Mårtensson and Peter Drougge.
Here are some random photos from the conference, Seattle and friends/geeks/hope-to-see-again’s:
//build was awesome. If I would go there again? Absolutely! But if I would, i probably hope that they will either host the conference on another location OR decrease the amount of tickets. It was to much transportation between the buildings and to much lines. There was so little time between the sessions (since you had to use the shuttles between building 92 and 33) that you didn’t have the time to just walk around talking to people, checking out the exhibition area or just having a snack without worrying that you will miss a session due to the fact that the room was full 30 min before the session started.
All in all, great experience (and fantastic swag :))!!
Day two of TechDays was in many cases better the first day in. Today they put a session before the keynote. I don’t know if it’s because they wanted all the hungover people to attend the keynote or somethin else…
Anyway, I started with a session about RIA architecture
RIA Architecture, there are actually a network between client and server! (Fredrik Normén)
As described in the materials, this session was a level 400 (which is the most advanced). I don’t really know how that figure got there but it was NOT a level 400, rather 200 and contained a lot of very basic principles of systemdevelopment. How to use domain models, mapping them to the presentation layer. That you should not send unnecessary data between client and server are things that developers should know and embrace, but it is not level 400 on MY TechDays. However, a good presentation but I should have chosen another session (I tend to do this mistake every year…)
Today’s keynote was very enjoyable and rewarding where Klas Hallberg (on fantastic Karlstad-dialect) talked about “How to get things done”. It was not as much product launch feeling this year.
Windows Azure behind the scene (Sriram Krishnan)
This was probably one of the coolest sessions where Sriram went in depth with the Windows Azure. Me and Joakim turned against each other at times and where fashinated about how extremely clever engineers Microsoft must have. There were many slides with arrows and boxes that showed routers, load balancers, racks, nodes and cores.
An interesting thing was about the current health of the different nodes. There is a type of heartbeat events from each node to the fabric controller. However, it is not enough that ONE heartbeat is missing because it can be a temporary network issue. They measure this with a kind of health index and when the index becomes too low, they will take the node out of production for further analysis. He also explained that if you’re going to have an application with some form of redundancy, you must have at least two instances running since at anytime one instance can be taken out of service due to updates of operating system or possible hardware problems. This will of course be no problem for an application that is “Azureized” because you are not using sessions for a specified instance. Load Balancing can fire a request the other instance on every request.
Developing Web Applications with HTML5 and ASP.NET MVC3 (Gustaf Nilsson Kotte, Karl Adriansson, Per Ökvist)
It started off well! With 20 minutes before the sessionstart there was no seats left. Far too small room when you saw the amount of people outside.
Microsoft’s “officials” worked, however, really fast and soon, like a tsunami, 500 visitors walked down the stairs at Conventum to a room more suited for the large demand.
Architecture in Agile Projects – How to do it right (Mitch Lacey)
I saw a tweet from Robert Folkesson that this session should probably be very interesting. It shows quite clearly that the foreign speakers are somehow more accustomed to enthrall its audience (it has been like this throughout the whole TechDays).
Mitch has worked at Microsoft as a Program Manager and is a PMP (Professional Program Manager), CST (Certified Scrum Trainer) and have worked with agile projects for many years.
There was some very interesting parallels on how todays projects using Big Design Up Front compared to how you work in agile projects.
I hope that all the recorded sessions come out so that you can have a look at them. As always, there was some really interesting going simultaneously.
Finally, it has been a good TechDays but after attending every year for the last three years running, I am starting to miss the advanced stuff. There are far too many introductory sessions that go through the basic features of the framework and products that have existed for some time. Where have all the real-world-case sessions gone? And really, what happened to client development (WinForms / WPF). Not a single session of this despite the fact that many still have existing systems based on this.
I don’t mind attending next year aswell, but the question is if the session offered will be the same. If so, I’ll look around for something with a bit more advanced content to get something more out of the time and expense it means to attend.
Having that said, I still think that it is a privilige to be at TechDays since networking is part of the whole thing. To speak with so many talented people and meet with Twittercontacts are really funny.
Thank you for this year!
So, the first day of TechDays is over. It was a great day, although I had wished that it was a bit better than the way it was.
Keynote was alright, Magnus Lidqvist was a great speaker, but I’m note sure that a panel discussion (which was not really even a debate) between Per Adolfsson and Atea’s CEO Lars Pettersson do not fit in a keynote speech on the first day of TechDays. When you leave a keynote like this, you should have a WOW! feeling, I didn’t ….
A technican Introduction to the Windows Identify Foundation (Dominick Baier)
The first session i squeezed myself through was Dominick Baier’s session about WIF (Windows Identity Foundation), which is a layer on top of .NET Framework’s auth mechanism. This is clearly a concept that one should look more at using.
And I do know what my next book purchase will be … http://www.adlibris.com/se/product.aspx?isbn=0735640599
There was also some notices about the Active Directory Federation Services 2 which is a concept that a guy from Microsoft (which I unfortunately do not remember the name of right now) talked a lot about in the PDC. Pretty cool!
Windows Phone + 7 Windows Azure = Love! (Björn Eriksen)
Next seating was Björn Eriksen’s session on Windows 7 Phone + Windows Azure = Love. Although it is “love” for me, I would have chosen a different session. Bjorn is a very good speaker but an introductory course in WP7 and Azure is nothing I need. And MVVMLight I have already looked at. So, either I missed what the session level was or the description was incorrect. Still interesting area but I would have needed a bit more lowlevel than this.
Real World Azure: Elasticity from on-premise to cloud (and back) (Christian Weyer)
Christian Weyer, this German guy could talk just about anything and make it interesting. I’ve seen him three years in a row and he is really quite amazing to captivate an audience. This time, he talked about elasticity. How the cloud can be used to scale. And also what you should think about when you want to move your application to the “cloud” or simply move it back from the cloud to on-premise again …
Streamlined software development in practice (or how to become the most popular person in the team) (Magnus Juvas, Mathias Olausson)
Interesting session that did not really focus on what I thought. I had actually expected a bit more focus on the individuals and perhaps not so much on ALM as I’ve seen in previous years with the same speakers. After some more examination of Test/Lab Manager, i realize that: If we would have a free hand and set up a completely new project from scratch, with automated tests and test environments based on Hyper-V and just simply create the VM templates for our different environments. This is a dream come true in case of testability and “debugability”. Hope to experience this someday!
Securing REST services and Web APIs on the Windows Azure Platform (Dominick Baier, Christian Weyer)
These two German dudes are probably among the best I’ve ever seen. From the same company and with a very good interaction they deliver a very interesting session on how to authenticate and authorize users to REST services not only hosted in Azure, but also locally. This ranges from Basic HTTP Authentication to SAML, and SWT/JWT for use on eg. the WP7. Very interesting and with lots of laughter.
It’s been a long day, I was actually the first to enter TechDays this year. It’s not that I am a geek (…) but because I carpool with some people from my hometown and because of that it was a bit earlier than necessary. Since they began accepting entrance at 7:00, that means that in the afternoon I was a bit tired. After a headache-pill and a RedBull I was in the mood again and could enjoy Petter & September end the evening in a fantastic way!
I’ve also had the pleasure of discussing various things with the evangelists and other nerds who share my interest. For me, TechDays this year, is more focused on networking than knowledge acquisition.
Hope I’m more alert in the morning and the sessions are just a bit better.
I’ll try to come back with a report tomorrow as well. Goodnight TechDays 2011 and thanks for a great night!