Multiple Monitors in Remote Desktop with Windows 7 Pro

The Best Laid Plans…

I’ve recently transitioned from working at home to working on-site at a client. The client did a great job of provisioning a nice desktop PC and large dual monitors. But one of the things I missed from my home office was my standing desk. To remedy this, I planned to bring in my laptop, set it up on a stand, and re-purpose one of the two monitors they provided so I could use Remote Desktop to connect to the desktop PC and still enjoy dual monitors…but there was a small wrinkle in my plan.

I’m Sorry Dave…

Sadly, sometimes the things you think will be easy turn out not to be, especially when it comes to computers. In this case, the problem was that the desktop PC I’m developing on is running Windows 7 Professional. This is fine for development, but unfortunately, Windows 7 Professional does not support multiple monitors when hosting an RDP session, even if the client OS (in my case Windows 10 Professional) does.

Unfortunately, I discovered this only after having brought my laptop stand (this Furinno Laptop Stand (affiliate link), which I picked up on sale at for around $40…you can get one from Amazon for around $45) in to the office, so I figured before admitting defeat, I should try to find a workaround.

Where There is a Will, There is a Way…

Turns out that while Windows 7 Professional doesn’t support multiple monitors as discrete monitors, it does support spanning multiple monitors, which you can enable by saving your remote desktop settings into a .rdp file, and edit that file, adding the line:

span monitors:i:1

to the file and save it. Then use that .rdp file to launch Remote Desktop.

RDP in VS Code
VS Code works great for .RDP files, too!

But that leads to another problem…with spanning enabled, any maximized windows will span both monitors, which is hardly optimal.

It’s a Snap!

The final piece of the puzzle is to leverage the Snap feature of Windows to snap each window to the left or right of the spanned monitor pair (note that this workaround is really only practical when using two monitors). Simply use the Windows key + left or Windows key + right to snap the active window to the monitor you want it on.

Getting Things Done…

The solution isn’t perfect, by any means. But as the old saying goes, “never let the perfect be the enemy of the good.”

If you want to use multiple monitors with Windows 7 Pro (or another host OS that does not support multiple monitors), give this workaround a try, and let me know how it works for you!

Community Megaphone and a Post-INETA Future

megaphone_trns2As I noted a few months ago, INETA North America is ceasing operations and wrapping up loose ends. As part of that wrap-up, the INETA board asked if I would be willing to help with community continuity through the website I created, Community Megaphone. The idea was for INETA to encourage folks on their mailing list to join a list I set up to discuss the future of Community Megaphone, and what kinds of features might help fill some of the gaps left behind by the end of INETA North America.

With this post, I’d also like to offer others in the developer community the same opportunity. You can join the mailing list, which is for the purpose of providing ongoing updates on the future plans for Community Megaphone. And if you don’t want to join a mailing list, but still want to provide feedback or ideas on features that would be useful for user group leaders, speakers, and attendees of developer community events, you can do so on the Community Megaphone Uservoice page, or the Feedback page on the Community Megaphone site.

I’m looking forward to the feedback of the community, and finding better ways to serve the developer community, and I hope you’ll share your feedback, too.

Learn You Node with VS Code

Node.js may not be the “new” hotness, but it’s still pretty hot, and getting hotter all the time. Whether you’re a .NET developer who’s still on the fence about JavaScript, or just haven’t gotten around to taking a look at Node, now is a pretty good time to do so, and in this post, I’ll show you a nice combination of tools that make learning Node easy and fun, namely and the new Visual Studio Code editor.

What is Node.js?

On the off chance that you’ve found your way here, but don’t know what Node.js is, Node.js (sometimes referred to simply as Node) is an execution environment for JavaScript code, based on the V8 JavaScript runtime from Chrome. It’s designed to be fast, lightweight, and efficient. You can use node to write server applications in JavaScript, from real-time chat apps, to web APIs, to full web applications. While Node itself is pretty simple, with a [limited, but want another word] API set, it ships with NPM, the node package manager, which provides a fast and easy way to install packages, which are collections of functionality wrapped up in such a way as to make them easy to add to your Node projects. Node packages are available to facilitate all kinds of applications, including MVC-style routing engines, template engines, unit testing and more.

Continue reading Learn You Node with VS Code

Of Developers and Dress Codes

From a posting by one of the folks I follow on Twitter (a former Microsoft co-worker), I saw this Business Insider story on HP apparently banning t-shirts (and other casual clothing) for certain teams within the company. The story asserts that “employees are furious.” The stated reasoning, which seems sensible enough to me, is that the company does not wish to risk customers being “put off” (BI’s words) by employees who are poorly or casually dressed.sneakers-1420706-500x375


Of course, much of the fury is almost certainly overblown by the original story in an attempt to generate traffic, so probably best to take it with a grain of salt for a slow news day.

Continue reading Of Developers and Dress Codes

The New Shiny: Is Visual Studio Code for You?

UPDATE: As of November 18th, Visual Studio Code has gone Beta, and been released as open source. If you want to check out the source, or contribute, you can find the repo at:

The beta release also adds support for extensions as well as many other new features. The full update list is here.


A day doesn’t go by lately without some new shiny toy being released for software developers to play with. A big challenge is deciding whether the new hotness is something you need to invest time in learning and using, or if it’s OK to let this particular popularity train pass you by. The recent release of the lightweight Visual Studio Code editor is no exception.

Visual Studio CodeIn this post, I’m going to help you make that decision, by discussing the advantages and disadvantages of this new tool. I’m coming at this from the perspective of someone for whom the full Visual Studio environment (Visual Studio 2013 Community, and sometimes Ultimate, depending on the project) is my day-to-day development tool of choice, so take that into account as you read.

Continue reading The New Shiny: Is Visual Studio Code for You?

Migrating from Orchard CMS to WordPress using Windows Live Writer

OrchardLogo_200x200For the last 4 years or so, I’ve been hosting my blog/site using Orchard CMS. Orchard has been a pretty good platform. It offers a great deal of customization and extensibility points, and for .NET developers it can be a nice place to start for building an application. Unfortunately, whether because of my own customizations or some other reason, I ended up stuck on an older version of Orchard, and despite many hours of trying, could not get the site updated to a newer version. So I decided to move the site to the WordPress platform. Continue reading Migrating from Orchard CMS to WordPress using Windows Live Writer

RSS Feed Updated

Just a quick heads-up for folks who have subscribed to my blog’s feed via my old Feedburner URL…I recently moved my blog to a new hosting platform, and in the process I have decided to discontinue the use of Feedburner for my feed. If you wish to continue receiving updates via RSS, please change your feed reader subscription to point to Apologies for any inconvenience.

Sometimes it’s the Simple Things

Hi, my name is Andrew, and I have a problem. I sometimes overthink things…just a bit. If you share that tendency you may, like me, instinctively greet any issue you run into as an opportunity for deep analysis and troubleshooting, which may not always be the place to start.

Overthinking in Action

A case in point. I’ve been working on a project that uses Crystal Reports (yes, plenty of people still use that) in an ASP.NET Web Forms app to generate reports for a non-profit. I was tasked with creating several new reports, which was a pretty straightforward task, and seemed to be going smoothly, when I went to test the PDF version of a given report and the report viewer simply returned a bunch of gobbledygook text in the browser.

Given that I had been making modifications to the code, I assumed that I must have changed something and broken the PDF reporting, though given the changes I’d made (which didn’t have anything to do with report rendering) I couldn’t imagine what. So I dutifully pored over the report rendering code, making sure it was sending the right MIME type, stepped through in the debugger, etc. Given that the application saved the PDFs to a temp directory before rendering, I also tried copying them over to another machine and opening them, and verified that the PDFs themselves were perfectly fine. Which left me feeling something like this:

In all, I probably spent at least a half hour or so trying to chase down the problem, only to realize that the answer was quite simple. The VM in which I was working had no PDF reader installed, so naturally, there was nothing to render the PDF in the browser, or allow me to save it.

Once I installed Adobe Reader (which gets ever harder to do without installing a bunch of unwanted crapware, but that’s a topic for another post), the reports rendered fine. Problem solved.


I’m a fan of Sherlock Holmes, and in particular the oft-repeated quote:

“…when you have eliminated the impossible, whatever remains, however improbable, must be the truth.”

In the case of troubleshooting code, I’d go even further. Sometimes you need to eliminate the improbable and start with the simple things. Check those things first, and then once you’ve eliminated the simple, move on to more complex and time-consuming troubleshooting steps.

Also, don’t assume that just because you’ve touched something in a project, anything that isn’t working is your fault. This is particularly true of code someone else originally wrote. Such code may have multiple issues that are known to the users and the original developer, but which may not have been shared with you.

Have you ever encountered an issue that turned out to be much simpler than you initially assumed? Share your story in the comments below!

The End of An Era – INETA Shutting Down

[Update – I will likely continue to update this post periodically to include names and facts that I, in my imperfect memory, did not originally include, as they are brought to my attention or I find them through other posts. Please drop me a note if you know someone who deserves credit here that I missed. Thanks!]

I received an email this morning announcing that INETA, after more than a decade of supporting .NET user groups, sponsoring speakers for those groups, and more, will be ceasing operations at the end of 2015.


INETA was started back in the early 2000s, at the outset of the .NET developer community, as an organization to foster community-led user groups, and help them grow. It was also instrumental in the career growth of many folks in the community, myself included. The founding board members of INETA were Bill Evjen, Keith Pleas, Dave Noderer, Keith Franklin and Brian Loesgen. [Thanks to Julie Lerman for helping refresh my memory on the history of INETA’s founding]

Continue reading The End of An Era – INETA Shutting Down

Microsoft Maniacs – Zero To Web – Slides and Code

Last night, I had the opportunity to present to the Microsoft Maniacs meetup in Sterling, VA. I want to thank everyone who attended, and share my slides and code. The slides are embedded above, and also included in the Github repo for my presentation, which is linked below.

Continue reading Microsoft Maniacs – Zero To Web – Slides and Code