We have been getting more and more excited during last couple of weeks as we were getting closer to Webcamps Sydney.
It was very nice for us to meet geeks and experts in the field and being able to discuss new technologies and learn from their experiences.
Webcamps started Saturday Feb 26th, 2011 at Sydney University, law building Auditorium 101. We picked our name tags and entered the auditorium, it was almost full.
When we got there Catherin Eibner developer evangelist at Microsoft was giving an introduction about the event, and how you can access the WiFi.
The first presenter was Damian Edwards who travelled all the way from USA, Seattle to join this Webcamps.
He started with an introduction about the framework and how every element including ASP.Net webforms, MVC, Razor fit in the structure.
He started by showing some examples in Razor, which is Microsoft’s new view engine. It lets you get rid of the bumble bee sign (<%) for writing scripts in your aspx file. You can easily mix html and script and the system automatically detects them and takes the appropriate action.
The thing I loved about Razor was layout pages which lets to have a consistent look all over your website, something like master pages but much easier. You can create common site templates and use them in your code, like this:
<html> <head> <title>Test Page</title> </head> <body> @RenderBody() </body> </html>
Now if we save this template and call it testlayout.cshtml, you can use the line below to tell .Net that you are using this template in a page:
@{
LayoutPage=” testlayout.cshtml”;
}
Wait, it doesn’t finish there you can even define different sections for your layout. Let’s create a template like this:
<html> <head> <title>Test Page</title> </head> <body> <div id=”menu> @RenderSection(“menu”,optional:true) </div> <div id=”body”> @RenderBody() </div> <div id=”footer”> @RenderSection(“footer”,optional:true) </div> </body> </html>
Then you can define these sections in your page like this:
@section footer{
<p>This is the footer</p>
}
I am not going to go to details of that just give you a touch of the materials covered. Then he continued with MVC. Explaining the whole logic using the famous diagram:

He kept on giving some examples about using controllers, creating views using Razor, passing data to the controllers.
Then Paul Glavich took over and started talking about models, and how to create models. He talked about 3 common methods of coding:
Each has their pros and cons, obviously the code first is an agile programming which I think is good if you are creating a quick demo. Database first is the one you actually spend more time on. You design your database structure, relations, tables properly first and then start coding based on that.
Model first is something between these two.
He showed some examples about using attributes in your model view classes, and how to create templates for html helpers.
He created a calendar which used a custom model, and in that custom model he used jQuery’s calendar, so every time a user selects that element, instead of using the default template it used the view template he designed.
He talked about dependency injection (DI) using Ninject. It injects dependencies into a class when they are needed. It helps the clients in using the application but preventing them from knowing a class dependencies and how to create them.
He continued by talking about Global Action filters. Global action filters actually help you to apply filters to all actions in your web application. You need to modify Application_Start() function in your Global.asax file and add:
GlobalFilters.Filters.Add(newMyActionFilterAttribute());
Before :
RegisterGlobalFilters(GlobalFilters.Filters);
Obviously you need to create a new instance of the filter you want to use and add to filters collection.
Then it came lunch break. It was very nice food from Microsoft. Before lunch Damian Edwards asked audiences about the subjects everyone is interested so they can point the talks toward audiences’’ interests.
Everyone agreed and he picked for subjects to talk about after the lunch break:
He showed some examples by installing some packages like ELMAH from NuGet. He explained about the process of creating a NuGet package and how to submit it.
He covered JQuery basics and some examples about the selectors and animations.
He also introduced his plug-in, TrackDirty, and explained the code, talked about the steps of creating a jQuery plug-in.
Then it was the time for Questions & Answers.
This is the part I love most, as we learned about other people experiences and the solutions to their problems. It was really good.
Catherin Eibner was checking all the #webcamps twits on twitter and asking questions posted on it.
The first day at web camp was over, and they invited everyone to a Nerd Dinner.
We joined Catherine Eibner and Damian Edwards for the Nerd Dinner and talked about new technologies.
It was nice talking about IE, and releasing IE9 and the issues IE had. We also discussed a new CMS, Orchard, which Microsoft is putting many resources to build.
But in general it was nice to see the intention in Microsoft to have more interaction with the developers’ community. Microsoft is walking on right direction by getting the community more involved.
The second day was lab. It was more doing some labs they provided which covered all the subjects they discussed the day before.
We ended up having one NuGet Package submitted, which helps you make all changes to yourComposite C1 application to be able to use MVC in it.
We also got some time to talk to Aeron Powell from Readify, and learned more about what they do at Readify.
It was a great experience for Spakoo’s team to attend web camp and meet these experts and learn from them.
Many Thanks to @ceibner, @DamianEdwards , @glav, @slace.
Thanks Microsoft.
Spakoo Pty Ltd - All rights reserved. Proudly powered by CompositeC1.