Windows

I’m really excited to be hosting a few events in the Microsoft Raleigh office focused on Windows 8 development.  The first on revolves around our APIMASH starter kits – a great way to get started building mashup style applications i...
I’m really excited to be hosting a few events in the Microsoft Raleigh office focused on Windows 8 development.  The first on revolves around our APIMASH starter kits – a great way to get started building mashup style applications in Windows 8, with templates and examples in both C# and HTML/JS.  The other sessions are intro to gaming, developing some simple games using Construct2, and GameMaker/other frameworks as time allows.   Here are the events/times: APIMASH: Tue 6/4/2013 from 10:00am to 2:00pm and Tue 6/11/2013 from 10:00am to 2:00pm Intro to Gaming: Wed 6/5/2013 from 10:00am to 2:00pm and Wed 6/11/2013 from 10:00am to 2:00pm Here’s a more official description of each event: Game Development for Beginners In this beginner level workshop we will cover the basics of game design, programming and publication. We will build a casual game and publish it to the Windows Store. This workshop is great for students, hobbyists and professional developers who want to learn the basics of game development and publish their first app to the store as no programming skills are required! Windows 8 App Mashup Series In this workshop you will learn how to develop Windows 8 apps based on well-known web service API's such as Twitter, Meetup, ESPN, EchoNest and data from the World Health Organization WHO. Your app could entertain or even change the world. This workshop is great for students, hobbyists and professional developers who want to learn the basics of app development and publish their first app to the store. For more info, stay tuned to the MSDN Events page!
about 1 hour ago
Someone recently asked me a question about the unversioned file replacement scenarios that I wrote about a while ago in this blog post.  The scenario that they described to me is similar to one that we faced when building the instal...
Someone recently asked me a question about the unversioned file replacement scenarios that I wrote about a while ago in this blog post.  The scenario that they described to me is similar to one that we faced when building the installer for the XNA Game Studio components that ship in the Windows Phone SDK 8.0, so I wanted to provide an overview of our problem and the solution we implemented in case it is useful to anyone else. The problem we faced was that version B of our product (the XNA components in the Windows Phone SDK 8.0) upgrades several components that are shared by version A (the XNA Game Studio 4.0 Refresh).  One of the components is an MSBuild .targets file, which is an unversioned file.  Version B ships a version of the .targets file that is backwards compatible with Version A, so we wanted the installer for version B to overwrite the .targets file if a user installs version A and then version B.  However, we did not want the installer for version A to overwrite (and downgrade) the .targets file if a user installs version B and then version A. In order to prevent Windows Installer from overwriting this unversioned file, the last modified time had to be different than the creation time (as documented here).  This feels a bit dirty, but we ended up solving this problem by implementing a custom action in version B of our product to call the SetFileTime function to update the last modified time of the .targets file after installing it.  This causes version A of our product to not overwrite the file if a user installs version B and then version A.  The .targets file is in its own Windows Installer component, which is reference counted by Windows Installer so that the .targets file is left behind after uninstalling either version of the product.  Since we designed version B of the .targets file to be backwards compatible, it would continue to work even if a user installs version B, installs version A, and then uninstalls version B (which leaves them with version A of the product installed but version B of the .targets file installed).
about 2 hours ago
The Xbox One is a next-generation console, and as such, it's built with some future proofing in mind. It can do things you're not quite ready for just yet, such as play back 4K resolution games, movies, and TV. And it'll support 3D visua...
The Xbox One is a next-generation console, and as such, it's built with some future proofing in mind. It can do things you're not quite ready for just yet, such as play back 4K resolution games, movies, and TV. And it'll support 3D visuals too, despite the fact that 3D in the home has yet to catch in any meaningful way when it comes to TV, movies, or games. Microsoft noted that the new console would support 4K at the Xbox One launch event on Monday, but 3D support was kept under wraps until Xbox spokesman Larry "Major Nelson" Hryb mentioned it in a Wednesday Yahoo chat session. Continue reading…
about 5 hours ago
This blog post was authored by Rohan Thakkar, a Program Manager on the Windows Phone team. - Adam Last year we evangelized the use of the LongListSelector control to provide smooth infinite scrolling scenarios. The LongListSelector ...
This blog post was authored by Rohan Thakkar, a Program Manager on the Windows Phone team. - Adam Last year we evangelized the use of the LongListSelector control to provide smooth infinite scrolling scenarios. The LongListSelector control is so useful that we decided to enhance it and move it to the SDK for Windows Phone 8. In this post we discuss the improvements we’ve made to the control, and provide a mapping guide for Windows Phone developers who are already using the Windows Phone Toolkit 7.1 version of the LongListSelector. If you prefer to read XAML instead of plain text, you can go straight to the samples and explore them: TwitterSearch - Windows Phone 8 LongListSelector Infinite Scrolling Sample PhotoHub - Windows Phone 8 XAML LongListSelector Grid Layout sample PeopleHub - Windows Phone 8 XAML LongListSelector sample For more info about how to use the LongListSelector, see How to display data in a grouped list in LongListSelector for Windows Phone 8. Let’s dig a little deeper into various enhancements we’ve made to the control. Skip to the sections that interest you. LongListSelector moved to Windows Phone 8 SDK and to ROM Sticky headers Grouped grid layout Improvements to infinite scrolling scenario Globalization – SortedLocaleGrouping LongListSelector mapping guide – Differences between Windows Phone OS 7.1 Toolkit and Windows Phone 8.0 SDK FAQs LongListSelector moved to Windows Phone 8 SDK and to ROM The LongListSelector control is now a part of Microsoft.Phone.Controls namespace in Microsoft.Phone.Controls.dll assembly. This means it’s now a fully supported, high-quality control shipped by the Windows Phone Development team. We also moved the assembly to ROM to take advantage of the internal off-thread input and the render thread architecture. This means the control is optimized for the full potential of Windows Phone. The Microsoft.Phone.Controls.dll assembly also contains other phone-specific controls, such as Panorama and Pivot. These controls also get the performance benefits of being in ROM, including reduced memory consumption (~50% reduced memory for a basic app) and improved touch performance, especially when you have data being loaded in the panorama view. Sticky headers The native Windows Phone grouped list has the headers stick to the top as you scroll. The LongListSelector control in Windows Phone 8 has the same smooth effect. Note the headers in the following screenshots. Figure 1 - Notice group header "a" Figure 2 - Scrolling up, notice how "a" sticks to top Figure 3 - Notice how the group header "b" pushes "a" Figure 4 - Now "b" is sticky, same as "a" Grouped grid layout In Windows Phone 8, LongListSelector supports grid layout, which is more than just the WrapPanel that’s available in the Windows Phone Toolkit. The LongListSelector grid layout is virtualized, which provides better performance. The following screenshots are from the PhotoHub sample. Figure 5 - LongListSelector's Grid layout Figure 6 - Jumplist's List layout. The following code is an excerpt of the XAML for the LongListSelector from the PhotoHub sample. C# PhoneApplicationPage.Resources> JumpListItemBackgroundConverter x:Key="BackgroundConverter"/>         JumpListItemForegroundConverter x:Key="ForegroundConverter"/>         Style x:Key="JumpListStyle" TargetType="phone:LongListSelector">             Setter Property="LayoutMode" Value="List" />             Setter Property="Margin" Value="12,12,0,0"/>             Setter Property="ItemTemplate">                                      DataTemplate>                         Border Background="{Binding Converter={StaticResource BackgroundConverter}}"                             Width="470"                             Height="70"                             Margin="6">                             TextBlock Text="{Binding Key}"                                 Foreground="{Binding Converter= {StaticResource ForegroundConverter}}"
about 5 hours ago
Body: Analytics suck in SharePoint 2013. It’s been gutted. I know this happened because analytics moved into search, which was the right move, but don’t get me wrong… it’s bad the built in web analytics you’d get through the UI are more ...
Body: Analytics suck in SharePoint 2013. It’s been gutted. I know this happened because analytics moved into search, which was the right move, but don’t get me wrong… it’s bad the built in web analytics you’d get through the UI are more basic than you’d get in a simple Wordpress blog.  Pretty useless other than to say, it’s being used and by how many something it calls users (browsers, machines. IP addresses, it’s unknown).  In fact it’s a huge step backward, and that’s what you’re going to see as I lay out the details. Let’s just admit that usage is not done in SharePoint.  It’s been ripped out of the UI.  Look for usage reports in site settings…  good luck! First go to your site settings as Site Collection Admin and look in Site Collection Administration section for Popularity and Search Reports, then the next best bet is to look across your audit reports (it will only display what has been configured to capture), and your finally storage reports to put together the simple story of Unique Users (daily only even in the rolloup), hits (page views? who uses the term “hits?” that’s so 1995), and then your storage against your quota in classic storman.aspx which is back. If you’re not site collection admin, you can get the basic usage report in site settings under site administration titled “Popularity Trends” (What sounds like usability got all over that one??) It’s still just Hits and Unique Users, despite the line “This report shows historical usage information about the site, such as the number of views and unique users. Use this report to identify usage trends and to determine times of high and low activity.” No detail on hourly usage in the report, and since it uses “hits” which classically means all get/post and various verb HTTP responses I think what you’re actually seeing is page hits or page views.  This must have been an intern.  Historically means “Daily” and “Monthly.”  No way to break it down by hour.  Good luck identifying any usage trends other than day of the week since you can’t see any detail about who the users are, what the browser or agent string, or really anything about the user.  They don’t even define “hit” or “user.”  Every one of these reports is in Excel, but the data behind the scenes is not rich at all. Right out of Excel – All of the Reports are now based in Excel and download to the client.  No web based reporting. Sad they don’t open up directly in Office Web Apps.   In the Audit Reporting As a huge advocate of SharePoint, I am one of the first to stand up and say how great this next version is.  In fact I think people shouldn’t wait to upgrade because of the huge benefits in search and in mobile and cross browser support.  The latest version is a real game changer from a platform perspective, but still has a few gaping holes…  Compliance, Management, Storage, Reliable Backup/Restore and Recoverability, Replication, Workflow, Mobile, Social*, Web Analytics Reporting and More have created a rich ecosystem that the partners love to solve for SharePoint.  Would be interesting some time to really categorize these holes and list the partners all attempting to solve the same problem that Microsoft exposes.  Should you be ear marking money for additional software for a new deployment… YES! Rant: Also don’t believe anyone in MS Sales if they tell you that SharePoint is an easy or trivial deployment.  It clearly is on the high end of what most web architects will ever see in terms of complexity (not in the install (which is still tricky), but in getting it deployed correctly).  It really takes knowledge of best practices and serious coordination with the business to get the most out of your new or existing deployment. *Social was a big 2013 investment, but overshadowed by the acquisition, and is called out because you should get on board with Yammer or one of the other third parties that pull together the story. Figure: FrontPage 2000 Usage Reports (Available for SharePoint Team Services) Yesterday
about 6 hours ago
AlwaysOn Availability Groups can provide a high-availability and disaster recovery solution for SQL Server Remote Blob Store (RBS) BLOB objects (blobs).  AlwaysOn Availability Groups protects any RBS metadata and schemas stored in a...
AlwaysOn Availability Groups can provide a high-availability and disaster recovery solution for SQL Server Remote Blob Store (RBS) BLOB objects (blobs).  AlwaysOn Availability Groups protects any RBS metadata and schemas stored in an availability...(read more)
about 7 hours ago
How many times have you rushed out of the house without some important file you needed for work—or wished you had access to your desktop computer’s music or movie library from your hotel room on the beach? Enter Splashtop 2, a popular a...
How many times have you rushed out of the house without some important file you needed for work—or wished you had access to your desktop computer’s music or movie library from your hotel room on the beach? Enter Splashtop 2, a popular app designed to provide remote access to your PC or Mac that just arrived in the Windows Phone 8 Store today. Splashtop 2 users can view and edit files, use apps, and stream audio and HD video to their phone directly from a remote computer. Setting it up is pretty straightforward. First download the Windows Phone app, which is free through August 31, then install Splashtop’s free Streamer software on your PC or Mac. The Splashtop remote access service runs $1.99 a month. For more info, head over to the Splashtop site.  
about 7 hours ago
Q) What are the project templates presented to you by Visual Studio when you start a ASP.NET MVC 4 Project? Empty - empty ASP.NET MVC 4 Project Basic - basic ASP.NET MVC 4 Project Internet Application - a default ASP.NET MVC 4 Pro...
Q) What are the project templates presented to you by Visual Studio when you start a ASP.NET MVC 4 Project? Empty - empty ASP.NET MVC 4 Project Basic - basic ASP.NET MVC 4 Project Internet Application - a default ASP.NET MVC 4 Project with an account controller that uses Forms Authentication Intranet Application - a default ASP.NET MVC 4 Project with an account controller that uses Windows Authentication Mobile Application - an ASP.NET MVC 4 Project for mobile devices with an account controller that uses Forms Authentication Web API - a ASP.NET Web API Projects Q) What is the name of the unit testing Framework that is available with a ASP.NET MVC 4 Project in Visual Studio? MSTest Q) Which code will execute before any of the Controllers are run? The code within Application_Start() in global.asax will start executing before any of the Controllers run Q) Which HTTP status code does a RedirectPermanent ActionResult return? RedirectPermanent returns a 301 status code Q) How does ASP.NET know how to deliver a request like http://localhost/home/about? Routing engine (not tied to ASP.NET MVC Framework) directs requests to Controllers. The route map is defined in global.asax Q) What is NuGet? It is a Package Manager for .NET applications. NuGet can be used to install, update and configure software (DLLs) in the form of Packages, for use in a Visual Studio project. This way you don't have to download it or track dependencies. NuGet understands package dependencies & will fetch dependent packages as well. Q) Where do NuGet Packages come from? NuGet official feed of packages (from nuget.org) Your local repository Your network share Q) Where do NuGet Packages go? When you install a NuGet package it goes into the Packages folder within the Visual Studio Solution from where you requested. It stores the Package on a per solution basis, not putting in the GAC or Program Files. It is local to that Solution. This makes it easy to update and put a package under version control. The Packages.config file within a Visual Studio solution lists all the Packages that have been installed for the project Q) What is in a NuGet Package? A *.nupkg is a zip file that contains: Metadata - dependencies, URLs, version numbers are specified in a XML file Binaries - assemblies (DLLs) Other content - scripts, images, code blocks Q) Can NuGet commands be executed from the command line? Yes, using PowerShell. To view the list of commands, open the Package Manager Console in Visual Studio (View > Other Windows > Package Manager Console) & type help package Q) Which is the namespace you have to include when you're using DataAnnotations? System.ComponentModel.DataAnnotations Q) Where does the Layout view reside? The Layout view in Razor (the equivalent of Master Page in ASP.NET WebForms) resides in the Shared folder under the Views folder. It is represented by the _Layout.cshtml file Q) How does MVC runtime know that it has to use _Layout.cshtml? Q) What is the significance of the _ViewStart.cshtml file? _ViewStart.cshtml resides in the root of the Views folder. It contains a code block containing a Layout property set to the the _Layout.cshtml file. It is a Razor convention that anything inside _ViewStart.cshtml will execute before a View does. _ViewStart.cshtml applies to all Views. It can be overriden on a per View basis. Q) How to ignore the default Layout view? To avoid using the default Layout page, set Layout property to null Q) Can you build your own custom HTML Helpers? Yes, you can build your custom HTML Helpers work in progress... Tech Tips, Tricks & Trivia - A seasoned developer's little discoveries and annotated bookmarks.
about 8 hours ago
In addition to launching its new generation Kinect alongside the Xbox One, Microsoft also plans to again release a version of the powerful sensor that's geared for Windows. A post on the company's Kinect blog today confirms the product w...
In addition to launching its new generation Kinect alongside the Xbox One, Microsoft also plans to again release a version of the powerful sensor that's geared for Windows. A post on the company's Kinect blog today confirms the product will be released next year, meaning it will trail behind its console counterpart. Both versions of the new Kinect have been built on top of a shared foundation of technologies, however. When the hardware eventually does reach the hands of developers, Microsoft promises it will "revolutionize computing experiences" thanks to higher fidelity, an expanded field of view, improved skeletal tracking, and other improvements. We were impressed with the latest Kinect during our brief trial at Microsoft's Xbox One... Continue reading…
about 9 hours ago
Windows 8, as we all know very well at this point, was designed for touchscreens. Multitasking, the Charms bar, and Snap View (read: split screen) are all quite easy to use with touch gestures — and aren't that bad with a laptop's ...
Windows 8, as we all know very well at this point, was designed for touchscreens. Multitasking, the Charms bar, and Snap View (read: split screen) are all quite easy to use with touch gestures — and aren't that bad with a laptop's touchpad — but those who use a traditional mouse have been somewhat left behind. Microsoft is trying to change that today with two mice that are designed to make Windows 8 navigation a bit easier. Microsoft's solution? Place the Windows key directly on the mouse. It's somehow slightly disturbing when you first see it — we're so used to the Windows key being resigned to sitting quietly between the control and alt keys. Nevertheless, it has a prominent spot on both of Microsoft's new mice, the Sculpt... Continue reading…
about 9 hours ago