The opinions expressed in these materials are my own and are not necessarily those of Microsoft.
Copyright © Microsoft Corporation. All rights reserved. Unless otherwise indicated, all source code provided is licensed under the Microsoft Public License (Ms-PL).
Did you know as an MSDN subscriber of any level you have access to a personal online valet of sorts? It’s called the MSDN Online Chat which is totally misleading in my opinion. I prefer to call it the “Online Concierge” as that is more in-line with what the service does.
Okay so what DOES this service do? Well let’s start by being clear about what they do NOT do: they are not, repeat, are NOT technical support. Period. We have technical support avenues but this is not one of them. What this service does is look up information for you so you can continue to work on other things. The best way to show you is by example, so here we go…
I recently did a post about the new VS2012 Update 1 and wanted some additional links. I was also busy working on some midyear performance review items so decided to let the concierge handle finding the info. Below are the steps you would follow to do the same thing I did.
To get started, you go to the main MSDN site (http://msdn.microsoft.com) and click on the link to access your benefits:
At the bottom of the list of benefits you will see the MSDN Online Chat:
I want to reemphasize that THIS IS NOT TECHNICAL SUPPORT. These folks are paid to be your research assistants as you can see by the description and/or answer MSDN benefits questions. In this case I got “Harrison” and asked him about documentation on VS2012 Update 1:
Below is the rest of the transcript, that I had emailed to me from the chat window, from the conversation verbatim with extra space, some commentary, and emphasis added:
info: Please wait for an agent to respond. You are currently '1' in the queue. info: Privacy Statement
You are now chatting with 'Harrison'.
Harrison: Thank you Zain for contacting the MSDN Online Concierge. How may I assist you today? Zain Naboulsi: hello harrison, can you tell me where to find information on Visual Studio 2012 Update 1?
Harrison: Thank you for your inquiry. Let me provide you the download link, Zain. Just one moment please.
[ZN: I wanted to simulate having to run off to lunch or go to a meeting or something here to show how awesome they are. They will do the research and email you the result later on.] Zain Naboulsi: I need to jump off can you email it to me?
Harrison: Sure, may I know if you are referring to the Visual Studio Team Foundation Server 2012 with Update 1? Zain Naboulsi: Nope just want the list of bug fixes and new features in Visual Studio 2012 Update 1
[ZN: Highlighted below is the standard disclaimer you will usually get when doing one of these sessions. They are great helpers and research assistants but they are NOT TECHNICAL SUPPORT. Not sure if I mentioned that 100 times already or not but wanted to be clear] Harrison: Thanks for your clarification. I will see if I can help to find some documentation that will point you to the right direction. However please understand that we are not technical professionals, and if we are unable to locate anything specific for your concern, I can also provide you some other support options. May I know if that's OK for you? Zain Naboulsi: sounds good :)
Harrison: Thank you for your understanding. May I know your preferred email address please? Zain Naboulsi: firstname.lastname@example.org
Harrison: Thank you. I will send it to you later after my researching, Zain. May I know if there is anything else I can help you with at this time? Zain Naboulsi: that should do it, thanks for your help :)
Harrison: My pleasure. If you have any further concern, please feel free to come back again. We are open 24 hours a day, seven days a week. Harrison: Take care and bye for now. Harrison: Have a nice day. info: Your chat transcript will be sent to email@example.com at the end of your chat.
And there you have it! I’ll bet twenty bajillion dollars that you didn’t know about this benefit already. Most people don’t so don’t feel bad. These folks are available 24/7 so take advantage of your new research assistants to help you find things out!
I was originally going to name this article something like “MSDN Forums: What you need to know,” but quickly realized that most people wouldn’t read it because they think they already know everything about the online forums…
Sadly they are mistaken.
Did you know that, as an MSDN Subscriber, you get priority support on the MSDN Forums? In fact, all MSDN subscription levels get this option. You can find this features mentioned under “Additional Benefits” here:
Specifically this is what we say (with highlighting added by me):
MSDN subscribers now benefit from priority support in MSDN Forums. A Microsoft engineer will respond within 2 business days to your posting if the community hasn't already gotten you the answer. MSDN Forums are a very active community and a great place to both get help and help others.
To receive priority support in the MSDN Forums designated below, please make sure to sign in with the same Microsoft account you use to access your other subscription benefits; no special configuration is needed.
So that begs the question: How do I take advantage of this?
There are a number of ways to get to the MSDN Forums but, once you are there, you will most likely favorite the ones you like the most. The way I’m going to take you may be the longer way but it will also show you where to see other benefits you may have been missing.
1. Go to the MSDN main site. At the time of writing, you can find it here: http://msdn.microsoft.com/
2. Find the link to access your benefits. Unfortunately, they tend to change the location of the link but the link itself always says “Access benefits” somewhere. Here is what it looks like currently:
3. When you select the link you will see a list of benefits you can take advantage of as a subscriber. Take a minute and familiarize yourself with the benefits you may not know about already. I’ll be doing another post on the Online Chat benefit later on. For now notice the entry for the MSDN forums:
4. Select the link to go to the forums and you will see something like this:
5. Pick the forum(s) of your choice and post your questions as needed.
That’s it! The key here is that, no matter what, your question will be answered in 2 business days or less by someone--guaranteed. Make sure to take advantage of this great feature.
In my last post I wrote about installation and the list of bug fixes in Update 1:
In this post I’ll just re-show the new features mentioned in the KB article found here:
In later posts I’ll show more of these in detail and explore them like I usually do for new features. So, with all that said, here are the new features introduced in Update 1:
This feature can change and access data, and provides a rich analysis experience for SharePoint applications.
These tests simulate user interaction and validate the functionality and behavior of an application’s UI.
Web performance testing on SharePoint solutions can verify performance. The tests can be recorded, and then run and analyzed against the SharePoint solutions.
This feature enables stress testing of a SharePoint application. It can simulate high user loads, different network topologies, and some other conditions.
SharePoint emulators provide a Microsoft Fakes framework. The framework enables developers to write unit tests that stub-out the required SharePoint dependencies.
You can target Windows XP by using Visual Studio’s C++ multi-targeting feature. This feature enables you to use the Microsoft Visual Studio 2010 compiler in Visual Studio 2012.
You can add references to C++ Windows Store executables and custom Extensible Application Markup Language (XAML) controls in your C++ Windows Store unit test libraries.
You can debug dump files of native C++ apps from ARM-based computers and devices with the same dump-debugging functionality that you are accustomed to on x86-based or x64-based computers.
Kanban support improves teams’ existing processes. It sits alongside the existing task boards, and offers a new range of project-tracking options: a Kanban board with fully-customizable work in process (WIP) limits, and a cumulative flow diagram to clearly show the team’s delivery of value over time.
Testers can now know how much of the application code is being covered by test cases executed within MTM, and developers can now know whether their code is being accessed by the application and is a valid test case.
You can use coded UI tests help automate browser based applications that are built on Internet Explorer, Firefox and Chrome.
You can now organize and filter the test runs based on several conditions in Test Explorer. Traits is a new concept, a common denominator for several underlying terms: Test Category, Test Property, Priority, and Owner.
Work item forms now support "Next" and "Previous" buttons in TFS Web Access.
You can watch three new videos that show how to use Code Map, new SharePoint development features, and many of the new improvements for testing applications.
Code analysis rules are tuned to reduce the quantity of false warnings.
This post is a bit overdue but better late than never. So let’s talk about Visual Studio Update 1…
Soma originally introduced Update 1 in his November 26th post here:
Since some of you may want to install this update immediately there are a few options for you.
From inside the IDE, go to Tools | Extensions and Updates:
Then look under the updates section and install from there:
If you want a more direct route you can click this link: http://go.microsoft.com/?linkid=9821199
You will get this dialog and can just click Run to execute the small .EXE and begin the online install:
Although many believe you can only install via online resources this is actually not true. A quick look at vsupdate_KB2707250.exe /? shows us the /layout switch:
So when I run vsupdate_KB2707250.exe /layout c:\ziptemp\vsup1 on my system this is the dialog I get:
This will download the source files to the designated location so you can make them available on a network share, thumb drive, or other media for stand-alone installation.
The most obvious question is, “Why should I care?” Despite the bug fixes and new features, this particular update represents a major shift in the timing for delivery. We have now committed to a shorter update cycle so we can deliver critical fixes and incorporate new features more quickly. What this means for you in real terms is that blocking issues may be resolved much more quickly and/or you will get a new feature that will help you get work done better/faster/stronger.
So what exactly did we deliver? Fundamentally there were two things we provided: Bug Fixes and New Features. You can find all the details here:
I’m going to repeat the bug fixes here and then address the new features in another article right after this one.
After an extended period of time looking for the list of bug fixes included in the package I was initially unable to find a comprehensive list anywhere. It looks like the team recognized there was a gap and updated the KB article on 1/13 to include all the relevant information. I’ll just repeat the information here verbatim for convenience.
On my journey to keep you better informed I will throw in information as I get it sometimes. Just to be clear I’m not an expert on licensing so you should always consult a licensing specialist before making any decisions. Now that I’ve got the CYA done; there was a pretty cool update to the MSDN licensing recently. Here is the summary from more knowledgeable folks than me:
Two new use rights were added to MSDN subscription use terms on January 1, 2013. In addition to the existing use rights, MSDN subscribers now have the right to use the software for evaluation and to use the software to replicate a customer environment for diagnosing issues.
1. Evaluation use rights were added to enable MSDN subscription use rights to be a superset of the use rights offered in TechNet subscriptions, and to make it easier for MSDN subscribers to evaluate the software, no longer needing to download trial versions for this purpose.
2. The right to replicate a customer environment was made to enable use of the MSDN software by support staff in non-production environments, even when they aren’t technically developing or testing the software when performing this support. A typical scenario is when a customer calls in for support and the front-line agent escalates the issue to a support engineer to troubleshoot.
The second item is the most compelling. Assuming the support engineer has an MSDN subscription, they can use MSDN to replicate the customer’s environment. If you’ve been doing this already you are now legal and if you haven’t been doing this then you should definitely make a decision about using this feature. If you want to know the specific area that was changed in the license agreement here is the verbiage from the Product Use Rights with highlighting of the added pieces:
You have the rights below for each license you acquire.
1. You must assign each license to a single user.
2. Each Licensed User may run an unlimited number of copies of the software and any prior version on any device.
3. For MSDN and TechNet subscriptions, the “software” means what is made available to your subscription level via MSDN and TechNet Subscriber Downloads.
4. The Licensed User may use the software for evaluation and to design, develop, test, and demonstrate your programs. These rights include the use of the software to simulate an end user environment to diagnose issues related to your programs.
5. The software is not licensed for use in a production environment.
6. Additional rights provided in license terms included with the software are additive to these product use rights, provided that there is no conflict with these product use rights, except for superseding use terms outlined below.
I often advocate using virtual machines and, in particular, Brian Keller’s VM for getting up to speed on our latest TFS changes. While I’m not sure about your usage, I often run these VM’s as long as possible but sometimes run up against the end of the trial period for TFS. I ran across this article from Brian Harry he wrote a while back about extending the trial period and thought I would share.
For TFS 2010, 2012, and later the procedure can be found here:
For TFS 2005 and 2008 the process for extending the trial period can be found here:
It’s been a while since I have blogged and have a lot of catching up to do. Look for for updates, new tips, and much more over the next year. To get the ball rolling I wanted to start with something lighter. I was watching episode 10 of Elementary [http://en.wikipedia.org/wiki/Elementary_(TV_series)] and they mentioned a language called Malbolge. I’ve been coding for a long time but never heard of this language so decided to do some research. Apparently there is a major group of programming language I haven’t been exposed to: Esoteric Languages. I thought I would show some of these to folks who may have never seen them.
So what IS an esoteric language? Here is how Wikipedia defines them:
“An esoteric programming language (sometimes shortened to esolang) is a programming language designed to test the boundaries of computer programming language design, as a proof of concept, or as a joke. The use of esoteric distinguishes these languages from programming languages that working developers use to write software. Usually, an esolang's creators do not intend the language to be used for mainstream programming, although some esoteric features, such as visuospatial syntax, have inspired practical applications in the arts. Such languages are often popular among hackers and hobbyists.
Usability is rarely a goal for esoteric programming language designers—often it is quite the opposite. Their usual aim is to remove or replace conventional language features while still maintaining a language that is Turing-complete, or even one for which the computational class is unknown.”
There is a thriving community of esolang people out there. The best place to start if you are interested in digging deeper would probably be the Esolang Wiki found here:
The language list at the Esolang Wiki is as complete as I have seen anywhere in my research: http://esolangs.org/wiki/Language_list
Interestingly, they separate general esoteric languages from joke esoteric languages with the distinction that joke languages “are not of any interest except for potential humor value. Generally speaking, they are completely unusable for programming even in theory, trivial and less interesting variations on existing esoteric languages, or too underspecified to determine any potential usability.” [http://esolangs.org/wiki/Joke_language_list]
Let’s take a look as some of the more interesting languages in the large list of esolangs.
Malbolge, was invented by Ben Olmstead in 1998, is an esoteric programming language designed to be as difficult to program in as possible. Seriously, that was the goal. It is modeled as a virtual machine based on ternary digits.
Below is the code for printing “Hello World!” (without the quotes of course) in Malbolge:
Created in 2003 by Edwin Brady and Chris Morris, Whitespace is an esoteric programming language that uses only whitespace as syntax. Everything other than spaces, tabs, or linefeeds is ignored. Below if a form of Hello World with highlighting of whitespace turned on for clarity.
Velato is a language which uses MIDI files as source code. Programs in Velato are defined by the pitch and order of notes. It is intended to allow for flexibility in composition, so functional programs will not necessarily sound like random notes. There is a tendency for Velato programs to have jazz-like harmonies.
Here is an example of Hello World in Velatio in sheet music format:
One of my favorites. LOLCODE is an esoteric programming language inspired by the language expressed in examples of the lolcat Internet meme. The language was created in 2007 by Adam Lindsay, researcher at the Computing Department of Lancaster University.
Here is an example of Hello World in LOLCODE http://esolangs.org/wiki/Hello_world_program_in_esoteric_languages#LOLCODE:
CAN HAS STDIO?
VISIBLE "HAI WORLD!"
Interestingly there was a .NET complier for LOLCODE made back in 2007 that can still be found here: http://code.google.com/p/lolcode-dot-net/
DNA# is an esoteric programming language which is based on the schematic structure of the DNA molecule and was invented 2009 by User: Benni++ at the Esolang Wiki.
Check out this snippet from the Hello World example of DNA# (NOTE: the original was pretty long so I just opted for a shortened version):
Piet is an esoteric programming language in which programs look like abstract paintings. It uses 20 colors, of which 18 are related cyclically through a lightness cycle and a hue cycle. A single stack is used for data storage, together with some unusual operations. Piet was invented by David Morgan-Mar and is named after geometric abstract art pioneer Piet Mondrian.
Hello World in Piet is pretty cool, check this out:
Well, I hope you enjoyed these esoteric languages as much as I did. There is some seriously messed up stuff here and we have only scratched the surface. As an honorable mention you should probably look at brainf**k which not only has a cool name but is one of the more famous esolangs around: http://bit.ly/2cxjWL
Look for some “catch up” articles to follow this one and then a new series or two to come after that. Keep me honest (as some of you already have) and ping me when I don’t get an article out on the usual Tues/Thurs schedule.
I’m finally happy to announce we have just released the Visual Source Safe Upgrade Tool for Team Foundation Server today!
This tool will make it easier to convert from Source Safe to Team Foundation Server. I have a lot of customers who want to get off Source Safe and start leveraging more than just source control. If you use Source Safe today, you need this tool! Here is the main text from the site:
The VSS Upgrade tool provides a Wizard Based UI for upgrading Visual Source Safe repositories to Team Foundation Server 2012, 2010 or Team Foundation Service (http://tfs.visualstudio.com/)
You and your team can enjoy many benefits by upgrading your code projects, files, version history, labels, and user information from Visual SourceSafe to Team Foundation Server (TFS) version control. TFS version control is a modern version control system that is fully integrated with the suite of ALM tools in Visual Studio 2012 and Team Foundation Server.
In case you haven’t heard yet, we have announced the RTM of our Team Foundation Service. Our long-term vision is to have up to 5 users free at all times and then some pricing model for over 5 users. Currently it is all free to my knowledge. Here is a blurb from the main site:
Plan projects, collaborate with your team, and manage your code online from anywhere.
Check your code directly into the cloud using Visual Studio or Eclipse. Manage work items and bugs in Internet Explorer, Chrome, or Safari.
Check it out here:
Symbols are vital to the overall debugging effort. Most of the time we take them for granted since they are auto-generated for our applications but we hit a brick wall when we try to work with something where debug symbols aren’t available. I thought it would be a good idea to remind folks where they can find information on what symbols are and how you can set up access to symbols on a symbol server. You can find our great guide for setting up symbols here:
Here is an excerpt from the Introduction to Symbols section:
When applications, libraries, drivers, or operating systems are linked, the linker that creates the .exe and .dll files also creates a number of additional files known as symbol files.
Symbol files hold a variety of data which are not actually needed when running the binaries, but which could be very useful in the debugging process.
Typically, symbol files might contain:
Function names and the addresses of their entry points
Frame pointer omission (FPO) records
Each of these items is called, individually, a symbol. For example, a single symbol file Myprogram.pdb might contain several hundred symbols, including global variables and function names and hundreds of local variables. Often, software companies release two versions of each symbol file: a full symbol file containing both public symbols and private symbols, and a reduced (stripped) file containing only public symbols. For details, see Public and Private Symbols.
When debugging, you must make sure that the debugger can access the symbol files that are associated with the target you are debugging. Both live debugging and debugging crash dump files require symbols. You must obtain the proper symbols for the code that you wish to debug, and load these symbols into the debugger.