Friday, November 23, 2012

Branching Guidance in a VSIX Box (with source)... "Visual Studio Extension to support the ALM Rangers Branching and Merging guidance"

Visual Studio ALM + Team Foundation Server Blog - Quick Response Sample – Visual Studio Extension to support the ALM Rangers Branching and Merging guidance

Quick Response samples provide information directly from Visual Studio ALM Rangers working with the Microsoft Visual Studio Product Group and Microsoft Services, in response to feature gaps to supplement the product and knowledge base information.

Issue

It is not simple to implement a consistent branching model, that complies with the VS TFS Branching and Merging Guide. Ultimately you would want support for this inside Visual Studio.

Resolution

Team Foundation Server has extensive support for version control and branching management through the object model. You can create your own solution, using the sample Visual Studio Extension, in the Quick Response download package. For an overview see the Quick Reference Sheet, which is also included in the sample code package.

...

SNAGHTMLfe1d06b

image

SNAGHTMLfe28661

Besides making the creation of a consistent and branch friendly source control hives (which as a dev with a day job makes me smile), the best thing is that the source for all this is available too (Quick Response Sample Solutions).

image

Here's a snap of the Quick Reference card for this QRS,

image

 

Related Past Post XRef:
Branching and Merging Guide v2 for Visual Studio 2012 RTM has RTW'd
Visual Studio Team Foundation Server Branching and Merging Guide, v2 [Beta] for Visual Studio 11 released

Visual Studio TFS Branching Guide 2010, aka Team Foundation Server Branching Guide III, released (by guess who? Yep,the ALM Rangers…)
Team Foundation Server Branching Guidance v2 Released
Branching Guidance on CodePlex

Windows Phone 8 API QuickStart Poster

IT Connection Manager - Windows Phone 8 API Mapping Poster

Find the Windows Phone API Quick Start Here [GD: Post leached in full... which would be hard to no do since there was only the one sentence... ;]

I picked up one of these 20" x 26" posters at //build/ 2012 and not only did it survive packing and the flight home, but is actually up on my wall... (You know how that goes, you grab tons of stuff at conferences, but how much of that stuff gets unpacked and used when you get home? )

SNAGHTMLfd85ab0

Wednesday, November 21, 2012

Windows 8 is all consumer!! Ahhh...!!! [Nope, no it's not... There's a great deal for the Enterprise in 8 too]

Windows Enterprise Desktop - Windows 8 Enterprise Features

OK, so let’s assume that — just for grins — an enterprise might be willing to ask the question: “What’s in Windows 8 for my kind of business computing needs?” Michael Otney, a regular contributor to WindowsITPro, takes a stab at answering that question in his 11/21/2012 story entitled “Top 10: Windows 8 Enterprise Features.” Of these features, several carry over from Windows 7/Windows Server 2008, including DirectAccess, BranchCache, and AppLocker, with BitLocker having been introduced with Vista. One feature really isn’t a feature at all — it’s simply the existence of a Windows 8 Enterprise edition, aimed at that eponymous class of user or organization (an Enterprise edition also goes back to Vista and was available for Windows 7 as well).

So far, Win 8 Pro is more than enough for most of us…

Here’s a list of his features (sans the edition itself), in alphabetical order, that here include pointers to useful overview and tutorial information:

SNAGHTML73e1309

..."

I love me my Windows 8. It just seems to work and really lights up when you use it on multiple machines (and/or a Surface). But I hear around the office, "Oh we'll never do Metro so we'll never do 8..." (sigh). Windows 8 is not just Metro (Modern UI/Microsoft Style Design/Whatever). It really is a better Windows 8. Heck for me the new Task Manager is the win. Let alone the other features (like being more SSD smart, etc). If you're an 8 h8tr, and haven't used it "for real" give it a honest try for a while. You'll find going back to 7 interesting (Interesting in how much you'll miss 8)

Looking to write that awesome game this long weekend? Here's a set of links that might help (or at least give you something interesting to read... )

Angel \”Java\” Lopez on Blog - Game Development: Links, News, Resources (3)

SNAGHTML736e296

image

If you liked these, make sure you click through to Game Development: Links, News, Resources (1), Game Development: Links, News, Resources (2)  and http://delicious.com/ajlopez/gamedevelopment

Outlook 2013, you're add-in dev skillz still apply...

Jon Lester's Blog - Playing around with add-ins for Outlook 2013

"Just recently starting as a new Project Manager at Wintellect, I’ve been “re-tooling” a little bit as a PM.  Mainly this is just figuring out how Wintellect does things differently than how I’ve done it in the past.  One of the things I’ve noticed is that not everyone here uses Outlook for their email/calendar.  At least a handful of people use iCal, which uses the iCalendar (or *.ics file format), and normal Outlook meetings don’t import easily.  Needless to say, if you are a project manager and you want people to show up to your meetings, you need a format that works for everyone.  However, this doesn’t seem to be a scenario that Outlook accounts for out-of-the-box.  There is an option in Outlook to send meeting requests in iCalendar format for recipients “Outside the organization”, but these folks are inside the organization, so that doesn’t help me.  After a little digging, I did find a manual process to attach an iCalendar file to a new meeting request which involves a number of steps, but frankly this approach does not interest me if I’m going to have to do it more than a handful of times.

As a PM I schedule a lot of meetings (duh, right?), and anything I do repetitively I want to be as simple as possible.  So, I started looking into creating a custom add-in for Outlook to help me create new meeting requests easily.  My goals were the following:

  1. Expose a button somewhere on the new meeting request form to attach a copy of the meeting request as an *.ics file.
  2. And, while I’m at it, give me a way to insert my standard “meeting template” content into a new meeting request (things like conference dial in information, meeting agenda outline, etc). I have used a custom template in my Outlook “Personal Forms” library, but like many things it involves too many clicks to use it.  I’ve also used the Conferencing Add-in in the past, but wasn’t always thrilled with its reliability.

I was actually surprised how easy it was to pull this together, so I thought I would share the process I followed to implement my add-on.

First off, you need to have the “Microsoft Office developer tools” feature of Visual Studio installed, which I’m fairly certain is included with the default installation.  Begin by creating a new project, and selecting “Outlook 201x Add-In”.  I didn’t have the Office 2013 Developer Tools installed in my environment at the time I did this (you won’t either if your running the RTM version of VS 2012, since Office 2013 was released after), so I just used the project template for Outlook 2010.

...

image"

I've been back and forth with Office 2013. I really like some of it's features, but there's a couple I really hate (the main one is how it only show's "Today's" meetings on the ToDo bar... sigh). Seeing Jon's post made me wonder if I couldn't "fix" Outlook to fit me better. Now his example doesn't go near what I want to do (create a ToDo bar for 2013 that works like it does in 2010), but it did remind me that while there's the new shiny app model in 2013, there's still support for VSTO too. I need to look and see if there's anyway I can do what I want to do...

Tuesday, November 20, 2012

Hello Caller Info Attributes...

codeguru - Using Caller Info Attributes in .NET 4.5

When developing complex .NET applications sometimes you need to find out the details about the caller of a method. .NET Framework 4.5 introduces what is known as Caller Info Attributes, a set of attributes that give you the details about a method caller. Caller info attributes can come in handy for tracing, debugging and diagnostic tools or utilities. This article examines what Caller Info Attributes are and how to use them in a .NET application. 

Overview of Caller Info Attributes

Caller Info Attributes are attributes provided by the .NET Framework (System.Runtime.CompilerServices) that give details about the caller of a method. The caller info attributes are applied to a method with the help of optional parameters. These parameters don't take part in the method signature, as far as calling the method is concerned. They simply pass caller information to the code contained inside the method. Caller info attributes are available to C# as well as Visual Basic and are listed below:

Caller Info Attribute
Description

CallerMemberName
This attribute gives you the name of the caller as a string. For methods, the respective method names are returned whereas for constructors and finalizers strings ".ctor" and "Finalizer" are returned.

CallerFilePath
This attribute gives you the path and file name of the source file that contains the caller.

CallerLineNumber
This attribute gives you the line number in the source file at which the method is called.

A common use of these attributes will involve logging the information returned by these attributes to some log file or trace.

Using Caller Info Attributes

..."

Caller Info Attributes is one of those little'ish features that you quickly come to love. This makes MVVM IPropertyNotify much less fragile and I love using them in my logging...

Monday, November 19, 2012

Jon applies his "Speaker Social" treatment to AzureConf 2012

Jon Gallant - AzureConf 2012 Speaker Blogs, Twitter, Facebook, Google+ & LinkedIn Accounts

Here are the AzureConf 2012 speaker blogs, Twitter, LinkedIn, Facebook and Google+ accounts. Enjoy!

BLOG FEED FILE

You can subscribe to the AzureConf 2012 speaker blogs by importing this OPML file [GD: Click through the for links] into your feed reader.

If you aren’t familiar with OPML, it is an xml file that contains feed urls. You can easily import an OPML file into your feed reader and subscribe to all the feeds in bulk. If you don’t know how to do this then just search for “OPML import [feed reader name]” (replace [feed reader name] with the feed reader you use). Ping me if you have any trouble and I'll do my best to help you out.

...

image..."

Jon has done this for a number of recent conferences and they are just awesome... Here's just a few.

Skype for Outlook (by the community, with C/C++ source)

CodeProject - Outlook add-in integrating Skype

We're all working with a variety of tools every day; we communicate using a number of instant messaging applications (Skype and Yahoo for me); we deal with many emails per day using our favorite client (mine being Outlook), and we're dealing with other tons of data for doing tracking activities, doing searching and so on.

But despite this overwhelmingly increasing data, there is little interoperability between all of these programs. I know, I know, everything is in the cloud as everyone tries to sells this to us every day. But the clipboard and Alt-Tab remains the main staples of day-to-day working. I would like to set a task as completed or to assign a task directly from the email received from JIRA. There may be such add-ins on market (and for Skype there are for sure), but without source code.  

The main purpose of this article is to embed Skype functionality directly in Outlook. This is not a fully Skype client embedded (it demonstrates just a number of get/set properties and events), but it can be a good demonstration of Skype Desktop API combined into an Outlook add-in.

There are also two other purposes:

- describe how to create a COM component in plain C (the general steps)

- demonstrate how to implement an Outlook add-in without wizards  

For the impatient: how it looks like  

image

Note. Not all controls are working; some of them are for illustration purposes only. The reader will discover in code which ones are just for showing.

Background  

The familiarity with Skype Desktop API would help in order to understand what the add-in does in order to interact with Skype.

In short, there are 3 phases for an external application to talk to Skype:

- discover Skype and establish connection (SkypeControlAPIDiscover, SkypeControlAPIAttach)

- user confirmation in Skype to allow external application interaction

- WM_COPYDATA based data exchange with Skype following the protocol described in the Skype Developer documentation.

Knowledge of Win32, COM, Outlook object model and C programming are required for a better understanding of this article.  

..."

Seeing this was one of those, "Wow, why don't we yet have this from Microsoft yet?" moments. Now the code in this project is all C/C++ so not much for the Managed Dev, and this doesn't use the new and shiny new Office App model, but I still thought this pretty interesting and cool.