Microsoft NuAds: Natural User Interface Ads

Microsoft has released information about some of the new forms of intereactive advertising they are researching and that you may be seeing coming to an XBox near you – which they are calling NuAds – Natural User Interface Ads. Microsoft is exploring different ways users can interact with ads using voice, gestures and integration with the web and social media. Here is a video that Microsoft released.

http://www.youtube.com/watch?v=RSk5DhxQHLo

This type of interactivity does have the power to change how we consume television, play games, or interact in immersive environments. This also leads to many questions too. Will the user’s interaction with interactive ads be tracked? How? How will the data be used? Who owns the data? With facial recognition and voice recognition as part of the Kinect, who will have access to this data?

Interactive technology may be one more step toward fulfilling the marketer’s dream of laser beam targeting but it also leads to a lot of new questions. We will certainly be watching how this all evolves.

Takeshi Eto
VP Marketing and Business Development

New Grand Pooh-Bah of Software Engineering

We have brought on board one of the world’s most renowned software engineers; “Dexter.”

In fact, it has been said that his mere presence once made Scott Guthrie, Scott Hanselman, and Phil Haack faint – simultaneously!

The strange thing is, when they awoke, they did so in ascending order by last name.

I’m not sure how true that is, but I do know Dexter is awesome. Check the video to see him in action.

http://www.youtube.com/watch?v=POEfKCiSWpE

With that out of the way, there are a few links that I came across this week that I thought I would share with you:

– The MVC 4 Roadmap is out

– An awesome Demo of Windows Phone 7 Mango

– An interesting read about Google+ from a former member of the team

Also, I am now officially tweeting. You can follow me @MikeyDasp

– Michael Ossou

Using Red Gate SQL Source Control with DiscountASP.NET Team Foundation Server

A frustrating problem that can happen in database development is when a “change” is made to “fix” an issue that only results in producing another problem. I hope that not everyone has overheard or been in the following exchange because we all exercise perfect discipline in all stages of development:

(As a forward note, the following characters and exchange do not represent any staff members employed by DiscountASP.NET or any conversations that may have occurred in the office.)

Cecil: Hey Robespierre, there’s something wrong with your stored procedure.
Robespierre: Oh, I’ll get right on it and fix it.
Robespierre: Cecil, I’ve taken care of the problem on live.
Cecil: I don’t know what you’ve done but everything’s down!

I’ve covered using Team Foundation Server 2010 Source Control from SQL Server Management Studio but it’s limited to just covering a few scripts. What if the whole situation could’ve been avoided completely?

Since we introduced shared Team Foundation Server 2010 hosting, a product that we have had our eyes on is Red Gate’s SQL Source Control which offers the ability to source control your entire database and I’m very excited to provide you with the configuration steps as it a very excellent utility.

First, make sure that you have SQL Server Management Studio installed.

Next, I would highly recommend either creating a new Team Project and then creating a new folder or just creating a new empty folder. If you need a hand creating a new Team Project, follow the instructions in our “Creating a New Team Project (Visual Studio 2010)” Knowledge Base article.

I would highly recommend using Source Control Explorer by accessing the View menu and then selecting the Source Control Explorer option from the Other Windows menu to create a new folder. Commit the change. At this point, please note the server path as it’s something that will be required later.

Download and install the 28-day trial version of SQL Source Control 2.2 if this is something that you’re interested in evaluating and you can skip this portion if you already have the application installed. After the installation has finished, opening SQL Server Management Studio produces the following:

Connect to your database server and then select the database name:

For this article, I’ll actually be using a live database from my DiscountASP.NET web hosting account to highlight how we can use SQL Source Control across the two separate products.

Make sure that you’re under the “Setup” tab and then click on “Link database to source control.” From the next menu, select Team Foundation Server from the source control system options.

For the server URL field, you will need to append your Team Project Collection name to the URL or you’ll encounter an error suggesting that there’s some type of permission-related issue:

As an example, if you were hosted on TFS10 and your Team Project Collection name is MYTPC, the server URL that you’d want to use is https://tfs10.discountasp.net/tfs/MYTPC.

If you’re not sure what the source control folder path is, remember, you can connect to your Team Foundation Server 2010 server through Visual Studio, open Source Control Explorer (View > Other Windows > Source Control Explorer), select the folder that you created and the path will be available in the source location:

An error that you might encounter is “The path must be an empty folder” so make sure that you have created or selected an empty folder.

When the database has been added successfully, you’ll see that it’s now green:

Now, from SQL Source Control, click on the “Commit Changes” tab and then click on the “Commit” button:

I created a sample “Users” table and just added a couple of columns and then committed the table that I created.

If you open Source Control Explorer in Visual Studio and then drill-down to the Tables folder, you’ll get to see how the change is stored physically.

I decided to create a “View” using the “Users” table that I had created and you’ll also see how it gets added to source control:

We have extended 30 days free promotion all the way to the end of 2011 so if you’d like to try out the DiscountASP.NET Team Foundation Server 2010 hosting and also SQL Source Control from Red Gate, you can establish an account through the DiscountASP.NET TFS Sign Up form.

I’m also pleased to announce that Red Gate is offering a 20% discount on SQL Source Control for DiscountASP.NET customers. For more information, check the DiscountASP.NET TFS Marketplace in your TFS Control Panel and the offer is also available for our web hosting customers in the DiscountASP.NET Marketplace as well.

Claims Based Authentication using Windows Identity Foundation

This is a rather large topic. Rather than butcher it, I will point you to the MSDN site for information about Federated Identity and WIF. In a nutshell, by using WIF’s Claims Based Authentication and Federated Identity, we extract the authentication process out of the application itself and place the burden elsewhere. Amongst other things, this allows us to use other Identity Providers such as Windows Live, Google, Facebook, etc.

Conceptually, from an end-user’s perspective, this “single sign on” model would virtually eliminate the need for the user to have to register with and remember a different username and password for every site. They register once with a given identity provider, for example Google, then they could log into your application by signing into their Google account and granting your application permission to their Identity Information. So if you needed their address or phone number, you could simply pull it from their token.

The steps involved are as follows:

  1. Browser makes request to your application
  2. Your application provides the address to your STS provider (This example will use Azure ACS)
  3. Browser goes to STS address and authenticates using the Identity Provider (Google)
  4. STS provides browser with a token
  5. Browser goes back to your application and provides said token.

My goal with this article is to provide DiscountASP.NET customers with a simple example of setting up an application that uses Claims Based Authentication on our servers that will utilize the Azure ACS as an STS. If you are new to WIF, you will want to visit their site for a proper introduction and to get the bits.

The primary issue when deploying a claims based application to our servers or a web farm is that behind the scenes, Windows Identity Foundation uses the DPAPI to encrypt and decrypt cookies. In this example we are going take the DPAPI out of the equation and use either our SSL certificate, or a custom certificate to perform this process. So the first thing you will need to do is create a ticket via your control panel for our support department, and ask that your ASPNet user be granted access to either a custom certificate that you provide or your SSL certificate if you already have one setup.

Next, create a new Web Forms Project in Visual Studio. Add references to Microsoft.IdentityModel and Microsoft.IdentityModel.Windows.TokenService. Make sure in the properties of these libraries, you set Copy Local to true as they are not installed in the GAC.

Next, configure your Azure ACS.

Now configure a trust between your project and the ACS by right clicking on your project node in solution explorer and selecting Add STS reference. Go through the wizard.

Now let’s wire things up to perform the security operations on the cookies that we went over earlier. In your global.asax, we will add the following namespaces:

using Microsoft.IdentityModel.Tokens;

using Microsoft.IdentityModel.Web;

using Microsoft.IdentityModel.Web.Configuration;

using System.Text;

We will now add the following methods:

void WSFederationAuthenticationModule_RedirectingToIdentityProvider(object sender, RedirectingToIdentityProviderEventArgs e)
{

HttpRequest request = HttpContext.Current.Request;

Uri requestUrl = request.Url;
StringBuilder wreply = new StringBuilder();

wreply.Append(requestUrl.Scheme); // e.g. "http" or "https"
wreply.Append("://");
wreply.Append(request.Headers["Host"]
?? requestUrl.Authority);
wreply.Append(request.ApplicationPath);

if (!request.ApplicationPath.EndsWith("/"))
wreply.Append("/");
e.SignInRequestMessage.Reply = wreply.ToString();

}

void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
{

//
// Use the <serviceCertificate> to protect the cookies that are sent to the client.
//
List<CookieTransform> sessionTransforms = new List<CookieTransform>(new CookieTransform[] { new DeflateCookieTransform(), new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate)
});
SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());

e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
}

Finally, In our Application_Start method, we will add the following to wire up the event handler:

FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;

The final step is our web.config. We need to add two things. The first is to our system.web entry:

<system.web>
... OTHER STUFF
<trust level="Full" />
<httpRuntime requestValidationMode="2.0"/>
</system.web>

The next, is in Microsoft.identityModel. You need to point to your certificates thumbprint. Im just using my SSL certificate, so I got the thumbprint from my browser by viewing the certificate details. Put your thumbprint in the certificateReference entry.

<microsoft.identityModel>
...OTHER STUFF
<service>
...OTHER STUFF

<serviceCertificate>

<certificateReference x509FindType="FindByThumbprint" findValue="YOUR THUMBPRINT HERE"/>

</serviceCertificate>

</service>

</microsoft.identityModel>

Suggested Reading:

http://acs.codeplex.com/
http://msdn.microsoft.com/en-us/wazplatformtrainingcourse_introtowindowsazurelabvs2010_topic1.aspx#_Toc268095450

– Michael Ossou

TFS Hosting Promos Extended + Getting Started Guide

visual studio team foundation serverWe extended two TFS Hosting promotions:

1. We extended our Team Foundation Server Hosting for 30-days Free offer until the end of 2011.

2. We are still offering the Free Visual SourceSafe (VSS) to hosted TFS migration until the end of September 2011.

Also, we posted this Getting Started Guide for TFS Hosting (PDF) – this would be the “hardcopy version” of the Getting Started Video.

Takeshi Eto
VP Marketing and Business Development

Some Sun, Some Fun, and SoCal Code Camp

Two guesses as to what I did this past weekend, and the first guess doesn’t count…

Yup, Sunny (well more overcast, but it cleared up around lunch time) San Diego was on the itinerary – this time for the So Cal Code Camp!

DiscountASP.NET being based in Southern California, the So Cal Code Camps (there are 3 each year) are always fun for us to attend.  The diversity in developers is always amazing to see. Getting to chat with SQL developers, ASP.NET developers, PHP developers, and even students getting their feet wet is always interesting for us and full of great feedback for everyone back at our office.

So Cal Code Camp Sessions
Session at So Cal Code Camp
DiscountASP.NET Travel Mugs
DiscountASP.NET Travel Mugs For Everyone!

What was great too was to see most of the sessions packed. I stopped by the “Using JSON to Deliver a HighPerformance Web Service” session only to find it jam packed to the door and looking next door I could see the “Scrum Fundamentals” session was almost just as packed!

Many of you had questions about our services (if you still do, please drop us a line) and many just wanted to say how much you loved our services (again, drop us a line, would love to have your testimonial). In either case I think everyone walked away happy when we busted out the DiscountASP.NET travel cups for those in attendance.

DiscountASP.NET At San Diego Code Camp
DiscountASP.NET At San Diego Code Camp

We are always proud to be a sponsor of Code Camps (and user groups for that matter), and when we can get out of the office and attend them too it is even better. If you know of a code camp coming up in your area or in need of a sponsor don’t hesitate to let us know. Since we are just a small, humble group of ASP.NET fanatics we can’t make it to all of the code camps and group meetings, but we will always want to support the community any way we can and these sponsorships are one of the ways we can do just that.

MADExpo – Mid Atlantic Developer Expo – June 30-July 1

madexpo mid atlantic developer expoI wanted to bring to your attention the MADExpo Mid Atlantic Developer Expo happening this week in Hampton, Virginia at the Hampton Roads Convention Center on Thursday, June 30 and Friday, July 1. This is a two-day learn- and make-fest with over 70 breakout sessions, and HTML5 Camp. Here is the agenda.

The organizers even put together a full-day MADKidz mini-conference for kids to have fun with coding, robotics and electronics.

Although the early bird registration has ended, you can still register here.

Takeshi Eto
VP Marketing and Business Development

Meet new DiscountASP.NET staff member, Oliver

I would like to introduce you to our staff members so you can see who is on the other side of the support tickets and forum posts. Today we have a new support staff member, Oliver.

My name is Oliver. I am here providing technical support as a new member to the DiscountASP.NET staff. I come to DiscountASP.NET with over seven years of technical experience. Three of those years have been dedicated to providing support for web hosting customers. I have formal training in a few programming languages, and an Associate of Science degree from Los Angeles Southwest College for studies in Computer Science. I am very familiar with DNS configuration issues, and Internet topography. I have helped customers over the past few years with a multitude of technical issues, ranging from help with database optimizations to site implementation. I hope to provide the very best support to our customers here at DiscountASP.NET.