You are here

Feed aggregator

Running powershell ISE as administrator

MSDN Blogs - Thu, 12/18/2014 - 10:57


For unkown reason, sometimes the powershell ISE is not shown when you search for it in the Windows 8. Because of it, running the tool with elevated privilegies could be complicated. To run the Powershell ISE as an administrator you can execute the Start-Process cmdlet as follows:


Start-Process powershell_ise -verb runas


This will workaround the issue.

Visual Studio Toolbox: Strategies for Adopting New Technologies

MSDN Blogs - Thu, 12/18/2014 - 10:46

This is the fifth in a series of shows featuring speakers from the VSLive conference, which was held in Redmond in August. In this episode, I am joined by Miguel Castro. They discuss how you approach new technologies, and in particular, how you approach the fact that as new techniques become available, there is more then one way of doing things. Specific examples we discuss are WCF/Web API and WebForms/MVC, but the approach and the way you think about this is broadly applicable.

How to Dynamically size a data bound control by it's content

MSDN Blogs - Thu, 12/18/2014 - 10:23

I've seen this question posted on the web, and I have been personally asked to do this a couple of times.


There comes a time when we will need to have buttons (or radioButtons, any control) that needs to have it's width dynamically assigned based on the content within, for example a button with the text "MyButton, should be wide enough to display all the text, but another button next to it should have the same padding but a smaller width if it's content was "Small". This gets even more confusing when we have a list of items that are data bound. You cannot set individual widths for items that are not yet created.


I'm going to show you how you can accomplish this using a MVVM Converter (


First let's define our list: 


public ObservableCollection<string> ButtonNames       
     get { return _buttonNames; }

private ObservableCollection<string> _buttonNames = new ObservableCollection<string>();


Let's add some strings to our ButtonNames dependency property:




Pretty simple.. now we'll create an ItemsControl to bind to our ButtonNames collection:


<ItemsControl ItemsSource="{Binding ButtonNames}" >
         <StackPanel Orientation="Horizontal"/>
         <Button Content="{Binding}" Width="50" Height="30" />

If we run this, we see our problem:




The buttons are stuck with the wrong width.(say that fast three times!)


To fix this, I am going to bind the width of our button to the string we are using for content. The problem is, the property is expecting an int, So we need a converter:


class WidthHelper : IValueConverter
     public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
                int nameLength = value.ToString().Length;
                return (14 * nameLength) + 20;

     public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
                throw new NotImplementedException();


What's great about the implemented Convert function is that the value coming in is an object, so we can pass in a string.. or whatever we want. As long as we match the targetType.. we're good. So as you can see I multiply 14 (that's the font size I am using) times the number of characters in the name, I then put a 10 pixel buffer on each side of the text (+20).

I can now wire up ourconverter to our ItemsControl data template:


<Button Content="{Binding}" Width="{Binding Converter,Converter={StaticResource WidthHelper}}" Height="30" />


Our buttons now display with the dynamic width:



Pretty cool!


 Hope this helps!

New sample: accessing OneDrive from a mail app

MSDN Blogs - Thu, 12/18/2014 - 10:17

The Office 365 REST APIs (Mail, Calendar, Contacts, and Files) provide an easy way to integrate Office 365 features into your app. But what if your app is a mail app? With a little creativity, it's not much different than any other app. Let's take a look at how you can use the Files API to access OneDrive from within a mail app.

To be able to handle the redirect back from the OAuth authorization endpoint, most of the major processing happens in a Web API hosted on the same server as the mail app. The mail app presents the OAuth sign-in and consent UI, but the Web API handles the redirect back from the OAuth endpoint and completes the flow. The Web API then uses the OAuth access token to access OneDrive via the Files API.

Backstory: If you attended the mail app deep dive at SharePoint Conference 2014 (or watched the video), you may remember Andrew Salamatov showing a mail app that saved an attachment from an email message to SharePoint. Andrew asked me to take his app and polish it to publish as a sample. His sample was the starting point for this one. The end result of my tinkering is now on GitHub.

What's it do?

The updated sample mail app activates in read forms for messages that have attachments. The user can authorize the app to access their OneDrive for Business, then click a button to save all file attachments to their OneDrive. The sample consists of two parts:

  • The mail app (Home.html, Home.js) – This part shows up in Outlook and Outlook Web App. It provides the UI for the app, initiates the OAuth2 consent follow to Azure Active Directory, and sends the attachment IDs to the WebAPI component of the sample.
  • The Web API (OAuthController.cs, GetAttachmentController.cs) – This part manages the OAuth2 response and caches the refresh token, uses Exchange Web Services to download attachment data, and uses the Files API to upload attachments to OneDrive for Business.

Things to note
  • The Web API component uses an in-memory cache to store user's refresh tokens for accessing OneDrive. This isn't a great approach for a real app, where you want that data to survive app restarts and be better protected. For a real app, storing these tokens in a secure database is recommended.
  • Because you have to open a new browser window to access the Azure AD logon site for OAuth, the UI for the "Authorize access" step is a little rough. Luckily this only has to happen once (until you restart the app!) since the refresh token will be cached.

Download the sample and check it out. Pull requests are welcome (bonus points if you fix my fugly UI!). Let me know what you think on Twitter (@JasonJohMSFT).

A Sway in a Manger

MSDN Blogs - Thu, 12/18/2014 - 09:24

It’s the end of another great year with Microsoft Partners in Learning. We are looking forward to the year ahead. Starting with BETT in January, the launch of Kodu Kup 2015, the launch of the QuickStart Computing materials, the Global Forum in March and the full release of Sway.

The first change you will notice in the New Year is that we stop referring to Partners in Learning Network and PiL. They are not going anywhere, we are just changing the name to reflect the ever changing landscape that is Education. From now on we are the Microsoft Educator Network aka MSEN and we have a new website url . You might like to update your favourites and links to reflect this.

The one thing I am really looking forward to is the full release of Sway (hence the cheesy title of this post)

For those who  don’t know Sway, essentially enables students to illustrate and express their ideas in a fun, interactive way and then very simply share them with their classmates, teacher and parents. What makes the app so different is that there are no page breaks or splits. The work is composed on a rolling canvas which gives a luxurious quality experience, which I would describe as the 'e-experience' of flicking through a coffee table book, a bit like Flipboard. It will work across the majority of touch devices. It feels less 'rigid' or official than a PowerPoint,(which I still love) and is ideal as a way for students to develop and present their ideas and learning.

I am looking forward to sharing some great learning activities for Sway in 2015.

I am also greatly looking forward to developing and evolving our computing activity in 2015. We launch Kodu Kup at BETT in January and our training for teachers resources, Quickstart Computing. Of course there is Minecraft, what will we be doing with that? It is all very exciting.

Traditionally, with end of year summaries you often remember what we have lost. So I would like us all to reflect and reminisce on the brilliance that was Clip Art. Microsoft have decided it will close the clip art library. We all remember installing the 4GB of clipart that came on DVD and filled our harddrives. Remember how boring our worksheets were before clipart. So I would like to end with my favourite piece of clip art ever. What was yours?

Nadolig Llawen a Blwyddyn Newydd Dda i chi.

See you in 2015.

Obtener locales instalados en Azure Websites (PaaS)

MSDN Blogs - Thu, 12/18/2014 - 09:23

Hola a todos, hoy les quiero compartir la solución a un problema con el que acabo de toparme. Algo fantástico de PaaS, y especialmente de Azure Websites es la abstracción que se le da al desarrollador sobre lo que sucede por “debajo” de la app. Por ejemplo, si yo soy un desarrollador PHP (o .NET, Java, Node.JS, HTML y JS, etc.) pongo mi foco en escribir el código y me olvido sobre la instalación de PHP (u otro). configuración del web server, instalación y mantenimiento del sistema operativo (SO) y así podemos seguir bajando hasta el hardware. Esto agiliza muchísimo los tiempos de desarrollo y reduce también los costos de administración y mantenimiento.

No obstante, existen escenarios donde necesitamos conocer un poco más sobre la capa subyacente a mi aplicación. Por ejemplo, que pasa si necesitamos conocer la lista de locales instalados en el sistema operativo?

Con estos simples pasos, les muestro una manera de consultar vía PHP la lista de locales instalados.

El código que tenemos que ejecutar será el siguiente:

header( 'Content-Type: text/html; charset=utf-8' );
// source of the list:
$langs = array(
    // language, sublanguage, codes
    array( 'Chinese', 'Chinese', array( 'chinese' ) ),
    array( 'Chinese', 'Chinese (simplified)', array( 'chinese-simplified', 'chs' ) ),
    array( 'Chinese', 'Chinese (traditional)', array( 'chinese-traditional', 'cht' ) ),
    array( 'Czech', 'Czech', array( 'csy', 'czech' ) ),
    array( 'Danish', 'Danish', array( 'dan', 'danish' ) ),
    array( 'Dutch', 'Dutch (default)', array( 'dutch', 'nld' ) ),
    array( 'Dutch', 'Dutch (Belgium)', array( 'belgian', 'dutch-belgian', 'nlb' ) ),
    array( 'English', 'English (default)', array( 'english' ) ),
    array( 'English', 'English (Australia)', array( 'australian', 'ena', 'english-aus' ) ),
    array( 'English', 'English (Canada)', array( 'canadian', 'enc', 'english-can' ) ),
    array( 'English', 'English (New Zealand)', array( 'english-nz', 'enz' ) ),
    array( 'English', 'English (United Kingdom)', array( 'eng', 'english-uk', 'uk' ) ),
    array( 'English', 'English (United States)', array( 'american', 'american english', 'american-english', 'english-american', 'english-us', 'english-usa', 'enu', 'us', 'usa' ) ),
    array( 'Finnish', 'Finnish', array( 'fin', 'finnish' ) ),
    array( 'French', 'French (default)', array( 'fra', 'french' ) ),
    array( 'French', 'French (Belgium)', array( 'frb', 'french-belgian' ) ),
    array( 'French', 'French (Canada)', array( 'frc', 'french-canadian' ) ),
    array( 'French', 'French (Switzerland)', array( 'french-swiss', 'frs' ) ),
    array( 'German', 'German (default)', array( 'deu', 'german' ) ),
    array( 'German', 'German (Austria)', array( 'dea', 'german-austrian' ) ),
    array( 'German', 'German (Switzerland)', array( 'des', 'german-swiss', 'swiss' ) ),
    array( 'Greek', 'Greek', array( 'ell', 'greek' ) ),
    array( 'Hungarian', 'Hungarian', array( 'hun', 'hungarian' ) ),
    array( 'Icelandic', 'Icelandic', array( 'icelandic', 'isl' ) ),
    array( 'Italian', 'Italian (default)', array( 'ita', 'italian' ) ),
    array( 'Italian', 'Italian (Switzerland)', array( 'italian-swiss', 'its' ) ),
    array( 'Japanese', 'Japanese', array( 'japanese', 'jpn' ) ),
    array( 'Korean', 'Korean', array( 'kor', 'korean' ) ),
    array( 'Norwegian', 'Norwegian (default)', array( 'norwegian' ) ),
    array( 'Norwegian', 'Norwegian (Bokmal)', array( 'nor', 'norwegian-bokmal' ) ),
    array( 'Norwegian', 'Norwegian (Nynorsk)', array( 'non', 'norwegian-nynorsk' ) ),
    array( 'Polish', 'Polish', array( 'plk', 'polish' ) ),
    array( 'Portuguese', 'Portuguese (default)', array( 'portuguese', 'ptg' ) ),
    array( 'Portuguese', 'Portuguese (Brazil)', array( 'portuguese-brazilian', 'ptb' ) ),
    array( 'Russian', 'Russian (default)', array( 'rus', 'russian' ) ),
    array( 'Slovak', 'Slovak', array( 'sky', 'slovak' ) ),
    array( 'Spanish', 'Spanish (default)', array( 'esp', 'spanish' ) ),
    array( 'Spanish', 'Spanish (Mexico)', array( 'esm', 'spanish-mexican' ) ),
    array( 'Spanish', 'Spanish (Modern)', array( 'esn', 'spanish-modern' ) ),
    array( 'Swedish', 'Swedish', array( 'sve', 'swedish' ) ),
    array( 'Turkish', 'Turkish', array( 'trk', 'turkish' ) )
echo '<table>'."\n";
echo '<tr>'."\n";
echo '  <th>Languange</th>'."\n";
echo '  <th>Sub-Languange</th>'."\n";
echo '  <th>Languange String</th>'."\n";
echo '</tr>'."\n";
foreach ( $langs as $lang ) {
    echo '<tr>'."\n";
    echo '  <td>'.$lang[0].'</td>'."\n";
    echo '  <td>'.$lang[1].'</td>'."\n";
    $a = array();
    foreach ( $lang[2] as $lang_code ) {
        $loc = setlocale( LC_ALL, $lang_code );
        $a []= $lang_code.' '.( false === $loc ? '✖' : '✔ - '.$loc );
    echo '  <td>'.implode( '<br>', $a ).'</td>'."\n";
    echo '</tr>'."\n";
echo '</table>'."\n";

Este script valida cuales son las locales instaladas, y en caso de estar instaladas, las imprime por pantalla.

Simplemente lo que hacemos es guardar este código en un archivo locale.php y lo subimos al web site. En mi caso, lo hice vía FTP. Luego finalmente ingreamos a y veremos algo como lo siguiente:

A continuación el listado complete de locales soportadas por Azure Websites:

Chinese Chinese chinese ? - Chinese (Simplified)_China.936
Chinese Chinese (simplified) chinese-simplified ? - Chinese (Simplified)_China.936
chs ? - Chinese (Simplified)_China.936
Chinese Chinese (traditional) chinese-traditional ? - Chinese (Traditional)_Taiwan.950
cht ? - Chinese (Traditional)_Taiwan.950
Czech Czech csy ? - Czech_Czech Republic.1250
czech ? - Czech_Czech Republic.1250
Danish Danish dan ? - Danish_Denmark.1252
danish ? - Danish_Denmark.1252
Dutch Dutch (default) dutch ? - Dutch_Netherlands.1252
nld ? - Dutch_Netherlands.1252
Dutch Dutch (Belgium) belgian ? - Dutch_Belgium.1252
dutch-belgian ? - Dutch_Belgium.1252
nlb ? - Dutch_Belgium.1252
English English (default) english ? - English_United States.1252
English English (Australia) australian ? - English_Australia.1252
ena ? - English_Australia.1252
english-aus ? - English_Australia.1252
English English (Canada) canadian ? - English_Canada.1252
enc ? - English_Canada.1252
english-can ? - English_Canada.1252
English English (New Zealand) english-nz ? - English_New Zealand.1252
enz ? - English_New Zealand.1252
English English (United Kingdom) eng ? - English_United Kingdom.1252
english-uk ? - English_United Kingdom.1252
uk ? - English_United Kingdom.1252
English English (United States) american ? - English_United States.1252
american english ? - English_United States.1252
american-english ? - English_United States.1252
english-american ? - English_United States.1252
english-us ? - English_United States.1252
english-usa ? - English_United States.1252
enu ? - English_United States.1252
us ? - English_United States.1252
usa ? - English_United States.1252
Finnish Finnish fin ? - Finnish_Finland.1252
finnish ? - Finnish_Finland.1252
French French (default) fra ? - French_France.1252
french ? - French_France.1252
French French (Belgium) frb ? - French_Belgium.1252
french-belgian ? - French_Belgium.1252
French French (Canada) frc ? - French_Canada.1252
french-canadian ? - French_Canada.1252
French French (Switzerland) french-swiss ? - French_Switzerland.1252
frs ? - French_Switzerland.1252
German German (default) deu ? - German_Germany.1252
german ? - German_Germany.1252
German German (Austria) dea ? - German_Austria.1252
german-austrian ? - German_Austria.1252
German German (Switzerland) des ? - German_Switzerland.1252
german-swiss ? - German_Switzerland.1252
swiss ? - German_Switzerland.1252
Greek Greek ell ? - Greek_Greece.1253
greek ? - Greek_Greece.1253
Hungarian Hungarian hun ? - Hungarian_Hungary.1250
hungarian ? - Hungarian_Hungary.1250
Icelandic Icelandic icelandic ? - Icelandic_Iceland.1252
isl ? - Icelandic_Iceland.1252
Italian Italian (default) ita ? - Italian_Italy.1252
italian ? - Italian_Italy.1252
Italian Italian (Switzerland) italian-swiss ? - Italian_Switzerland.1252
its ? - Italian_Switzerland.1252
Japanese Japanese japanese ? - Japanese_Japan.932
jpn ? - Japanese_Japan.932
Korean Korean kor ? - Korean_Korea.949
korean ? - Korean_Korea.949
Norwegian Norwegian (default) norwegian ? - Norwegian (Bokm�l)_Norway.1252
Norwegian Norwegian (Bokmal) nor ? - Norwegian (Bokm�l)_Norway.1252
norwegian-bokmal ? - Norwegian (Bokm�l)_Norway.1252
Norwegian Norwegian (Nynorsk) non ? - Norwegian-Nynorsk_Norway.1252
norwegian-nynorsk ? - Norwegian-Nynorsk_Norway.1252
Polish Polish plk ? - Polish_Poland.1250
polish ? - Polish_Poland.1250
Portuguese Portuguese (default) portuguese ? - Portuguese_Brazil.1252
ptg ? - Portuguese_Portugal.1252
Portuguese Portuguese (Brazil) portuguese-brazilian ? - Portuguese_Brazil.1252
ptb ? - Portuguese_Brazil.1252
Russian Russian (default) rus ? - Russian_Russia.1251
russian ? - Russian_Russia.1251
Slovak Slovak sky ? - Slovak_Slovakia.1250
slovak ? - Slovak_Slovakia.1250
Spanish Spanish (default) esp ? - Spanish_Spain.1252
spanish ? - Spanish_Spain.1252
Spanish Spanish (Mexico) esm ? - Spanish_Mexico.1252
spanish-mexican ? - Spanish_Mexico.1252
Spanish Spanish (Modern) esn ? - Spanish_Spain.1252
spanish-modern ? - Spanish_Spain.1252
Swedish Swedish sve ? - Swedish_Sweden.1252
swedish ? - Swedish_Sweden.1252
Turkish Turkish trk ? - Turkish_Turkey.1254
turkish ? - Turkish_Turkey.1254

UAG Direct Access clients unable to connect due to a patch from McAfee VirusScan Enterprise (VSE) 8.8

MSDN Blogs - Thu, 12/18/2014 - 09:11

While working on a UAG DA issue I came across a very interesting case. Customer was using customized Group Policy for UAG Direct Access and on all the newly deployed windows 7 (using an image) machines they noticed that although they were getting the DA Client GP they were not able to establish main mode and quick mode. Initially we thought this was happening only on newly deployed machines but later found out that it was happening to all the client machines.

The Customer had actually found a work round which was to change the Inbound Connections from Block to Allow on the Public Profile tab of Windows Firewall.


This is the settings by default on clients:



We change it to:


Once we applied this change the main and quick mode were established. Now, even if we revert those changes back to Block the DA tunnel would still be up and that client machines was then able to establish a DA connection successfully thereafter.

During troubleshooting I thought of eliminating all 3rd party services starting from the AV McAfee in this case. Once we un-install the AV from the client machine DA started working without having to toggle the Inbound connections tab under public profile on the windows firewall.

After re-installing the McAfee VirusScan Enterprise (VSE) 8.8 Patch 3 and later we found that DA broke again.

McAfee too have published an article mentioning that McAfee VirusScan Enterprise (VSE) 8.8 Patch 3 and later is causing UAG DA to break.

Hope it helps you when troubleshooting a DA case where McAfee is installed.


The Sweet Spot of Customer Demand Meets Microsoft Supply

MSDN Blogs - Thu, 12/18/2014 - 09:10

Here’s a simple visual that I whiteboard when I lead workshops for business transformation.

The Sweet Spot is where customer “demand” meets Microsoft “supply.”

I’m not a fan of product pushers or product pushing.  I’m a fan of creating “pull.”

In order for customers to pull-through any product, platform, or service, you need to know the customer’s pains, needs, and desired outcomes.  Without customer empathy, you’re not relevant.

This is a simple visual, but a powerful one.  

When you have good representation of the voice of the customer, you can really identity problems worth solving.   It always comes down to pains, needs, opportunities, and desired outcomes.  In short, I always just say pains, needs, and desired outcomes so that people can remember it easily.

To make it real, we use scenarios to tell a simple story of a customer’s pain, needs, and desired outcomes.   We use our friends in the field working with customers to give us real stories of real pain.  

Here is an example Scenario Narrative where a company is struggling in creating products that its customers care about …

As you can see, the Current State is a pretty good story of pain, that a lot of business leaders and product owners can identify with.  For some, it’s all too real, because it is their story and they can see themselves in it.

In the Desired Future State, it’s a pretty good story of what success would look like.   It paints a pretty simple picture of what would be an ideal scenario …. a future possibility.

Here is an example of a Solution Storyboard, where we paint a simple picture of that Desired Future State, or more precisely, a Future Capability Vision.     It’s this Future Capability Vision that shows how, with the right capabilities, the customer can address their pains, needs, and desired outcomes.

The beauty of this approach is that it’s product and technology agnostic.   It’s all about building capabilities.

From there, with a  good understanding of the pains, needs, and desired outcomes, it’s super easy to overlay relevant products, technologies, consulting services, etc.

And then, rather than trying to do a product “push”, it becomes a product “pull” because it connects with customers in a very deep, very real, very relevant way.

Think “pull” not “push.”

You Might Also Like

Drive Business Transformation by Reenvisioning Operations

Drive Business Transformation by Reenvisioning Your Customer Experience

Dual-Speed IT Drives Business Transformation and Improves IT-Business Relationships

How Business Leaders are Building Digital Skills

How To Build a Roadmap for Your Digital Transformation

Coping with floods—of water and data

MSDN Blogs - Thu, 12/18/2014 - 09:00

Coping with floods—of water and data
By using a Microsoft Azure-based solution to analyze data about flooding, track conditions in real time, and share data from across the country, a flood-prediction system could help communities prepare for and avoid catastrophic floods

...(read more)

Hotfix 6 til Microsoft Dynamics C5 2010 SP2 samt Hotfix 3 til Microsoft Dynamics C5 2012 SP2

MSDN Blogs - Thu, 12/18/2014 - 09:00


Vi har frigivet rettelser til v2010 SP2 HF5 samt v2012 SP2 HF2.

Der er bl.a. rettet i eFeriekort til fratrådt funktionær samt udstedelse af rest eFeriekort. Læs mere i dokumentationen.

Indtil PartnerSource og CustomerSource er opdateret, kan de respektive filer downloades via nedenstående links:  

NB. Hvis man ikke vil opgradere de respektive version, men ønsker at bruge lønfunktionalitet inkluderet i disse hotfix, kan man kontakte supporten, som kan levere elementerne som et privat fix (Uden garanti).



Issues with VS Online - 12/18 - Investigating

MSDN Blogs - Thu, 12/18/2014 - 08:32

Update:  Per the investigation so far, the issue appears to be due to more load on central configuration database. When this DB server is under load, it impacts all aspects of our services. Our DevOps remain actively engaged in attempting root cause & mitigate the issue. 

Customers will continue to experience slowness while accessing VSO services during this time.  We apologize for the inconvenience this is causing.


Initial update: Thu, Dec 18 2014 4:32 PM We are currently investigating issues with VS Online where our customers would experience slowness navigating to various parts of VS Online services.  Our DevOps are actively engaged & investigating the issue.   

We apologize for the inconvenience. 


VS Online Service Delivery team 


Improved Welcome/Wiki experience

MSDN Blogs - Thu, 12/18/2014 - 08:07

I mentioned this in my post on the sprint 75 deployment and I wanted to include a video but it wasn’t ready.  Now it is and I want to share it.  Keep in mind that the deployment is still in progress so it may not be available in your account yet.  The deployment should be done by tomorrow (Friday).

I’m just tickled at how nicely this experience is turning out.  I hope you like it too.  Of course, all of this will show up in TFS 2015 too.


Quick news: Save 40% on top-selling titles

MSDN Blogs - Thu, 12/18/2014 - 08:00

For a limited time, save 40% on this year's top-selling books and eBooks from Microsoft Press! See popular titles below or shop the entire store.

Top selling titles:

Find more details on the sale here. Offer ends January 18, 2015. Enter code TIMETOLEARN during checkout to apply savings.

How can I query the location of the taskbar on secondary monitors?

MSDN Blogs - Thu, 12/18/2014 - 07:00

A customer wanted to know how to get the location of the taskbar on secondary monitors. "I know that SHApp­Bar­Message will tell me the location of the taskbar on the primary monitor, but how do I get its location on secondary monitors?"

We asked the customer what their actual problem is, where they think that determining the taskbar location on secondary monitors is the solution. The customer was kind enough to explain.

Our application shows a small window, and sometimes users move it behind the taskbar. They then complain that they can't find it, and they have to move their taskbar out of the way in order to find it again. We want our window to automatically avoid the taskbar.

The solution to the customer's problem is to stop obsessing about the taskbar. Use the Get­Monitor­Info function to obtain the working area for the monitor the window is on. The window can then position itself inside the working area.

The working area is the part of the monitor that is not being used by the taskbar or other application bars. The customer was too focused on avoiding the taskbar and missed the fact that they needed to avoid other taskbar-like windows as well.

The customer was kind enough to write back to confirm that Get­Monitor­Info was working.

Deploy your vNext project to the Cloud

MSDN Blogs - Thu, 12/18/2014 - 06:41

Before you read this post, I assume you have read getting started with a vNext project on a Mac.

ASP.Net vNext has been designed to be cloud ready. So, regardless of whether you are on Mac/linux/PC or using sublime or Visual Studio 2015 deploying a website with Github is going to be the same workflow.

Deploying ASP.Net  vNext Project using GitHub

The first thing we want to do is hook-up your vNext Project from Github to Azure using Kudu (if you don't have repository fork mine).This allows for continuous deployment from your Github repo to Azure.  Kudu is the engine that can run within and  outside of  azure that allows for git/hg deployments, WebJobs, and various other features in Azure Web Sites. Kudu does this by  generating deployment scripts under the hood and, deploy a website when pushing changes to a Github repo.Please note that I am running the vNext beta project.

For full tutorial please visit

Meet Visual Studio's Code & Compile Error Assistant

MSDN Blogs - Thu, 12/18/2014 - 05:48

Developers! Have you ever suffered from error research frustration? Did you ever complain from having to leave your code to copy/paste and research the error message in a search engine. Does the following image frequently popup in dreams or nightmares ?

Then you will love this new feature in Visual Studio, it's titled "Bing Developer Assistant for Visual Studio", but you can call it BDA for short. It comes in the form of an extension to Visual Studio and it is available for 2013 and 2012 versions and can be downloaded from the Visual Studio Extension Gallery. This extension provides smart, contextual help when searching for projects, code samples and resolving code errors, all from within the Visual Studio IDE. One of the features of BDA is the Compile Error assistant which allows you to research that error directly within Visual Studio using the Bing Contextual Search, instead of copy/pasting the error message from the Error List into a search engine outside of Visual Studio. Moreover, the Compile Error Assistant gathers the error information and all the relevant context to find the best potential solutions from the web using the power of contextual Bing search, instead of manually modifying the search query to include all the relevant error context like Visual Studio version, .NET version, project type, and language. 

When the user clicks on Bing Contextual help in the error dialog inside Visual Studio, the BDA client will extract context (e.g. error codes/message, project type, data types etc.). The BDA then abstracts and sends the context to the BDA service. BDA Feature Extraction component in the service will extract relevant features from the context, which the Query engine will use to fire multiple contextual Bing queries. Bing then analyzes and ranks the results for these different queries based on relevance with the given user context and then sends the re-ranked results to the BDA Client, which renders them (currently in the form of IE window).

Another great feature of BDA is the Contextual Code Help, which enables you to learn about a class or method or comments in your code by using Bing Contextual Search, which is now available within the code editor. You can select some text in the code editor, right click and issue a Bing Contextual Search. The BDA automatically gathers the selected text, your project type, language, etc. to do a smart Bing search and displays results in the browser. The following screenshot illustrates that:


Additionally, this tool provides a large pool of code samples from MSDN and Stack Overflow.

To get started, download Bing Developer Assistant for Visual Studio 2013 or Bing Developer Assistant for Visual Studio 2012 from the Visual Studio Extension Gallery
Happy coding :) 

Gwyrosydd Primary School wins 35 Surface RT devices thanks to Beastie Boys parody video!

MSDN Blogs - Thu, 12/18/2014 - 05:30

Seeing as it is now less than a week until Christmas (gulp!), we thought we’d keep it light this afternoon and share a couple of videos created by school pupils that are sure to give you a warm feeling even on the coldest of December days. As part of a competition we recently ran in conjunction with Tablets for Schools to give away 35 Surface RT devices, pupils were encouraged to get creative and rework a song so that the lyrics reflect why their school needs tablets, or how tablets would help their learning.

Some of the responses were absolutely brilliant. By simply looking at the faces of the children as they sing these songs and act out scenarios posed by the new lyrical twist, it’s clear to see how engaging they found the task, and how excited they were about the possibility of tablets arriving in their classrooms.

Fight for your right… to tablets

A couple of weeks ago it was announced over on our Microsoft UK Teachers Blog that we had found a winner! Top of the pops was Gwyrosydd Primary School in Swansea, and they have since taken delivery of their 35 Surface RT devices. Not only did the students put together a fantastic video, but the school has a clear implementation plan for their wireless infrastructure and staff training, so we’re sure these devices will be put to good use.

So here we have the pupils of Gwyrosydd Primary, who are turning it up to 11 with their take on the Beastie Boys’ 1987 classic “Fight For Your Fight (To Party)”…. Although the children (possibly with a little help from the teacher seen in the video!) have changed the lyrics to reflect how much they would benefit from having tablets in the classroom:

All of the entries we saw definitely made us smile here on the Microsoft UK Education team, and it’s clear how inspired young people are by technology.

“Please, sir… I want some more…”

More? More?! MORE?! Oh go on then, seeing as it is the season of giving after all…!!

Here’s a bonus song that should be familiar to any parent or pupil, as at some point or another most of us have either been in or watched a production of ‘Oliver Twist’. The musical adaptation of Charles Dickens’ tale of a workhouse orphan who escapes to joins a gang of juvenile pickpockets contains many memorable numbers, and with their very own adaption of ‘Food, Glorious Food’, here’s Colcot Primary School… Enjoy!!

Avoid Out-of-Office Outrage this Christmas

MSDN Blogs - Thu, 12/18/2014 - 04:02
4 Keys to Avoiding Out-of-Office Outrage this Christmas

Happy Christmas! Taking time off this year? Spending time with the family? Taking a little trip? Or just getting away from the office for a bit? Well, that sounds great. Hope you have a wonderful time. Except… well, I hate to even mention this, but you seem like a good sort, so here’s a little tip:

You know what really ruins a Christmas holiday? I mean completely, utterly, totally destroys the peace and tranquillity of the season? It’s coming back to work in January and finding out that everyone hates you – not because you took your holiday, but because you left without telling anyone where that one critical file was stored or how to contact the vendor about that one really important event or whatever it is that they needed to get on with without you.

All that guilt and frustration and awkwardness – it’s enough to make the brandy butter curdle in your stomach. The worst part is, it’s totally avoidable. If you just follow a handful of best practices, you’ll come back to a workplace that’s Out-of-Office Outrage free.

Learn more about using tools such as Office 365, Yammer to reimagine your SMB via our Productivity page.

Luke 18: Quiz! Vinn en Nokia Lumia 735!

MSDN Blogs - Thu, 12/18/2014 - 01:00
Velkommen til luke 18 i Microsofts julekalender for utviklere! Husk at hver luke du deler på Twitter eller Facebook gir deg mulighet til å vinne en Surface Pro 3 , men kun 1 deling pr luke i hvert media telles !   Dette er luken for en quiz med en Nokia Lumia 735 som premie! Alt du trenger å gjøre er å svare på noen få spørsmål bak linken uken, og du er med i trekningen av en Nokia Lumia 735! Konkurransen varer frem til kl 24.00 18/12.        Her finner du quizen! Konkurranseregler...(read more)

[Announcement] WCF Data Services 5.6.3 RTM Tools Installer Release

MSDN Blogs - Thu, 12/18/2014 - 00:46

We are happy to announce the release of WCF Data Services tooling version 5.6.3. It enables “Add Service Reference” to work with .NET 4.5.2 for consuming OData V1-3 services. 

Previously, when you try to “Add Service Reference” for OData V1-3 service, in VS2012 or VS2013 with .Net 4.5.2, you will get the following error window with the message: “The custom tool ‘DataServicesCoreClientGenerator’ failed. Data service client code-generation failed: The element ‘DataService’ has an attribute ‘DataServiceVersion’ with an unrecognized version ‘3.0’...”


We have fixed this issue in the WCF data service tooling 5.6.3. You can download from Here and install it. Then, “Add Service Reference” with OData V1-3 service in VS2012 and VS2013 should work with .Net 4.5.2 and future version 4.5.X. 


Subscribe to Randy Riness @ SPSCC aggregator
Drupal 7 Appliance - Powered by TurnKey Linux