Thursday, March 31, 2011

Parallel Programming: Tasks and Continuations

Parallel Programming: Tasks and Continuations


Parallel Programming: Tasks and Continuations

Posted: 31 Mar 2011 12:00 PM PDT

Charles TorreHi, I'm Charles Torre, Sr. Technographer with Channel 9. One of my goals is to make sure C++ has first class status on Channel 9. Make no mistake, the C++ Renaissance will be televised. :)

 

I've recently been posting interviews on C9 with some of the VC++ team and few VC++ MVPs like Kate Gregory. Today you'll meet some fellow native developers who are working hard to provide powerful C++ libraries for concurrency and parallelism. They need your feeddback, so please download the header files today and play with the code!

 

I recently visited the Parallel Computing Concurrency Runtime team, who write tools for the C++ community that make it easier to write reliable, performant and scalable concurrent and parallel code. In the first part of this interview (available here), Mike Chu , Dana Groff, Artur Laksberg and Vinod Koduvayoor Subramanian talk about their latest addition to the Parallel Patterns Library which provides wait-free concurrency programming by specifying tasks, the ability to schedule tasks on events and continuations that specify a task or tasks which are run after one or more tasks finish.

 

In the second part (available here), Vinod explains chaining tasks, continuations at the whiteboard. It's fast-paced so pay attention!

 

What's better is that much of this is available today through the ConcRT Extra's "Sample Pack". Please download it, play with the new library, push it and provide feedback to the team. They really want and need your input to insure they deliver the right things for real world usage by C++ developers.

 

Links of interest

Monthly News Digest @SilverlightZone - 31st March 2011

Posted: 31 Mar 2011 03:06 AM PDT

Today we have completed 3rd month of our activity in Silverlight-Zone.com and continuously trying to improve it. We are regularly updating the site with latest news on Silverlight, Windows Phone 7, LightSwitch, XAML, Expression Blend, XNA etc. We are...( read more )...(read more)

Response.MVVM is now available via NuGet!

Posted: 31 Mar 2011 03:34 AM PDT

About a year ago, I wrote an article for SilverlightShow, titled " A Designer-friendly Approach to MVVM ". The article introduced VSMChangerBehavior which allows tying enums in the ViewModel to Visual States in the View. Another Action shown off there...( read more )...(read more)

Released: Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1

Posted: 31 Mar 2011 12:00 AM PDT

An update to the Windows SDK for Windows 7 and .NET Framework 4 (Windows SDK 7.1) is now available. This update addresses the issue where Visual C++ Compilers and libraries that are installed with the Windows SDK are removed when Visual Studio 2010 Service Pack 1 is installed.

Please follow this link to download and install the update.

Our recommended install order is:

  1. Visual Studio 2010
  2. Windows SDK 7.1
  3. Visual Studio 2010 SP1
  4. Visual C++ 2010 SP1 Compiler Update for the Windows SDK 7.1

You may eventually swap steps 3 and 4, still getting a successful scenario.

You must have installed Windows SDK 7.1 in order to install the update.  However, you do NOT have to have installed VS 2010 + SP1 – this update is also applicable to the standalone SDK.

 

Links of interest

UX at MIX11: Full Speed Ahead

Posted: 30 Mar 2011 03:25 PM PDT

When there was some internet agitation in February, lobbying for more user experience content at MIX, Microsoft's John Papa and the MIX team jumped in swiftly to address concerns. They lined up three sessions of ten-minute Lightning Talks with impressive...( read more )...(read more)

dotSqlCopy

Posted: 30 Mar 2011 03:22 PM PDT

dotSqlCopy a été créé par Davyd REY au départ pour des besoins professionnels puis personnelles.Cet outil permet déjà de réaliser le minimum requis en ce qui concerne la copie intégrales de tables de donnéesd'une base de données SQL server vers une autre base de donnée Sql Server

Wednesday, March 30, 2011

My Visual Studio snippets

My Visual Studio snippets


My Visual Studio snippets

Posted: 29 Mar 2011 03:58 PM PDT

One of the great features of Visual Studio, that's been around for a while is snippets. Frankly, I should build more of these because I use them *so* often. I find them so useful I thought I'd share them here, either for you to use or to template into ones of your own. Firs t,when building templated controls I write this a lot: [TemplatePart(Name = ElementContent, Type = typeof (FrameworkElement))] And it's not just that, I then have to create a constant to define "ElementContent" and then usually load that value into a member variable as part of OnApplyTemplate. So I built a snippet that builds this stuff out for me, resulting in this: [TemplatePart(Name = ElementContent, Type = typeof (FrameworkElement))] //private...(read more)

Each one is the best - for different definitions of "best" [The BestFitPanel collection of layout containers provides flexible, easy-to-use options for Silverlight, WPF, and Windows Phone applications]

Posted: 30 Mar 2011 10:32 AM PDT

Just over a year ago, a couple of readers asked me about a WPF/Silverlight Panel that arranged things to make "best use" of available space without requiring the developer to set a bunch of stuff up in advance or know how many child elements there would...( read more )...(read more)

Silverlight Cream for March 30, 2011 -- #1068

Posted: 30 Mar 2011 06:07 AM PDT

In this Issue: Roy Dallal , Rudi Grobler , Jeff Prosise ( -2- ), Jesse Liberty , Morten Nielsen , Derik Whittaker , Peter Torr , Xianzhong Zhu , and Adam Kinney . Above the Fold: Silverlight: "Silverlight: Adding Google Streets View" Roy Dallal WP7: ...( read more )...(read more)

Silverlight, HttpWebRequest, HTTP Stacks and the UI Thread

Posted: 30 Mar 2011 01:41 AM PDT

This one comes from a customer who thought that they were seeing an issue in using the browser HTTP stack in Silverlight to make lots of HTTP requests. The issue seemed to be that the stack was blocking the UI thread and causing the UI to stutter. The...( read more )...(read more)

Silverlight in the Azure cloud - Part 2

Posted: 29 Mar 2011 02:00 PM PDT

Don't miss... Webinar recording: Switching on the Cloud for Silverlight Gill's series on getting prepared for Silverlight Exam SL4 Business App Development book: Show more books This is part 2 of 2 from the article series 'Silverlight in the Azure cloud...( read more )...(read more)

My Visual Studio snippets

Posted: 29 Mar 2011 03:58 PM PDT

One of the great features of Visual Studio, that's been around for a while is snippets. Frankly, I should build more of these because I use them *so* often. I find them so useful I thought I'd share them here, either for you to use or to template...( read more )...(read more)

Tuesday, March 29, 2011

SQL Azure Agent

SQL Azure Agent


SQL Azure Agent

Posted: 29 Mar 2011 01:32 PM PDT

Proof of concept project to show how you can achieve SQL Server Agent like functionality for Sql Azure

How to install LightSwitch Beta 2?

Posted: 29 Mar 2011 03:22 AM PDT

Visual Studio LightSwitch is a new tool for building data-driven Silverlight Application using Visual Studio IDE. It automatically generates the User Interface for a Data Source without writing any code. You can write a small amount of code also to meet...( read more )...(read more)

Start-to-Finish Guidance for Windows Phone 7 Application Development

Posted: 24 Mar 2011 07:34 AM PDT

If you are a C#/.NET developer who wants to learn the basics of phone application development using Silverlight, check out our new end-to-end guidance and sample application: Building a Windows Phone 7 Application from Start to Finish Fuel Tracker sample...( read more )...(read more)

Troubleshooting Tips for IntelliSense Slowness

Posted: 29 Mar 2011 09:00 AM PDT

Andy RichHi, my name is Andy Rich and I'm a QA on the C++ front-end compiler. The IntelliSense system in Visual Studio 2010 comes with far greater power, flexibility, and accuracy, but these improvements come at the cost of greater complexity. The goal of this article is to assist you in troubleshooting this complex system, and give you a peek under the hood at how it works (and what to do when it doesn't).

 

The problem is usually PCHs

Having spent a lot of time helping customers with slow IntelliSense, I have found that their performance issues are almost always related to PCH being disabled. For large C++ translation units (and most of the ones that you care about are going to be large), IntelliSense PCH is vital to ensuring fast IntelliSense. Getting your PCH settings right are also vital to having fast builds – so getting this right can potentially be a boon on two fronts. I have previously written a blog post on the PCH model and how to configure it within the IDE: http://blogs.msdn.com/vcblog/archive/2010/01/26/precompiled-header-files-in-visual-studio-2010.aspx. This blog post will be focused on what to do when you've followed those steps and things still aren't working for you.

 

Start with the error window

In VS2010 RTM, errors in your PCH will prevent the IntelliSense compiler from creating a PCH. This is something we have addressed in SP1, but even still, the error window can be a good place to start investigating performance issues.

One of the new features in VS2010 is "red squiggles" for C++ - these diagnostics are provided by the IntelliSense compiler. These same diagnostics are also provided to the error list window. If this window is not visible, you can bring it up using View->Error List or the hotkey chord "Ctrl +\, E." In this case, you should be looking explicitly for errors in header files, and starting at the top of the error list window. With VS 2010 RTM, any errors (even ones that the compiler can typically recover from) will prevent your PCH from being built, and cause severe IntelliSense slowness. (This is addressed in SP1, which I discuss in a later section.)

Start with the error window

 

The IntelliSense compiler is not the build compiler

It is important, here, to call out that the IntelliSense compiler is different from the build compiler. We have made every effort to give these two compilers parity. (For more information about how this works with C++/CLI please check this blog post.)

However, there are still differences, and occasionally, a file that compiles without error using our build compiler will not compile properly with our IntelliSense compiler. Often, this is because the IntelliSense compiler has a more strict interpretation of the C++ standard than the build compiler. In these cases, you can usually work around this problem by fixing the error reported by the IntelliSense compiler. (In most cases, the build compiler will happily accept the more-conformant code being required by the IntelliSense compiler.)

Additionally, if you are targeting an architecture other than x86, you may notice that the IntelliSense compiler is always operating in x86 mode. This can produce errors that are very difficult to work around, and while these errors will not prevent you from working with most code, they can cause PCH generation to fail as mentioned above.

If you are unable to find a code workaround for your problems, there is one further stopgap measure that can help: the compiler macro __INTELLISENSE__, which is only defined when using the IntelliSense compiler. You can use this macro to guard code the IntelliSense compiler does not understand, or use it to toggle between the build and IntelliSense compiler.

 

Context is important

This is a good opportunity to discuss context in our IntelliSense engine. The IntelliSense engine provides accurate results by always having as correct a view as possible of the source file being compiled. This is fairly straightforward in the case of .cpp files: these are natively compiled and understood by the compiler. However, the situation is less clear for .h files, as these files are compiled only in the context of an associated .cpp file.

In previous releases of Visual C++, header files were only parsed by the IntelliSense parser and included in the NCB once, based on the single context they were compiled in. An older post by Jim Springfield discusses this so-called "multi-mod" problem in greater detail. We address this issue in Visual C++ 2010 by having all header files compiled in the context of your current .cpp file, so that this highly contextual information can be more accurate.

However, what is the proper recourse for the IntelliSense engine when an .h file is active in the editor? It cannot compile the .h file by itself – this would not be the correct context. The .h file is almost certainly included by multiple .cpp files – which one should be compiled to get the proper context for the .h file?

In Visual C++ 2010, we introduced a bit of technology called the include graph. This allows us to know, for an .h file, all of the .cpp files that have included that .h file, either directly or indirectly. This gives us all of the possible contexts for the .h file, but we still have very little idea which .cpp file is the one you want.

Ideally, this is something that would be configurable by the user, but this seems heavyweight for IntelliSense. What we settled on was looking through your most recently used .cpp files (controlled by the "TU cache" setting in Tools->Options->Text Editor->C/C++->Advanced) and seeing if any of those were reported by the include graph as being a valid context for your .h file. If so, we use that context. If no such context is available, we must fall back on choosing an arbitrary context for the .h file.

 

Verify the PCH is being built

Let's get back to diagnosing IntelliSense issues. Assuming your header files are free of IntelliSense errors, we should look into verifying that your PCH is being built. The most foolproof way of accomplishing this is to actually look on your hard drive for the iPCH file to ensure it is being built.

Browse to your solution directory, and find the "ipch" directory underneath. In here, you should find one directory per project. And within those directories, the "ipch" files themselves. Looking at the timestamps of the files can be informative, but for me, proof positive is to delete the iPCH files (you'll probably need to shut down your solution first) and ensure the iPCH files are being recreated when IntelliSense is executed on the .cpp file in question.

If you aren't seeing the iPCH file being generated, this is a good time to go back and review the PCH options blog post and ensure your settings are really configured correctly.

 

Unless you're using Makefile projects

One huge caveat is in the case of makefile projects. By and large, settings in your makefile project are opaque to the Visual Studio project system, and therefore by extension, the IntelliSense system. In these cases, your include directories may not be correct, macro defines may be not set, and any compiler switches you are using in your makefile (including those that control PCH!) will not be on.

For these cases, we have added an extra configuration section to makefile projects. Right-click your project, choose Properties, and go to Configuration Properties->NMake. The "IntelliSense" subsection in here is for options that are specific to your IntelliSense compiler. These options will be passed ONLY to the IntelliSense compiler, and should be of the same format that you would pass to the build compiler. You should ideally set these according to the same options used in your makefile. In particular, preprocessor definitions, include search path, and forced includes are important to have right. For our purposes, of course, you should also have your PCH options included in the "Additional Options" section.

As a quick and dirty workaround for PCH, you can often just specify "/Yu" with no parameters, and the IntelliSense engine will create a default PCH for you. But in the long run, you will have better overall performance and less issues if you mirror your build system's PCH settings here.

 

Goto-Definition is a very special case

Goto-Definition (GTD) is one of the most complicated operations performed by our IntelliSense engine, and one of the most common to suffer IntelliSense slowdown. The big issue with Goto-Definition is that, typically, the definition of the function is not contained in the translation unit currently being parsed. The declaration is naturally required by the compiler – the prototype in your .h file – but the .cpp file that provides the implementation of this prototype is often not in your current TU; often, it isn't even in your current project! (And in some cases, it is buried in a static lib or DLL, and no actual code for the definition is possible.)

At a high level, Goto-Definition is implemented like this:

  1. Generate a qualified name for this type (requires a QuickInfo request at the GTD source point).
  2. Search the browse database for all definitions that could match this qualified name.
  3. For each matching definition found, perform a QuickInfo operation to see if the target qualified name matches the source.
  4. If you find a matching definition, stop (don't keep processing the list).
  5. If you never find a matching definition, show all of the candidates from step 2.

The operation that tends to take a long time is step 3. In a previous blog, I discussed how our preparse model can negatively impact performance. Step 1 is typically not a problem because we have nearly always already generated a preparse for your current source file. In Step 3, however, we are going to a new, unrelated file; and this file typically does not have a preparse generated. The gating factor on the speed of these operations is the preparse, and the only good way to speed the preparse up is with PCH. So getting your PCH working (as mentioned above) is probably the most important thing you can do for performance.

 

Using Task Manager to pinpoint issues

Sometimes, it can help to pull up Task Manager, as this will provide some insight into which piece of our complicated IntelliSense/browsing system is causing the problem. When you perform a long-running Goto-Definition, you can take a look at which process is consuming CPU cycles. If it is devenv.exe, the problem is more likely in the browsing system (a database query, most likely). This is usually due to some kind of complexity of your solution, and is something we're interested in finding out more about when you encounter it.

If you find that the process eating up resources is vcpkgsrv.exe, then the problem is in the IntelliSense compiler – and once again, most likely to be a long-running preparse (which is best solved by having PCH turned on and working).

 

Rich Logging options in Visual C++ 2010

Visual C++ 2010 has some additional logging options which can help to pinpoint problems. To turn this logging on, go to Tools->Options->Text Editor->C/C++->Advanced and change the options under "Diagnostic Logging". To enable full logging of all events (which can be a LOT of logging data), you set Enable Logging to True, Logging Level to 5, and Logging Filter to 255, as in the screenshot below.

Rich Logging options in Visual C++ 2010

You can view the output of this logging in the Output window (you may need to change the "Show output from:" dropdown to "Visual C++ Log"). Briefly, I will go through what the log looks like for a typical QuickInfo operation.

This is the log for a QuickInfo call:

[WorkItem] >> [eNowQueue] class CQuickInfoWorkItem
[WorkItem] [eNowQueue] - Executing class CQuickInfoWorkItem
[IntelliSense] translation unit: c:\users\arich\documents\visual studio 2011\projects\example_project\example_project\example_project.cpp
[WorkItem] [eNowQueue] - class CQuickInfoWorkItem (1ms)
[General] [UI] - class CQuickInfoWorkItem (1ms)

[03/15/2011 @ 18:32:22.704] Quick Info : Success : 3 ms : class MyClass

 

The first thing to help understand IntelliSense operations is to note the ">>" character, which indicates the IntelliSense engine has placed an item on the worker queue. For the case of QuickInfo, the work is called "CQuickInfoWorkItem". In this scenario, you can see it took 1ms for the QuickInfo workitem to be created and queued, and an additional 3ms for this item to be pulled off the queue, processed, and the result returned. (This was nearly instantaneous because a preparse for this translation unit had already been built.)

The most helpful part of an IntelliSense log is usually looking at the translation unit the IntelliSense compiler has chosen to satisfy your IntelliSense request. If the IntelliSense compiler is loading this TU for the first time, you will also get output that indicates the command-line options this file is being compiled with, which can sometimes be helpful in diagnosing problems, especially the /Fp parameter (which indicates where the ipch for this file is located).

Note that, in the case of Goto-Definition, because the compiler will probably need to compile multiple translation units in order to provide an answer, you may see multiple "Translation unit:" info statements for a single operation. (Also, if you have red squiggles on, you will see an additional workitem fired off as a result of navigating to a new source file, in order to check for compilation errors.)

 

Performance Mitigations in Visual Studio 2010 SP1

We have added three improvements/mitigations in Visual Studio 2010 SP1 that are designed to provide an improved IntelliSense experience. These are:

  1. Improved database queries resulting in better class view performance
  2. Long-running Goto-Definition operations now have a cancel dialog
  3. IntelliSense PCH will be created even if there are errors in the header

Of these improvements, the third should give the most immediate benefit to our users. Previously, we would only create an iPCH file if the PCH header compiled without any errors. In some scenarios (especially with non-x86 code) it was impossible to get the PCH header completely error-free, resulting in very poor IntelliSense performance, as the preparse could not take advantage of PCH speedups. (This was most noticeable during Goto-Definition, when it was more likely that the 'target' TU did not previously have a preparse created.)

With this feature, we have added a few special diagnostics in cases where we were still unable to generate an iPCH. These are mostly the result of project misconfigurations, missing files, and other such catastrophic errors. The text of the error should say something like "An IntelliSense PCH file was not generated." If you see these diagnostics in SP1, it is almost certain you will suffer poor IntelliSense performance until the error in the diagnostic is resolved.

 

Getting additional help

I am always interested in hearing specific feedback about poor IntelliSense performance. My hope is that with the additional diagnostic information provided in this blog post, you can help us pinpoint the performance issues you are having, which component the issues are coming from, and get closer to the actual root cause of the issues. Supplying this additional information (as much as is available) in your connect bug will help us to understand and address these problems.

Thanks!

Andy Rich
Visual C++ QA

SilverlightShow for March 21-27, 2011

Posted: 29 Mar 2011 07:17 AM PDT

Check out the Top Five most popular news at SilverlightShow for March 21-27, 2011. Here are the top 5 news on SilverlightShow for last week: Silverlight 4 MVVM Validation using INotifyDataErrorInfo A Pluggable Architecture for Building Silverlight Applications...( read more )...(read more)

Developer’s Guide to Microsoft Prism 4

Posted: 29 Mar 2011 03:56 AM PDT

Borrowing the content from Karl's original blog post – there's a new book on Prism available from O'Reilly or Amazon with an eBook on its way and the MSDN materials here What's In The Book? Prism helps you to design and build flexible and maintainable...( read more )...(read more)

Silverlight in the Azure cloud - Part 1

Posted: 28 Mar 2011 09:52 PM PDT

Don't miss... Webinar recording: Switching on the Cloud for Silverlight Gill's series on getting prepared for Silverlight Exam SL4 Business App Development book: Show more books Cloud computing is a hot topic nowadays. The ability to have access to an...( read more )...(read more)

Phoney Tools v0.7 Released

Posted: 28 Mar 2011 08:38 PM PDT

URL : http://phoney.codeplex.com We're marching towards MIX11 and the Phoney Tools will be ready. The new version is now available that includes a couple of new features and a few bug fixes. The changes include: InputPanelProvider I find it painful to...( read more )...(read more)

Silverlight Cream for March 28, 2011 -- #1067

Posted: 28 Mar 2011 09:49 PM PDT

In this Issue: Michael Washington , Michael Crump , Alex Knight , Benjamin Roux , Nigel Sampson , and Jeff Prosise ( -2- ). Above the Fold: Silverlight: "[Silverlight] How to watermark a WriteableBitmap with a text" Benjamin Roux WP7: "My 10 tips for...( read more )...(read more)

Webinar : Establish a Workflow for Live Smooth Streaming with Expression Encoder and IIS

Posted: 28 Mar 2011 01:07 PM PDT

Do you want to deliver live video that can adapt to changing network conditions in real time? Would you like to easily broadcast live feeds to multiple screens, including iOS devices? If the answer to those questions is yes, please join us at StreamingMedia...( read more )...(read more)

Monday, March 28, 2011

Producing and Consuming OData in a Silverlight and Windows Phone 7 application (Part 2)

Producing and Consuming OData in a Silverlight and Windows Phone 7 application (Part 2)


Producing and Consuming OData in a Silverlight and Windows Phone 7 application (Part 2)

Posted: 27 Mar 2011 05:13 PM PDT

This article is Part 2 of the series "Producing and Consuming OData in a Silverlight and Windows Phone 7 application." Producing and Consuming OData in a Silverlight and Windows Phone 7 application. (Part 1) – Creating our first OData...( read more )...(read more)

Silverlight Cream for March 27, 2011 -- #1066

Posted: 27 Mar 2011 10:30 PM PDT

In this Issue: Michael Wolf , Colin Eberhardt , Kunal Chowdhury , Benjamin Roux , Nigel Sampson ( -2- ), Jeff Prosise ( -2- ), Jeremy Likness , and Beth Massi . Above the Fold: Silverlight: "Useful Value Converters" Nigel Sampson WP7: "A Smarter TextBlock...( read more )...(read more)

Sunday, March 27, 2011

Razor tooling for MVC3 RC with Visual Studio 2010 Sp1 RTM

Razor tooling for MVC3 RC with Visual Studio 2010 Sp1 RTM


Razor tooling for MVC3 RC with Visual Studio 2010 Sp1 RTM

Posted: 24 Mar 2011 03:53 PM PDT

Do you see that Razor colorization, intellisense has stopped working after you have installed Visual Studio Sp1 RTM? The reason is that you might have MVC3 RC installed on the box which is not compatible with Visual Studio 2010 Sp1 RTM. To fix, you would need to install MVC3 RTM. Following are the details of the issue. What's the issue? Razor intellisense/colorization stops working after installing Visual Studio 2010 RTM You might have MVC 3 RC with VS 2010 RTM that's causing it. How do I check which version of MVC3 do I have? Simple way to check is to verify that the version of ProgramFiles\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll is 3.0.20105.0 If it's not then most likely you have an older MVC3 build...(read more)

Saturday, March 26, 2011

The Visual C++ Weekly Vol. 1 Issue 13 (Mar 26, 2011)

The Visual C++ Weekly Vol. 1 Issue 13 (Mar 26, 2011)


The Visual C++ Weekly Vol. 1 Issue 13 (Mar 26, 2011)

Posted: 26 Mar 2011 12:00 PM PDT

Read in this issue0:

  • [Herb Sutter] C++0x: We Have Final Draft International Standard!
  • [Parallel Patterns Library] Building Responsive GUI Applications with PPL Tasks
  • [C++ MVP Giovanni Dicanio] Text-to-Speech in C++
  • [Danny Kalev] Detecting Memory Leaks to Improve Performance
  • [C++ MVP Giovanni Dicanio] Checked Iterators
  • [Windows Development] Using Services

Silverlight Cream for March 25, 2011 -- #1065

Posted: 25 Mar 2011 09:42 PM PDT

In this Issue: Pontus Wittenmark , Vikram Pendse , Paul Sheriff , Nokola , Peter Kuhn , Jesse Liberty , and WindowsPhoneGeek . Above the Fold: Silverlight: "That Time App" Pontus Wittenmark WP7: "New Fantasia Painter, Windows Phone 7 Source Code Pack...( read more )...(read more)

Jeff Wilcox’s “Metro” design guide for developers, v1.00

Posted: 25 Mar 2011 08:28 PM PDT

Here's my developer's guide to improving the design of your Windows Phone apps. Let's make our apps look great!...( read more )...(read more)

New Book Available: Developer’s Guide to Microsoft Prism 4

Posted: 25 Mar 2011 04:57 PM PDT

Last fall patterns & practices shipped Prism 4.   Today we are announcing the availability of the "Developer's Guide to Microsoft Prism 4" book.   This book is available from O'Reilly or Amazon.   The eBook will be available for...( read more )...(read more)

Friday, March 25, 2011

Silverlight Show: Recording of webinar 'Switching on the Cloud for Silverlight' by Gill Cleeren

Silverlight Show: Recording of webinar 'Switching on the Cloud for Silverlight' by Gill Cleeren


Silverlight Show: Recording of webinar 'Switching on the Cloud for Silverlight' by Gill Cleeren

Posted: 25 Mar 2011 01:49 PM PDT

Silverlight Webinar: In this episode of Silverlight Show, Microsoft Regional Director Gill Cleeren presents 'Switching on the Cloud for Silverlight'. In this recorded webinar Gill discusses the following topics: 1.     Parts of Windows...( read more )...(read more)

SQL Azure Migration Wizard v3.6

Posted: 31 Aug 2009 02:23 PM PDT

SQL Azure Migration Wizard (SQLAzureMW) is designed to help you migrate your SQL Server 2005/2008 databases to SQL Azure. SQLAzureMW will analyze your source database for compatibility issues and allow you to fully or partially migrate your database schema and data to SQL Azure.

Interview with Eco Contest Community Vote Winner Alex Sorokoletov

Posted: 24 Mar 2011 06:52 PM PDT

Q. Hi Alex. Congratulations on winning the Community Vote Prize in our Eco Contest, with your application ' GreenLance – Freelance for Nature '! Please introduce yourself to the community at SilverlightShow – your country, job...( read more )...(read more)

XNA for Silverlight developers: Part 8 - Music and sound effects

Posted: 24 Mar 2011 03:00 PM PDT

Don't miss... What is Windows Phone series XNA article by Levente Mihály WP7 series by Andrea Boschin WP7 and XNA book: Show more books This article is part 8 of the series "XNA for Silverlight developers": XNA for Silverlight developers: Part...( read more )...(read more)

Silverlight Cream for March 24, 2011 -- #1064

Posted: 24 Mar 2011 09:11 PM PDT

In this Issue: Roy Dallal , Mike Snow , Jesse Liberty , Chris Koenig , John Papa , Jeremy Likness , Michael Crump , Chris Rouw , and Beth Massi . Above the Fold: Silverlight: "Clean Design-Time Friendly ViewModels: A Walkthrough" Jeremy Likness WP7: ...( read more )...(read more)

Come Demo your Cool Robotics, Microcontroller, or other Hardware Hacking at MADExpo

Posted: 24 Mar 2011 03:07 PM PDT

The mid-Atlantic community has come together to create an awesome developer-oriented family event for June 30 and July 1, 2011: the Mid Atlantic Developer Expo. Yes, I said family-oriented. We'll have a great expo area with demos of interesting hardware...( read more )...(read more)

Come Demo your Cool Robotics, Microcontroller, or other Hardware Hacking at MADExpo

Posted: 24 Mar 2011 03:07 PM PDT

The mid-Atlantic community has come together to create an awesome developer-oriented family event for June 30 and July 1, 2011: the Mid Atlantic Developer Expo. Yes, I said family-oriented. We'll have a great expo area with demos of interesting hardware...( read more )...(read more)

Thursday, March 24, 2011

My MVVM talk’s material is online (#uktechdays)

My MVVM talk’s material is online (#uktechdays)


My MVVM talk’s material is online (#uktechdays)

Posted: 24 Mar 2011 11:35 AM PDT

Quick announcement: I just had the extreme pleasure to talk at the UK TechDays online conference (organized over LiveMeeting) and had about 100 persons in the session, thanks to all for allowing me to talk to you about MVVM! I just pushed the whole sample...( read more )...(read more)

Silverlight TV 67: Bill Buxton Talks about Speed Dating at MIX11

Posted: 24 Mar 2011 09:40 AM PDT

Silverlight TV 67: Recently, UX legend Bill Buxton was in town and stopped by to share what he's been up to. In this week's episode of SLTV, Bill discusses how integrated devices with things that "just work together," UX, and touch might all...( read more )...(read more)

MIX11

Posted: 24 Mar 2011 01:44 AM PDT

This year (3rd or 4th time in row) I'm attending MIX11 conference in Las Vegas. The conference takes place at Mandaly Bay Hotel April 12-14, 2011. The pre-conference boot camps are taking place April 11. If you want to meet and/or ask some Silverlight...( read more )...(read more)

Producing and Consuming OData in a Silverlight and Windows Phone 7 application (Part 1)

Posted: 23 Mar 2011 03:00 PM PDT

This article is Part 1 of the series "Producing and Consuming OData in a Silverlight and Windows Phone 7 application." Producing and Consuming OData in a Silverlight and Windows Phone 7 application. (Part 1) – Creating our first OData...( read more )...(read more)

StringHelper SQL Server CLR

Posted: 23 Mar 2011 07:42 PM PDT

StringHelper SQL Server CLR provides a collection of CLR stored procedures and functions useful for manipulating and interacting with string data. Using these stored procedures and functions will allow you to bring the flexibility of .NET into the database.

Visual C++ Most Valuable Professionals (II)

Posted: 24 Mar 2011 09:00 AM PDT

From left to right: Hernández, Naughter, Serface and JiangA few days ago we posted a video where C++ MVP Kate Gregory talked about her community distinction, her motivations, thoughts about the role C++ plays in these days of computer programming, etc.

Charles Torre, our interviewer in Channel 9, kept talking with other Visual C++ Most Valuable Professionals (MVPs). In this second part, you'll meet Ángel Hernández (Australia), PJ Naughter (Ireland), Tom Serface (United States) and Sheng Jiang (United States), this last one recently nominated MVP of the Year for his labor answering questions in our C++ Forums in MSDN (congratulations and thank you, Sheng!!).

Different geographies. Different experiences. Different expertise. Different motivations. One common passion: to share their knowledge as C++ experts.

Hear their stories in Channel 9.

 

Thank you, Charles, once again.

IE9 and Network Capture for Diagnostics

Posted: 24 Mar 2011 02:29 AM PDT

Yesterday, I was doing a little work with Silverlight and I've got this little sample that I'm working on; and one of the things that it does it talk XML or JSON to a back-end service depending on the value of the ComboBox up in the top right hand area...( read more )...(read more)

Phone Tools v0.6 Released - Breaking Change!

Posted: 23 Mar 2011 12:44 PM PDT

URL : http://phoney.codeplex.com A new version of Phoney Tools is now available. There are some significant changes and some new code so go check it out! Breaking Changes In prior versions if you included PhoneyTools in your project you'd get the following...( read more )...(read more)

Getting Total Memory on Win7 Mobile Devices

Posted: 23 Mar 2011 01:37 PM PDT

One of the criteria for submitting an application to the Windows 7 Mobile Marketplace is to ensure your applications peak memory usage does not exceed 90 MB of RAM (except on devices with more than 256 MB of RAM). This can easily become the case especially...( read more )...(read more)