Publishing WCF Data Services to Azure Web Site

I’ve been developing a WCF Data Service and it was working great on my local machine. (How many times have you said that?) With the trickiest parts of the service in place, I thought I’d push it up to an Azure web site and get it working there. Unfortunately, I was getting the following error after publishing my service.

After troubleshooting for about an hour, I finally found a really helpful blog post describing the exact problem here. It appears the primary issue is that the .svc file contains a hard-coded reference to version 5.0.0.0 of Microsoft.Data.Services. Like any good blog post, it also contains a couple of solutions. I simply removed the reference to any version number and it worked like a charm – both locally and in Azure!

Now, I’m gonna push my Code-First Migrations to SQL Azure. Wish me luck!

Advertisements

Now Working With Azure Without Leaving Visual Studio!

First, let me say I love what they have done with the Windows Azure user interface on the web. (You can see it here.) The UI is easy to get around, the animations are helpful, etc. Unfortunately, it’s all in the browser and not in my IDE. This means I have to leave my IDE on occasion to do things like publish my app and confirm the names of sites, services, databases, etc.

But times are a changin’! On April 30th, Microsoft released the Windows Azure SDK 2.0 for .NET. This SDK includes enhancements to Visual Studio that provide integration between the IDE and the Azure management services. In this blog post, I’m going to focus on the publishing to Azure features, but there are other features enabled with this SDK that you can read a little more about on Scott Guthrie’s blog post here.

As I have in the past, I’m going to start by right-clicking my web project and selecting Publish… from the context menu.

Again, as before, the Publish Web dialog appears and we’ll click the Import… button to open the Publish Profile dialog.

I used to download my Azure publish profile from the management portal and keep that file in my Visual Studio project, so I could re-use it if I needed to and share it with my team. I would then import it using this dialog. Here comes the new part! Rather than browsing to the file, I’m going to select the first radio button, labeled Import from a Windows Azure web site, and click the Add Windows Azure subscription hyperlink.

The Import Windows Azure Subscriptions dialog appears. We need to download our subscription details, so click Download subscription file to get the .publishsettings file from the portal. This is the only time you’ll need to return to the Azure portal. This settings file includes all of the information about our Azure subscription – not just a single web site’s publish settings. We’ll then return to the Import Windows Azure Subscriptions dialog and browse out to the location of the file we downloaded. Click the Import button to continue.

Returning to the Import Publish Profile dialog, you should be able to select from your existing Azure web sites from the drop down list. Click OK to return to the Publish Web dialog. The publish settings will auto-populate the Connection tab (which is way better than trying to enter/re-enter all of this stuff yourself). If you’d like, you can click Validate Connection to ensure everything is correct.

The rest of the publish process remains unchanged. After clicking the Publish or Close buttons, you will be prompted to save all of your publish settings and if you choose to do so, they will be added to your Visual Studio project under Properties | PublishProfiles.

Now that I’ve published my application, I should probably check on its status. By opening Server Explorer in Visual Studio, you can now see your Azure subscription services. By expanding the Windows Azure Web Sites node, I can see that my teamsystemcafeservices site is running.

There are several useful options available if you right-click your web site. I can start and stop the web site and stream logs to my output window.

Of course, I can save myself the trip out to the management portal again by selecting View Settings and configure my web site right within the IDE.

There are several other features in the new Azure SDK, so check ’em out!

Another Chance to Win Stuff! The Cloud Challenge

Build your very own Virtual Network in the Cloud for FREE with the Windows Azure cloud platform, and Enter for a chance to win one of the following fantastic prizes:


You could win a ticket to Microsoft TechEd 2013, a Microsoft Surface Pro or Certification Exam Voucher!

But Wait! There’s More!

In addition to a chance to win one of the prizes above, EVERY ENTRANT will receive up to 750 compute hours and up to 35GB cloud storage to use as you’d like each month for 90-Days as part of the Windows Azure free trial program.

How To Enter the “Cloud Challenge”

You can enter the Microsoft TechEd “Cloud Challenge” Sweepstakes by completing all of the THREE EASY TASKS below to activate a Windows Azure FREE 90-Day Trial Account ( no subscription obligation or fees required ) and build your Virtual Network in the Cloud.  Be sure to complete the last task to submit your proof-of-completion for entry into this sweepstakes.

  • Entries must be received between April 1, 2013 and April 30, 2013 to be eligible. One entry per individual.
  • This contest is open to all IT Professionals Age 18 and over that are legal residents of the United States.
  • Estimated Completion Time: 15-20 minutes

TASK 1 – Activate a FREE Windows Azure 90-Day Trial

Activate a FREE Windows Azure 90-Day Trial Account to receive up to 750 compute hours and up to 35GB cloud storage to use as you’d like each month for 90-days.  After the free 90-day period ends, there is absolutely no obligation required for a paid subscription.

Activate a FREE Windows Azure 90-Day Trial

DO IT: Activate a FREE Windows Azure 90-Day Trial
NOTE: When activating your FREE Trial for Windows Azure, you will be prompted for credit card information.  This information is used only to validate your identity and your credit card will not be charged, unless you explicitly convert your FREE Trial account to a paid subscription at a later point in time.

TASK 2 – Build your Virtual Network in the Cloud

Virtual Networks on the Windows Azure Cloud Platform allow you to define a predictable set of virtualized IP subnets upon which you can place one or more Virtual Machines running Windows Server 2012, Windows Server 2008 R2 and Linux.  You can even securely connect a Windows Azure Virtual Network to your on-premise environment via a Site-to-Site IPsec VPN tunnel to leverage Windows Azure as a remote datacenter for disaster recovery, online backup, pilots, migrating applications … and MORE!

Complete the steps in this task to sign-in to the Windows Azure Management portal and quickly provision a new Virtual Network in the cloud.

  1. Sign-in to the Windows Azure Management Portal with the Microsoft account credentials used in the prior task to activate your free 90-day trial.
  2. On the bottom toolbar, click the +New button, then select Network | Virtual Network | Quick Create.  
    image
    Creating a Virtual Network using Quick Create
  3. On the Quick Create form, complete the following fields of information:
    – Name: xxxlabnet01 ( where “xxx is replaced by your initials ). 
    – Address Space: 10.—.—.—
    – Maximum VM Count: 4096 [CIDR: /20]
    – Affinity Group / Region: East US
    – Connect to Existing DNS Server: None
    – Subscription: 3 Month Free Trial
    image
    Virtual Network Quick Create Form
    Click the Create A Virtual Network button to create your new Virtual Network on the Windows Azure Cloud Platform!

Congratulations! You now have a new virtual network that you can use to connect multiple virtual machines together on the Windows Azure Cloud Platform. Learn more about using your new Virtual Network with our FREE Online Training at http://aka.ms/AzureVMTraining.

TASK 3 – Submit Proof-of-Completion

Complete the steps in this task to submit your proof-of-completion entry into the Microsoft TechEd “Cloud Challenge” Sweepstakes for a chance to win one of the exciting prizes listed above.

  1. Sign-in to the Windows Azure Management Portal with the Microsoft account credentials used in the prior task to activate your free 90-day trial.
  2. On the Windows Azure Management Portal page, click on the ALL ITEMS link on the left navigation panel.
    image
    Windows Azure All Items Page
  3. Press the PrtScn ( Print Screen ) function key on your keyboard to copy an image of this page to your PC clipboard.
  4. Click on THIS LINK to create a new email message addressed to the sweepstakes team at CloudChallenge@microsoft.com
  5. IMPORTANT: In the body of the email, include this exact text:
    “I’ve completed the Microsoft TechEd Cloud Challenge for Windows Azure Virtual Networks.”
  6. IMORTANT: Paste the image copied in Step 3 into the body of the new email message created  above.
  7. Click the Send button in your email client to submit the email message as your proof-of-completion and sweepstakes entry.

Upon submitting your entry, you will receive a confirmation email within 24-hours.

COMPLETED! Want more?

Now that you’ve built your Windows Azure Virtual Network in the cloud, start leveraging it with these additional free learning resources.

  • Want to learn more about Windows Azure Virtual Machines and Virtual Networks?
    • COMPLETE the FREE online training on Windows Azure
    • COMPLETE Getting Started with Servers in the Cloud
    • COMPLETE additional lab scenarios with Step-by-Step Guides
  • Want to learn more about Windows Server 2012? Become our next “Early Expert”!
    • DOWNLOAD Windows Server 2012 for further evaluation.
    • JOIN our Windows Server 2012 “Early Experts” Challenge IT Pro Study Group. 
  • Want to learn more about our FREE Hyper-V Server 2012?
    • DOWNLOAD Hyper-V Server 2012 for evaluation and production use.
    • COMPLETE the Step-by-Step Guide for Hyper-V Server 2012 to begin leveraging it. 

New SharePoint Features for Developers

I recently completed a tour through Kansas City, Minneapolis, Des Moines, and Omaha to demonstrate the new capabilities for SharePoint developers available in Visual Studio Update 1. (Thanks to all of you that attended – despite this crazy weather!)

A special thanks to Neil Iversen from Avtex for his presentation and demos on the new features in SharePoint 2013. His passion and knowledge on the topic was most evident.

image

Three key features for SharePoint developers were the focus of my session:

Unit testing SharePoint

Sad smileMost SharePoint developers I know don’t write unit tests. It’s just too hard to isolate your custom logic from SharePoint. Without unit tests, developers must spend a lot of time setting up environments, inserting test data, and walking through numerous pages to see if their code is working as intended.

Rolling on the floor laughingVisual Studio 2012 Update 1 adds a SharePoint emulation capability based on the Fakes Framework. You can now write unit tests against your code without even having a live instance of SharePoint! You can even alter the behavior of the SharePoint API to control what the API returns to you.

This feature requires Visual Studio Premium and Update 1.

Performance and load testing SharePoint

Steaming madAny time you are writing code, its always good to keep in mind performance implications. Users get frustrated when applications aren’t responsive. Unfortunately, SharePoint is such a dynamic system, that it could be hard to create usable web performance tests in earlier versions of Visual Studio. With sites, lists, and documents all having unique identifiers that varied across environments, these tests would require a lot of manual revisions to the recorded URL’s. There was also a lot of extra “noise” in the HTTP traffic.

Fingers crossedIt never fails that when users need something in SharePoint, a LOT of them also need it – at the same time. So, load testing is also important in SharePoint. They’ll sometimes make a problem worse by retrying their last action because they aren’t sure its working properly.

Hot smileUpdate 1 adds features to make the recording of web performance tests ignore the noise and identify any SharePoint error pages encountered. The dynamic parameter detection has been extended to extract and pass the unique identifiers for SharePoint objects like site names, list GUIDs, document names, and more.

This feature requires Visual Studio Ultimate and Update 1.

Advanced debugging SharePoint with IntelliTrace

Surprised smileDo you support issues reported by your SharePoint users? Ever wonder what to do with those correlation IDs you see on a SharePoint error page? Its not always easy to reproduce issues within SharePoint.

Red heartThis update makes it very easy to take advantage of IntelliTrace in order to see what lines of your code executed leading up to the reported issue. Even though the error didn’t occur in your development environment, IntelliTrace will log all of the activity so you can play it back in Visual Studio – even if you don’t have the source code on your machine! You can also filter to specific correlation IDs within the IntelliTrace log.

This feature requires Visual Studio Ultimate and Update 1.

You can download the slides for our sessions from my SkyDrive here. Most of my demo’s were based on the hands-on labs here (and get the associated VM here).

Are you a SharePoint developer? Are these new features interesting to you? Let me know what you think.

Tagging TFS Work Items

Several people have asked for the ability to assign tags to work items in Team Foundation Server. Work items have always had an Area Path attribute that provides a hierarchical categorization to work items that is great for reporting, but sometime you want something a little more freeform. I’m happy to let all of you know that with Team Foundation Server Update 2 (currently in “go-live” CTP), we now provide tagging. (Download CTP 4 here.)

NOTE: Work item tagging is already available in Team Foundation Service (our cloud-hosted TFS).

In the screenshot below, you can see the Tags label right above the title of the bug.

image

Clicking the Add… button changes it into a text box where you can enter some relevant text.

image

You can add several more tags and remove any of them by clicking the small ‘x’ next to the associated text. Be sure to save your changes.

Run a query and you’ll see a small filter icon on the far right of the query toolbar. Click this icon to display the Tags filter. From here, you can see a count of work items with the specified tags. You can click a tag in order to further filter the queried results. Click the All tag to remove any filtering.

image

In the screenshot above, you can see I also display the Tags column. You can add this column to your query by clicking the Column Options button in the query toolbar.

For you advanced TFS users, the System.Tags field type is Plain Text and not reportable.

I can think of a variety of scenarios where tags could be used. Where would you use this feature?

TechFuse

I always love speaking at tech conferences. My wife would tell you it’s because I’m a ham, but I really get a charge when one attendee says something like “Wow! I had no idea that was possible!” or “That will really help me on project X.”

Events like TechFuse promise these kind of responses from a lot of people. This year’s event will be hosted at the Minneapolis Convention Center on March 21st, 2013.

TechFuse_home[1]

This year will be my first time speaking at this event in Minneapolis and I’m really looking forward to it. As someone who organizes an annual tech conference, I appreciate the kind of work that goes into these things and I want to thank Benchmark Learning for putting this together and allowing me to speak.

My session will, of course, be on What’s New in Visual Studio 2012 and Team Foundation Server 2012. You can find details on my session and view the entire agenda here.

For those of you that read my blog, I’m sure you’ll find something at TechFuse that you’ll find useful and I hope to see you at the event!

Web API, WCF Data Service, and St. Louis Winter Weather

Fun combination, huh? I am the presenter at tonight’s St. Louis .NET User Group meeting and this is the topic. I will start by presenting demonstrations of Web API and WCF Data Services, but I’m hoping this will be a discussion about what people are doing with web services today.

Before I forget to do so, I’ll go ahead and post links to my presentation materials: slide deck and demo script. (I’m adding a couple of things and I’ll update the demo script out there later today.) UPDATE: I’ve added the code snippets used in the demo script to my SkyDrive for you to download here.

Building on the success of the last St. Louis .NET User Group meeting, we will be holding this month’s meeting at The Schlafly Bottleworks starting around 6pm.

What’s New in Visual Studio Since the Launch?

Like many organizations in its size category, Microsoft is often perceived as slow-moving. However, that is certainly not the case with the Visual Studio team!

The Developer Division at Microsoft is made up of several teams, but most of them have been using agile techniques for many years. More important to customers, this team is now releasing in a more agile fashion as well. Below, I’ve listed all of the updates that have been rolled out since the launch of Visual Studio 2012.

It’s a pretty impressive list. Each of these releases is not just a set of bug fixes, but they also include new features. I’ve highlighted the cloud TFS releases in green. If you are not using this service, you may think you shouldn’t care about these items. The truth is that new TFS features are rolled out to the cloud service before they are bundled into the less-frequent updates for the on-premises TFS. This gives you a chance to see what’s coming. (You can sign up for a cloud TFS account here.)

Sep 12 – Visual Studio 2012 Launch (read more here)

Sep 13 – TFS 2012 Power Tools Launch (read more here)

Sep 17 – Team Foundation Service Sprint 36 (read more here)

Oct 08 – Team Foundation Service Sprint 37 (read more here)

Oct 29 – Team Foundation Service Sprint 38 (read more here)

Oct 31 – Team Foundation Service RTM (read more here)

Nov 02 – Git-TF 2.0 (read more here)

Nov 19 – Team Foundation Service Sprint 39 (read more here)

Nov 26 – Update 1 Released (read more here)

Nov 29 – New TFS 2012 Power Tools for Update 1 (read more here)

Dec 10 – Team Foundation Service Sprint 40 (read more here)

Jan 07 – Team Foundation Service Sprint 41 (read more here)

Jan 21 – Team Foundation Service Sprint 42 (read more here)

Jan 25 – OData for Team Foundation Service (read more here)

Feb 11 – Team Foundation Service Sprint 43 (read more here)

Mar 4 – Team Foundation Service Sprint 44 (read more here)

Mar 4 – Update 2 CTP 4 Released (read more here)

Mar 22 – Team Foundation Service Sprint 45 (read more here)

Last, but not least, a lot of the features in the above list are selected based on your votes in User Voice!

Holodeck on its way to your living room?

“Where does he get those wonderful toys?” – Joker [Jack Nicholson]

The IllumiRoom has got to be the coolest thing at CES – hands down! I’ll definitely keep an eye on this. Microsoft Research has a bunch of great stuff and I highly recommend keeping an eye on what they are doing. (I still like Pex and I’d love to see that built into the next version of Visual Studio.) So, this appears to just be today’s Kinect, but with an associated projector.

This video is amazing and I just wanted to call out what I saw as some highlights:

  • First – just WOW!
  • “Xbox – go big” Even the initial room scanning is pretty cool. This is really the Kinect doing what it already does, but I’m guessing the projector helps by projecting light onto the scanned surfaces. (0:13 mark of the video).
  • (0:20) In this part of the video, you see how the shots from the player and opponents are seemingly breaking the boundaries of the television screen. This alone creates a slightly more immersive experience as it simulates the player’s peripheral vision. I especially like the fire effects at the 0:26 second mark too.
  • Note that this effect isn’t limited to the wall behind the TV, but it even projects objects onto the floor. The peripheral vision gets even better (0:32). They system essentially treats the entire room as a screen. When you think about it, the data for the game world is really there. I know game developers use clipping achieve greater performance, so I’d assume games will have to be written to support the IllumiRoom.
  • Custom code would probably be mandatory to achieve special effects on the projected game world (0:36). Here, you can see that the projected world is more of a black-and-white skeleton of the world on the TV.
  • The feedback effect (0:42) is a real highlight for me. It appears that the Kinect scan of the room was re-projected and then a vibration effect is applied to make the room look like it’s moving. (Virtual acid trip anyone?)
  • Finally, check out the snow effect at (0:49). Imagine that happening during Ghost Recon Future Soldier, Assassins Creed, or Skyrim!

It looks like MS research will release more info this Spring at ACM CHI 2013.

Achievement Points for Doing My Job?!

Like many of you, I’m an avid gamer and I got into this business because of video games. Modern games allow you to brag about your virtual conquests with achievement points awards. Achievements aren’t just about bragging though. Video game achievements also act as a guide prompting you to try to accomplish specific goals. (My Xbox GamerScore is 76,594 – which I’m told is pretty high – maybe a bit too high for an adult with two kids and a full-time job.) Speaking of jobs, wouldn’t it be cool to have those same bragging rights as a developer?

Back in January of this year, Microsoft released Visual Studio Achievements Beta and it was downloaded by more than 120,000 people. This version is still available for download, but it is only for Visual Studio 2010. When I went to see how many people had downloaded the Visual Studio Achievements for VS 2012, I only saw 8,958 downloads and I wanted to write a blog post to help get the word out as many people may not even know there’s a new version.

You can download the new achievements utility from the hyperlink above or from within Visual Studio by going to Tools | Extensions and Updates… After the extension is installed, you’ll have to take a couple other steps.

To list all of the available achievements, from the Visual Studio menu, go to Tools | Achievements. The following screenshot shows the achievements dialog. There are achievements for Visual Studio features, Azure development, Windows 8, and some off-the-wall items as well (e.g. use the goto statement). The blue-ish icons are achievements that I’ve accomplished, while the gray one is an achievement I’ve yet to earn. A list of achievements can also be found here.

image

Click one of the achievements in the Visual Studio dialog and a browser window will open. From here, you can tweet or otherwise socialize your achievements. Your achievement progress is located on your Channel 9 profile’s page.

image

The complete leaderboard can be found here. It’s just a simple list of the registered users and their achievements progress. (It’s at least entertaining to see what the rest of our industry looks like in their profile pictures – wow!)

There’s a Windows Phone application that displays your achievements. You can download it from the Windows Phone Marketplace here or download the source code from here and sideload it. By the way, the source code solution requires the Silverlight for Windows Phone Toolkit.

The Visual Studio Achievements widget can be placed on any web page. You can get a copy of the script and its various customization options here.

The phone and the widget work by utilizing Channel 9’s achievements web service. Get a complete list of achievements by using http://channel9.msdn.com/achievements/visualstudio?json=true or get a list of a particular user’s achievements with http://channel9.msdn.com/niners/[registeredUsername]/achievements/visualstudio?json=true

And finally, you can submit other ideas for achievements to the Channel 9 Q & A section here.

A couple of my customers not only see this as an employee satisfaction effort, but also see it as a way to enable some peer pressure to get their developers trying new features of the IDE and related technologies.

Are you using the Visual Studio Achievements extension? What other features would you like to see? VS Achievements started as a blog post from the community, so the team is definitely listening.