Where I’ve been…

Sorry this blog has been quiet. I’ve been heads down getting new courses up on Pluralsight.

I plan to be back here on a more regular basis as I get into the groove now of moving from doing mostly instructor lead training to online training. I’m really enjoying the transition, and I think Pluralsight is in the forefront of this area.

Here’s a couple of the courses I’ve done recently.

1) iOS for .NET developers  – since refocusing my work on HTML5 and mobile – I found the need to be able to deal with native code on mobile devices as well.  iOS is my favorite mobile OS (the one that I use every day at least).  So I went to dig down into that.

I’ve written and talked a lot about building Hybrid mobile applications - and I still think that Hybrid applications have a great future for almost all apps – and a great present for a wide range of applications.

But the limitations are there for many apps today – so the best option IMO (and I’ll be blogging more about this in the coming days) is to go native.

Objective-C and xCode aren’t as scary as many .NET developers think and this course should help jumpstart you if you want to make the leap from MS technologies to Apple.

2) Introduction to xCode

 

In keeping with my move over to iOS I thought it was important to have an xCode course in order to help all iOS developers master their tool – so I hope this course does that.

3) Introduction to Arduino

I’ve always been interested in Arduino and prototyping hardware designs.  Working with Pluralsight gave me the change to purse this interest and I hope this course is useful for other people who want to do the same thing.

4) Mobile First Responsive Web Design

This one just came out today!  If you are interested in learning more about Responsive Web Design and how to do it using a mobile-first approach this course is an introduction for developers to learn the ins and outs of the concepts – as well as the tools and skills you’ll need to be able to implement responsive designs.

 

 

 

 

 

 

 

 

 

 

 

 

 

What’s a “Hybrid” app versus a “Native” app?

Pluralsight published my new course on using HTML5 to build mobile applications the other day: http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=native-mobile-apps-with-html5

A subscriber on Twitter questioned the title :) He thought it should have the term “Hybrid” in the title.  After doing some google research – I decided he was correct – it is clear that from a “marketing” point-of-view a native app that uses HTML5 through a native component (UIWebView in the case of iOS, WebView in the case of Android, and the WebBrowser control in the case of Windows Phone 7) are commonly called “Hybrid” apps.  So we changed the title of the course :)

From a technical point-of-view I find the term to be slightly misleading.  Here is my definition of a “native” mobile application:  A mobile application that can be deployed to the mobile device’s AppStore/Marketplace.

Delineating an app on any other technical basis I think confuses the issue more than clarifies it.

Here is another way I think about it – with Windows 8 moving to Metro apps that can be built in HTML5/JavaScript – are those apps going to be “Hybrid” Metro apps?   I think not.

My new course is up on Pluralsight!

If you’ve been wondering where I am been – I’ve been putting down my thoughts about HTML5 development with native mobile apps – and its now live at Pluralsight!

http://www.pluralsight-training.net/microsoft/Courses/TableOfContents?courseName=native-mobile-apps-with-html5

If you want to try it out you can start a 10-day Free Trial – https://www.pluralsight-training.net/microsoft/Subscribe/Step1?isTrial=True

In this course I cover the three “major” mobile platforms and how to build a native application on each of the platforms while re-using much of your UI and business layers by writing them in HTML5 and JavaScript.

I also cover responsive web design (media queries) and how that applies to mobile HTML5 development.

I also cover cool things like enabling the web inspector in the UIWebView by using the _enableRemoteInspector call.

So please check it out :)

What I hope happens at Build

 

A number of people (including Shawn Wildermuth) have been writing and speculating about the Build conference. I’m about to pack to drive down to Anaheim and wanted to document in the blogosphere my hopes about what will be announced there.

I actually hope that .NET on the client is dead. Well not dead – but IMO .NET has had a good run and it’s time to let go. When I say .NET on the client I mean WinForms, Silverlight, WPF, all of it.

You might ask why someone who has spent 10+ years working on the platform would say that – and my answer is HTML5.

People often think of me as the BizTalk/WF/WCF guy, or the REST guy. But before I was into either of those things I was actually a pure web developer. HTML, JavaScript, ASP, and then ASP.NET.

In essence I feel like I am going back to my roots these days (come see me talk about HTML5 and mobile app development at VSLive this fall, for example).

That’s why as of today this site is now renamed www.masteringhtml5.com – I’m going back to my roots.

My hope is that Microsoft sticks with its first announcement about Windows 8 and that new “immersive” apps or whatever they are going to be called *have* to be built using HTML5 and JavaScript. Not only do I hope that because I’m happy to be going back to my “roots”, but I think it is the smartest thing to keep the Windows platform relevant.

I’ll have more to come on this topic as the week progresses.

Getting the “windows azure web role entry point has stopped working” when using Visual Studio 2010 and the Windows Azure Tools for Visual Studio

I’ve been doing more and more Azure work, and because of my partner Brian Randell I’ve adopted the TFS lifestyle.

After I updated to the most recent version of the Windows Azure Tools for Visual Studio I started to get this error:

"windows azure web role entry point has stopped working"

azureerror

If I debugged the project I got

System.ServiceModel.CommunicationObjectFaultedException was unhandled
  Message=The communication object, System.ServiceModel.Channels.ServiceChannel, cannot be used for communication because it is in the Faulted state.
  Source=mscorlib
  StackTrace:
    Server stack trace:
       at System.ServiceModel.Channels.CommunicationObject.Close(TimeSpan timeout)
    Exception rethrown at [0]:
       at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
       at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
       at System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
       at System.ServiceModel.ClientBase`1.System.ServiceModel.ICommunicationObject.Close(TimeSpan timeout)
       at Microsoft.WindowsAzure.Hosts.WaIISHost.Program.Main(String[] args)
  InnerException:

Either way I was forced to shutdown Visual Studio and reopen it to get the project to deploy to the local dev fabric again.

Of course I turned off the “Just My Code” debugging setting and set the debugger to break on all exceptions and low and behold I got the real exception:

realerror

The problem is that the web.config is marked as read-only because it is checked into source control.

 

Moral of this story – if you are developing with Windows Azure and using source control – you always have to keep your web.config checked out.  Not sure if a fix is coming from MS – but I thought this might be helpful to someone out there.