Latest Tweet:
  • Loading...

Last year I gave a presentation on the MVVM design pattern at the Norwegian Developer Conference. Most of the presentations from NDC2009 was recorded and made available online, including mine. However, the user experience of the video content on the NDC site isn’t the best. Playing a video requires multiple clicks, and the videos are only available in WMV format.

The feedback I’ve gotten on the presentation is so good that I decided to make it a bit more discoverable by uploading it to Vimeo. In addition to the MVVM presentation I have also uploaded my lightning talk from Smidig 2009 (in Norwegian) as well as my Silverlight talk from TechEd New Zealand 2008.

If you want to watch all the content from NDC2009 you can download it nicely packaged as one big torrent file. Oh, and I haven’t made an announcement on the blog yet, but I will be speaking at this year’s NDC.

MVVM Design Pattern NDC2009 from Jonas Follesø on Vimeo.

Last month I was lucky enough to attend and speak at the Smidig2009 (Agile 2009) conference in Oslo. This was my first time attending the conference, and I’m really impressed with the content, speakers, organizers and attendees. The format of the conference was four lightning talks per hour in three simultaneous tracks before lunch, and open spaces after lunch. The formatted worked out really well – and I got to see several inspiring and educational talks, as well as taking part in some interesting discussions in open spaces.

My talk was about UX prototyping as a natural part of an agile software project. This is something I have written about both on this blog, as well as the Capgemini technology blog. The talk covered UX prototyping as a technique and the benefits it gives you in an agile project, as well as showing two short demos of mockups in Balsamiq, and interactive prototypes in SketchFlow.

Thanks to Tandberg video recordings of the entire conference was made available almost instantly. The image blow takes you directly to my presentation. I have also uploaded the slide deck to Slide Share and embedded it into this post.

Smidig2009UXPresentasjon

On Wednesday 21 October I will be visiting the Kristiansand chapter of NNUG to give two Silverlight presentations. The first will be about the MVVM design pattern, and the second on building business focused applications using .NET RIA Services. After the NNUG meeting there will be a geekbeer get-together at Patrick’s. Details and registration for the meeting is up on the NNUG site.

On Thursday and Friday (22-23 October) I will be attending the Smidig 2009 (Agile 2009) conference in Oslo. This will be my first time attending the Smidig conference, and I’m really looking forward to it. The format of the conference is 4 lightning talks pr hour before lunch, and open spaces after lunch. Judging by the number of submitted talks I think it is going to be a really interesting conference, and I hope to learn allot about how to run successful agile software projects. I’m also a big fan of open spaces and the interaction between conference attendees it enables.

Since I was planning to attend the conference I made a last minute decision to submit a talk on UX prototyping in agile projects using Balsamiq and SketchFlow. The talk got accepted, which means I will not only be attending – I will also be speaking at the conference!

I’m looking forward to doing some presentations again, and I hope to see you in Kristiansand or Oslo next week!

(Time-lapse video taken by @petesamuel from a presentation I gave earlier this year) 

The videos from NDC2009 are now published on the conference agenda site. The site isn’t the easiest to navigate, so Mark Nijhof went through the effort of creating a simple list of all the videos grouped by speaker. There is tons of great content available and the videos should be a great way to do some (relaxed) learning in the summer heat.

There is a problem with some of the links, and the link to the video of my second talk on .NET RIA Services is broken. I’ll make a new post when that video becomes available.

JoansGivingMVVMTalk 

Click to view my Model-View-ViewModel presentation from NDC2009.

Earlier this month I was lucky enough to both attend and speak at the Norwegian Developer Conference 2009. What a blast! The NDC09 featured a perfect mix of content – everything from the latest in technology, to the core principles of software craftsmanship and agile development. The speaker lineup this year was AMAZING, and I feel humble to be invited among such a group of incredibly talented people. Hopefully I was able to keep up with the level of the rest the speakers.

JonasAndHaack

I gave two presentations at NDC09; one on the MVVM design pattern (more easily referred to as View Model) and one on .NET RIA Services. I think both talks went well – with the View Model talk being the strongest one, as this is something I’ve been presenting on many times before.

I’ve uploaded both the slides and the demos from my talks. The MVVM demo is basically a the Dive Log example application taken further, with multiple View Models communicating through an Event Aggregator and a touch of navigation using the Silverlight 3 navigation framework. The .NET RIA Services demo is a “plain” data centric application, as well as a second demo app which uses nHibernate and the XML Metadata Provider (something I have to revisit in a later blog post).

In addition to the technical content delivered at NDC09 it was great fun to hang out with old and new friends. Here are some of the highlights: Had some great conversations with Glenn Block about different aspects and approaches to the View Model pattern. Got to catch up with Andrew Browne, a good friend from the Melbourne developer community. Had dinner with Carl and Richard from .NET Rocks, Udi Dahan and Capgemini colleagues. Had tons of good conversations with fellow Norwegian developers. Went fishing with Tim Huckaby.

Thanks to all the speakers, organizers and attendees for making NDC2009 such an awesome event. Hope to see you all back there next year!

MVVM Design Pattern for Silverlight Applications

DiveLogMVVMScreenshot

Download slides:

Download demo

For a collection of more resources check out my MVVM tagged links on Delicious.

.NET RIA Services

Download slides

Download Fishbook Demo

Download Fishbook nHibernate Demo


For more resources check out my .NET RIA Services tagged links on Delicious, as well as the talk “.NET RIA Services - Building Data-Driven Applications with Microsoft Silverlight and Microsoft ASP.NET” and “Building Amazing Business Centric Applications with Microsoft Silverlight 3” from MIX09.

Wow. Friday 20th of March and MSDN Live Winter 2009 is now history. I delivered my last two talks on Silverlight during this round of MSDN Live in Oslo yesterday. Over the last two and a half week the MSDN Live road-show have visited Stavanger, Bergen, Trondheim and Oslo. It has been a great experience, and I’ve gotten to meet some interesting developers around the country. It has been great to hear how many people are starting to adopt Silverlight and WPF for their rich client applications, and I’m certain this trend is only going to continue.

As promised this blog post contains links to the Dive Log example application (which will be updated to Silverlight 3 shortly), as well as links to more information relevant to the two sessions I gave during MSDN Live. I've also included a Flickr Photomentury by Rune Grothaug showing a full day of MSDN Live.

Model-View-ViewModel

My first talk at MSDN was about building business focused applications using Silverlight 2. Throughout the talk I demonstrated how the MVVM pattern can help you achieve separation of concerns, and thus giving you more flexible, testable and designer friendly code. Some links to more information:

Silverlight Tips & Tricks

My second talk at MSDN was 6 different Silverlight Tips & Tricks showing how to solve some of the not-so-obvious problems in Silverlight.

  • Recompressing the XAP file to save download size
    A Silverlight XAP file is just a standard ZIP file. By recompressing it with you can save up to 25% download size. During my talk I demonstrated the ReXapper tool, which can be easily integrated to your project as a post-build command.
  • Deep linking in Silverlight applications
    Linking is a core concept of the web. With Rich Internet Applications in AJAX, Silverlight and Flash this becomes a challenge, as we no longer have different pages for each piece of information or screen in the application. Instead we load the application once, and then dynamically load pieces of information without navigating to a new page. This breaks the concept of linking, booking marking and back/forward navigation in the browser. To solve this we need to manually manage history state. In my blog post I use ASP.NET AJAX to solve this. Robby Ingebretsen has another approach using jQuery to manage the browser history.
  • Printing in Silverlight
    Silverlight looks great on screen but does not have a good print story. Printing in Silverlight can be solved by opening a new window showing a server-side rendered report, or you can use the HTML Bridge to generate a client side report.
  • Testing in Silverlight

Hopefully you enjoyed this round of MSDN Live and got a good introduction on how to build Silverlight 2 applications. If you have any questions related to the presentations feel free to post them in the comments section. The code and slides are available as downloads from my SkyDrive (embedded in the blog post).

Dive Log and Flickr Demo Slides for both presentations

I know. It’s been too long since my last post, and just to clarify; I’m not dead, nor have I been eaten by sharks or anything like that. I’ve just been busy rebooting my life back in Trondheim after coming back from Australia. I started working again in Trondheim in the beginning on January and went straight back on to a Windows Forms/WPF project I helped start up back in September 2007. It has been really fun to see how the code base has evolved over the year I’ve been gone. After getting back on the project I’ve spent most my time developing WPF components inside the Windows Forms client. It’s been an interesting experience, and I’m really happy with how well WPF integrates with existing Windows Forms applications. I will definitely be blogging about some of my experiences around WPF and Windows Forms in the weeks to come.

However, the main reason for the slowdown in posts is not work related. Hege and I just bought an apartment, and ever since we moved in all available time have gone to painting walls, shopping for furniture and all kinds of other things you need to get in order when moving into a new place. We are really happy with the apartment, and things are really starting to shape up. We finished painting the last room this weekend. I will be posting a “tour of the geek crib” once all the tech stuff (fun stuff) is in place.

Okay – enough excuses for not blogging. The more topic of this blog post is that I’m doing a series of talks on Silverlight 2 during the MSDN Live tour. First stop of the tour is Stavanger (05. March), before moving on to Bergen (10. March), Trondheim (12. March) and finally Oslo (19. March). I will be giving two sessions, one on developing data centric/business focused Silverlight 2 applications (similar to my Tech Ed Talk), and one on Silverlight 2 tips and tricks. The tips and tricks session will be 5-6 covering things like printing, deep linking, search engine optimization, design time support, continuous integration etc.

I’ve included the session abstract (in Norwegian):

msdnliveForretningsapplikasjoner i Silverlight 2
Silverlight 2 ble lansert nå i høst og legger et godt grunnlag for utviklere som ønsker å lage rike internett applikasjoner (RIA) basert på .NET. I denne sesjonen går vi i dypden på Silverlight 2 som utviklingsplattform og fordelene ved å velge Silverlight 2 som plattform for data-sentriske forretningsapplikasjoner. Sesjonen vil blandt annet dekke dataaksess via sikrede WCF tjenester, hvordan strukturere koden ved hjelp av Model-View-ViewModel patternet (MVVM), hvordan skrive kode designere kan jobbe med, og enkle Blend-tips for utviklere. Sesjonen vil bygges rundt en dykkeloggapplikasjon hvor koden vil bli gjort tilgjengelig etter presentasjonen.

Tips og triks for Silverlight 2-utviklere
denne andre sesjonen vil vi bygge videre på dykkeloggen og fokusere på en del konkrete tips og triks for Silverlight 2-utviklere. Tett integrasjon med nettleseren er viktig for en best mulig brukeropplevelse. Vi vil blant annet se på hvordan integrere med fram/tilbake knappene i nettleseren, hvordan optimalisere Silverlight applikasjoner for søkemotorer, hvordan bruke dyplenking i Silverlight og hvordan håndtere utskrift fra Silverlight. Presentasjonen vil gå i dybden på blant annet HTML-bridgen som brukes for å integrere Silverlight med JavaScript som allerede kjører på siden, eller for å aksessere nettleserens DOM.

One of the sad things about this round of MSDN Live is that Microsoft have to charge for it. Previously MSDN Live have been a free (and really popular) event, but Microsoft is feeling the financial crisis just like everyone else. So in order to be able to deliver MSDN Live this time they had to charge for it. Børge Hansen from Microsoft Norway and Jon Torresdal from NNUG Bergen have shared their thoughts on this decision. I was really bummed about this decision myself, but I really hope that you find the content presented at MSDN Live interesting, and that you get a chance to attend.

Since this post is about upcoming speaking engagement I figure I could finish the post by sharing a time lapse video of a Silverlight 2 presentation I did last week at the local university. The time lapse is created by Pete J Samuel, a colleague of mine at Capgemini Trondheim.

Hope to see you at MSDN Live in Stavanger, Bergen, Trondheim or Oslo!

I had originally planned that my Silverlight Designer & Developer Network presentation was going to be the last one I gave in Australia before flying back to Norway. But then me and Hege decided to do some traveling before going home, and we’re currently up in Byron Bay enjoying some diving and surfing. Wednesday we fly down to Sydney for a couple of days, and my good friend Adam Cogan asked if I could give a Silverlight talk at the Sydney .NET User Group. Off course I said yes – so Wednesday evening (December 10th) I’m giving a talk on business applications in Silverlight. The title and abstract goes as follow:

Building data-centric applications in Silverlight 2
In this presentation you will get a overview of how to build data-centric (line-of-business) applications in Silverlight 2 using LINQ to SQL and WCF on the server. The presentation will cover how to deal with authentication for your WCF services from a Silverlight application, tips on how to architect your Silverlight application, and how to build flexible, testable code your designers can work with. You will also get a sneak preview of an application framework Microsoft is working on to make building business applications easier.

For registration, time and location check out the Sydney .NET User Group web site. I expect the details to be published some time over the weekend.

While in Sydney we’re going to stay at our favorite accommodation in Coogee, which is going to be great. We plant to finally see the opera house (I’ve been to Sydney multiple times for work, but have never actually seen the building!). Friday we fly down to Canberra to spend the weekend with a friend, before flying back to Melbourne Monday, and then back to Norway Wednesday December 17th.

Hope to see you in Sydney!

Update: The details are now available on the SSW site and on their Facebook group.

Time and Place Date: Wednesday, December 10, 2008
Time: 6:00pm - 9:00pm
Location: Microsoft HQ, North Ryde
Street: 1 Epping Road, North Ryde NSW 2113
City/Town: Lane Cove, Australia

SDDN Logo

Earlier this week Australian Silverlight enthusiast Jordan Knight announced the Silverlight Designer and Developer Network initiative. This is a new user group starting up in Melbourne, focusing on the design and development aspects of Silverlight. First meeting is scheduled Thursday November 27 at 5:30 PM for a 6PM start. The venue is Microsoft Theatre, Level 5, Freshwater Place, Southbank. Microsoft User Experience Evangelist Shane Morris will be delivering a key note to kick off the group. I will be giving a presentation covering the current state of the Silverlight union. I will talk about any major Silverlight announcement from the PDC, what have been announced around the future, and some of the interesting community projects around Silverlight 2.

The SDDN is a great initiative for many reasons. Most importantly it creates a meeting forum to bring developers and designers together. Getting designers engaged is a key success factor for Silverlight. I really hope this initiative can help that happen. Secondly the Network-part of the name suggests this is more than user group meetings. The SDDN has ambition to build a strong online presence, with high quality recordings of all meetings. This is a great way to reach out to a wider audience, as well as developers and designers working in smaller/remote areas who might not have access to a user group like this. Big kudos to Jordan for making this effort!

Check out Jordan’s announcement post and the new (but still under construction) site for more details. Hope to see you at the first SDDN meeting!

Meet Me In Los Angeles With the SDDN announcement out of the way the next point on my agenda for this “what’s up” blog post is the PDC. I’m writing this while sitting at the gate waiting for my flight to Los Angeles. I will be attending PDC 2008! I had the pleasure of attending PDC back in 2005, and that was an amazing experience. This year I have high expectations to the PDC as it has been three years since last time. I tried to set up my agenda, and ended up with at least two conflicting sessions for each time slot! There is just so much great content. Thankfully Microsoft is putting a big effort into recording all sessions, so at least that’s a chance to catch up on the sessions I miss out on. I don’t know if the recordings will be made available publicly, but I sure hope so.

I’m looking forward to networking with fellow peers in the Microsoft and Silverlight development community. If you’re attending and want to catch up, drop me an e-mail at jonas@follesoe.no, or ping me on Twitter (@follesoe). See you in LA!

Earlier today I gave my “Silverlight 2 for Developers” talk at TechEd New Zealand. I know the title is a little bit vague, but the session was generally trying to give developers who want to build “real applications” a good starting point. It’s a level 300 talk (advanced), so it skips the basic introduction. That being said you don’t need to be a Silverlight expert to find the session useful. The talk covered things like CRUD applications using WCF, how to implement a Presentation Model/ViewModel, how to use IoC and DI in Silverlight, and how to do unit testing in Silverlight.

 Presenting at TechEd

The theme of the talk was diving, and for the demos I worked on a dive log application. The application is fairly complete, and I’ve made it available online for anyone to play with. The code should also be a good sample application for anyone who wants to get into building data centric Silverlight applications. I’m planning on building on the dive log sample in future blog posts, and already have several ideas in the pipeline.

You can run the application by clicking the screenshot. You will be asked to login, and any username and password will be valid. If the user doesn’t exist it will be created when you login. You can even run the unit tests directly from your browser if you want.

Dive Log Screenshot

Slides

I've uploaded the slides to Slide Share, or you can download the full presentation from my Sky Drive.

Links and resources

Unit Testing in Silverlight

Presentation Model / View Model

Dependency Injection

CodeCamp2008AKL Yesterday I gave a Silverlight presentation and CodeCamp Auckland. The presentation was focusing on how to apply dependency injection in Silverlight using Ninject, unit testing and the presentation model pattern. Towards the end I threw in a little HTML-bridge fun, and demonstrated the webcam in Silverlight implementation I did some time back. Rob Fonesca-Ensor had done a great job of introducing TDD, IoC and DI on an earlier presentation, so I could focus on how to apply the techniques in a Silverlight context. Ivan Towlson did a presentation on “thinking in WPF” and did a good job of explaining why you need to take a different approach to building WPF application than what you’re used to from traditional Windows Forms. I tried to tie my YouCard demo back to some of the ideas introduced by Ivan, and hope these three sessions together gave people who want to start building Silverlight and WPF applications a good starting point.

Owen Evans and Scott Hanselman had the ASP.NET part of the CodeCamp covered. Owen talked about ASP.NET MVC while Scott did a session on ASP.NET Dynamic Data. There more I see of Dynamic Data, the more intrigued I am by it. I think people easily dismiss Dynamic Data as just scaffolding and code generation. Scott made a point of this, and really went through the details of how a Dynamic Data application is built up. No magic or code generation, all meta-programming.

All in all this was an excellent CodeCamp, the second one I’ve attended. I presented at the Australian CodeCamp back in April. Kirk Jackson and gang did a great job of organizing the CodeCamp. I think we need to get a CodeCamp started back in Norway as well.

I’ve put together some references and links if you want to dive deeper in some of the topics I covered in my talk, as well as download links to the demo applications.

Unit Testing in Silverlight

Presentation Model / View Model

Dependency Injection and Ninject

HTML Bridge

Demos
You can download both the Web Cam and YouCard demo applications from my Windows Live Sky Drive. I've also uploaded the demos so that you can play the Sliding Puzzle Game or check out your friends using YouCard. You can even run the unit tests directly from your browser! Hope you found my presentation useful. Feel free to post any questions, comments or feedback.


The session catalog for Tech Ed Australia and Tech Ed New Zealand has been available online for a few weeks now, but I haven’t gotten around to blog about me speaking at TechEd. I will be speaking about “Silverlight 2 for Developers”, as well as sitting on a panel discussing “Web Futures - the next 18 months”. The panel will also be comprised of Scott Hanselman, Nigel Parker, and Trent Mankelow. In Sydney I have a 10 minute quest appearance in the Visual Studio track showing my favorite .NET 3.5 SP1 feature.

The abstract for my Silverlight talk goes like this:

Silverlight 2 enables you to build some stunning web applications. But it's not all about eye candy. Silverlight 2 brings the power of .NET to the browser. This requires some new thinking in the way we build web applications. In this session we will focus on Silverlight 2 from a developer's point of view. This session will show you how to write code that both you and your designers can work with, by separating out business- and data access logic and leveraging the power of data binding in Silverlight. The session will also cover development practices such as unit testing and continuous integration, as well as more technical topics such as network- and data access, local storage and more. You will also learn a few tips on how you as a developer can leverage Blend 2.5

As you can see by the description I don’t want the session to be yet another “introduction to Silverlight 2” presentation. I will cover concrete things such as how to build a data driven CRUD application in Silverlight, talking to web services and using features like data binding and the visual state manager. However, I also want to cover design patterns and development practices that can help you build more flexible, testable and designable (as in UI design) code.

CodeCampNZ Logo The day before Tech Ed the New Zealand development community is putting together Auckland Code Camp 2008. Since I’m in town I got invited to do a presentation, and I had such good time at CodeCampOZ earlier this year that I couldn’t say no to that invitation. Robert Fonseca-Ensor is doing a TDD and DI/IoC talk in the morning, so I will use part of my session to build on that and show how to use Ninject to do dependency injection in Silverlight 2. I will also cover some more advanced Silverlight 2 testing scenarios, such as writing asynchronous tests, before finishing up with some HTML Bridge fun.

Tech Ed New Zealand, Auckland (1– 3 September 2008)

WEB304 - Web Futures - the next 18 months (02/09/2008 10:45AM-12:00PM)
Where is the web going over the next 18 months and what is in the pipeline from Microsoft to cater for and drive this? Is Microsoft up to the challenge? How is Microsoft working with the part of the web that is not MS based? How is Microsoft changing to cater for emerging trends? Submit your questions and hear the answers from the experts.

WEB309 - Silverlight 2 for developers (03/09/2008 9:00AM-10:15AM)
See description above...

Tech Ed Australia, Sydney (2 – 5 September 2008)

WEB309 - Silverlight 2 for developers (04/09/2008 8:30AM-9:45AM )
See description above...

WEB304 - Web Futures - the next 18 months (05/09/2008 10:15AM-11:30AM)
See description above...

DEV210 - The Hour of Power: 6 of the Best - Best of the Best in VS2008, Fx 3.5 inc SP1 (05/09/2008 8:30AM-9:45AM)
Rock on up to the “Hour of Power” this will be a fun energy packed session presented by 6 speakers each speaking for 10 minutes on their favourite feature(s) in Visual Studio 2008 and Fx 3.5 including SP1. It’s a must see session and a great way to pick up a few new tips and tricks!!

Going to TechEd Australia or New Zealand? Or got any questions, suggestions or ideas to things you want me to cover? If so, it would be awesome if you drop me a comment.

The Sydney REMIX08 Keynote is just about to start, and in about an hour I'll be presenting "What's new in Silverlight 2" together with Jose Fajardo. The main demo of my part of the talk is YouCard, a Silverlight 2 application aggregating content about your friends from Twitter and Flickr. The idea is basically to create something similar to Xbox 360 Gamer Cards to give you a quick summary of your friends latest tweet and pictures.

The application touches on many of the concepts of Silverlight 2, such as:

  • Layout controls
  • User controls
  • Styling and skinning
  • Local storage
  • Network access
  • Data binding
  • Animations and 2D graphics

youcardscreenshot

You can try the application at http://follesoe.no/silverlight/youcard (or click the picture). Enter your friends Twitter name and click add. Flip the card to enter their Flickr feed URL. If you like it, check out the source code as well.

If you have any questions or comments about the session or code just drop me a comment.

See you at REMIX08!

I am speaking at REMIX08 REMIX / MIX Essentials is a series of Microsoft events happening all over the world focusing on some of the themes covered at MIX 2008 in Las Vegas in March, but with a local "spin" to it. Shane Morris, creative track owner, invited me to give a presentation at REMIX Australia, happening in Sydney May 20 and Melbourne May 22. The title and abstract for the session is as follow:

New possibilities with Microsoft Silverlight 2
The recent announcement of Microsoft Silverlight 2 opens up dramatic new opportunities for creating compelling and productive user experiences on the web. In this demo-heavy session we will give you a run-down of all that is possible with the new platform.

I'll be sharing the session with Jose Fajardo who will be demonstrating Deep Zoom. I will cover the key new features in Silverlight , such as controls, layout controls, styling, templates, data binding,  and user controls. Hopefully I'll be able to use the project I've been working on over the last month for my presentation. Currently working on getting a OK from the client.

There are several great sessions on REMIX Australia, covering topics such as ASP.NET MVC, WPF 3.5, Silverlight 2, Expression Studio, Windows Live, XAML for designers, Expression Web and CSS, IE8, and Silverlight for mobile. The price to attend is just 199 AUD, and all attendees get a copy of Expression Studio 2, valued at 1099AUD!

Also, since much of the audience for this blog is based in Norway I have to give a shout-out to the Norwegian Developer Conference 2008, which will incorporate the Norwegian version of MIX Essentials. See the conference site for more details.

Hope to see you at REMIX, and if you have any comments, suggestions, or things you want covered in my Silverlight 2 presentation drop me a comment!

Dinner with Andrew, Jon, Tom and Ian This week I attended CodeCampOz in Wagga Wagga, a five hour drive from Melbourne and Sydney. Code camp is a free to attend, community driven developer conference. I had an fantastic time in Wagga, made some new friends, learned a few things and had a blast. The content was really top notch, with 17 sessions (including pre-conf) spanning a wide variety of topics such as SQL Server 2008, Silverlight, WPF, UX, Facebook, Visual Studio, SyncLinq and more, presented by some of Australia's most talented developers and speakers.

I had the pleasure of kicking off the conference with the first session on how to build interactive video applications using Silverlight. The session was about how you can encode script commands into a video file using Expression Media Encoder and program against the markers. The session was one large demo building up the video player using Expression Blend 2.5. The video I used is a dive video from our holiday in Egypt back in 2007. When ever there is a fish on the screen an event occur, and the app call out to Wikipedia to get facts about the fish. To retrieve the data from Wikipedia I use an open API from Futef. I've embedded the final video player in this post, as well as a link to the source code if you want to play with it your self. The play/pause/forward/backward buttons are taken from Jose Fajardo's amazing blog where he re-does many of the popular UI's like iTunes, Media Player and MSN Messenger in Silverlight.

encoderscreenshot 

A big thanks to Andrew Browne and Ian Thomas for the drive to Wagga, Greg Low and Mitch Denny for organizing an amazing event, and to everyone for all the good conversations. For a full recap of what went down in Wagga check out the Twitter hash-tag, and the Flickr tag for pictures.

Because of cross-domain scripting limitations the embedded player does not include map integration. Check out these two links for alternative versions:

download Download Interactive dive video in Silverlight

Today I did a 10 minute demo JSON and how you can use it to bridge win and web applications. The content and code covered in the demo is available in a separate blog post. It was great fun to present again and it was a decent sized crowd, and I got some good feedback after the demo as well. Even turned out to be two fellow Norwegians among the attends which was fun and a bit surprising.

There are a bunch of pictures from the launch event available on the "Heroes Happens Here" Flickr site. I've included a couple of them here as well. I think my next speaking engagement will be at the CodeCampOz coming up in April. I've submitted an abstract which is hopefully going to get accepted. Also planning on getting more involved with the Victoria .NET user group. I attend their last meeting which was great! Hopefully I'll get a chance to present there this fall (or spring if you're on the northern hemisphere).

If you have any questions or comments related to the content covered today, feel free to post them on the blog . Hopefully I'll be able to help out.

divebook screenshot3

Just got back from Oslo and the web event I did with Microsoft Norway. It was great fun in a totally packed cinema. Close to 440 people showed up! As I promised I've uploaded the sample code (a raw dump of the current version). The plan is to work on the sample and polish it to make it a really useful starting point if you want to look at how VS2008 and .NET 3.5 can help you implement Web 2.0 scenarios...

I'll blog about the different aspects of the sample application in the weeks to come, but for now you can download the ZIP file and play with it yourself. SQL file to create database with sample data is also included. Username/password for test user is jonas/jonas.

I’ll write a new post some time tomorrow highlighting different files in the solution, and share some links to more relevant information.

Thanks to everyone who showed up, hope you enjoyed it!

Update: I've updated the post with some links relevant to the topic of the talk. I decided to update this post in stead of creating a new one since there is allready a conversation going on in the comments area.

ASP.NET, VS2008, LINQ

Silverlight

Facebook

Popfly

Virtual Earth/Windows Live

WCF 3.5, Syndication and REST APIs

AJAX

YouTube Videos by Micahel Wesch


Del.Icio.Us

download Download Divebook.zip (24MB)

Thursday I gave my final two presentations on this round of MSDN Live in Trondheim. I've had a great time talking about Visual Studio 2008, C# 3.0 and LINQ. The feedback have been great, and I really hope people have gotten a good impression of some of the key features in VS2008 and are exited about the language improvements in C# 3.0. Thanks to everyone who shoved up and spent their day with us.

After my presentations in Oslo I filmed a webcast with Steam, a company Microsoft Norway is using to produce high quality web casts. Steam films the presenter on a blue screen so that they can overlay the presenter on the slides afterwards.

linqwebcast.jpg

The webcasts are now available online on the Norwegian MSDN Live site. I've also included direct links to each webcast.

Both webcasts are in Norwegian.

I've previously posted a list of links with more relevant content to my presentations, but here are some more links that didn't make it into the first blog post:

One of the demos I gave during my Visual Studio 2008 presentation at MSDN Live this Monday was on Visual Studio Tools for Office and how to build an Outlook 2007 Add In. VSTO is now as integrated part of Visual Studio 2008 and not a separate product anymore. Previous versions of VSTO have been a bit limited, but the latest version lets you extend Outlook, Word, Excel, PowerPoint, Visio, InfoPath and Project using managed code. This opens up to some really nice integration scenarios where you can integrate line-of-business applications directly into Office.

In my demo I integrate Virtual Earth maps into the contact form in Outlook 2007. When you open up a contact you get a new button to view a map showing the contacts location on the map. The way I integrate Virtual Earth is by using the Windows Forms Web Browser control. The cool thing about the Web Browser control is that it's really easy to invoke JavaScript functions on the page being displayed directly from C#.  The JavaScript code to find a location on the map and display a pushpin is based on the Virtual Earth Interactive SDK samples.

To create a new Outlook 2007 Add-in start by going File - New Project, and select Visual C# - Office - 2007 - Outlook Add-in. This will create a new Outlook Add-in project. The project template will create a simple ThisAddIn.cs file that contains methods for Add-in startup and exit. For now just ignore this file. The next thing you need to do is add a forms region to your project. Right click the project and select Add - New Item. This will bring up the dialog box with all available items. Select the Outlook Form Region item to design a new form. Adding this item will launch a short "Outlook Form Region" wizard. You get options to design a new form, or import an existing design from an .ofs file. Select new form region. The next question is what type of form region you want to create. You can choose separate, adjoining, replacement and replace-all. Choosing separate will add a new button to the toolbar, which will open your form region as a separate page when you click the button. Select this option. Next step is to give your form a name, before the final step is to select which type of message class you want to display the form region on. You can select multiple options (like mail, RSS, task). For this form we'll simply select contact. This will make the add-in available only on the contact form inside Outlook.

newofficeproject  

newoutlookform

After completing the wizard you get a design surface that should look familiar to any Windows Forms developer. It's the good old Windows User Control designer where you can drag and drop any Windows Forms control onto the surface. Start by adding a web browser control and dock it to the parent. Set the ScrollBarsEnabled property to false. Add an event handler for the DocumentCompleted event. This event is executed when the browser is done loading the web page. Set the URL property of the web browser control to http://jonas.follesoe.no/content/binary/virtualearth.htm, or your own version of the Virtual Earth HTML file. The content of the file is straight forward, and can be viewed below. For security reasons IE (the Web Borwser Control is a simple wrapper around IE) displays a warning when ever a local HTML file is loaded. Even if you accept blocked content I can't get the map to display correctly. That's why I have the map HTML file up on a web server (and not as a local file on disk). The HTML and JavaScript looks like this:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
    <title>Virtual Earth</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
        body        
        {
            margin: 0px;
            padding: 0px;
        }
    </style>
    <script src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=5" type="text/javascript"></script>
    <script type="text/javascript">      
        var map = null;  
        var pinid = 0; 
        var title = "";
        var description = "";               
        
        function GetMap()      
        {         
           map = new VEMap('myMap');
           map.SetDashboardSize(VEDashboardSize.Small);
           map.LoadMap();      
        }      
                 
        function FindLocation(location, contactName, contactDescription)
        {
           try
           {
               title = contactName;
               description = contactDescription;
               
               if(map == null)
                   GetMap();
              
               map.Find(null, location, null, null, 1, 1, true, true, true, true, LocationFound);
           }
           catch(e)
           {
               alert(e.message);
           }
        }   
        
        function LocationFound(a, b, placeArray, d, e)
        {
           var shape = new VEShape(VEShapeType.Pushpin, placeArray[0].LatLong);          
           shape.SetTitle(title);
           shape.SetDescription(description);
           
           pinid++;          
           map.AddShape(shape);          
        }
    </script>

</head>
<body>
    <div id='myMap' style="position: relative; width: 100%; height: 100%;"></div>
</body>
</html>

In the DocumentCompleted event you need to execute the FindLocation JavaScript function on the loaded HTML page. You do this by calling the webBrowser.Document.InvokeScript method. As parameters to the FindLocation function you need to pass in the contacts name, address and description (used by the pushpin). The code to execute the script and access the currently selected contact is displayed below:

        private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            Outlook.ContactItem currentContact = (Outlook.ContactItem)this.OutlookItem;
            string address = currentContact.BusinessAddress.Replace("\r\n", ",");
            ExecuteScript("FindLocation", address, currentContact.FullName, currentContact.BusinessAddress);
        }

        private void ExecuteScript(string scriptName, params object[] parameters)
        {
           webBrowser.Document.InvokeScript(scriptName, parameters);
        }

The FindLocation function will use VirtualEarth to look up the address, move the map and add a pushpin with the name and address of the contact. Screenshot below:

contactscreenshot

This example is just a quick demo of what some of the new features in Visual Studio Tools For Office 3.0 shipping as part of Visual Studio 2008 has to offer. For another interesting demo check out the TechEd US key note available over at Virtual TechEd. The Office/Outlook demo starts about 58:30 into the video.

For more information about Office Development check out the Visual Studio Tools for Office Developer Portal.

Yesterday we kicked off MSDN Live fall edition. First city this round was Oslo, and approximately 600 developers had showed up for a day of great content. I started the day with my two presentations on Visual Studio 2008 and C# 3.0 & LINQ. I'm quite happy with the presentations, I managed to stay within my time limits, Visual Studio 2008 played nice and none of my demos crashed. I promised to post a bunch of links to further information on the topics, so here you go:

Visual Studio 2008

C# 3.0 and LINQ

I haven't uploaded the PowerPoints yet, but I assume they'll be made available on the Norwegian MSDN site later this fall. I tried to make the slides a bit more interesting by using large illustration and only a few words (not bullet points) on each slide, so the slides them self don't provide that much value. How ever we did record a web cast presentation of both my talks which will be made available online some time mid September. As for the demos I plan to make the code available as guided examples on the blog, perhaps as soon as this weekend.

Feel free to drop any feedback, questions or suggestions in the comments section. Thanks!

Update: One of the things I talked about is support for Visual Studio 2005 projects in Visual Studio 2008. When you try to open your VS2005 solution in VS2008 a conversion wizard will start up. This wizard will convert your projects and solutions. The thing to note is that upgraded projects are still valid in VS2005, but solution files isn't! So the best tip is to create a new VS2008 solution, and then add the projects one by one to that solution, and let the developers select which solution to work on. The projects can still be shared after converting. Read more over at Michael Palermos blog.

Microsoft Norway has published a new site for MSDN and TechNet Live. The new site contains the full agenda, registration, list of speakers, presentation downloads and more. MSDN and TechNet each have their own site with the agenda and a hilarious video with a little kid explaining different technical terms (in Norwegian). Both videos are well worth checking out!

If you haven’t signed up for MSDN Live this fall now is a good time to do so. The event is free, but has limited seats.

landingpage_msdn.gif

This winter I gave a series of presentations on IIS 7 for Web Developers on MSDN Live. I've previously posted my Camtasia screen recording from the Stavanger presentation. Now Microsoft Norway have posted a video recording of the presentation I gave in Oslo. The sound in this presentation is way better than in the recording I created my self.

In the presentation I give a developer centric overview of the IIS 7 server. I use one demo through out the presentation where I build up a picture sharing website, using stuff like Virtual Earth, custom IIS 7 modules, XML based configuration, ASP.NET authentication for file handler and so fourth.

If you haven't seen the presentation, and are interested in a quick overview of what IIS 7 has to offer for you as a developer it's well worth checking out. Longhorn server is now in Beta 3 with a go-live licence for IIS 7. You might also want to check out my presentation of Outlook 2007 Mobile Services running in IIS 7 using self signed certificates.

NB! The presentation is in Norwegian

I recorded my IIS7 for Developers presentation in Bergen using Camtasia. I've encoded the recording as a Windows Media Video file, so if you didn't get a chance to attend MSDN Live this round the presentation is now available online.

The video is 48 minutes long. I didn't use a "professional" microphone, but the audio is still "decent".

I'm currently sitting on the airport in Stavanger waiting for my flight back to Trondheim. For some reason Thursday is the busiest day of the week, so I didn't find a flight home before 21.25 tonight... So I'll have plenty of time to kill. Guess it's a good chance to catch up on podcasts, articles etc I have queued up.

I did my IIS7 presentation in Bergen Tuesday. This was the third time I did the presentation, so it went really well. In stead of flying back to Trondheim in the evening I decided to spend an extra day in Bergen, and go directly to Stavanger, the final city of the MSDN Live tour. So Tuesday evening I hooked up with Marianne, who is studying Medicine in Bergen. She invited me to a student party, which was tons of fun. I got a chance to check out the infamous rock scene "Hulen", which was great! I took it slow Wednesday and had a really good lunch with Marianne before going out to the Bergen Aquarium. It was actually quite nice to visit such a place alone. I could spend as much time as I wanted studying the different aquariums with out worrying about some one else who doesn't find the mountain trouts as fascinating as me!

Today I gave the final presentation in Stavanger. Jan Blomquist, Microsoft MVP and founder of TrainCert.net, is doing really well with online video training. He was using Camtasia to record his presentation in Bergen, so I figured this was an excellent idea so I did it my self in Bergen. Jan vas kind enough to let me borrow his microphone to get decent sound on the recording. This is something I'm definitely going to do on future presentations. It's much easier to do a good recording when doing it live, compared to doing it alone in front of your own in front of your computer.

I'm currently editing the recording and preparing it for online distribution. I'll write a separate post with a link to the webcast when it's available.

Thanks to everyone who showed up in Oslo, Trondheim, Bergen and Stavanger. I had a GREAT time, and hope you did as well. Feel free to post comments and questions, and I'll get back to you as fast as can!

See you on MSDN Live next time, in April/May!

Charles just uploaded a bunch of videos from the Imagine Cup accelerator event in London. You can now watch the final presentation from each of the teams on Channel9. If you're just interested in our demo, jump ahead to 04:15 in the video.

Imagine Cup Innovation Accelerator: Team Norway - MediWatch
All Channel9 videos tagged with Imagine Cup

Monday I spoke at the Microsoft MSDN Live event in Oslo. MSDN Live is a quarterly event, and this one was a huge success. About 600 attendees got a chance to learn more about web development using AJAX, IIS 7, and how to make their applications secure. I did a presentation on IIS 7 which went really well. I got some good feedback after the presentation. The pictures are taken from the stage at the end of the presentation.

The scenario I used trough out the demo was that I had some pictures I wanted to share online. I wanted to have some control over who could download the pictures. So I showed how to protect any file type using ASP.NET forms authentication and the ASP.NET integrated pipeline. I also showed how to create a managed module drawing a copyright message on all .jpg files served by IIS. In the end of the demo I replaced the directory browsing module with a new one that draws a nice looking gallery instead of the boring file list. To make things more interesting the start page was built using the Virtual Earth SDK, and each "folder" was laid out on the map.

If you want to learn how to use Virtual Earth just check out their interactive SDK.
If you just want the directory browsing module you can download it of the IIS.NET download center.
If you want the entire demo, download it here.
If you want the slides, click this link.

Hope you enjoyed the presentation! Three more cities left, starting with Trondheim tomorrow!

The next chapter of our Imagine Cup experience starts tomorrow. We're (me, Gøran and Hans Olav) leaving for the Imagine Cup accelerator program in Reading, London tomorrow. I don't know exactly what to expect, but the agenda looks really interesting. Two full weeks of technical training, business training, new technology, and catching up with new and old friends. I really haven't had time to think much about the accelerator program, and all the sudden the day has arrived.

I didn't expect Imagine Cup to take me to all these places when entering our draft to the Norwegian competition all most a year ago. Nordic final in Oslo, world final in India, TechEd in Barcelona, and now the accelerator program in London.

I'll bring my camera, and post pictures and off course blog frequently trough out the event.

I'm back in Trondheim Saturday January 27., but only for a couple of days. I got an invitation to the new designer focused Microsoft conference Designertopia. The conference is all about design, user experience, AJAX, WPF, WPF-E, 3D and off course Microsoft's new tools to aid designers. Since my girl friend is studying design this is a perfect event for her, so we're both going. So I'll be leaving back to London January 31, and the conference is a two day event starting February 1.

And after Designertopia I'm flying directly to Oslo for the first MSDN Live event this winter. So as you probably the next three weeks is going to be busy and super exiting! I'll keep you posted!


designertopia.jpg

In February it's time for a new round of MSDN Live in four major cities in Norway. The theme for this round of MSDN Live is web development, and in particular security, AJAX, IIS 7.0 and productivity tips and tricks in Visual Studio 2005.

I'll be giving one presentation this round on "IIS 7.0 for web developers". The focus of my talk will be on how you as a web developer can leverage IIS 7.0 by developing managed modules, or by using IIS 7.0 as a host for your Windows Communication Foundation services. The talk will be a nice introduction to the next version of Microsoft's web server.

The dates are as following:

Click the links for complete agenda and list of all the speakers who will be presenting this round. 25 % of the available seats in Oslo is already taken, so sign up now!

As usual this is a free event and a excellent opportunity to get up to speed on the latest in web development.

Looking forward to see you at MSDN Live in February!


 

IMG_6000Yesterday I had my Channel9 debut. During TechEd in Barcelona Hans Olav and I did an interview with Charles from Channel9, and now the video is finally up. We talk about our Imagine Cup experience and demo our application. Head over to Channel9 and check out the video and post a comment!

Olav (MS Norway), me, Rune (ADE MS Norway) and Kristine (Avanade)It's Monday night and I'm safely back home in Trondheim. I've spent the weekend recovering from a really exiting but still tiresome TechEd week in Barcelona.

Wednesday was all about interviews and demos. Early Wednesday Simon Brown and Arfa (that 11 year old Pakistan girl from the key note) dropped by our stand and asked for an Imagine Cup demo. Arfa was really interested in the project, but most of all she wanted to compete in the Imagine Cup her self, even tough she have to wait four more years till she turns 16…

During the day we gave three video interviews, one with Virtual TechEd, one with my mate Dave McMahon and finally a Channel9 interview. I'll post links as soon as the interviews are available online. Just after the Channel9 interview Anders Hejlsberg dropped by the Imagine Cup stand to check out our and the Italian project. Me and Hans Olav got a chance to give him the demo, and talk to him about technologies used to implement the project, Anders sessions at TechEd and LINQ. It was great to get a chance to meet Anders and chat with him.

Wednesday evening was all about the infamous, annual Norwegian TechEd party at the Hard Rock Cafe. More than 200 Norwegian delegates where attending TechEd this year, and the Norwegian party is know for being the best TechEd party, so quite a few speakers dropped by as well. As you can imagine, the place was quite crowded and the atmosphere was great!

Thursday was the "Microsoft Student Partner Program" day. 120 students from around the EMEA region was invited to attend TechEd during the day. Henrik, the Danish academic evangelist, was also in Barcelona, so it was fun seeing him again. Thursday after noon Caroline Phillips officially announced the Microsoft Student Partner Program at the first EMEA MSP meeting. During the meeting we gave a 25 minute presentation talking about our Imagine Cup project and most importantly the experience in India during the world finals.

After the meeting all 120 MSP, all the ADE's and a couple of other Microsoft people went over to "Lasermon" which has Barcelona's largest laser gun arena. We played laser death match, had all kinds of Spanish food and plenty of drinks. It was great to meet students from around the EMEA region and talk about how they run their local student community user groups.

During the party I also got a chance to catch up with Rob Burke from Microsoft Ireland. He's a really great guy, and has a really god blog up at http://blogs.msdn.com/robburke, and is allso a frequent Flickr poster.

Our flight back to Norway left Friday after noon, so we didn't have time to attend TechEd Friday. It was nice to get home Friday afternoon and have the weekend to recover  after TechEd.

As you can imagine after reading the posts TechEd this year was really busy for us. I didn't get a chance to attend as many sessions as I wanted, but then again we will be receiving the TechEd post conference DVD with all the sessions. You can cream all the great content into one DVD, but you cant capture the true atmosphere and all the people you meet at TechEd into one DVD. You'll have to be there your self.

Finally, a big shout out to everyone I meet during the TechEd week, and special thanks to Caroline for inviting us.

Oh, by the way, Hege and Caroline have uploaded a bunch of pictures on their Flickr sites. Be sure to check them out.

PS. I installed Office 2007 RTM today. Worked like a charm! Some really cool new features in OneNote 2007 I'll blog about later.


PPS: I have lots of great ideas after TechEd, just need time to put them in motion. One of the things I'm currently playing with involves IQueriable<T>… More to come on this one…

It's been quite some time since my last post… And it's the same old classic reason: I've been too darn busy to prioritize bogging. The fact that I haven't blogged in a while doesn't mean I haven't been playing with cool technology. This autumn I'm taking 6(!) courses at the university, in addition to working at Abeo.

The coolest course I'm taking is called "IT2105 Functional Programming", and it's just plain fun! The course is really small. I think we're about 25 (?) students in the class at the moment. The course is all about functional programming. To be more precise MIT Scheme programming, which is a LISP dialect. If you haven't seen LISP code, it's that old language with all those parentheses in it. This link will give you a quick Scheme search on Google Code Search.

The cool thing about the functional programming course is not the fact that I'm going to use Scheme for everything, but that trough the course I learn a new way of thinking that I can apply in my everyday work as a programmer. In C# 3.0 we'll be getting the infamous "lambda" expression allowing you to create new functions on the fly, and pass them as arguments to other functions. This is one of the key aspects of functional programming, and is also a key aspect in LINQ and C# 3.0.

Trough the course "IT1105 - Algorithms and data structures" I've gotten a good reason to get into Python, a language I'm liking more and more the more I program in it. With the 1.0 release of IronPython you can actually start to take advantage of the dynamic features of Python in your .NET applications. I actually have a personal project going on where I explore IronPython and adding scripting capabilities to your .NET application. I'll post more on this as the project proceeds.

Oh, and now over to those hands-on labs I mentioned in the title… A couple of weeks ago we (The Microsoft Student Community NTNU) did a three night introduction course on .NET and C#. The first part of the course was about C# and the .NET Framework in general, the second part was about Windows Forms and the third part was about ASP.NET. As a part of the course material I wrote three "hands-on labs":

  • A simple Notepad application (Windows Forms)
  • A simple RSS reader (Windows Forms)
  • Expose and consume RSS (ASP.NET)

I've included both the PDF and the Word version of the hands-on labs in this download, so feel free to modify them if you want to use them for a user group meeting, a introduction course etc.

And to finish up this post I've included on of the funniest parodies I've seen in a LONG while. The master of music parodies, Wierd Al, have come up whit his own version of Chamilionares "Ridin Dirty"; White n Nerdy!

I've uploaded the slides from yesterdays user group presentation in Trondheim. There wasn't really much example code worth uploading, so I just uploaded the Power Point slides. The example code that ships with ATLAS shows most of the stuff I demoed yesterday.

The presentation I gave was about a project me, Gøran and Espen have been working on since early spring. The project is an application that runs in 8 hospitals in the region helping them to track post surgery infections. In the application we used allot of Atlas to improve the user experience. So during the presentation I show cased some of the areas where we used Atlas, and demoed how to implement stuff such as the update panel, the auto complete textbox and the modal popup extender.

I also talked about contentious integration and Cruise Control .NET and how that was a success factor in our project. It turned out that very few knew about CC.NET, so I spent some time discussing it.

After the main presentation I fired up XNA and used the Spacewar starter kit for a friendly competition giving away Francesco Balenas book "Programming Microsoft Visual C# 2005: The Base Class Library".

I've added a set of links relevant to the presentations, including a link to the excellent book "Ship it! A Practical Guide to Successful Software Projects", which discuss continuous integration and other techniques to ship your software project on time.

Oh, and I have to mention that the Norwegian .NET User Group just released a brand new site which looks really promising. Now we just have to fill it with content.

We need more speakers to keep NNUG going, so if you'd like to give a presentation at NNUG Trondheim, drop a mail to trondheim@nnug.no.

If you have any questions or comment related to the presentation just add them as a comment to this blog post.

ScreenshotWant to congratulate Eric Carr (he need to get something up on his site) as the winner of the Gadget development competition I helped arrange as part of MSDN Live spring 2006. Eric wrote three really cool gadgets for Live.com (and MSN Spaces) that you definitely should check out:

Eric is the lucky winner of a Xbox 360! Looking forward to see you online on Xbox Live.

 

taj mahalThis is the last night in India. What an amazing week! We've had so much stuff to do all the time that It feels like we've been her for way more than 9 days.

The last few days have been just amazing! Wednesday evening we got the message that we made it trough to the final six. Together with Denmark, Italy, Brazil, China and Japan we where going to compete in the final championship round in Dehli. We left from Agra 5 in the morning on Thursday and went straight to the convention centre where the final round was held. We where the first team presenting our solution. The final round was an open presentation where the other students competing in the Imagine Cup was invited to watch the final 6 presentations. I don't know the exact number, but I guess there where between 200 and 300 people watching the final presentations.

Once we where done presenting our solution we spend the entire day at the convention watching the other teams giving their software design presentations. After the software design presentations we got a chance to watch the contributions in user interface design and short film. Some of the Windows Presentation Foundation applications where just amazing. Even better than Microsoft's own showcases! The films where great too. Will post a link as soon as the short film contributions are available online.

All the winners where announced Friday during the "World festival", where Microsoft executives, the Indian minister of technology, gave some great speeches.

After seeing the other teams final presentations we didn't have to high expectations, but man it felt good when we where announced as number three in the software design category! The price was 10.000$, a nice trophy, and an invitation to spend 14 days in Reading (UK) at Microsoft/BT's expenses to develop the idea further.

After the winners where announced we had to lots of interviews, Indian newspapers, Japanese computer magazines, Indonesian TV and all kinds of other strange Asian media. We've also gotten some good press back in Norway, so when I get back to Trondheim I'll collect all the online articles and put up some links. For now I'll just link to the Dagbladet article titled "geek bronze".

Later Friday night Microsoft threw a great pool party, with great food and free drinks. Because of Dehli regulations they had to turn down the music quite early, so later that night we went into Dehli city to one of the most popular nightclubs in the city. That was an really interesting experience, will post more pictures later. Was back at the hotel room 4AM.

Today we've been relaxing at the hotel before visiting a "Bazar", which basically was like an "underground" station with tons of shops selling all kind of fake crap. "iPod shulffles" with display, Sony 4gb mp4 player and TONS of copied PS2, Xbox and computer games. The only thing they couldn't copy was the Sony PSP games, so the price was about the same as in Norway. After some heavy barging i managed to get Syphon Filter Dark Mirror for one third of the Norwegian price, so good deal.

Anyhow, we're leaving for Norway Sunday morning, but because of terror threats we need to be at the airport 5 hours in advance. Will post more pictures and links when I'm back home in Trondheim… Looking forward to that after a tough, but amazing, week!

 

 

Monkeys aroundToday is the fourth day of the Imagine Cup in India. We arrived one day earlier than most of the other contestant, so during Sunday more and more students where arriving. On Sunday night we had the welcome party, with opening speeches and videos, music and food. The "band" that played on the opening night was an Indian version of the Norwegian band "Ralph Mayers and The Jack Harren Band". I don't remember the name so I'll look it up later. The Norwegian team left early from the party to work on out application, and we weren't in bed until 04 AM.

 

Monday was the first day of the contest. We started out by doing a 7 minute lightning round which didn't count. This round was held just to get us warmed up. Later that day we had the first real round of the Imagine Cup, a 20 minute presentation and 10 minutes of questions. The presentation went excellent and all the demos worked perfectly. Later that day we (team Norway), Japan and UK where invited to do a press briefing talking about our projects and our experience as contestant at the Imagine Cup world finals.

 

Tuesday morning was spent in our team booth giving presentations to media, other teams and guests of the competition. There where quite allot of people interested in our project, so we where quite really busy. The 12 teams who made it to the next round where announced around lunch. I don't remember all the other teams who made it, but both Norway and Denmark made it to the next round. 41 teams are now down to one. We did our second round presentations Tuesday afternoon, which now was 35 minutes and 15 minutes of questions. The judges gave us great feedback, and actually said that they where blown away… So no our fingers are crossed, and hopefully we'll move on to the final 6 teams to present tomorrow Thursday.

 

Today, Wednesday, we've been relaxing and visiting and old mausoleum for some important Indian guy from the early 1600's. I don't remember his name, so I'll post a Wikipedia link later on. We spend the day divided into groups doing different kinds of work at the site. Some people where working in the garden, while others where filling cracks in the floor and walls, or  where swiping dust. Now we just had lunch before heading over to Taj Mahal, something I'm definitely are looking forward to.

 

Gøran have posted som pictures on his Flickr site. Check them out over at: http://www.flickr.com/photos/22075141@N00/sets/72057594128196432/

Can you spot the monkey?This week I'll be attending the Imagine Cup world finals in India. We flew from Oslo early Friday morning, and arrived in Dehli late Friday night. After a short stop for some food and refreshments in Dehli we jumped in the buss and drew for four hours to Agra. The drive was _really_ interesting. Even tough we where driving in the middle of the night there were people walking along the road everywhere. People sleeping on the roof of their truck or buss. Crowds of cows walking in the middle of the street. A gang of monkeys looking at us from the rooftops of buildings that looked like the where going to collapse any moment. Jan Kristian took lots of pictures which he will upload to his Flickr site soon.

We arrived at the Jaypee Palace hotel early Saturday morning. After almost 24 hours of travelling. We've spent the first day in India relaxing in the sun, bathing, talking to the hotel monkey, and doing some preparations for the contest.

Later tonight we're going to check out the Hotell Spa and perhaps get a massage or something.

During the MSDN Live events this spring we announced an Gadget development competition. Just wanted to write a quick reminder and encourage everyone to give gadget development a try. There haven't been that many contributions, so if you write a gadget you'll have a fair chance at winning the Xbox 360.

So, the rules are simple: Write a Live.com or Vista Sidebar gadget and send it to me at jonas@follesoe.no, or post it in the http://www.microsoftgadgets.com/ gallery.

The deadline for the competition is august 15. The winners will be announced late august/early september.

You'll find all the information needed to get started over at http://www.microsoftgadgets.com/. You can also check out the example code and slides from the MSDN Live events in this blog post.

God summer, and good luck!

This weekend I was in Oslo for the final round in the “Microsoft days spring 2006” event. I’ve been traveling with Microsoft to the four largest cities in Norway giving presentations on .NET, Gadgets and Windows Presentation Foundation.

 

The presentations in Oslo went well and there where quite a few people who showed up for our “latest news” developer track. The slides and code are available on a previous post.

 

During the Oslo event I also recorded a trimmed down version of my Gadget presentation. I’ll write a new post as soon as the recording is available online. Be sure to check out Sondres ASP.NET 2.0 and RSS slides over at his blog.

 

Thanks to everyone who showed up, and good luck in the Gadget competition!

I’ve finally gotten around uploading the sample code and presentation slides from the MSDN Live presentations I’ve been doing with Microsoft over the last couple of weeks. For those of you who didn’t get a chance to attend MSDN Live / Microsoft days this spring we’ll be recording some of the content in Oslo may 15th. I’ll write a blog post as soon as the content is available online.

In the mean time you can download the slides and Gadget code, and perhaps throw together something your self for the Gadget competition.

Introduction to the .NET Framework
I’ve only uploaded the slides from this presentation. The demos are fairly straight forward, a simple web service and a simple client retrieving data from this service. If you attended this session, and want to learn more, my suggestion is to download the SDK, install VS2005 and play with some of the introduction tutorials. I also have two book recommendations:

These are easy to read, short, fun, and colorful introductions to web and windows development on the .NET platform. It walks you trough a full program, or a full website trough out the book.

The slides from the presentation is available here: Introduksjon til dotNET.ppt


Gadgets, Gadgets, Gadgets
I’ve uploaded the sample code, VS2005 code snippets and slides from this presentation. The sample code contains the “Bussoracle” for the Live.com platform and the Vista Sidebar. If you only want to run the gadget you can download the Sidebar version or click this link to add it to your Live.com start page.

Screenshot of the Live.com and Sidebar version of the Bussoracle Gadget

There are a few things you have to keep in mind when doing gadget development for Live.com:

  • For gadget development you need to add live.com and localhost to your trusted sites list.
  • If you’re doing gadget development on IE7 Beta2 you need to add the following registry key: [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_XMLHTTP_RESPECT_ZONEPOLICY] "Iexplore.exe"=dword:00000001

By default IE7 Beta 2 will ignore your trusted sites for XMLHTTP requests, so in order for you to do local development you need to tell IE to look at your trusted sites before allowing/disallowing an XMLHTTP request.

To use the Visual Studio 2005 Code Snippets I showed during the presentation you need to copy the files to your local snippet folders. By default this is located under “Document and Settings\Your User\My Documents\Visual Studio 2005\Code Snippets\XML”. As I mentioned during the presentation, Visual Studio only supports code snippets for XML, C#, VB.NET and J#. How ever, you can create JavaScript code snippet as XML snippets, and add them to your code inside an XML comment tag, and then cut/paste into your JavaScript file. I’ll show this trick in the recorded version of the session.

For those of you who want to compete in the Gadget competition I’ll write a new post with content rules and details.

The code and slides are available here: Gadgets.zip

Better user experience with Windows Presentation Foundation 
The expression splash screenFor this presentation I’ve only uploaded the slides. The demo is basically a walkthrough of the Fabrikam tutorial that ships with the Expression Interactive Designer. I would strongly suggest walking trough these tutorials your self to get a feel of what Expression Interactive Designer can do.

The presentation is available here: WPF.ppt

I hope you all had a good  time at the MSDN Live / Microsoft Days Event. Any feedback is appreciated!

I gave three presentations in Bergen last Thursday. The presentations went fine, except there could have been a bit more people attending the sessions. I’ll upload the Powerpoints and example code once I get back from the Microsoft days event in Stavanger next week. Stay tuned!

I’ll also be publishing some more information on the Gadget Xbox 360 competition we’re throwing together.

I’ll be giving three presentations at the next round of the “Microsoft days”, a quarterly event held in the four largest cities in Norway. The event has three target groups; PC-users, IT management and technicians (TechNet) and developers (MSDN). The MSDN part of the event has two tracks, one on Team System and one on “the latest and greatest” in development for Office 2007 and Vista.

My first session is a breakfast seminar on “.NET introduction” for totally beginners. The next session is on “Microsoft Gadgets” (Sidebar, Live.com and SideShow), and my final session is on improving the user experience using Windows Presentation Foundation.

My good friend and fellow RD Sondre will be giving three presentations as well. An introduction to Team System, how to improve user experience online using Atlas, and finally “information to the people” using the RSS platform in Vista.

After the sessions there will be an “after tech” where you can hang out with fellow developers, get some food and beer and listen to some live music. All in all the agenda looks great!

The dates to spare are as follow:

  • Bergen 26.april
  • Stavanger 04.may
  • Trondheim 08.may
  • Oslo 15.may

You can read more about the event and sign up at http://www.microsoftdagene.no/. Oh, allmost forgot to mention: the event is absolutely free! Hope to see you there! 

The NNUG Presentation last Thursday went really well. Anders did a great introduction to the Composite User Interface Application Block. My RAS presentation went well, and I talked about how we made the client “smart” by implementing offline functionality and network awareness. I also talked about Web Service compression. The links to the Web Service Compression Soap Extension and the Hans on Lab describing the Network Awareness Component can be found in the Power Point slides. If you have any questions regarding compression or network awareness just post a comment in the blog. Next NNUG meeting in Trondheim is 20.april, and the topic is the Tablet PC SDK and Windows Presentation Foundation. Looking forward to that!

Download Power Point Slides

This Thursday I’m giving a presentation at the local .NET User group. The focus of this user group meeting is smart clients. There will be two presentations. The first one is by Anders Hammervold and is about the Composite User Interface Application Block. The second one will be my presentation where I’ll talk about RAS, a smart client application Abeo developed for field workers at Trondheim Energiverk (an electric power company). The focus of my presentation will be about some of the thinks you’ll have to think about to when planning offline capabilities, deployment, occasionally connected clients and limited bandwidth.

I’ll talk about how we built the RAS application, and I’ll also give a few concrete examples and tips you cane take home with you. I’ll show how to detect network state and implement two-way web service compression.

Sign up by sending an e-mail to nnug@abeo.no.

Microsoft Days is an event where Microsoft visits four of the larger cities in Norway. They provide interesting content both for business decision makers, it administration and last but not least developers. One of the speakers this round was Sondre Bjellås, giving a presentation on web development in Visual Studio 2005. I’ve known Sondre online for some years now, so it was great finally get a chance to meet him. I only got a chance to se the last hour of the presentation, but the bit I got a chance to see was great. All the content was home made, and Sondre had a strong focus on code and demos instead of lots of power point presentations. The cool thing about his presentation was that he showed off most of the cool parts of ASP.NET 2.0 with out using the standard demos.

Here are some of the things he showed off (and I got a chance to see)

  • Portal personalization
  • Making custom webparts (consuming RSS)
  • XmlDataSource (consuming RSS Podcast, transcribing it using Speech Server)
  • Web testing and web load testing using Team System
  • Provider model, writing custom map providers for Google and MSN maps
  • Administration, extending the default administration webpage to enable map provider configuration.
  • Localization

As I said, I only got a chance to see the last hour, but telling by the list of things you can imagine it was propped full with cool content. If you got a chance go see him in Oslo February 15. You can download his slides and example code on his blog.

After the presentation we attended the after tech, a new thing Microsoft is adding to their “Microsoft days” program. Basically they serve beer and pizza, and you get a chance to hang out with the presenters and check out stuff like Media Center, Xbox360 and talking to Microsoft partner companies.

MVVM presentation from NDC2009 on Vimeo
My UX prototyping presentation from Smidig2009
Speaking at NNUG Kristiansand and Smidig 2009 next week
Recording of my MVVM talk at NDC2009 is now online
NDC 2009 is history – What a blast!
MSDN Live Winter 2009 is now history!
Speaking at MSDN Live next month
Last User Group Presentation in Australia
Speaking at Silverlight Designer and Developer Network and attending PDC 2008
TechEd 2008 – Silverlight 2 for Developers
Unit Testing, Presentation Model and the HTML Bridge at CodeCamp NZ
Speaking at Tech Ed ANZ and CodeCamp NZ
REMIX08 YouCard Demo
Speaking at REMIX Australia
Interactive video using Silverlight @ CodeCampOz
First public appearance in Melbourne
Divebook Sample Application
VS2008, C# 3.0 and LINQ webcasts
Integrating Virtual Earth with Outlook 2007
MSDN Live presentations
New MSDN Live site now online!
IIS 7 Web Cast on MSDN Norway
IIS7 for Developers Webcast
MSDN Live is over and I survived!
We're on Channel9 (again)!
MSDN Live Oslo 05.feb
The Imagine Cup experience continues…
I'll be speaking at MSDN Live in February!
I'm on Channel9!
TechEd Barcelona - The last three days
A quick update, an amazing music video and three hands-on labs!
Slides from user group presentation 14.09.06
Gadget competition winner - Eric Carr!
Links to press coverage after Imagine Cup India (and some pictures)
Last night in India - We placed third!
Imagine Cup update, day 2, 3 and 4
Arrived in India!
Gadget competition reminder
The Microsoft days spring 2006 is now over
MSDN Live slides and demo code
Microsoft days in Bergen
I’ll be speaking at the “Microsoft day’s spring 2006”
NNUG Presentation Slides
.NET User group meeting this Thursday (9th March)
Microsoft Days Winter 2006 - Trondheim
<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910