Shawn Wildermuth

Stories

Tagged with Web Development


My Switch to Azure Websites

UntitledI am a developer first. I’ve become my family’s IT department but not by choice. This is the fate of most developers I know.

For the past year or so I’ve been experimenting with Azure Websites as a solution for quick, one-off sites and even for class examples. I’m a big fan. Let me tell you why.

Azure is a diverse landscape with lots of services. It be a little daunting. I’ve some of these services, but certainly not all. Azure Websites is particularly interesting to me in that fulfills my desire to not be an IT guy. Why?

Read...


A Bunch of Devs Presentation

I recently had the pleasure of talking to the “A Bunch of Devs” user group in Atlanta about Web API. I had never spoken at this group and I had a great time.

They had really great questions all around. If you have a chance to visit the user group, it is really worth your time. Of course, free pizza is never a bad thing.

Here are the slides and the code from that presentation:

Read...


Choose Your Own Adventure with Node.js View Engines

javascriptAs some of you know, I’ve been delving into Node.js for a new Pluralsight course that is coming out soon. One of the interesting aspects to me is the idea of server-side view engines. As an ASP.NET (and ASP before that) guy, I’ve been using server-side view engines for a long time…not that we always called them that.

Most Node.js templates out there (including the Express.js application template that ships with the Node.js Tools for Visual Studio) includes the Jade View Engine.

Jade (NPM Package Name: jade) is interesting to some because it’s very terse and (in theory is quicker to write). It’s also similar to the default view engine (AFAIK) for Ruby on Rails so that is going to make it pretty popular. Here is the syntax:

Read...


Client-side Package Manager: How I Love Bower

2353845688_36a304eb95_zDepending on your environment, you’re probably already using some package manager for your server-side code. Gems for Ruby, Nuget for .NET, NPM for Node…whatever. In any of these cases you’re used to being able to get the piece of code you need and the other requirements. For the web this is more difficult…or used to be.

For web projects, we’ve needed a way to get these client-side scripts. Sure Nuget or other package manager *can* do this but it’s been a round peg in a square hole. That’s where Bower comes in.

Bower is a simple package manager for the web. Bower depends on node and npm so you need them installed first. And if you do, then installing Bower is as simple as using NPM:

Read...


New to Web API? Don't Rush to Implementation

DiscussI’ve been getting good feedback on my Web API course on Pluralsight but some of the comments have concerned me. Lots of the students (from my small sample size) seem to be trying to infer how to *design* an API, not just implement one. That course is specifically about how to implement an API.

What’s important as far as I am concerned is to well design the API (regardless of which way you implement the API). So if you’re starting to use Web API and you need an API for your app, for your customers, or for others to consume (e.g. 3rd party developers) – stop figuring out how to implement the API and go back and design the API.

This is especially important if you are new to the notions of REST. Essentially, you need to understand the ‘Why’ instead of focusing so much on ‘How’.

Read...


Bootstrap 3 Grid System Explained

Are you starting to work with Bootstrap 3? If so, maybe I can help. I’ve recently released a Bootstrap 3 course on Pluralsight that covers many of the new features including how to migrate from Bootstrap 2 to 3.

Here is an excerpt from the course where I explain how the new grid system works in Bootstrap 3:

Read...


Building an API Course now with Web API 2

If you’re interesting learning how the new Web API 2 works, you’ll be happy to hear that my popular Pluralsight course “Implementing an API using ASP.NET Web API” now has a new module that shows you how to use the new features in Web API 2!

The Web API 2 features that I cover include:

Read...


Web API 2's Attribute Routing: Looking Deeper

underwaterI recently recorded a new module for ASP.NET  Web API course (on Pluralsight) to cover the new features of Web API 2 (it’s not out yet, soon…I promise).

It was fun plumbing the depths of how it works. I generally like the feature but the implementation may change some of your code if you’re dealing with routes under the covers (i.e. for auth or versioning).

If you want a quick overview, I really like Dan Wahlin’s walkthrough of the feature here:

Read...


I'm Coming to Louisville, KY this Thursday

Are you in the Louisville, KY area this Thursday? I will be! I’ll be at the Louisville .NET Meetup Group talking about Web API..including Web API 2 that was recently released. The details of the event are:

We will meet on Thursday, November 14, 2013 at Adecco's offices at 101 Bullitt Lane. Doors will open at 6:30pm and the presentations will begin sharply at 7:00 pm. Along with a great presentation, we'll have food and raffle prizes. Be sure to RSVP so we know how much food is needed.

I’ll be posting the slides (though there won’t be many) and the example code here so keep an eye out for the downloads!

Read...


AngleBrackets Fall 2013

BX27kRzCAAACnrdI finished up my post-con for AngleBrackets today and am ready to head home. I had a great time and just spectacular attendees who had great questions! If you have a chance to go to AngleBrackets (or it’s sister conference, DevIntersection) make the trip. They’re coming to Orlando this fall!

I had a chance to do two talks and an all-day course. If you attended these, check out the source code and slides (where applicable) below:

Mobile First Responsive Web Design with Bootstrap 3

Read...


Editing Styles with Firebug

firebugMost developers I know simply hate web design. As far as many developers are concerned CSS is evil. What CSS does for the web is magical but can be painful for developers that are used to functional or structural languages.

Luckily the browsers come to the rescue with great tooling. Here is a preview from my “Debugging the Web” Pluralsight course” which shows some of the basics:

What do you think?

Read...


Getting Ready for AngularJS 1.2

AngularJS is going through their release cycle now and that means that AngularJS 1.2 is going to be released soon with some specific changes that you'll need to address. I'll be updating my Pluralsight Course with the 1.2 changes as soon as the new version ships.

The biggest change for most people is the routing support is now packaged separately. To use routing you'll need to do two things:

Include the new angular-route.js:

Read...


DevLink 2013

Thanks to everyone for attending my sessions at this year's DevLink 2013 conference in Chattanooga, TN. I had a great time at the aquarium and enjoyed meeting so many of the attendees. If you get a chance, you should add this to your conference attendance next year.

I gave two talks at this year's event. I promised the attendees to get them the code from my talks. Here they are:

Code

Read...


Zen Coding (Emmit) with Visual Studio

As many of you know, I have a new course with Pluralsight called "Building a Site with Bootstrap, AngularJS, ASP.NET, EF and Azure". I had the opportunity to use Zen Coding (renamed Emmet for some reason) in the course. We've released a snippet of the course on YouTube that shows off this cool productivity enhancement that Web Essentials powers. Caveat: Web Essentials doesn't work with free versions of Visual Studio.

NOTE: The title of the video is incorrect and we're trying to change it...it is about Zen coding.

UPDATE: It was noted that I misspelled it. It's Emmet not Emmit. I fixed it in the article, but I can't fix it in the title as that's my URL too.

Read...


Atlanta Code Camp 2013: Done!

I want to thank all the attendees, speakers and my compatriots in planning the Atlanta Code Camp. I had a great time helping make this event the best one we've had so far. Some of the numbers:

428 attendees (including speakers and sponsors)

54 Talks Given (plus a great Keynote)

Read...


Need LINQ but Writing JavaScript?

sketchArchOne of the tasks that I found cumbersome when writing JavaScript is simple collection manipulation. I have gotten spoiled in C# with LINQ. Sorting, filtering, shaping and more is easy with LINQ but what about in JavaScript? Underscore.js to the rescue.

Underscore.js is a small utility library that can help in collection manipulation (as well as other great features). I first started using Underscore.js to replace jQuery's (and AngularJS's) for-each implementations. I find underscore's simple and quick. Like much of JavaScript, the magic is happening in a callback function (think Lambda):

 

Read...


My New Web Development Course is Live

Are you getting ready to build a new website? Are you interested in shortening your development by using Bootstrap, AngularJS, Azure and ASP.NET? If so, my new course might be just for you.

In this new course I build a new web site from scratch. I start out with a Bootstrap template (since my design skills suck) and move through creating content, building a database, exposing a REST-ful API and building a Single Page Application. I wrap it up by publishing the site to Azure Web Sites showing you how to not only get your application up an running in the cloud, but also how to monitor it and handle standard tasks like using your own domain in Azure.

You will see every line of code (with one small exception) that I write. This isn't slide-ware…it's show-n-tell. I use a range of technologies including:

Read...


Building Atlanta Code Camp Website

I recently helped the Atlanta Code Camp effort by building them a new website. You can see it here: Atlanta Code Camp.  I am pretty proud of what I was able to accomplish in the scant number of hours I had to build it. It's not done as we need to improve it when we have the speakers chosen and set up the schedule, but so far I am pretty happy with it.

I had a number of goals for the project:

My first thought was to start with a Mobile-First template and just build the site but as #4 was going to stymie that as PluralSight would really like me to finish my courses ;) So I started with a Bootstrap template (that I got from https://wrapbootstrap.com). This provided a good basis for the shell of the website. Before I did real color skinning of the site, I needed to wait for our logo. Dennis Estanislao did an amazing job on the logo. With that I was able to use the color scheme to change the template to match the logo and overall theme. But that was just the HTML part of the story.

Read...


My DotNetConf Talk on Mobile-First Design

Digital Tablet PC With Mobile Smart Phone IsolatedI had a great time at yesterday's online DotNetConf. I think my "Mobile-First Responsive Web Design" talk went pretty well. You can see the talk on YouTube (embedded below). The talk was focused on designing websites to be efficient on mobile platforms by starting with your design on a mobile and scaling up to tablets and desktops.

If you viewed my talk, you might be interested in the slides and source code. You can get them here:

You can view the talk here:

Read...


TypeScript (or the obligatory post about it)

Like many of you, I've been itching to see what Anders had up his sleeve and I wasn't disappointed yesterday when they announced TypeScript. After teaching all day, I took a quick look at TypeScript (and I do mean quick).

There was a lot of buzz yesterday and the response seemed to be in one of two camps (for the most part):

I think I am in the middle of this. TypeScript reminds me a lot of LESS. What I mean by that is that I think the smart thing they did was make all JavaScript valid TypeScript. In case that isn't clear, TypeScript is a superset of JavaScript. This means that they're adding some features to JavaScript to help with large, enterprise sized codebases including:

Read...


aspConf was fun!

I had a good time doing a couple of talks today. If you joined me online, thanks for coming. For those who missed my talks, they will be posting the videos on Channel 9. As promised you can get the slides and examples here for my talks:

I hope you enjoyed the talks!

Read...


New Pluralsight Course on Debugging Web Sites

After a long gestation, I finally completed my Web Debugging course for Pluralsight. This new course covers the details of using the tools in the browsers to debug layout, JavaScript, CSS and networking. While the course shows you how to find the tools in all the major browsers, the focus is using Firefox and Firebug. Though the techniques shown in Firebug apply pretty seamlessly to all the browser tools. This course is not .NET specific, but should be useful to any web developers.

The course is broken up into four sections:

You can see the course here:

Read...


JavaScript for the C# Guy: The Global Object

codeThis is another in my series about (hopefully) interesting JavaScript constructs that might surprise most C# developers. You can see others here: JavaScript for the C# Guy.

Back in the day I was doing some scripting in classic ASP sites (no, not classic ASP.NET) and we screamed and yelled about putting too much in the global scope. We wanted encapsulation and such and that is true today. In my C# work pretty much everything is in a class (static or otherwise) so I don't have to concern myself with it much.  But in JavaScript I know there is an easily accessible global object...but it occurred to me that I don't see the "Global" object accessed much; even though it is used a bit (to hold other containers that have encapsulated code). "Why not?" I wondered.

In JavaScript you can certainly create things in the global space. In fact, in my Architecting JavaScript post from my Modern Web Development series, I show that using an 'app' object for your site can simplify a lot of things. But the app object needs to be in the global space (e.g. in the "Global" object) so everyone can get to it:

Read...


Modern Web Development - Part 9

This is the ninth of ten parts of this blog post. mobiledevices_clipThe topics will be:

Why do users complicate our lives by trying to view our content on their phone and tablets?  It's even an issue for smaller sized desktop screens too. Since this is simply a reality for today's web developer I was glad to see there were real strides in working with mobile.

In general there are three techniques for dealing with mobile device browsers:

Read...


WebAPI and Ninject

Traffic accident and to drivers fightingI will be returning to my 10 part series on Modern Web Development soon, but I have a quickie post that hopefully will help some of you.

In my main project, I am using Ninject to inject dependencies into Controllers. This works really well and I won’t belabor how that works here (see project here for how to get via Nuget and how-tos).

For me, Dependency Injection (or IoC) is a commodity. Ninject does a great job so I use. I could be using SM, Unity or a host of other DI/IoC solutions and it probably wouldn’t matter too much. So, this is to just short circuit the “Why didn’t you use my favorite IoC” questions.

Read...