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 Camps Training Kit - September Edition

The Web Camp in Los Angeles was a great success last Friday with Phil Haack, Jon Galloway and myself imparting a raft of knowledge on ASP.NET MVC 2, jQuery, Entity Framework Code-first, ASP.NET MVC 3 and Razor.  However, there’s little time to pat ourselves on the back – because this week marks the launch of the September Edition of the Web Camps Training Kit! 

Online and available as a download

The previous version of the Web Camps Training Kit was only available as a download, but we listened to your feedback and are now publishing it online too!  Choose your flavor below:

globe Browse the content online

save Download it Now

What’s new in the Web Camps Training Kit - September edition?

The goal for Web Camps is to provide great training events and an accompanying Training Kit so that web developers have thing they can rely to build websites and apps on the Microsoft Web Platform.  To be a complete web developer, you have to understand many different types of technology, not just the server side.  You also need to know technologies like jQuery, OData and when/how to leverage Web Apps like Umbraco, Kentico, DotNetNuke and more.  As things move so fast, you’ll also need to keep in touch with the latest developments in HTML 5 and how to take advantage of them in the websites you build.

So, in the September edition we are starting to introduce some new technologies areas that help you to keep on the cutting edge.  This is only the beginning and in future editions we will be constantly adding to future versions of the Training Kit.  Here are some new things I would like to highlight:

  1. jQuery

    Working with the .appendTo() team we’ve put together 3 jQuery sessions with presentations, demo scripts and source code.  This content covers some of the fundamentals of jQuery and then extends using Ajax as well as jQuery Templates and jQuery UI.
  2. IE 9 & HTML 5

    With the IE9 Beta just out the door, we’ve provided you some presentations on how to develop on IE9 as well as some of the enhancements the team have made on performance.  This is useful background material and we’ll be following this up with more content in the next release.
  3. ASP.NET MVC 2

    The ASP.NET MVC 2 content has been refreshed and we’re now basing all the content off the MVC Music Store.  There are presentations, labs and demo scripts that walk you through build the site and we’ve also provided a bonus lab on how to start adding Tests to the project.
  4. Web Apps

    The beauty of Web Apps are that they install really easily and they get you to 80% of a completed solution with little effort.  You can customize and tweak them the rest of the way for your own requirements to build complete solutions for customers is no time at all.  In this release we’ve teamed up with Umbraco, Kentico and DotNetNuke to provide presentations, videos and labs for you to get started building solutions.
  5. OData

    OData is the new standards-based web protocol for querying and updating data.  If you are writing an API for your website, it’s worth seeing how you can leverage OData to give developers a clean and familiar way to access your data.  Or, if you are interested in consuming one of the many OData services out there then there are a bunch of SDKs out there to get started in your language.  We provide an intro presentation into OData with more content coming soon to help you learn the programming syntax.

Phew – there’s lots of new content in this release and it’s been fun pulling it all together.  We’ll continue to add more as well as update existing pieces as they become out of date.  Of course, if you have feedback we’d love to here it – please get in contact here.

Don’t forget about the events – you can get expert training by registering for a Web Camp here.  We will be releasing a raft of new event dates very soon.  We are going large – stay tuned!

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:

New Social API Web Application Toolkit for .NET web developers

image

What’s New?

I’ve just published an update to our Web Application Toolkits!  If you’re not familiar with Web Application Toolkits (WATs) then here’s a summary:

FREE Web App Toolkits help ASP.NET web developers complete common web development tasks and quickly add new features to your apps. Whether it’s Bing Maps integration or adding social capabilities to your site, there’s a toolkit for you. For the full list of Web Application Toolkits check out this website.

Here is a summary of the work we’ve done in this release:

  1. Added a new Social API Web Application Toolkit
  2. Updated all the WATs to be compatible with Visual Studio 2010
Introducing the Social API Web Application Toolkit
Summary

As social networking Web sites are becoming more and more popular, users often want to access simultaneously the different networks they belong to from one only entry point. For example, one user might want to post the same message they are posting on your site also on Facebook, Twitter, MySpace and so on.

Although many of these social networks provide APIs for accessing their information, you might want to integrate your Web application with several social sites at the same time and be able to do this in a consistent manner, without having to go into numerous modifications in your code with each new social network that you want to incorporate.

This Web Application Toolkit provides a generic “Social Networks” API that allows connecting your Web application with different social networks and managing them through one entry point with a consistent set of methods. In the Toolkit you’ll find examples of how to use the Social Networks API provided to connect a Web application with Facebook and Twitter, allowing you to manage the data provided by these networks in a generic way.

Please notice that this Toolkit includes examples only for reduced set of operations (mainly posting status updates) within the two social networks named before. Through this documentation you’ll find instructions on how to extend this set into more operations and more social networks.

Details

This toolkit comes with Facebook and Twitter Providers that allow you to perform tasks against different Social Network APIs in a common way.  For example, Facebook and Twitter do authentication in different ways which is a pain because you have to write different code for each network.  The Providers mean that you can call common methods and pass in which social networks you want to perform the action against – behind the scenes the providers call the appropriate methods against Facebook or Twitter to get the job done.  The provider model also makes it easy to extend the API to other Social Networks in the future – we’ve provided detailed instructions on how to do this in the documentation that comes with the toolkit download – it’s in the “next steps” section.

  1. public ActionResult NetworkLogin(string providerName)
  2.         {
  3.             var social = new SocialProxy();
  4.             return this.Redirect(social.GetProvider(providerName).LoginUrl);
  5.         }

The code above shows how you use the SocialProxy class, included in the toolkit to get the login URL for the given social network.  In this example we then redirect the user to that URL instead of an MVC view in our application.

The Social Networks API checks if the user is already authenticated in the application and if not it authenticates him by using the FormsAuthentication.SetAuthCookie method. The API maintains a user repository with the account information for each user’s social networks.

  1. public bool Login(string providerName, HttpContextBase httpContext)
  2.         {                        
  3.             var provider = this.GetProvider(providerName);
  4.             var identity = provider.GetLoginIdentity(httpContext);
  5.             
  6.             if (identity == null)
  7.             {
  8.                 return false;
  9.             }
  10.  
  11.             if (!httpContext.User.Identity.IsAuthenticated)
  12.             {
  13.                  var userId = this.usersRepository.FindIdentity(identity) ?? this.usersRepository.CreateUser(identity);
  14.                  FormsAuthentication.SetAuthCookie(userId, false);
  15.             }
  16.             else
  17.             {
  18.                  var userId = this.usersRepository.FindIdentity(identity);
  19.                  if (userId != httpContext.User.Identity.Name)
  20.                  {
  21.                      this.usersRepository.AssociateIdentity(httpContext.User.Identity.Name, identity);
  22.                  }
  23.             }
  24.  
  25.             return true;
  26.         }

Notice that new users do not need to create a separate account when registering on the Web application. The API stores the user's Facebook and Twitter account information, and creates a unique identifier on the user repository for that user to keep them associated.

The API stores the user internal identifier together with the login information for each of its associated social networks, by using the UsersRepository.AssociateIdentity method.

image

Once connected I can do things against multiple social networks at once.  For example, I can call one method and have it update my Facebook and Twitter status automatically.  Here is one of the overload methods in the SocialProxy class that does just that:

  1. public void UpdateStatus(string status)
  2.         {
  3.             this.UpdateStatus(status, this.ConnectedIdentities.ToArray());
  4.         }

image

This is one of the social network actions we’ve provided in the toolkit but there are bunch that we’ve not covered, I’ve included some other operations from Facebook and Twitter that would be interesting to see – you can see them in the next steps section of the documentation that comes with the toolkit download.

Download the Social Network API Web Application Toolkit
  1. Download the Social Network API Web Application toolkit and let me know what you think – either leave comments on this post or give feedback on the MSDN Code gallery.
  2. Don’t forget to check out the other Web Application Toolkits and start using them in your ASP.NET web applications today!
  3. If you have ideas for future Web Application Toolkits then email me james [at] microsoft.com

Footnote: We’ve also stopped working on the “Web App Toolkit for Making Your Website Social” because the Windows Live team have a new API more information here.  We have also stopped working on the REST Web Application Toolkit because the functionality provided in the toolkit is now part of .NET 4.

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:

Microsoft Web Camps– Secret tips for successful teams and apps

With 10 Web Camps now behind us including Toronto, Moscow, Beijing, Shanghai, Sydney, Singapore, London, Munich, Mountain View and Chicago – we’ve seen some really cool applications being built by teams on Day 2.  For those of you who come to future Web Camps, I wanted to share some tips that came from the most successful teams with the best apps:

  1. Come to Web Camp with an idea.  Have you had an idea in your head for a while and not had time to build it yet?  This is the perfect opportunity for you to team up with some devs and get it built – all with experts on hand to help you through.
  2. KISS – Keep It Simple Stupid. Sometimes the most simple ideas are the best and those teams that kept their ideas basic actually had a really professional looking app at the end of Day 2.  Remember you only have a limited amount of time, so use it wisely.
  3. Keep your team small. The most successful teams were from between 2-6 people in size.  Larger teams found it hard to get things done and spent to much time “designing everything by committee”.
  4. Get your machine ready before Web Camp.  Don’t waste time on Day 2 getting your machine installed with the tools and framework you need to build.  Spend some time ahead of Web Camps getting the latest bits from the Web Platform Installer so you are ready to get going on Day 2.  Also – remember the quality of wireless internet varies widely from venue to venue and we can’t always promise great connectivity – don’t rely on this for large downloads.
  5. Decide how you will share code. It doesn’t matter how you are going to share code in your team, just make sure you decide at the start how you are going to do it.  We’ve seen people using their own switch and network cables, USB sticks, Git, Mercurial etc.
  6. Develop Iteratively. Break down your application into bite-size chunks and do hour long sprints to get stuff built.  Planning this way will help you to set realistic, achievable goals for your team and make sure you a working app to demo at the end of Day 2.
  7. Make it look good.  A little bit of “sheen” goes a long way – some teams used good looking templates for their application to make them stand out from the other apps.  A cool logo and nice colors are something you can add towards the end of the day.
  8. Use the knowledge from Day 1.  There are prizes available for the best apps and the judges are looking for the best use of the technology you learned about on Day 1.  Using the latest Microsoft Web Platform bits will not only impress the judges but help you to learn how to use it more effectively!
  9. Use Web Application Toolkits. There are 10 of these for helping you to quickly solve common web developer problems.  Be sure to take advantage of them as they will greatly increase the speed of development adding cool features to your app.
  10. Prep your demo. Make sure your laptop can connect to the projector ahead of time, have the machine on and ready to go so you avoid any awkward silences while you fumble around getting the project to work Smile.  You only have 5 minutes so make sure you nail all the features that your app has and the problems that it solves.  Also remember to highlight the features of the Microsoft Web Platform that you took advantage of.

So there you go – ten tips to success! Happy Building!

If you are new to Web Camps here’s some information on what they are:

Interested in learning how new innovations in Microsoft's Web Platform and developer tools like ASP.NET 4 and Visual Studio 2010 can make you a more productive web developer? If you're currently working with PHP, Ruby, ASP or older versions of ASP.NET and want to hear how you can create amazing websites more easily, then register for a Web Camp near you today!

Microsoft's Web Camps are free, two-day events that allow you to learn and build on the Microsoft Web Platform. At camp, you will hear from Microsoft experts on the latest components of the platform, including ASP.NET Web Forms, ASP.NET MVC, jQuery, Entity Framework, IIS, Visual Studio 2010 and much more.

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: