JosephGuadagno.net

Microsoft Visual C# MVP, Vice President of INETA North America, and Founder of Southeast Valley .NET User Group

Taking the “Leap” to Everleap

For the past 5+ years I’ve had a few different sites hosted at Discount ASP.NET, this site being one of them. Recently, Discount ASP.NET released a new product in the web hosting arena, Everleap. Everleap is a new cloud based hosting solution.  I know, the word “cloud” is massively overused nowadays.  Everleap differs from other solutions as it uses the Windows Azure Pack for it’s services. The Windows Azure Pack is the same technology that Microsoft uses to run their own Windows Azure hosting platform. Microsoft has made Azure technologies available to their partners so they can build public and private cloud offerings that run in the their own data centers. For more on the Windows Azure Pack check out http://www.everleap.com/cloud-hosting/features/azure-pack-hosting/

The move to Everleap

The move to Everleap was easy considering I already had my site on Discount ASP.NET

  1. Open up an Everleap account: Cloud Websites or Multi-Domain Cloud
  2. Create a Discount ASP.NET support ticket requesting the move
  3. In a few hours or so, the new sites were created and moved over. They even updated web.config with the new database connection strings and smtp settings.
  4. If you do not use Discount ASP.NET to register your domains, you will have to log in to your registrar to update the DNS servers to point to the new Everleap DNS servers.

That was it.

If you need a scalable site where you can increase and decrease the number of servers as needed and want predicable billing, Everleap might be the solution for you.

Disclaimer: I was given a free Everleap account to host this site and other community sites that I run like Desert Code Camp. This is not a sponsored post.

Book Review: Designing Evolvable Web APIs with ASP.NET

When I first learned about this book I could not wait to get my hands on it for two reasons.  One, my current work project involves designing an API for an application to “talk” to a wide variety of systems. The second is one of the authors, Glenn Block. I’ve known Glenn for a while. I’ve seen him present, I’ve talked with him, read his blog posts and knew the book would not disappoint and it did not.

The book starts off with covering the HTTP protocol, then moves into the different types of API styles like the Richardson Maturity Model, RPC, REST and others. The authors do this to give the readers an understanding of how the web works and why the Web API framework in ASP.NET is the way it is. The authors describe, in depth, building out an API, versioning it, applying security, formatting responses and talk about testability of an API.

In short, this book is a must have for anyone working on or designing any API.

Disclaimer: I was given a copy of this book in the hopes that I would review it. I only post reviews on books that I think would provide some benefit to the development community.

Get Designing Evolvable Web APIs with ASP.NET on Amazon.

Book Review: Visual Studio 2013 Cookbook

When I first looked at the title of the book Visual Studio 2013 Cookbook I wondered what it could be about.  You can’t cook with Visual Studio, at least not yet :) . It turns out that, outside of two chapters, the book is an series of getting started guides with topics the are new(ish) to Visual Studio 2013. It is not a bad thing. If you are getting started with using Visual Studio 2013 or Team Foundation Server or .NET 4.5.x, this book provides a good overview of the new features in Visual Studio and version 4.5.x of the .NET Framework.

Disclaimer: I was given a copy of this book in the hopes that I would review it. I only post reviews on books that I think would provide some benefit to the development community.

Get Visual Studio 2013 Cookbook on Amazon.

Book Review: NuGet 2 Essentials

A few months ago I was asked to be a Technical Reviewer for a new NuGet book coming out.  I happily said yes and a month or two later out came NuGet 2 Essentials .

The book starts off with the typical “Hello World” or in it’s case, the getting started with NuGet.  The authors do a good job of explaining what NuGet is, how to install it and how to use it to manage packages. They then go into great detail on the anatomy of a NuGet package, how to create, how to version, how to publish and how to add features to a package after it is deployed.  The final chapter is all about setting up your own NuGet server in your environment and how you can integrate NuGet into your continuous build process.

Overall, it is a good and quick read.  I find it a nice hand reference for when I am working on NuGet packages.

Get NuGet 2 Essentials on Amazon.

Bootstrap Theme Switcher

While creating a Proof of Concept design for a web site I was working on I thought it would be cool to demonstrate the power of themes in Twitter Bootstrap by providing an option in the Proof of Concept to switch to some of the themes that are on Bootswatch.  It was a remarkably easy solution, that involved jQuery, jQuery.cookie plugin, Twitter Bootstrap Navbar and the themes from Bootswatch.

This sample assumes that you are using a CDN for the Twitter Bootstrap and jQuery files and that you downloaded the themes from Bootswatch and copied them to the path of /css/themes. The example could easily be modified to use the themes on the Bootstrap CDN.

First, let’s start with a basic template for Twitter Bootstrap

<html lang="en">
<head>
        
        <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
        <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
        <link id="bootstrapTheme" rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootswatch/3.1.1/cerulean/bootstrap.min.css">
        <link rel="stylesheet" href="http://netdna.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css">

               
        <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
        <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
</head>
<body>

Your content here!

</body> </html>

Next, we’ll add the navbar with the theme selector menu.

Then, the JavaScript

$().ready(function() {
	/* For theme switching */    
	var themeName = $.cookie("themeName");
	var themePath = $.cookie("themePath");
	if (themeName !== undefined) {
		setTheme(themeName, themePath);
	}
});

function setTheme(themeName, themePath) {
	var cssLink = "";
	$('#bootstrapTheme').replaceWith(cssLink);

	$.cookie("themeName", themeName, { expires: 7, path: "/" });
	$.cookie("themePath", themePath, { expires: 7, path: "/" });
}

Now you are done. But how does it work?

In the head section of the template you should notice that we gave one of the stylesheets an id of 'bootstrapTheme'. This link will be modified by the setTheme function in the JavaScript file to dynamically change the theme and save the theme preference to a cookie to load in the future. In the jQuery ready function, we check for the presence of the cookie 'themeName', if present, a call is made to setTheme to load the theme. The theme is changed by clicking on one of theme menu items which, in turn, calls setTheme.