You are here

Feed aggregator

Call Multiple Services With One Login Prompt Using ADAL

MSDN Blogs - Wed, 04/23/2014 - 07:09

This blog will show how to create a client application using Active Directory Authentication Library (ADAL) that authenticates to multiple Web API applications in Azure Active Directory while only prompting the user a single time for credentials.

Background

I wrote a previous post that showed how you can create your own Web API that enables impersonation of the calling user, allowing you to call a different web service on behalf of the current user.  I used Office 365 APIs as a demonstration, but that same approach works with other types of services such as Graph API or your own Web API.

While this is an awesome feature (I am still excited that this is now so easy to do), what if we want the client to call the resource endpoints directly without requiring a custom Web API?  Yes, we can.

Turns out this is incredibly easy to do, especially if you are using Visual Studio 2013 Update 2 RC.  We will create this astonishingly dreary-looking application that, while it is in desperate need of attention by someone who can design pretty user interfaces, will demonstrate an incredibly cool concept using Azure Active Directory.

Refresh Tokens for Multiple Resources

Azure Active Directory provides a feature called multi-resource refresh tokens.  The concept is simple, you can use a single refresh token to request access tokens for multiple resources.

For more information, see Refresh Tokens for Multiple Resources.

The Active Directory Authentication Library (ADAL) library is smart enough to see if a refresh token is available.  If a refresh token is available, it will present that refresh token to Azure AD and receive an access token without requiring an additional authentication prompt.  This is possible because of the support in Azure AD for multi-resource refresh tokens. 

The trick to making this work with the ADAL library is to create a single AuthenticationContext and reuse that for all secured calls. 

Let’s try it out to see how it works.

Create a Web API Endpoint

Create a new ASP.NET Web Application.  Choose the template as Web API, and change the authentication to Organizational Account. 

Notice the App ID URI.  That’s also known as the resource, that’s the identifier of the thing in Azure AD that you are going to call.  We’ll use that value in our client app in a few minutes. 

Sign in as a global administrator (allowing Visual Studio to automatically register the app for you in Azure AD).  Now click the “create remote resources” option to automatically create an Azure web site.  This is a new feature in Visual Studio 2013 Update 2 RC.

I am prompted for a site name and Azure subscription.

Choose OK, and Visual Studio will automatically register 2 applications in Azure AD: the one running on localhost, used for local debugging, and one for your new Azure Web Site.  You can now right-click your ASP.NET Web API project and choose Publish.  Go to the Settings tab and enable organizational authentication, providing your domain.

Click Publish, and your Web API is now published to a new Azure Web Site, secured with Azure AD.

Update Web API Permissions

Go to the Azure Management Portal.  Go to your directory and choose the Applications tab.  Find your new Web API application.

Open it and choose Configure.  At the bottom of the page there is a “Manage Manifest” button.  Click it and choose “Download Manifest”.  Save the file locally, then edit it with Visual Studio 2013 Update 2 RC, which provides color-coded JSON editing.  By default it will have an appPermissions property with an empty array.

We will replace that property with the following:

"appPermissions": [ { "claimValue": "user_impersonation", "description": "Allow full access to the AADWebAPI service on behalf of the signed-in user", "directAccessGrantTypes": [], "displayName": "Have full access to the AADWebAPI service", "impersonationAccessGrantTypes": [ { "impersonated": "User", "impersonator": "Application" } ], "isDisabled": false, "origin": "Application", "permissionId": "b69ee3c9-c40d-4f2a-ac80-961cd1534e40", "resourceScopeType": "Personal", "userConsentDescription": "Allow full access to the AADWebAPI service on your behalf", "userConsentDisplayName": "Have full access to the AADWebAPI service" } ],

The final result looks like this:

Save the file locally.  Go back to the Azure Management Portal.  Go to the application again and choose Manage Manifest, then Upload Manifest.  Upload the file.

Note: If you do this enough times, you are going to have a bunch of .json files with GUIDs in your Downloads folder.  By default, the file will have the same name as the client ID for your application.

We are now ready to create an app to consume our Web API endpoint.

Create a Windows App

Add a Windows App client application using the Blank App template.  When the app is created, open MainPage.xaml and add a textbox named “txtCallback”. 

In the MainPage method, add a call to find out the callback URI for this app.

public MainPage() { this.InitializeComponent(); txtCallback.Text = WebAuthenticationBroker.GetCurrentApplicationCallbackUri().ToString(); }

Run the app, you’ll see the callback URI for the app that starts with ms-app.

Go to the Azure Management Portal, navigate to your directory, and then go to the Applications tab.  Click the Add button at the bottom of the page.  Choose “Add an application my organization is developing.”

Give the app a name (it can be quite helpful to use the same name as the app here.

In the next screen, copy the callback URI from your Windows 8 app and paste it into the screen.

Once the app is created, go to the Configure tab and go to the “Permissions to Other Applications” section.  By default the application is granted permission to call the Graph API.  Add permission to read directory data.

Since we’ve configured the permissions, the dropdown will now show our Web API with the ability to add permission for this client to call that API.  Enable that permission.

Finally, add permission to call the O365 SharePoint Online API to read items in all site collections.

MAKE SURE YOU HIT SAVE!  I have forgotten this several times, and you’ll debug and see that you get a null access token.  If you see this, it means you failed to hit save here.

Finally, go to the “Update Your Code” section to obtain the client ID.

Create the UI

I am terrible at making user interfaces.  Always have been, and this time is no exception.  Here is the XAML for my application.

<Page x:Class="AADClient.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="using:AADClient" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d"> <StackPanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Orientation="Vertical"> <TextBox TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="660" x:Name="txtCallback" Margin="0,100,0,0" /> <Button Content="Call APIs" Click="Button_Click" Height="50" Width="110" Margin="400,0,0,0" /> <Button Content="Logout" Height="50" Width="110" Click="Button_Click_1" Margin="400,0,0,0" /> <StackPanel Orientation="Horizontal" Height="Auto" Margin="0,50,0,0"> <TextBlock Width="400" Text="Web API" FontSize="36"> </TextBlock> <TextBlock Width="400" Text="SharePoint Online" FontSize="36"></TextBlock> <TextBlock Width="400" Text="Graph API" FontSize="36"></TextBlock> </StackPanel> <StackPanel Orientation="Horizontal" Height="Auto" Margin="0,50,0,0" MinHeight="100"> <TextBlock x:Name="webAPIResult" Width="400" TextWrapping="Wrap"></TextBlock> <TextBlock x:Name="spoResult" Width="400" TextWrapping="Wrap"></TextBlock> <TextBlock x:Name="graphResult" Width="400" TextWrapping="Wrap"></TextBlock> </StackPanel> </StackPanel> </Page>

The main part to call out is that there are 3 text blocks that show the data from each of the API calls as a raw string. 

Finally, Some Code!

The app is registered to use Azure Active Directory, now we have to add the reference to the ADAL library.  Right-click the project and choose Manage NuGet Packages, search for “adal”, and include the prerelease option to take advantage of new features in the ADAL library.  Install it.

Add two buttons to MainPage.xaml.  The first one will be used to call the endpoints.  The second will be used to log out.  The code for MainPage.xaml is pretty straightforward.

We add using statements:

using Microsoft.IdentityModel.Clients.ActiveDirectory; using System; using System.Net.Http; using System.Runtime.InteropServices; using System.Threading.Tasks; using Windows.Security.Authentication.Web; using Windows.UI.Popups; using Windows.UI.Xaml; using Windows.UI.Xaml.Controls;

Add a few fields to our class.

//Context used for all operations AuthenticationContext context; //The domain used to authenticate string aadDomain = "kirke.onmicrosoft.com"; //The client ID of the native app string clientAppClientID = "9e50878e-e7f2-4a28-9d5f-39103bbe4c00";

Now, we add a method to call Azure AD to obtain an access token, then call an API.

/// <summary> /// Obtains an access token from Azure AD /// and then calls the API endpoint /// </summary> /// <param name="APIEndpoint">API to call</param> /// <param name="AppIDURI">The APP ID Uri of the /// API to call. Value is found on the Configure /// tab of the Azure Management Portal.</param> /// <returns></returns> private async Task<string> GetResult( string APIEndpoint, string AppIDURI) { AuthenticationResult ar = await context.AcquireTokenAsync( AppIDURI, clientAppClientID); string authHeader = ar.CreateAuthorizationHeader(); //Create an HTTP client for the local web API var client = new HttpClient(); var request = new HttpRequestMessage( HttpMethod.Get, APIEndpoint); request.Headers.TryAddWithoutValidation( "Authorization", authHeader); var response = await client.SendAsync(request); var responseString = await response.Content.ReadAsStringAsync(); return responseString; }

When the button is clicked, we will form the URLs to our three different services in the same directory. 

private async void Button_Click(object sender, RoutedEventArgs e) { string authority = string.Format( "https://login.windows.net/{0}", aadDomain); //One AuthenticationContext for the whole domain // and all operations. context = new AuthenticationContext(authority); //Call our Web API endpoint string APIEndpoint = "https://aadwebapi.azurewebsites.net/api/values"; string APIAppIDURI = "https://kirke.onmicrosoft.com/WebApp-aadwebapi.azurewebsites.net"; string response = await GetResult( APIEndpoint, APIAppIDURI); webAPIResult.Text = response; //Call SharePoint Online APIEndpoint = "https://kirke.sharepoint.com/sites/dev/_api/Web?$select=Title"; APIAppIDURI = "https://kirke.sharepoint.com"; response = await GetResult( APIEndpoint, APIAppIDURI); spoResult.Text = response; //Call Graph API APIEndpoint = "https://graph.windows.net/kirke.onmicrosoft.com/me?api-version=2013-11-08"; APIAppIDURI = "https://graph.windows.net"; response = await GetResult( APIEndpoint, APIAppIDURI); graphResult.Text = response; }

Finally, we add the code to log out. 

private void Button_Click_1(object sender, RoutedEventArgs e) { context.TokenCacheStore.Clear(); // Also clear cookies from the browser control. ClearCookies(); } private void ClearCookies() { const int INTERNET_OPTION_END_BROWSER_SESSION = 42; InternetSetOption(IntPtr.Zero, INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0); } [DllImport("wininet.dll", SetLastError = true)] private static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int lpdwBufferLength); The Big Payoff

Think about how cool this is… with a bit of configuration and an incredibly small amount of code, we have called 3 different secure services and will only have 1 login prompt.  We run the app and click the Call APIs button.  When the first call to AcquireTokenAsync occurs, we see the login page.

Once we log in, we see the data from each of our API calls without further prompts.

I am incredibly excited about Azure AD and the ADAL library.  This opens up so many scenarios while reducing the amount of security stuff you have to know in order to build a secure application. 

For More Information

Refresh Tokens for Multiple Resources 

Windows Azure Active Directory Graph

Calling O365 APIs from your Web API on behalf of a user

Secure ASP.NET Web API with Windows Azure AD

Taller “Crea tu primer juego para Windows Phone y Windows 8”

MSDN Blogs - Wed, 04/23/2014 - 07:08

Los próximos días 12, 20 y 22 de mayo se va a celebrar una serie de talleres sobre desarrollo de videojuegos, donde los asistentes tendrán la posibilidad de crear su propio videojuego a partir de una serie de plantillas de juego.

La misión es explicar cómo funciona Unity3D para que los asistentes puedan terminar el evento con un videojuego creado y publicado para Windows Phone 8 y Windows 8.

¿Qué necesitan los asistentes?

Los asistentes que quieran participar en estos eventos necesitan estos requisitos:

Si no tienes una cuenta de desarrollador podemos facilitarte una durante el evento. Solamente tienes que avisarnos antes para empezar con el proceso de registro para que tengas la cuenta hecha antes de llegar al evento. El proceso de registro de la cuenta de desarrollador puede tardar varios días, por eso es importante tenerla creada antes de venir al evento.

Localización del evento

El evento se realizará en el International Lab en Calle Bailen 41, Madrid, 28005.

Plantillas de juegos

War at sea

Tractor hill drive

Suv race gt

Destruction drive

Capital battle

Platformers

FruitSplat

Dispositivos de prueba

Durante el evento se dispondrán de dispositivos de prueba para que los asistentes puedan probar sus juegos en los dispositivos antes de publicarlos en la tienda.

Agenda

Hora

Título

10:00 – 10:15

Registro

10:15 – 11:30

Introducción a Unity3D para Windows Store y Windows Phone 8

11:30 – 12:00

Café

12:00 – 14:00

Cómo crear juegos con Unity3D y publicarlos.

14:00 – 15:00

Catering

16:00 – 17:00

Personalización de las plantillas

17:00 – 18:00

Publicación del juego en la tienda

Enlaces de registro

Luis Guerrero

Technical Evangelist Windows Azure

@guerrerotook

How do I programmatically create folders like My Pictures if they were manually deleted?

MSDN Blogs - Wed, 04/23/2014 - 07:00

A corporate customer had a problem with their employees accidentally deleting folders like Videos and Pictures and are looking for a way to restore them, short of blowing away the entire user profile and starting over. They found some techniques on the Internet but they don't always work consistently are completely. What is the recommended way of recreating these missing folders?

It turns out that the customer was asking a question that I answered many years ago, but looking at it from the other side.

To recreate a folder, call SHGet­Folder­Path with the flag CSIDL_FLAG_CREATE, or call SHGet­Special­Folder­Path and pass fCreate = TRUE.

If you are targeting Windows Vista or higher, the known-folder equivalent is calling SHGet­Known­Folder­Path, SHGet­Known­Folder­ID­List, or SHGet­Known­Folder­Item with the KF_FLAG_CREATE flag.

(There is a CSIDL-to-KF conversion table in MSDN.)

Love Visual Studio? All we are saying…is give Blend a chance!

MSDN Blogs - Wed, 04/23/2014 - 05:57

Many of us work in Visual Studio every day, but have never taken the time to learn Blend. Adding Blend to your toolset will make you a more productive developer. so check out the MVA Blend Jump Start!

I have worked with Visual Studio for longer than I care to admit (do you remember when you could view the clipboard ring in a window?). I have worked in Blend a little bit here and there, but never had a chance to sit down and really figure out how it can help me with my coding. Mickey MacDonald tried it last year and in one day not only started learning Blend but built an entire game using just Blend! (read Mickey’s story)

So as you look at the long list of technologies you want to learn, if you are doing anything with XAML, I highly recommend bumping Blend to the top of your list. There is a really good Jump Start for Designing your XAML UI with Blend on Microsoft Virtual Academy presented by Jerry Nixon a Technical Evangelist and Unni Ravindranathan a Program Manager from Microsoft.

The jumpstart covers

  • XAML development in Visual Studio 2013 (there are some nice new features in 2013!)
  • XAML Design and Styling in Blend
  • How to build Windows Store Apps with Blend
  • a little Developer Candy :)
  • Some great suggested resources and next steps.

Don’t forget If you are a student you get Blend when you download Visual Studio 2013 from DreamSpark!

If you are in Canada, don’t forget that watching videos on Microsoft Virtual Academy could earn you rewards through Developer Movement!

Put aside some time, and learn how to make the most out of a tool you already have in your toolbox!

How will the next Shakespeare create their masterwork?

MSDN Blogs - Wed, 04/23/2014 - 05:37

Today we celebrate William Shakespeare's 450th birthday, commemorating the life and work of a man whose 36 plays have stood the test of time.

Well, he really wrote 38 plays -- 2 of them were left out of the first edition of his collected work. Actually, make that 40 plays, but we've lost 2 of them. Of course, some of those were collaborations -- and there are a few others we think he might have helped with. And some people think all of his plays were written by someone else

All that confusion just goes to show you how different publishing was in Shakespeare's day. Shakespeare wrote by hand and worked hard to keep the texts of his plays a secret, so that other theatrical groups couldn't steal them.

Some of the earliest published versions of his plays were unauthorised knock-offs, written by people trying to copy down his work from memory. When you think about it, it's a miracle we have any of Shakespeare's writing at all.

It's easy to laugh at the publishing practices of Shakespeare's time. A lot has changed since then. Of course, a lot has changed since the advent of the Web in the 1990s, with more changes coming in the past decade and even the past year. When the Shakespeare of the 21st century creates their masterpiece -- what will their process look like?

Here's how the next Shakespeare might work:

Creates in the cloud - Scholars think Shakespeare wrote at least 2 plays that are now lost to us -- Cardenio and Love's Labour's Won. It's not hard to see why -- ink and parchment isn't exactly the most durable of mediums. The next Shakespeare won't have that problem. Writers working in Office 365 have their work saved to the cloud automatically, so they never need to worry about creating a backup copy. Of course, maybe the next Shakespeare isn't a writer. Maybe they're a visual artist or a filmmaker. They're covered too. You can back up all kinds of media files using OneDrive.

Works when inspiration strikes - Creative people have always struggled with the fleeting nature of inspiration. You can have the most amazing idea while you're sitting on a train, but by the time you get home to record it, it's gone. But the next Shakespeare will always be able to create in the moment. It's easy to jot down a note on a Windows tablet device using Office 365 -- or to take gorgeous photos or videos with Windows Phone. You can capture inspiration on the go and then finish it up at home -- or pick up a Surface with its full keyboard and just start creating right there.

Collaborates easily - Shakespeare's collaborators never get any respect. That's partly because Shakespeare has a way of soaking up all the glory, but it's also because those collaborations were never very smooth. Shakespeare and his partner would each work on different scenes and then put their work together to make a whole play. Shakespeare's collaborators did their best to mimic his style, but the resulting work still tends to be disjointed. Today's Shakespeare doesn't have to go it alone. They can work seamlessly with anyone in the world, even tinkering with the same sentence at the same time, using Office 365. 

The 21st century will give rise to its own Shakespeare, who will create cannon a work that will echo down the ages. Technology will empower that person in ways that even Shakespeare's wild imagination could never have conceived. Maybe that person is out there, right now. Maybe they're just starting on their breakthrough work. Maybe it's you.

What are you creating today?

How will the next Shakespeare create their masterwork?

MSDN Blogs - Wed, 04/23/2014 - 05:37

Today we celebrate William Shakespeare's 450th birthday, commemorating the life and work of a man whose 36 plays have stood the test of time.

Well, he really wrote 38 plays -- 2 of them were left out of the first edition of his collected work. Actually, make that 40 plays, but we've lost 2 of them. Of course, some of those were collaborations -- and there are a few others we think he might have helped with. And some people think all of his plays were written by someone else

All that confusion just goes to show you how different publishing was in Shakespeare's day. Shakespeare wrote by hand and worked hard to keep the texts of his plays a secret, so that other theatrical groups couldn't steal them.

Some of the earliest published versions of his plays were unauthorised knock-offs, written by people trying to copy down his work from memory. When you think about it, it's a miracle we have any of Shakespeare's writing at all.

It's easy to laugh at the publishing practices of Shakespeare's time. A lot has changed since then. Of course, a lot has changed since the advent of the Web in the 1990s, with more changes coming in the past decade and even the past year. When the Shakespeare of the 21st century creates their masterpiece -- what will their process look like?

Here's how the next Shakespeare might work:

Creates in the cloud - Scholars think Shakespeare wrote at least 2 plays that are now lost to us -- Cardenio and Love's Labour's Won. It's not hard to see why -- ink and parchment isn't exactly the most durable of mediums. The next Shakespeare won't have that problem. Writers working in Office 365 have their work saved to the cloud automatically, so they never need to worry about creating a backup copy. Of course, maybe the next Shakespeare isn't a writer. Maybe they're a visual artist or a filmmaker. They're covered too. You can back up all kinds of media files using OneDrive.

Works when inspiration strikes - Creative people have always struggled with the fleeting nature of inspiration. You can have the most amazing idea while you're sitting on a train, but by the time you get home to record it, it's gone. But the next Shakespeare will always be able to create in the moment. It's easy to jot down a note on a Windows tablet device using Office 365 -- or to take gorgeous photos or videos with Windows Phone. You can capture inspiration on the go and then finish it up at home -- or pick up a Surface with its full keyboard and just start creating right there.

Collaborates easily - Shakespeare's collaborators never get any respect. That's partly because Shakespeare has a way of soaking up all the glory, but it's also because those collaborations were never very smooth. Shakespeare and his partner would each work on different scenes and then put their work together to make a whole play. Shakespeare's collaborators did their best to mimic his style, but the resulting work still tends to be disjointed. Today's Shakespeare doesn't have to go it alone. They can work seamlessly with anyone in the world, even tinkering with the same sentence at the same time, using Office 365. 

The 21st century will give rise to its own Shakespeare, who will create cannon a work that will echo down the ages. Technology will empower that person in ways that even Shakespeare's wild imagination could never have conceived. Maybe that person is out there, right now. Maybe they're just starting on their breakthrough work. Maybe it's you.

What are you creating today?

How will the next Shakespeare create their masterwork?

MSDN Blogs - Wed, 04/23/2014 - 05:37

Today we celebrate William Shakespeare's 450th birthday, commemorating the life and work of a man whose 36 plays have stood the test of time.

Well, he really wrote 38 plays -- 2 of them were left out of the first edition of his collected work. Actually, make that 40 plays, but we've lost 2 of them. Of course, some of those were collaborations -- and there are a few others we think he might have helped with. And some people think all of his plays were written by someone else

All that confusion just goes to show you how different publishing was in Shakespeare's day. Shakespeare wrote by hand and worked hard to keep the texts of his plays a secret, so that other theatrical groups couldn't steal them.

Some of the earliest published versions of his plays were unauthorised knock-offs, written by people trying to copy down his work from memory. When you think about it, it's a miracle we have any of Shakespeare's writing at all.

It's easy to laugh at the publishing practices of Shakespeare's time. A lot has changed since then. Of course, a lot has changed since the advent of the Web in the 1990s, with more changes coming in the past decade and even the past year. When the Shakespeare of the 21st century creates their masterpiece -- what will their process look like?

Here's how the next Shakespeare might work:

Creates in the cloud - Scholars think Shakespeare wrote at least 2 plays that are now lost to us -- Cardenio and Love's Labour's Won. It's not hard to see why -- ink and parchment isn't exactly the most durable of mediums. The next Shakespeare won't have that problem. Writers working in Office 365 have their work saved to the cloud automatically, so they never need to worry about creating a backup copy. Of course, maybe the next Shakespeare isn't a writer. Maybe they're a visual artist or a filmmaker. They're covered too. You can back up all kinds of media files using OneDrive.

Works when inspiration strikes - Creative people have always struggled with the fleeting nature of inspiration. You can have the most amazing idea while you're sitting on a train, but by the time you get home to record it, it's gone. But the next Shakespeare will always be able to create in the moment. It's easy to jot down a note on a Windows tablet device using Office 365 -- or to take gorgeous photos or videos with Windows Phone. You can capture inspiration on the go and then finish it up at home -- or pick up a Surface with its full keyboard and just start creating right there.

Collaborates easily - Shakespeare's collaborators never get any respect. That's partly because Shakespeare has a way of soaking up all the glory, but it's also because those collaborations were never very smooth. Shakespeare and his partner would each work on different scenes and then put their work together to make a whole play. Shakespeare's collaborators did their best to mimic his style, but the resulting work still tends to be disjointed. Today's Shakespeare doesn't have to go it alone. They can work seamlessly with anyone in the world, even tinkering with the same sentence at the same time, using Office 365. 

The 21st century will give rise to its own Shakespeare, who will create cannon a work that will echo down the ages. Technology will empower that person in ways that even Shakespeare's wild imagination could never have conceived. Maybe that person is out there, right now. Maybe they're just starting on their breakthrough work. Maybe it's you.

What are you creating today?

Welche Anwendungen sind in der Connection Group

MSDN Blogs - Wed, 04/23/2014 - 05:26
Hallo zusammen, da ich regelmäßig die verschiedensten Tests durchführe setze ich – wann immer möglich – auf Powershell also auch wenn es zu Connection Groups kommt. Eines Tage hatte ich keinen Überblick mehr welche Anwendungen (Packages) jetzt in welcher Connection Group waren. Da ich weder CM 2012 noch den App-V Server genutzt hatte, konnteich die Informationen hier nicht abgreifen. Natürlich hätteich mir die im Catalogauf dem Client abgelegten XML Dateien ansehen können doch ich wollte die “Kraft...(read more)

Gepubliceerde Windows Phone Apps door Nederlandse ontwikkelaars in de maand april.

MSDN Blogs - Wed, 04/23/2014 - 05:01

Na de leuke reacties op de vorige lijst doen wij het nogmaals, nu selectie van Apps (in willekeurige volgorde) van
Windows Phone applicaties gemaakt door Nederlandse ontwikkelaars die zijn aangeboden en goedgekeurd.

Net als vorige maand, graag belonen wij het harde werk van deze ontwikkelaars met wat extra aandacht. Wij vinden, “Loof
hard werk, geef opbouwende kritiek!”.

 

Mariquita http://windowsphone.com/s?appId=91354d52-3c99-4906-951f-d35ba69904c8 OthoRoute http://windowsphone.com/s?appId=f76c8b14-ca4c-4a26-a2e3-e3d1b94a4d7b Broken Wings http://windowsphone.com/s?appId=f041c27b-e133-4651-9b72-2249a13c0e47 To Do List http://windowsphone.com/s?appId=d904947f-4879-4bfc-a3b1-46cb37c677fd Enigma2Remote Lite http://windowsphone.com/s?appId=8032b297-bd2e-462d-907f-c9c283b84793 Cook Snap Share http://windowsphone.com/s?appId=7c3ce43b-8df6-4b8b-8df8-7c8a7ef438df BizziBe http://windowsphone.com/s?appId=7067582f-5025-4071-ad3c-e6fba4fd5fad Blackcoin Pool http://windowsphone.com/s?appId=b18673b1-1408-4eb2-bee0-6ec9709c6602 Ruïne van Brederode http://windowsphone.com/s?appId=8032b297-bd2e-462d-907f-c9c283b84793 Pool Arena Online http://windowsphone.com/s?appId=a7243b97-113e-4082-ab2c-2bac51a6cab7 KloakaTV http://windowsphone.com/s?appId=661b1fdc-824a-4ea5-aa62-6c77e22b25ed Hot Dance Radio http://windowsphone.com/s?appId=daab9f61-09cb-427e-ba5b-838ed3449f62 Huetro for Hue http://windowsphone.com/s?appId=f14faa22-179d-42e4-99ca-88b44d10449b Zybez Rss Reader http://windowsphone.com/s?appId=7593bcde-99e4-4d71-bd86-0d0821b150e7 B2FAB http://windowsphone.com/s?appId=4b03797c-e791-498e-aced-9f849ff99ddf SPARQ Mobile Service voor Multivers Installatie http://windowsphone.com/s?appId=2e396a13-6154-4808-b600-9f539c3db928 TV Head http://windowsphone.com/s?appId=36b44519-616f-4443-a0b1-8aa016aada39 Angel App Pro http://windowsphone.com/s?appId=3222865b-79d6-447f-bd2b-e9ba7a504e1c Animal Messages App Pro http://windowsphone.com/s?appId=703e995b-8366-41b3-8beb-d002668daf6f SPARQ Mobile Time http://windowsphone.com/s?appId=ec1c0949-c2be-44c1-b2a4-91cc9e6a9a51 Photo Mosaic http://windowsphone.com/s?appId=9520e969-9da6-4093-93f8-81dca858e134 WijkbijDuurstede http://windowsphone.com/s?appId=cfb122db-1590-406d-9d77-73ff9b42935e Assen - 35073KammandRe.Assen http://windowsphone.com/s?appId=31c0cdd7-3677-4204-a44c-846ff8f9d0e6 Chemicals and Formula http://windowsphone.com/s?appId=8947cac1-9759-4116-9d68-6d84e324a28f SPARQ Mobile Service voor AccountView http://windowsphone.com/s?appId=4fd39478-8845-40fb-b4ae-c4d63b4f9a49 Stijn Wilke http://windowsphone.com/s?appId=6e3ffefc-1a83-45a9-a127-38c75627d9be     RetroSnake_Free http://windowsphone.com/s?appId=34476253-7940-47ac-8bd1-789c778d66c6 English abbreviations http://windowsphone.com/s?appId=548b16b7-a4d1-4988-8fc4-8ac5c7e8ecf0 Lumia comparator http://windowsphone.com/s?appId=b0f30f76-680f-4a8c-9df0-9c68ccd5eb8b Peter's Demo app http://windowsphone.com/s?appId=1d6792f6-0e24-442a-a6c2-8779bc417137 Easy currency free http://windowsphone.com/s?appId=b3ffc0fa-ee0e-4015-ab59-f6a8ca171200 IRIB Live http://windowsphone.com/s?appId=d2a6c82c-35fe-49ec-b3db-bbd7c050c571 GLTV http://windowsphone.com/s?appId=16bfffe4-4b1e-4ec4-91ce-254f1871522a IranianUK http://windowsphone.com/s?appId=5fcc0da3-f5f0-4de2-ace2-89f8ddb7f85d Bol.com http://windowsphone.com/s?appId=36b6ed50-2b87-44f3-b172-62c9793eb7cb Passiespelen Hertme http://windowsphone.com/s?appId=735ee8f3-0429-4792-8348-71158f72d24b Afkortingen http://windowsphone.com/s?appId=37ff11ed-af8f-43f9-8c8d-2e2a64fdc326 WSHH http://windowsphone.com/s?appId=48d80457-3396-4180-b04e-25708b05c451 Ideas! http://windowsphone.com/s?appId=27d7a382-230c-40cb-8ef9-4ded39cf7b93 Paperboys http://windowsphone.com/s?appId=67879dfc-8252-433d-8ab0-80482518cd78 F!T http://windowsphone.com/s?appId=31362038-4804-43f2-9027-17a4a1d487b2 Bedrijf Inkomensportaal http://windowsphone.com/s?appId=b62fea28-d553-41ab-a954-cb65536a6945 TOTO http://windowsphone.com/s?appId=486a3f56-3407-4547-917c-5ff6cad555ec Flamencompas http://windowsphone.com/s?appId=8818feea-7bfe-4c04-a54e-cf5f43f1b5d0 Animal Messages App Free http://windowsphone.com/s?appId=40eb4c08-169e-4980-9ab5-bd8abb97e62f Athlon Brandstofprijs http://windowsphone.com/s?appId=e8291241-0062-4d85-8687-ea9645014ab1 Angel App Free http://windowsphone.com/s?appId=d88aa99a-2459-4491-9e76-5b1734f3a244 FAST-Handy http://windowsphone.com/s?appId=d3e4540c-34e6-4046-a700-aa9fc025c762 Start Screen Customizer http://windowsphone.com/s?appId=087fa43e-7951-4da4-9403-6a26ab013ff4 Plain Notes http://windowsphone.com/s?appId=0bc95cab-446a-455d-b8b2-33e3adc55bbf Goat Smash Free http://windowsphone.com/s?appId=fe775547-c7ae-4705-b343-683034ba1ef3 Puna http://windowsphone.com/s?appId=47930da1-fe75-4bb4-b158-6122be7820a4 Rocco World http://windowsphone.com/s?appId=ecc5b650-5512-44ff-a19c-6fd45ec6c36f Crazy Road Racing http://windowsphone.com/s?appId=1c73f100-87ac-4ca5-999c-a557244a2193 Goat Smash Pro http://windowsphone.com/s?appId=98c5cfe9-dba2-4fc2-b64c-9b38bb4dbce2 EasyVFR http://windowsphone.com/s?appId=022b23c0-6356-436a-a91b-84183c7598a5 SoundBoard 3.0 http://windowsphone.com/s?appId=e9fc20fc-adbc-458a-b51d-538f151aad87 Film Info http://windowsphone.com/s?appId=7f273c6b-3829-4124-b499-b303dfe36cb2 Exploot Online http://windowsphone.com/s?appId=11e20038-f85a-4fc6-9534-5ec8795bb767 FlightOfStairs http://windowsphone.com/s?appId=95efc698-af75-4e17-aff2-eb1b259e44a7 AR gun clicker http://windowsphone.com/s?appId=0a3d077a-da92-4819-abb2-08c42628d1fa Film Riot http://windowsphone.com/s?appId=8420b298-e5d0-4667-a34a-a7148e0a7373 Chain Reaction http://windowsphone.com/s?appId=bc8f98f6-369f-495c-9bbb-df0443eee441 Music_Releases http://windowsphone.com/s?appId=f5fb8da3-c8a8-4667-82b8-ecc7e127d0aa My Cocktail Finder Free http://windowsphone.com/s?appId=56fa2937-5ff8-4004-ac63-68fc825bb8a5 Field Scribbler http://windowsphone.com/s?appId=8c390b59-5637-4df5-9cd0-de562757f56a World Cup Brasil 2014 http://windowsphone.com/s?appId=7c4fcda1-c8dc-4874-93e4-3443ef8f0f08 VvE Partner http://windowsphone.com/s?appId=5cedc16c-6b50-4b75-92ec-4b2e4ad13b56 I am Here http://windowsphone.com/s?appId=742b211f-9a7d-40ee-90d6-5aacd3caeb04 OfficeHeart http://windowsphone.com/s?appId=0aba1b67-36a9-47c5-937f-d62eb0c05ee5 VVV De Maashorst http://windowsphone.com/s?appId=fbb844ba-5556-4c57-b0ce-1caaddc26bb0

Latest Developments in General Purpose GPU Programming with F#

MSDN Blogs - Wed, 04/23/2014 - 04:06

Starting with our experiments with integrating General Purpose GPU programming into F# at Microsoft Research, I've been watching the evolution of F# as a GPGPU programming platform. Over time, GPGPU programming with F# has become both more professionalized, and much more broad spectrum (including CUDA, OpenCL and other options).

Some latest developments in this area have been:

 Together these point to how F#'s unique language features truly enable a new level in General Purpose GPU programming.

Launch of brand new Computer Science Ebook in education!

MSDN Blogs - Wed, 04/23/2014 - 03:21

Today Microsoft Education UK have launched our much anticipated, brand new Computer Science e-book!

The e-book explores everything from coding, debugging, gaming and developing for the web, to providing links to prestigious Computer Science communities that schools and teachers can join, and links to our own Microsoft Computer Science resources.

With the new Computer Science curriculum being implemented in September, there is a huge demand from teachers for information and practical guidance on delivering Computer Science - it's no surprise that we've already had great activity on Twitter since we launched an hour ago.

They can download it by clicking on the 'Save' dropdown at the top of the e-book and learn more about Microsoft Schools at http://blogs.msdn.com/ukschools

Новые возможности средств разработчика F12 в обновлении Windows 8.1

MSDN Blogs - Wed, 04/23/2014 - 03:05

Мы с радостью объявляем о ряде существенных обновлений средств разработчика F12 в Internet Explorer и Visual Studio 2013 Update 2. Эти обновления средств разработчика F12 сопровождают новинки в Internet Explorer 11.

Раньше мы рассказывали о возможностях средств разработчика F12 и стремлении организовать быстрый, итеративный рабочий процесс, предоставлять точные данные в DOM Explorer и данные с возможностью выполнения действий в инструментах, относящихся к памяти и производительности.

При использовании F12 с этим обновлением вы заметите следующие усовершенствования:

  • Более сжатый итеративный рабочий процесс с отслеживанием изменений в средствах CSS.
  • Возможность выполнения отладки написанного вами кода, например CoffeeScript или TypeScript, с поддержкой карт исходного кода (sourcemap) и отладки "только-моего-кода" (JMC — just-my-code) при использовании библиотек, созданных другими разработчиками.
  • Усовершенствования, позволяющие быстрее находить решения, например при поиске утечек памяти, с помощью улучшенных средств моментальных снимков JS и улучшений в области фильтрации.

Давайте рассмотрим эти улучшения средств разработчика F12.

Отслеживание изменений в CSS с помощью индикаторов изменений

Одно из основных преимуществ таких инструментов, как F12, заключается в возможности изменять вид любого веб-сайта непосредственно в браузере, не требуя доступа к исходному коду. Однако при длительной работе над кодом отслеживать все изменения, внесенные в CSS, а затем применять окончательные изменения к исходному коду достаточно сложно. Чтобы справиться с такой ситуацией, мы внедрили возможность записывать и отслеживать изменения — наглядно с помощью индикаторов изменений, а также с помощью новой CSS-панели "Изменения" в DOM Explorer.

Любое изменение, внесенное в правила и свойства CSS в области "Стили" в DOM Explorer, будет иметь наглядный признак в левом поле рядом с измененным свойством или правилом. Это "индикаторы изменений". Они зеленого цвета для новых свойств, желтого — для измененных свойств и значений и красного — для удаленных свойств. Эти индикаторы изменений сохранятся, даже если вы начнете просматривать другие узлы DOM.

Индикаторы изменений на вкладке "Стили"

Поскольку вы можете вносить много изменений во множество узлов, мы добавили на панель CSS новую вкладку, на которой перечислены все изменения за текущий сеанс использования средств разработчика F12. Это "дифференциальное" представление может использоваться в качестве контрольного списка при внесении изменений в исходный код вручную. Предоставляется также возможность копирования и отмены изменений через контекстное меню.

Новая вкладка "Изменения"

Отладка приложения с помощью функции JMC

Если вы занимаетесь разработкой веб-сайтов и приложений, вы наверняка используете библиотеки сторонних разработчиков, такие как jQuery или Angular, и эти библиотеки зачастую сжаты. Часто случается, что разработчикам, занимающимся отладкой своего кода, приходится погружаться в код библиотеки, прежде чем вернуться к своему коду для исправления неполадки.

Среда Visual Studio поддерживала функцию JMC ("Just My Code" — только мой код) для управляемых языков, а с выходом Visual Studio 2012 эта функция может использоваться и для JavaScript. В основе JMC лежит идея о том, что отладчик должен находиться в вашем коде — в коде, который вы хотите отладить, а не в коде, который вы не можете изменить.

Теперь, когда эта функция есть в F12, вы увидите во время отладки две ключевые особенности.

  • Вы никогда не "войдете для выполнения по шагам" в файл (библиотеку), отмеченный как код библиотеки. Отметить библиотеку можно через средство выбора файлов в отладчике (см. ниже), даже если вы вошли для выполнения по шагам в этот файл. Когда библиотека отмечена, любая операция выполнения по шагам переведет вас в ваш код.
  • Если включить функцию "останавливать при любых исключениях", выполнение никогда не будет остановлено при исключении, возникшем или обрабатываемом в коде библиотеки.

Маркировка файлов как кода библиотеки

По умолчанию средства разработчика F12 будут распознавать файлы, соответствующие URL-адресу *.min.js, как код библиотеки. Однако вы можете легко изменить это поведение, отметив библиотеки в средстве выбора файлов в отладчике или в контекстном меню вкладки файла, если он открыт в отладчике.

Мы подробнее поговорим об этом компоненте и о соответствующем рабочем процессе в следующей записи блога.

Отладка приложения, написанного на других языках, с использованием Source Maps (версии 3)

Поскольку приложения JavaScript в последнее время становятся все более сложными, все чаще наблюдается тенденция написания кода на другом языке с компиляцией в JavaScript (например, средства разработчика F12 написаны на TypeScript и скомпилированы в JavaScript). Аналогичным образом вы могли бы сжать код JavaScript, не являющийся исходным при написании приложения. Такой процесс компиляции означает, что код JavaScript, который выполняется в браузере и отладку которого вы осуществляете, — это не тот код, который вы видите в вашем редакторе, что усложняет процесс отладки.

Для решения этой проблемы существует управляемый сообществом формат, получивший широкую поддержку в браузерах и Visual Studio и сопоставляющий исходный код и скомпилированные файлы. Этот формат называется "Source Maps" (спецификация). Эти карты исходного кода (source maps) создаются во время компиляции, и мы добавили поддержку версии 3 спецификации Source Map в данный выпуск средств разработчика F12.

Если в скомпилированном файле JavaScript определена допустимая карта исходного кода, F12 по умолчанию загрузит оригинальный файл исходного кода, а не выполняющийся файл JS, если включена функция "source maps" (карты кода, кнопка в отладчике). Вам будут предоставлены следующие возможности:

  • В средстве выбора файлов используются имена файлов исходного кода, а не выполняющихся документов.
  • Файлы, открываемые в отладчике и используемые для выполнения кода по шагам, — это файлы исходного кода, и для TypeScript, CoffeeScript и Script # эти файлы будут окрашены соответствующим образом (как видно на приведенном ниже примере файла TypeScript).

Как и в случае JMC, мы более подробно рассмотрим карты исходного кода в следующей записи блога.

Тройные моментальные снимки

При отладке программы с целью устранить утечку памяти обычно отображается большой объем данных (даже если они отфильтрованы), создаваемых профилировщиками памяти, что усложняет поиск утечки. В F12 мы ранее предприняли некоторые шаги, чтобы наши инструменты представляли состояние приложения на плитках моментальных снимков и вовремя информировали о потенциальных проблемах с помощью отдельных информационных индикаторов DOM. Однако в этом обновлении мы хотели пойти дальше и помочь разработчикам еще проще справляться с проблемами.

Средство анализа памяти F12 теперь предоставляет возможность сравнивать три моментальных снимка (и получать обзорное представление этих моментальных снимков), что является более четким процессом определения утечки. Это следующие моментальные снимки:

  • Исходное состояние вашего приложения перед запуском сценария, предоставляющего базовый уровень для объектов в приложении.
  • После завершения сценария, который может дополнить возможный базовый уровень для вашего приложения, требуется следующий моментальный снимок при повторном выполнении сценария.
  • Состояние "возврата к нормальной работе" вашего приложения при повторном выполнении сценария. В этом состоянии все объекты из вашего сценария должны быть освобождены (или вы ожидаете, что они находятся в работоспособном состоянии).

Вы можете сравнивать эти моментальные снимки и использовать новый фильтр "Область" (раскрывающийся список), чтобы выбрать "объекты, оставшиеся от моментального снимка № 2", который представляет конечное состояние вашего сценария и потенциальный набор объектов, которые больше не должны присутствовать, как показано ниже.

Фильтр "Область"

В приведенном выше представлении типов показан список объектов с индикатором на полях там, где могут быть потенциальные проблемы.

Инструменты для Internet Explorer в Windows Phone в Visual Studio 2013 Update 2

Если вы пытались создать привлекательную мобильную версию вашего веб-сайта, вы наверняка сталкивались с проблемами, когда он неправильно выглядел или неправильно работал в браузерах для мобильных устройств.  Чтобы справиться с этими проблемами в Windows Phone, мы с радостью объявляем, что в Visual Studio 2013 Update 2 мы реализовали использование средств отладки и анализа производительности Visual Studio для Internet Explorer в Windows Phone 8.1. Подробнее об этом можно прочитать в блоге Visual Studio ALM

Множество других улучшений…

В этом выпуске F12 мы постарались удовлетворить многие требования разработчиков, а также исправить ошибки, связанные с несколькими сбоями, вызванными Инспектором сети и невыполнением условных комментариев при использовании F12 для эмуляции режимов более старых документов. Мы не будем приводить здесь список ошибок, информация об ошибках будет обновляться на сайте Microsoft Connect для Internet Explorer (https://connect.microsoft.com/IE/Feedback).

Вот более подробный список изменений, которые вы увидите в этом выпуске средств разработчика F12.

Оболочка
  • CTRL+[ и CTRL+] для навигации между инструментами.
Консоль
  • Раскрывающийся список для перечисления целей выполнения.
  • Проверка объектов, зарегистрированных через console.log, включая форматирование вида "printf".
  • Локальные переменные (в точке останова) в intellisense для консоли.
  • Подстановка $_ для доступа к результату ��оследнего вычисления в консоли.
  • Функция "Всегда записывать сообщения консоли" — до выпуска средств разработчика F12 (через "Свойства обозревателя" -> "Дополнительно" -> (флажок) "Всегда записывать сообщения консоли разработчика").
Отладчик
  • Сохранение базовых точек, контрольных значений, вкладок и т. п., чтобы не терять состояние.
  • Отладка кода Typescript или скомпилированного кода внутри F12 с использованием Source Maps.
  • Отладка только моего кода без кода библиотек (JMC).
  • Наименование кода eval с помощью комментария //#sourceUrl=<url>.
  • Сочетание клавиш для прерывания и обновления страницы в случае неисправности через CTRL+SHIFT+F5.
  • Полные имена функций (например, a.b.c) в стеке вызовов и представлениях профилировщика.
DOM Explorer
  • Псевдосостояния CSS — задайте псевдосостояние для элемента, чтобы протестировать псевдостили.
  • Индикаторы изменений CSS — просмотрите, какие значения изменились в представлении стилей.
  • Представление изменений CSS — просмотрите конечные примененные изменения CSS и скопируйте в буфер обмена.
  • Панель CCS — просмотрите стили CSS на единой панели CSS с возможностью внесения изменений и ссылками на исходный код.
  • Сочетание клавиш Ctrl+B в DOM Explorer для выбора элемента.
Эмуляция
  • Информированность о режиме документа — понимание, почему моя страница находится в определенном режиме документа, чтобы лучше понимать сценарии совместимости.
Быстрота отклика пользовательского интерфейса
  • Упорядочивайте все уровни событий по длительности в подробном представлении временной шкалы.
  • Упростите подробное представление временной шкалы, отфильтровав события, относящиеся к определенным категориям (например, к сборке мусора или декодированию изображений).
  • Легко масштабируйте графические и подробные представления в соответствии с длительностью определенного экземпляра событий (через контекстное меню).
  • Определите, какое именно свойство было изменено (и на какое значение) при программном изменении встроенных стилей элемента DOM.
Память
  • Определите строку кода, ответственную за выделение конкретной функции, чтобы соотносить память с исходным кодом.
  • Элемент контекстного меню для отображения объекта в представлении доминант (и просмотра удерживаемого объема и т. п.).
  • Обновления представлений типов для отображения, какие типы отвечают за основной рост разницы, чтобы вам было удобнее рационализировать использование объектов.
  • Линии сетки в пользовательском интерфейсе таблиц.
  • Интерфейс параметров настройки (отображение встроенных параметров, циклических ссылок, идентификаторов объектов).
Подводя итоги

С этим обновлением Internet Explorer 11 и средств разработчика F12 мы чаще обновляем инструментальные средства разработчика, чтобы как можно скорее предоставлять вам новейшие компоненты и исправления. Ждите от нас дополнительной информации. Если вы хотите поделиться отзывами и предложениями, попросить о помощи или предложить включить новые компоненты, свяжитесь с нами через @IEDevChat в Твиттере, средство отправки отзывов и предложений в Internet Explorer 11 или сайт Connect.

В этой записи дано лишь краткое описание новых возможностей средств разработчика F12. В течение нескольких следующих недель мы будем публиковать записи с более подробными описаниями и инструкциями по использованию средств разработчика F12. Кроме того, на сайте MSDN можно найти полную документацию по средствам разработчика F12.

А пока мы с нетерпением ждем ваших отзывов и предложений. Вы можете связаться с нашей командой разработчиков через @IEDevChat в Твиттере, средство отправки отзывов и предложений в Internet Explorer 11 или сайт Connect.

— Энди Стерлэнд (Andy Sterland), руководитель программы, средства разработчика F12

— Джонатан Картер (Jonathan Carter), руководитель программы, ��редства разработчика F12

— Саймон Калверт (Simon Calvert), ведущий руководитель программы, средства разработчика F12

第9频道视频: Office 365 API Tools for Visual Studio

MSDN Blogs - Wed, 04/23/2014 - 02:49

[原文发表地址] Channel 9 Video: Office 365 API Tools for Visual Studio

[原文发表时间]2014-03-26 10:51 AM

上周我在Redmond, 所以我拿了旧的袖珍照相机,在一个会议室即兴采访了在Cloud Business Apps团队的项目经理Michael Zlatkovsky。Michael向我展示了 Visual Studio新的 Office 365 API 和工具。Office 365 API 允许您以固定的方式把Office 365 服务方便地集成到您的应用程序中。您可以访问像日历、文档,以及更多的正在使用的REST APIs这样的用户数据和来自任何平台的标准的OAuth流程。

Michael展示了Visual Studio 的Office365 API工具,它增加了迅速集成和快速从 ASP.NET 和 Windows 8.1 应用程序中获取这些 API的能力。

观看:Office 365 API Tools for Visual Studio

特别感谢Robert Green写的在这次演讲中使用的费用报告应用的基础程序。原始原始应用程序可以在 http://myexpenses.codeplex.com/ 找到。

祝你使用愉快 !

EWS: Missing SOAP headers when using the EWS Managed API

MSDN Blogs - Wed, 04/23/2014 - 02:05

We’ve recently had a few cases where some SOAP headers were missing from the request when performing specific operations and targeting specific Exchange versions. This resulted in incorrect data being returned.

For example, if you Target Exchange2010 or higher and wish to reply to or forward an EmailMessage, the TimeZone information specified when creating the Exchange service will not be added as a SOAP header to the request. For this reason, the Sent time returned in the reply body will be the UTC (Universal Coordinated Time) instead the local time or the time as per the TimeZone specified.

Note: You will not experience this issue if you target Exchange2007_SP1.

For example, if the TimeZone specified is FLE Standard Time (Standard: UTC+2 / Daylight: UTC+3) and the message was sent at 18:44 on the 17th April 2014, the Sent time in the reply body will be 15:44.

Original message Text displayed in the reply body

When comparing the SOAP requests generated when targeting Exchange2007_SP1 and Exchange2010, we notice that the TimeZoneDefinition SOAP header is missing from the Exchange2010 request:

      <t:TimeZoneContext>         <t:TimeZoneDefinition Id="FLE Standard Time" />       </t:TimeZoneContext>

The workaround:

To allow adding missing or just custom SOAP headers, a new event was added to the ExchangeService class implemented by the EWS Managed API. The event is called OnSerializeCustomSoapHeaders and represents the event that is called to enable applications to emit custom SOAP headers in requests that are sent to Microsoft Exchange Server.

Here is an example on how to use it:

public void DoSomething() { ExchangeService m_Service = new ExchangeService(ExchangeVersion.Exchange2010, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")); m_Service.OnSerializeCustomSoapHeaders += m_Service_OnSerializeCustomSoapHeaders; // // Your code here // m_Service.OnSerializeCustomSoapHeaders -= new Microsoft.Exchange.WebServices.Data.CustomXmlSerializationDelegate(m_Service_OnSerializeCustomSoapHeaders); } public void m_Service_OnSerializeCustomSoapHeaders(XmlWriter writer) { writer.WriteRaw(Environment.NewLine + " <t:TimeZoneContext><t:TimeZoneDefinition Id=\"" + m_Service.TimeZone.StandardName + "\"/></t:TimeZoneContext>" + Environment.NewLine); }

Note: You can use the OnSerializeCustomSoapHeaders to add any SOAP headers.

 

エバンジェリストはこんなイベントに参加してます! (4/24 - 5/2) #MSVJP

MSDN Blogs - Wed, 04/23/2014 - 01:39
皆さんこんにちは! エマージングテクノロジー推進部の馬田です。 そろそろゴールデンウィークが始まりますね! そんな中ではありますが今週もイベントは盛りだくさんです。是非興味のあるイベントにご参加いただき、エバンジェリストたちを見つけたら是非お声掛けください! 我々とのちょっとした会話からいろいろと支援が始まることも増えてきましたので、お気軽にお声掛けいただければ何か始まるかも……しれません! 4 月 2 4 日(木) Games on the Cloud!~ゲームシステムをクラウドで~ http://crooz.co.jp/19179 担当:砂金( Blog , Twitter , Facebook ) 4 月 2 5 日(金)~ 27 ( 日 ) International Women’s Hackathon 2014, Japan http://atnd.org/events/49368 担当:馬田 ( Blog , Twitter , Facebook...(read more)

Приглашаем Вас на трансляцию Data Platform Day - 24 апреля

MSDN Blogs - Wed, 04/23/2014 - 01:30

Добрый день!

24 апреля в 10:00 по московскому времени приглашаем вас подключиться к онлайн трансляции ключевого события года в мире серверных и облачный решений – конференции Data Platform Day.

В рамках глобальной стратегии развития Microsoft Cloud OS** Вам будет представлена универсальная Платформа SQL Server 2014, устанавливающая новые стандарты в области хранения и управления данными любого типа и объема.

Ведущие эксперты Microsoft и компаний-партнеров продемонстрируют:

  •   новейшие технологии, обеспечивающие работу критически важных приложений;
  •   современные решения по сбору, анализу и виртуализации данных, в том числе по работе с Большими Данными (Big Data);
  •   новые возможности по построению гибридных ИТ-систем.

Представители российских компаний поделятся своим опытом внедрения SQL Server 2014.

Для всех участников будет проведен мастер-класс по углубленному бизнес-анализу и анализу Больших Данных.

Подключайтесь!

Дополнительная информация о Data Platform Day* доступна на сайте мероприятия. 

* Data Platform Day – День Платформы Приложений
** Cloud OS - облачная   операционная система

Смотрите онлайн-трансляцию конференции Data Platform Day о платформе SQL Server 2014!

MSDN Blogs - Wed, 04/23/2014 - 01:08
24 апреля в 10:00 по московскому времени приглашаем вас подключиться к онлайн трансляции ключевого события года в мире серверных и облачный решений – конференции Data Platform Day. В рамках глобальной стратегии развития Microsoft Cloud OS** Вам будет представлена универсальная платформа SQL Server 2014 , устанавливающая новые стандарты в области хранения и управления данными любого типа и объема. Ведущие эксперты Microsoft и компаний-партнеров продемонстрируют: новейшие технологии, обеспечивающие...(read more)

Microsoft Dynamics CRM and DST Update

MSDN Blogs - Wed, 04/23/2014 - 00:58

Dynamics CRM Engineering Team has released DST fixes to align Microsoft Dynamics CRM application with the windows cumulative time zone update discussed in the following article:

http://support.microsoft.com/kb/2863058/en

Currently there is a fix available for Dynamics CRM 4.0, to receive this fix please log a support incident with the Microsoft Dynamics CRM support Team.

2936902                Daylight saving time (DST) fix for Microsoft Dynamics CRM 4.0 with Update Rollup 21

http://support.microsoft.com/kb/2936902/EN-US

The fix for Microsoft Dynamics CRM 2011 will be included within the next Update Rollup release, which will be Update Rollup 17.

Best Regards

Dynamics CRM Support Team

New e-book: Computer Science in the National Curriculum.

MSDN Blogs - Wed, 04/23/2014 - 00:30

An extract from our latest e-book: Computer Science in the National Curriculum.

These are exciting times for Computer Science Education. In Great Britain, the US and an increasing number of other countries, we’re seeing a resurgence of interest in developing pupils’ understanding of how computers work, how they’re programmed and the fundamental ideas underpinning computation. The work of Computing at School in the UK,the code.org campaign and the number of universities offering Computing for non-specialists courses in the US, great on-line resources for learning about Computer Science (CS), such as the Microsoft Virtual Academy, and some brilliant programming tool-kits that make it easier than ever for users to take control of their computers have all played their role in this. There are several reasons why this trend should be welcomed:

There’s an economic argument, at both national and individual level more programmers in the workforce makes it easier for technology companies to recruit locally; it might mean more tech-based start-ups and might also improve the chance of managers making sound decisions when it comes to technology. At an individual level, a grasp of coding opens up pathways to further academic and vocational study as well as career options in, and beyond, the IT industry: it’s certainly not just programming jobs where the ability to program is useful. The demand for those with a sound grasp of current IT systems and programming languages, acquired through academic courses, apprenticeships and courses leading to industry certification seems to be ever increasing, with many positions unfilled due to a lack of training and certification. There’s an opportunity here for the education system to teach more relevant and job-related skills.

There’s also an argument around empowerment: ‘program or be programmed’ as Douglas Rushkoff memorably puts it. Given the role that digital technology already plays in our lives and society, those who understand how computers works, and who can program computers themselves, almost inevitably enjoy greater autonomy and can be more active, and indeed critical, participants in an increasingly digital society.

Download the Computer Science in the National Curriculum e-book.

For more free e-books & education technology resources visit our Slideshare Channel.

Windows Phone 8.1 Jump Start

MSDN Blogs - Wed, 04/23/2014 - 00:17

If you're an app developer who wants to design and build Windows Phone 8.1 apps using XAML and C#, don't miss this exciting event. The two-and-a-half day, demo-rich course, taught by experts who have years of experience developing (and writing about the process), focuses on how to create apps for Windows Phone 8.1 in Visual Studio and how to create universal app projects that share a high percentage of code and that target both Windows and Windows Phone.

Get tips and tricks on maximizing your app compatibility and optimizing your code. Find out about new features, and learn how to program the many new Windows Runtime APIs that are available to both Windows Store apps and to Windows Silverlight apps. You can even get code samples. Sign up now to make your apps world-ready!

To prepare for the course, download the Windows Phone SDK, which includes all the tools you need to get started. And check out the Windows Phone sessions from Build 2014.

Link to the Event: http://www.microsoftvirtualacademy.com/liveevents/building-apps-for-windows-phone-8-1-jump-start 

Thanks everyone!

Pages

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