Web Camp LA–Trip Report

"This was the best training I've ever had, this was even more useful than TechEd" – Gabriel Cruz

Last Friday, Phil Haack, Jon Galloway and I ventured to Los Angeles to deliver a Web Camp at the downtown Microsoft office. 

What do you mean you drive on the other side of the road in the USA?

Photo – “What do you mean you drive on the other side of the road in the USA?”

Agenda and Content

After we got to the venue safely, we delivered an agenda on the following topics:

t7vv.jpg

  • ASP.NET MVC 2 Fundamentals
  • Entity Framework (including a sneak peak of code-first)
  • Validation, Localization
  • ASP.NET MVC + jQuery, jQuery Templating, jQuery Globalization
  • ASP.NET MVC 3 and Razor

NEWS – You can now get the Web Camps Training Kit – September Edition!  This includes much of the content we covered at the event.  (note – we don’t have jQuery Glob or MVC 3 content, yet – that’s coming in November).

Feedback and areas for Improvement

Feedback from the event was great with average scores really high:

  • Overall Eval Score: 8 out of 9
  • Overall Instructor Score: 8.8 out of 9

This is what people told us about the event:

  • “Love the flexible agenda”
  • “One big advantage of the training is to learn first hand the trends in the industry and be able to direct appropriate amount of resources toward training and tools.”
  • “The course was great. As a web forms developer, I was particularly interested in learning more about MVC 2 and 3 and this course provided a huge amount of information. Not only was I able to see how sites can be created using MVC, but just by watching the instructors write code in Visual Studio I was able to learn tips and coding shortcuts that I didn't know about before, and that will help me work more efficiently in the future.”
  • Great course. Even better that the price was free.
  • “Were the presenters good? It was friggen Phil Haack, Jon Galloway, and James Senior. They were great.”

There’s always areas for improvement, from what you said we need to work on some things for next time:

  • Make sure we have time for labs
    • Yes – we overran slightly due to questions but next time we’ll try and leave more time for hands-on building instead of doing the extra ASP.NET MVC 3 session
  • Get the wifi working
    • We hear you.  It’s always hard because we can’t control the venue and piping in dedicated broadband is super expensive.
  • Make sure the content is available at the event or on the website
    • Yes – due to timing the Web Camps Training Kit September Edition wasn’t available, that shouldn’t be an issue moving forward

We are on the cusp of releasing more dates for even more Web Camps, around the world. I’m very excited about this and I’ll have more news on this very soon! For all the information make sure you follow @jsenior or @webcamps on Twitter and check the www.webcamps.ms website.

Tags:

Web Camp LA–Results of the agenda poll

For the Web Camp in LA we asked you what you wanted to hear about at the event.  This is always a bit risky because you end up not being able to please everyone but it was clear that there were some popular topics out there.  Here are the results:

image

Phil, Jon and I spend time last week to come up with an agenda that attempts to combine some of the most popular topics, like jQuery, MVC 101, Data Access and Modelling as well as Ajax, and Client-side Validation.  We think we’ve done that pretty well and I’m please to present the agenda for Web Camps LA:

Timing

Session

08:30-09:00 Arrival & Registration

09:00-10:00

ASP.NET MVC Fundamentals: MVC 101

10:00-11:00

ASP.NET MVC Fundamentals: Data Access and Modeling with Entity Framework

 

Break for 15 minutes

11:15-12:15

MetaData and Validation, Localization

 

Lunch for 45 minutes

13:00-14:00

MVC and Ajax, jQuery Templating, jQuery Globalization

14:00-17:00

Labs

17:00 Leave

Depending on how we are feeling and audience demand, we might also squeeze in an extra bonus session on ASP.NET MVC 3 and Razor – Phil’s been wanting to dazzle everyone with Razor syntax Smile

Here’s a sneak peak of me and Phil talking about Razor and MVC3 here.

Tags:

Ask the expert on Web Camps TV: Rey Bango

Every week we give you the chance to ask the experts questions on Web Camps TV when we’re in the studio.  To ask a question – use the Facebook Live Stream below during the “on air time” and we’ll attempt to answer as many questions as possible.  The show will be aired at a later date.

Today, Friday 27th at 4pm PST we have Rey Bango in the Channel 9 studio.  Rey is a member of the jQuery Core Team and also works at Microsoft as a all around web ninja kinda guy.  Ask your questions below and we’ll get them answered!

 

Tags:

Web Camps L.A.– Sold Out in 48 hours (UPDATED)

****UPDATED 8/27/2010 2:20pm****
We have upgraded to a bigger room and there are currently tickets available for the Web Camp in LA. If you were on the wait list you will be automatically assigned a ticket.  If you’ve not yet signed up – make sure you do quickly!

LAWe released the tickets just under 48 hours ago and Web Camp LA is sold out!  That’s good and bad news, right?! For those of you who haven’t yet signed up, don’t be too distressed.  We are currently looking for a bigger room so that we can release some more tickets.  I’ll post an update once we’ve secured the room – fingers crossed!

Remember we are crowdsourcing the agenda – here’s the poll results so far.  Looks like jQuery and ASP.NET MVC 101 is out in front.  Be sure to vote so you hear the right content!

image

Make your voice heard – take the poll and let us know what content you want!

Tags:

Announcing the Web Camps Training Kit: July 2010 Edition

webCamps150x240

Today, we are releasing the Web Camps Training Kit: July 2010 Edition – Download it here.

The kit includes all the content we presented around the world at the recent Web Camps events; presentations, demos, labs and more.  Inside the new kit you’ll find content that covers the following technologies:

  • ASP.NET MVC 2
  • ASP.NET 4 Web Forms
  • jQuery
  • Entity Framework
  • Visual Studio 2010
  • Deployment

We’ve also included the agenda so if you want to run your own Web Camp with some of our content, you can do that. Let the team know if you are planning to run your own – we’ll help get the word out (webcamps [at] microsoft.com).

As a bonus we’ve also included scenario based content which comes in the form of complimentary slides, demos, demo scripts and hands-on-labs.  These scenarios show you how to take your own web application from an idea and prototype all the way to getting more visitors and optimizing for performance using the Microsoft Web Platform and other technologies from Microsoft.

  • Prototyping Your Web App
  • Building Your Web App
  • Enhancing Your Web App
  • Getting More Visitors to your Web App
  • Optimizing Your Web App for High Performance

We are going to be adding new scenarios as well as fresh content covering the latest on WebMatrix, ASP.NET MVC, Entity Framework, jQuery and more as well as brand new Web Camps!  Stay tuned!  Again, we’re open to hearing your feedback and requests – if there is anything you would like to see in the next version of the training kit, let us know (webcamps [at] microsoft.com).

Download the Web Camps Training Kit!

Tags:

Web Camps Wrap Up and plans for the next 12 months

Over the past 3 months we’ve visited 12 cities across the world delivering free training and fun on the Microsoft Web Platform.  It’s been an awesome experience to see so many talented and passionate developers, from universities, startups, large businesses across the globe – all learning to build cool web apps on the Microsoft Web Platform. 

On Day 1, everyone got to hear about the latest developments in ASP.NET including a tour of ASP.NET 4 Web Forms, ASP.NET MVC 2, Entity Framework, Visual Studio 2010, Deployment and jQuery.  There was a lot to cover in one day and we’ll be looking at how we can slim the content down a little bit so we can drill into more details on the most popular sections.

On Day 2, the building day, people have been building some really cool applications in teams – it’s amazing to see what you can build in one day with a group of people that you have never met before!  Some of the applications that stood out for me were:

  • Shopaholic (Redmond Web Camp) – these guys knew how to leverage existing code! They used all the components of the Microsoft Web Platform including MVC 2 and EF nicely.  They also worked really efficiently in their team and got a hell of a lot accomplished
  • Ontario Fast Ball (Toronto Web Camp) – father and daughter put together a website for their local softball league using Web PI and DotNetNuke. Great to see how they put this together with no prior programming experience. 
  • Online Chat Room (Shanghai Web Camp) – created by a group of three this was entirely based in jQuery and used the new templating engine that Microsoft has been working on with the jQuery core team – impressive having chats across the network with other Web Campers!
  • Calendaring (Mountain View Web Camp) – the team put together a really nice web app based in MVC that integrated lots of social networking APIs, iCal and Bing Maps.
  • Noisy Neighbor (Sydney Web Camp) – a web app to register pesky neighbors. This app made great use of ASP.NET MVC 2, Bing Maps with drag and drop pins, WCF and a Script Manager for generating proxy classes (from Telerik)

In all there were around 80 applications built at the Web Camps and the list above is just a small sample of the cool stuff people were building!

Some things to look out for in the coming weeks:

  1. Web Camps Training Kit – we’ll be giving you all the content from the Web Camps in just a couple of weeks from now
  2. More Web Camps! We’ll be announcing new dates for Web Camps very soon – we’re just planning where we should go first!  Sneaky hint – we are going BIG! Smile
  3. Web Camps and content for Web Matrix
  4. New Web Camps website – time for a remodel, we’ll be launching in a couple of weeks

If you would like Web Camps to come to your city then leave me a comment on this post – we are listening!

Tags:

Haack and Walther join the speaker lineup at Web Camp Redmond!

image image

The Web Camp in Redmond on Friday 18th and Saturday 19th June is starting to shape up nicely with some last minute speakers added to the rosterPhil Haack the Program Manager for ASP.NET MVC and Stephen Walther the Program Manager for Ajax Control Toolkit and Microsoft’s jQuery contributions are now on board!  They’ll be joining me on stage on Friday as we look at MVC and jQuery as well as give their unique insight into their respective technologies!  It should be a blast so be sure to bring your questions along for these rock stars!

If you’ve not done so already, sign up for Web Camp - Redmond – we’ve only got a few seats left!

If you can’t make it for the Web Camp in Redmond but would like to have your question answered on stage by the Phil or Stephen then leave me a comment below!

Tags:

Twitter Search with jQuery Templating

image

A while back I wrote about how to build Twitter Search using the templating engine in the ASP.NET Ajax Library and it was quite a popular post (BillG uses my code on his new website – glad you like it Bill ;-)…. Well since then, things have changed a bit back in Redmond and now instead of adding new features to that library we made a decision to change our approach and contribute to the jQuery Library instead.  We made the announcement at Mix10 in March and since then we’ve been working with the community to build a new templating engine and also introduced a new feature called data-linking (based off the data-binding feature in the old ASP.NET Ajax Library).  In other words we are coming good on our announcement and have changed the way the Ajax team work to the jQuery contribution model (see my previous post on the contribution model).

I thought it was about time I updated the code of the original twitter app to show how to achieve the same thing using the jQuery Templating engine.  A couple of differences you’ll notice straightaway is that the templating syntax has changed – the preferred method is ${ dataItem } – and the app now uses the jQuery.ajax method to make the JSONP call to the Twitter Search API in order to retrieve the search results.  Also, we are no longer using the sys namespaces to manipulate dom elements and gone is the script loader which was used to manage the loading and dependencies of the various scripts.

Step 1 – Define the Template

For simple templates i.e. “the one-liners” you can choose to simple assign the html fragment as a string to a variable.  However, for more complex templates you will want to declare them in a script block – and that’s what I’ve done in this sample.

<script type="text/template" id="tweetTemplate">
        <li>
            <a href="http://twitter.com/${ from_user }">
                <img src="${ profile_image_url }"/>
                <b>@${ from_user }</b>
            </a>
            says:            
            <br />
                ${ text }
            <br />
                <a href="http://twitter.com/${ from_user }/statuses/${ id }">
${ new Date(created_at).toUTCString() }</a> <br /> </li> </script>

Step 2 – Get the data from Twitter

To retrieve the search results from twitter we use jQuery’s ajax method which takes options for the type of data we expect back and the function to call when we receive the results in addition to the url for the search URL.  This is arguably more elegant than the Sys.Net.WebServiceProxy.invoke method we used before in the ASP.NET Ajax Library – but that’s more of a preference debate. 

$.ajax({
      dataType: "jsonp",
      jsonpCallback: "renderTweets",
      url: "http://search.twitter.com/search.json?q=" + query
});

Step 3 – Bind the data to the Template

image

It’s showtime for the templating engine!  It’s responsible for loading the template and then replacing the placeholders where it finds matches in the data structure that it is given.  This magic happens in the render() method which takes in data (as well as options) and after generating DOM elements for each data object using the template, it returns a jQuery object with the full array of elements. 

function renderTweets(data) {
    $("#tweetTemplate")
         .render(data.results)
         .appendTo("#tweetList");
}

We can take these generated elements and insert them into the DOM using one of the jQuery methods like appendTo.  That’s it – we’re done!

Next Steps

An idea to extend this sample would be to automatically query the Twitter Search API every 30 seconds or so (like Twitter does on the real-time search page on their site) and then add the new items in the search query to the top of the list.

Full source

The HTML, JS and CSS is available for download here.

Tags:

jQuery Slides & Demo from my Remix Australia Talk

On the 1st of June I had the pleasure of giving a talk at the Remix conference in Melbourne, Australia on the Microsoft/jQuery contribution story and the new Templating engine that were announced at Mix10 in Las Vegas earlier this year. This conference punctuated the Web Camps world tour that I’ve been on and was a welcome break to enjoy someone else running a big event :-)  I loved the widescreen, colorful slide template they gave me to use and the “love the web” theme for the conference was definitely running high through the attendees.  I overheard someone say that half the attendees were non-microsoft developers which was great to see as many of the talks were on open source, geo-location, HTML5 and other topics that were useful for all developers. 

image

One of the things I try to stress in my talk is the contribution model that Microsoft are using when making contributions to jQuery.  It’s the same as everyone else.  We are behaving as any other member of the jQuery community does – i.e. propose a new feature, spec it out and then build a prototype – all out in the open on jQuery’s forums and Github.  The community have been brilliant to work with. There is no shortage of enthusiasm, feedback, suggestions, code branches and more – it’s been great to see.  Here is the slide that I use to describe the contribution model, where examples of cool stuff are templating, data-linking and Cool Stuff ++ are features that the core team library deem essential enough to include in the jQuery core library – in the future.

Below are the slides for the talk and you’ll see the code from the demo in my next post.  They will also be releasing the video of the talk soon – I’ll let you know when that’s out too. Cheers and enjoy!

Tags:

Microsoft <3 jQuery

 

photo

Today at Mix10 we announced our increased support and involvement in the jQuery Library and how we are working closely with the community and the jQuery Team to accelerate the development of this already powerful front-end library.

In recent weeks leading up to Mix we have been working with John Resig and the rest of the team on a proposal, specification and prototype of a new jQuery templating engine, designed to make it easier than ever before to create rich, data-driven web applications. 

What we showed in the keynote today represented an early prototype of the jQuery Templating engine based off the community-driven specification.  Right now the feature is available as a jQuery plugin but we hope to include it in the core library in the future.

This is an exciting step for Microsoft as it increases its involvement in open source – in the spirit of the community – and will help make the web a better place for everyone, regardless of server-side technology.

What can you do today?

In the spirit of the jQuery community-driven development model we encourage you to get involved by reviewing the specification and and provide feedback on the jQuery forums.

There are a couple of prototypes out there on Github right now, an original version and a more recent version with more functionality.  I recommend trying out both and seeing which you like best – then let us know of course!

Come along to a jQuery Conference

Next month in April, jQuery will be holding its conference at the Microsoft Silicon Valley Campus in Mountain View – come along to learn more about the jQuery Templating Engine and jQuery from the team.

(Picture – Discussing the Day 2 Keynote backstage, Left to right, Rey Bango, John Resig, Scott Hanselman, Scott Guthrie, James Senior)

Tags: