You are here

MSDN Blogs

Subscribe to MSDN Blogs feed
from ideas to solutions
Updated: 1 hour 57 min ago

Living life with OneNote: Let’s get personal

Mon, 06/09/2014 - 00:37

Originally posted on the Office Blog

College students use OneNote to stay organized and productive with constantly demanding deadlines–it’s easy to manage an entire college career in a single notebook. But where do personal commitments fit in? California State University and OneNote intern William Devereux shares his personal notebook to show how he uses OneNote to keep track of everything from movies and games to social events and lists of what to pack for his next trip.

As a student, I use OneNote to help me manage a whirlwind of classes, assignments, group projects, and lab work, but there’s more to life than work and studying. Personal time is important, and OneNote is essential to helping me make sure I have fun too.

My personal notebook is organized into nine key sections: Important, Lists and Info, Work, Microsoft, Events, Notes, Resources, Clippings, and Quick Notes.

The first section is just what it sounds like: a repository for crucial information. In this section, I store everything from financial information such as routing numbers to product keys and gift cards. I also keep a list of PINs that I’ve used in the past, just in case I pull out an old device and discover that I no longer remember the code to unlock it. This section contains some sensitive information, so I’ve made sure to password protect it for additional security.

The Lists and Info section is probably my favourite of the bunch. I’m a very organized person, so I like to keep track of interesting games to play (games in the “Pile of Shame” are titles that I own but have yet to start), books to read, and movies or TV shows to watch. I’ve taken this a step further by also keeping track of the content that I want to download or finish at some point. This way, I won’t forget to watch that second audio commentary track on the Halo 4: Forward Unto Dawn Blu-ray, for example.

I have lists for all sorts of things. Whenever I loan an item to someone, it goes on my Lent Items page. I also keep track of PC specs and essential programs that should be installed on all of my devices. Finally, I maintain a list of podcasts that I enjoy (just in case I need to wipe my media player), technical support case numbers, and my domains and their associated registrars.

The Work and Microsoft sections are very similar and were originally combined at one point. The latter, however, started to grow so large that it eventually needed its own section. Basically, anything work-related is placed into one of these two sections, from prep materials, travel plans, and interview expenses to to-do lists. The Microsoft section also contains a list of handy resources distributed during orientation, my packing list, a collection of things to do over the summer, and much more. As you can see, while these are work-related, they’re also more on the personal side. The stuff I’m actually working on is stored in team notebooks on Office 365.

It can be hard to remember everything that happens at a big event or convention, so I started using OneNote to keep track of things beginning with the event title. I’ve developed the habit of using OneNote to write the names of people I meet, making it easy to remember their names and refer back to a list of people I met months or years later. Each event has its own page with all sorts of useful information, from the room number at the hotel to cool things I saw and various other details.

The Notes section contains a hodgepodge of, well, notes, from areas of improvement for products to software bugs, app ideas, meeting notes, and anything that might happen to come to mind while writing a review. In many ways, it’s very similar to your typical Quick Notes section. I just prefer to use Quick Notes as a temporary storage location rather than a repository for random thoughts and ideas.

The Resources section is where I keep all sorts of tutorials, tips and tricks. Whenever I come across something that might be useful to reference in the future, it goes under Resources. This includes a list of star services for smartphones and wireless carriers, instructions for connecting an Xbox 360 to Xbox LIVE via a laptop, the folder locations for app data, system icons, Zune HD apps, or the Internet Explorer whitelist, voicemail numbers, and much more.

I’ll often find something funny or interesting online that I want to keep a copy of. Before I started using OneNote, I’d usually paste this information into a Word document. This is great for creating individual documents, but eventually, I switched to saving them in the Clippings section in OneNote. This way, individual snippets are out of the way and stored in one place, but they’re still instantly accessible if I never need them and much more discoverable than they were before. Some of my old blog posts can be found here as well.

Last, but certainly not least, is Quick Notes, the default section for notes which have yet to be filed, including Voice Notes on Windows Phone and notes created using OneNote 2013′s Quick Note feature. I rarely keep stuff in Quick Notes for very long, instead preferring to move the page to the relevant notebook/section or delete it when its usefulness is at an end.

All of this content can be accessed from any device (including my desktop PC, Surface, Windows Phone, and the Web App on OneDrive), so I’m never without the information that matters most to me.

–William Devereux

How do you use OneNote in your personal life? Let us know in the comments!

————————-
Download OneNote: onenote.com
Follow OneNote: twitter.com/msonenote
Like OneNote: facebook.com/MicrosoftOneNote

Living life with OneNote: Let’s get personal

Mon, 06/09/2014 - 00:37

Originally posted on the Office Blog

College students use OneNote to stay organized and productive with constantly demanding deadlines–it’s easy to manage an entire college career in a single notebook. But where do personal commitments fit in? California State University and OneNote intern William Devereux shares his personal notebook to show how he uses OneNote to keep track of everything from movies and games to social events and lists of what to pack for his next trip.

As a student, I use OneNote to help me manage a whirlwind of classes, assignments, group projects, and lab work, but there’s more to life than work and studying. Personal time is important, and OneNote is essential to helping me make sure I have fun too.

My personal notebook is organized into nine key sections: Important, Lists and Info, Work, Microsoft, Events, Notes, Resources, Clippings, and Quick Notes.

The first section is just what it sounds like: a repository for crucial information. In this section, I store everything from financial information such as routing numbers to product keys and gift cards. I also keep a list of PINs that I’ve used in the past, just in case I pull out an old device and discover that I no longer remember the code to unlock it. This section contains some sensitive information, so I’ve made sure to password protect it for additional security.

The Lists and Info section is probably my favourite of the bunch. I’m a very organized person, so I like to keep track of interesting games to play (games in the “Pile of Shame” are titles that I own but have yet to start), books to read, and movies or TV shows to watch. I’ve taken this a step further by also keeping track of the content that I want to download or finish at some point. This way, I won’t forget to watch that second audio commentary track on the Halo 4: Forward Unto Dawn Blu-ray, for example.

I have lists for all sorts of things. Whenever I loan an item to someone, it goes on my Lent Items page. I also keep track of PC specs and essential programs that should be installed on all of my devices. Finally, I maintain a list of podcasts that I enjoy (just in case I need to wipe my media player), technical support case numbers, and my domains and their associated registrars.

The Work and Microsoft sections are very similar and were originally combined at one point. The latter, however, started to grow so large that it eventually needed its own section. Basically, anything work-related is placed into one of these two sections, from prep materials, travel plans, and interview expenses to to-do lists. The Microsoft section also contains a list of handy resources distributed during orientation, my packing list, a collection of things to do over the summer, and much more. As you can see, while these are work-related, they’re also more on the personal side. The stuff I’m actually working on is stored in team notebooks on Office 365.

It can be hard to remember everything that happens at a big event or convention, so I started using OneNote to keep track of things beginning with the event title. I’ve developed the habit of using OneNote to write the names of people I meet, making it easy to remember their names and refer back to a list of people I met months or years later. Each event has its own page with all sorts of useful information, from the room number at the hotel to cool things I saw and various other details.

The Notes section contains a hodgepodge of, well, notes, from areas of improvement for products to software bugs, app ideas, meeting notes, and anything that might happen to come to mind while writing a review. In many ways, it’s very similar to your typical Quick Notes section. I just prefer to use Quick Notes as a temporary storage location rather than a repository for random thoughts and ideas.

The Resources section is where I keep all sorts of tutorials, tips and tricks. Whenever I come across something that might be useful to reference in the future, it goes under Resources. This includes a list of star services for smartphones and wireless carriers, instructions for connecting an Xbox 360 to Xbox LIVE via a laptop, the folder locations for app data, system icons, Zune HD apps, or the Internet Explorer whitelist, voicemail numbers, and much more.

I’ll often find something funny or interesting online that I want to keep a copy of. Before I started using OneNote, I’d usually paste this information into a Word document. This is great for creating individual documents, but eventually, I switched to saving them in the Clippings section in OneNote. This way, individual snippets are out of the way and stored in one place, but they’re still instantly accessible if I never need them and much more discoverable than they were before. Some of my old blog posts can be found here as well.

Last, but certainly not least, is Quick Notes, the default section for notes which have yet to be filed, including Voice Notes on Windows Phone and notes created using OneNote 2013′s Quick Note feature. I rarely keep stuff in Quick Notes for very long, instead preferring to move the page to the relevant notebook/section or delete it when its usefulness is at an end.

All of this content can be accessed from any device (including my desktop PC, Surface, Windows Phone, and the Web App on OneDrive), so I’m never without the information that matters most to me.

–William Devereux

How do you use OneNote in your personal life? Let us know in the comments!

————————-
Download OneNote: onenote.com
Follow OneNote: twitter.com/msonenote
Like OneNote: facebook.com/MicrosoftOneNote

Living life with OneNote: Let’s get personal

Mon, 06/09/2014 - 00:34

Originally posted on the Office Blog

College students use OneNote to stay organized and productive with constantly demanding deadlines–it’s easy to manage an entire college career in a single notebook. But where do personal commitments fit in? California State University and OneNote intern William Devereux shares his personal notebook to show how he uses OneNote to keep track of everything from movies and games to social events and lists of what to pack for his next trip.

As a student, I use OneNote to help me manage a whirlwind of classes, assignments, group projects, and lab work, but there’s more to life than work and studying. Personal time is important, and OneNote is essential to helping me make sure I have fun too.

My personal notebook is organized into nine key sections: Important, Lists and Info, Work, Microsoft, Events, Notes, Resources, Clippings, and Quick Notes.

The first section is just what it sounds like: a repository for crucial information. In this section, I store everything from financial information such as routing numbers to product keys and gift cards. I also keep a list of PINs that I’ve used in the past, just in case I pull out an old device and discover that I no longer remember the code to unlock it. This section contains some sensitive information, so I’ve made sure to password protect it for additional security.

The Lists and Info section is probably my favourite of the bunch. I’m a very organized person, so I like to keep track of interesting games to play (games in the “Pile of Shame” are titles that I own but have yet to start), books to read, and movies or TV shows to watch. I’ve taken this a step further by also keeping track of the content that I want to download or finish at some point. This way, I won’t forget to watch that second audio commentary track on the Halo 4: Forward Unto Dawn Blu-ray, for example.

I have lists for all sorts of things. Whenever I loan an item to someone, it goes on my Lent Items page. I also keep track of PC specs and essential programs that should be installed on all of my devices. Finally, I maintain a list of podcasts that I enjoy (just in case I need to wipe my media player), technical support case numbers, and my domains and their associated registrars.

The Work and Microsoft sections are very similar and were originally combined at one point. The latter, however, started to grow so large that it eventually needed its own section. Basically, anything work-related is placed into one of these two sections, from prep materials, travel plans, and interview expenses to to-do lists. The Microsoft section also contains a list of handy resources distributed during orientation, my packing list, a collection of things to do over the summer, and much more. As you can see, while these are work-related, they’re also more on the personal side. The stuff I’m actually working on is stored in team notebooks on Office 365.

It can be hard to remember everything that happens at a big event or convention, so I started using OneNote to keep track of things beginning with the event title. I’ve developed the habit of using OneNote to write the names of people I meet, making it easy to remember their names and refer back to a list of people I met months or years later. Each event has its own page with all sorts of useful information, from the room number at the hotel to cool things I saw and various other details.

The Notes section contains a hodgepodge of, well, notes, from areas of improvement for products to software bugs, app ideas, meeting notes, and anything that might happen to come to mind while writing a review. In many ways, it’s very similar to your typical Quick Notes section. I just prefer to use Quick Notes as a temporary storage location rather than a repository for random thoughts and ideas.

The Resources section is where I keep all sorts of tutorials, tips and tricks. Whenever I come across something that might be useful to reference in the future, it goes under Resources. This includes a list of star services for smartphones and wireless carriers, instructions for connecting an Xbox 360 to Xbox LIVE via a laptop, the folder locations for app data, system icons, Zune HD apps, or the Internet Explorer whitelist, voicemail numbers, and much more.

I’ll often find something funny or interesting online that I want to keep a copy of. Before I started using OneNote, I’d usually paste this information into a Word document. This is great for creating individual documents, but eventually, I switched to saving them in the Clippings section in OneNote. This way, individual snippets are out of the way and stored in one place, but they’re still instantly accessible if I never need them and much more discoverable than they were before. Some of my old blog posts can be found here as well.

Last, but certainly not least, is Quick Notes, the default section for notes which have yet to be filed, including Voice Notes on Windows Phone and notes created using OneNote 2013′s Quick Note feature. I rarely keep stuff in Quick Notes for very long, instead preferring to move the page to the relevant notebook/section or delete it when its usefulness is at an end.

All of this content can be accessed from any device (including my desktop PC, Surface, Windows Phone, and the Web App on OneDrive), so I’m never without the information that matters most to me.

–William Devereux

How do you use OneNote in your personal life? Let us know in the comments!

————————-
Download OneNote: onenote.com
Follow OneNote: twitter.com/msonenote
Like OneNote: facebook.com/MicrosoftOneNote

SBJump - Small Basic Featured Program

Mon, 06/09/2014 - 00:00

A platform game SBJump has been produced by Coding Cat through Challenge of the Month - May 2014.

Coding Cat said "Lots of time spent polishing the look and feel of the game, and organizing the code so it is as easy to follow as possible".

The import ID of the program is BCL208-4.  To enable to leader board system the file commands at the bottom of the program will need to be uncommented.

My high score was 316 (level 2).  Have fun!

Opening screen shot

 

Screen shot at entering initial for the leader board

Resolving 'Duplicate mapping' error (Event 6301) for 'Title' property in SharePoint user Profile Service Application property Mapping

Sun, 06/08/2014 - 23:47


How to edit Sharepoint user profile property mapping alias:  Changing 'SPS-JobTitle' to 'Title' property  mapping

Consider the following scenario:

In an existing User Profile Service Application (UPSA) with a synchronization connection to AD, you map 'SPS-JobTitle' to import 'Employee Type' (or any other AD attribute) and then map 'Title' property in UPSA to import an attribute in AD (for example 'Title').

You then run a full profile synchronization and wait for it to complete. The expected result is to get new values as per mapped attributes imported for 'Title' property in the SharePoint User Profiles. However, you observe that the 'Title' value of existing users is never changed and newly added users get a 'Duplicate mapping' error (Event 6301) for 'Title' property in MIISCLIENT.exe during 'SD_DeltaSync' and 'MOSS_DeltaSync' stages. Existing users having 'Title' values show no errors in FIM or ULS. However, the new attribute mapping value will not be updated.

New users will get duplicate mapping errors in Event logs.

Log Name: Application
Source: FIMSynchronizationService
Date: [ Date and Time ]
Event ID: 6301
Task Category: Server
Level: Error
Keywords: Classic
User: N/A
Computer: < servername >
Description:
The server encountered an unexpected error in the synchronization engine:

"BAIL: MMS(24436): eafam.cpp(1298): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): eafam.cpp(946): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): eafam.cpp(1013): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): amexec.cpp(1701): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): amexec.cpp(2086): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): eaf.cpp(1417): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): eaf.cpp(657): 0x80230304 (The image or dimage already has an attribute with that name.)
ERR: MMS(24436): synccoreimp.cpp(5271): 0x80230304 - export-flow failed 0x80230304
BAIL: MMS(24436): synccoreimp.cpp(5272): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): synccoreimp.cpp(4863): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): synccoreimp.cpp(10889): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): synccoreimp.cpp(10573): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): synccoreimp.cpp(2547): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): synccoreimp.cpp(4375): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): synccoreimp.cpp(10072): 0x80230304 (The image or dimage already has an attribute with that name.)
BAIL: MMS(24436): synccoreimp.cpp(3837)

Note: Skipping additional xml data; this data will show 'Title' property as the duplicate.

Reason behind this error:

In UPSA, following the first full sync, the 'SPS-Title' imports 'Title' from AD. 'Title' in SharePoint uses the value provided by 'SPS-JobTitle'. So, both properties in SharePoint will show the same value. Once a value is assigned to 'JobTitle', any new import mapping without clearing the existing projection (in FIM metaverse) fails to edit the existing value in FIM. This results in Sync errors on user objects affected by the mapping change.



A workaround is to first run a full sync without any mapping for 'Title' and 'JobTitle', and then map the properties as desired to AD. Run a full sync again. The steps required are listed below:




To map the 'SPS-JobTitle' property and ‘Title’ to different attributes in AD. Follow the steps given below for a new UPA

A. Create a new UPA SA using new ProfileDB, SocialDB and SyncDB.
B. Create UPSA Sync connections.
C. Edit ‘SPS-JobTitle’ and remove import mapping to ‘Title’
D. Run a full sync without any mapping for the ‘Job Title and ‘Title’.
E. Add Title =Import Title
F. Run full sync again
G. Add SPS-JobTitle = Import ‘Employee Type’
H. Run Full Syc
I. Open test users profile and observe changes.

Follow the steps given below for an existing UPA   

A. Remove existing mapping for ‘Job Title and ‘Title’.
B. Run a full sync without any mapping for the ‘Job Title and ‘Title’.
C. Add Title =Import Title
D. Run full sync again
E. Add SPS-JobTitle = Import ‘Employee Type’
F. Run Full Syc
G. Open test users profile and observe changes. The changes should take effect as required.



About ‘Title’ and Job Title:


In SharePoint 2010, the ‘Job Title (SPS-JobTitle)’ property imports ‘Title’ attribute value from AD by default. This import mapping is created by SharePoint immediately after the creation of AD sync connection in UPSA. The ‘Title’ property uses 'SPS-JobTitle' value as primary property in UPSA. If a full sync runs, both properties in User Profile get the ‘Title’ value from AD.

 

Similar issue [http://blogs.technet.com/b/steve_chen/archive/2010/10/11/user-profile-import-from-bdc-fails-on-sharepoint-server-2010-with-event-id-6301.aspx]

Multiplatformní .NET aplikace Inventoroid vytvořená pomoci Xamarinu

Sun, 06/08/2014 - 23:42
Xamarin je soubor technologií, které umožňují využít jednotný .NET kód, a ten nativně kompilovat pro platformy Android, iOS a Windows. Představíme vám jej formou případové studie společnosti Riganti, která takto vytvořila aplikaci Invetoroid. Vývoj multiplatformních mobilních aplikací v .NETu pomocí Xamarinu V poslední době jsme v RIGANTI pro naše zákazníky...(read more)

No XsltTransformTimeOut property found in SharePoint farm

Sun, 06/08/2014 - 23:28
Scenario In Production , you have an XSLT list view web part displaying a list  This web part returns timeout errors when loaded page initially, when refreshed, error disappears and page loads successfully. An error "Unable to display this Web Part. To troubleshoot the problem open this Web page using Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer"  is displayed when error occurs on page load. A Possible reason
if we have  many columns added to the  target form library, which when opened using XSLT web parts was hitting a timeout error which took more time than what is set for XSLT timeout . In my case, the timeout value was set to 1 second. Using developer dashboard, we can  see the timeout error comes if page refresh takes more than 1 second. A Possible Resolution
1. Install February 2012 CU for SharePoint if you do not have XsltTransformTimeOut   setting in farm.

Or


2. Increase timeout to 5 in $farm = Get-SPFarm $farm.XsltTransformTimeOut using following PS commands.
You have to use DeveloperDashboard on problem pages and determine average time taken for page load. Then use that time to increase the timeout. About XsltTransformTimeOut

I had tested XsltTransformTimeOut in test farm. This is set to 1 second by default. Increasing this timeout can affect performance during large form rendering. To use as a workaround for customer's issue, suggested to increase timeout to5 second. I had tested it and found working if timeout increased to 2 or 5. Increased timeout to 5 in $farm = Get-SPFarm $farm.XsltTransformTimeOut using following PS commands.

Steps to follow
==========

Check Current Setting

$farm = Get-SPFarm
$farm.XsltTransformTimeOut

The default setting is 1 second. The PowerShell code below changes it to 2 seconds which should be sufficient for your farm. Developer dashboard returned average 1 to 1.3 seconds delay in your production farm. So, I’m choosing 5 seconds timeout.

Change Setting to 5 Seconds

$farm = Get-SPFarm
$farm.XsltTransformTimeOut = 5
$farm.Update()

Guest post: Kinect for Windows V2 disponibile per il pre-ordine

Sun, 06/08/2014 - 23:05

Questo post è stato scritto da Massimo Bonanni, MVP Visual Basic

Nei scorsi giorni è stata annunciata la possibilità di pre-ordinare il nuovo device Kinect (http://blogs.msdn.com/b/kinectforwindows/archive/2014/06/05/pre-order-your-kinect-for-windows-v2-sensor-starting-today.aspx).

In questo breve post cercheremo di mostrare quali sono le principali novità che arriveranno con la nuova versione del device e con il suo SDK. L’ SDK, così come il device, sarà disponibile, come beta pubblica, a partire da luglio 2014.

Le più importanti novità che potremo trovare sono:

· La tecnologia di acquisizione della profondità à stata cambiata rispetto alla prima versione del device garantendo una maggiore;

· La camera è una 1080p;

· Gli angoli di visuale verticale e orizzontale sono maggiori rispetto alla precedente versione anche se il nuovo device non dispone del motore per il brandeggiamento verticale (in realtà non ne ha bisogno visto l’incremento dell’angolo verticale che compensa benissimo la mancanza);

· Il tracciamento dello scheletro dei giocatori (skeletal tracking) è stato migliorato aggiungendo 5 nuovi punti di riferimento e incrementando il numero dei giocatori tracciati completamente. Inoltre, grazie alla migliorata tecnologia di calcolo della distanza degli oggetti, si ha un notevole miglioramento nell’affidabilità dei punti tracciati. Infine, sono state implementate delle correzioni anatomiche ai punti recuperati dal device ottenendo una maggiore aderenza al corpo umano;

· Oltre al tracciamento di alcuni punti del corpo umano (25 per l’esattezza), sono state introdotte interessanti funzionalità come l’hand tracking, le activities, le appearance e le expression. Queste ultime tre ci danno, ad esempio, informazioni riguardo le caratteristiche facciali del player come avere gli occhi aperti, il parlare o l’indossare gli occhiali;

· La sorgente infrarossi prevede un meccanismo di riduzione dell’incidenza della componente infrarosso esterna al device. L’SDK del Kinect V2 riesce a rimuovere, dalla luce riflessa dal soggetto, la componente infrarossa che non è stata irraggiata dal dispositivo stesso. Questo migliora sensibilmente la precisione di tutte quelle applicazioni che sfruttano pesantemente l’emettitore ad infrarossi;

· Il sensore può essere utilizzato contemporaneamente da più applicazioni senza avere ripercussioni sulle performance grazie alla rinnovata architettura dell’SDK.

· L’SDK di Kinect V2 può essere utilizzato anche in applicazioni Windows Store da sottomettere allo store pubblico (ed è, al momento, l’unico device di questo genere a farlo).

I requisiti hardware per poter utilizzare il nuovo device sono:

· Sistema operativo: Windows 8, Windows 8.1, Windows Embedded Standard 8 o Windows Embedded Standard 8.1

· Processore: 32 bit (x86) o 64 bit (x64), dual-core 2.66-GHz o superiori

· Memoria: 2 GB RAM

· Scheda grafica: DirectX 11 compatibile

· USB 3

Come già detto all’inizio del post, è possibile pre-ordinare il device utilizzando l’indirizzo http://www.microsoft.com/en-us/kinectforwindows/Purchase/developer-sku.aspx ed il prezzo, in Italia, è di 199 Euro, di gran lunga inferiore a quanto ci si aspettasse. Questo dovrebbe dare un grande impulso all’adozione del device in applicazioni reali.

Dynamics CRM 2014 年春/SP1 サービスモジュールの新機能 その 3

Sun, 06/08/2014 - 22:09

みなさん、こんにちは。

今回は前回の続きで、タイマーコントロールについて紹介します。まだ
前回の記事を ご覧になっていない場合は、以下リンクよりご参照ください。

Dynamics CRM 2014 年春/SP1 サービスモジュールの新機能 その 1
Dynamics CRM 2014 年春/SP1 サービスモジュールの新機能 その 2

タイマーコントロール

SLA の機能をより便利に使うために、タイマーコントロールが提供されて
います。タイマーコントロールはフォーム上に配置するコントロールで
SLA の状況をわかりやすく表示します。

タイマーコントロールの設置

まず今回のシナリオです。

・SLA に対する残り時間をフォーム上に表示する
・最初の応答の SLA 状態が非準拠になった場合、警告とみなす
・サポート案件をキャンセルした場合、タイマーの処理はやめる
・初回応答を行ったと認識した時点で成功と認識する

早速フォームにタイマーコントロールを配置してみます。

1. 設定 | カスタマイズ | システムのカスタマイズを選択します。

2. エンティティ | サポート案件 | フォームを選択します。

3. サポート案件フォームを開きます。

4. 適用できる SLA セクションを選択して、挿入タブより Timer を
クリックします。

5. 名前をラベルに任意の文字を表示します。

6. タイマーが参照するフィールドを指定します。今回は最初の応答期限を
表示したいので、最初の応答者 (※誤訳のため本来は最初の応答期限) を
選択します。

7. 成功条件、警告条件、失敗条件をそれぞれフィールドと値の組み合わせ
で指定します。今回はシナリオに従って、以下のような組み合わせを指定
しました。

8. OK をクリックします。

9. タイマーコントロールのすぐ下に「最初の応答の SLA の状態」フィールド
を配置して、フォームを保存して公開します。

動作確認

この時点で一旦動作を確認してみます。

1. サービス | サポート案件をクリックします。

2. 新規サポート案件ボタンをクリックします。

3. 顧客より「アドベンチャーワークス (サンプル)」を選択し、
前回作成した権利を指定します。またサポート案件タイトルを
入力します。

4. 優先度を任意の値にして上書き保存します。ここでは標準のままとしました。

5. SLA に初回応答期限が設定され、タイマーが正しい残り時間を表示すること
を確認します。

6. 次に警告状態を確認するため、最初の応答の SLA フィールドの値の値を
処理中から「ほぼ非準拠」に設定します。設定を変更した瞬間にタイマー
コントロールの色が黄色になることを確認します。

7. 次に成功状態を確認するため、詳細タブにある「送信された最初の
対応」フィールドを「いいえ」から「はい」に変更します。設定を
変更した瞬間にタイマーコントロールが成功となることを確認します。

8. 最後のキャンセル状態を確認するため、サポート案件の取り消し
ボタンをクリックして、取り消し状態にします。

9. タイマーコントロールが取り消しになることを確認します。

10. 尚、期限を過ぎた場合は以下のように赤色で表示されます。

SLA のアクションとの連携

タイマーコントロールは上記のように、各フィールドの値によって、状態
を変更することができますが、手動でフィールド値を更新する事は現実的
ではないため、ここでは SLA のアクションとの連携方法を紹介します。

1. 設定 | サービスの管理 | サービスレベル契約を選択します。

2. 以前作成したプレミア契約レコードを開きます。

3. 非アクティブ化ボタンをクリックして、一旦非アクティブ状態にします。

4. 最初の応答期限 - 優先度高の SLA の詳細レコードを開きます。

5. 警告のアクションとして、レコードの更新アクションを追加します。

6. サポート案件の「最初の応答の SLA の状態」を「ほぼ非準拠」に指定します。

7. 同様に失敗のアクションにもレコードの更新アクションを追加して、サポート
案件の「最初の応答の SLA の状態」を「非準拠」に指定します。

8. 他の SLA 詳細でも同様のアクションを追加して、すべて保存します。

9. 最後に SLA をアクティブ化します。

これにより警告時間を過ぎた際のアクションで、自動的に任意のフィールド
の値を更新し、タイマーコントロールの状態と連動させることが可能です。

その他の考慮

上記手順では SLA が警告状態、失敗状態の際のアクションを定義しましたが、
成功の状態は別途スクリプトやワークフローで設定する必要があります。何を
もって初回応答を行ったと考えるか、またそのオペレーションよって実装は
変わりますが、「送信された最初の応答」を変更した場合に、「最初の応答の
SLA の状態」も必要に応じて更新するように注意してください。

また今回タイマーコントロールは SLA 機能と連動した形で紹介しましたが、
任意のエンティティで利用できますので、さまざまなシナリオに利用できます。
是非色々お試しください。

次回は顧客サービススケジュールと祝日スケジュールを紹介します。

- 中村 憲一郎

Office 365 API : JavaScript Library for Cordova

Sun, 06/08/2014 - 19:57
環境 : Visual Studio 2013 Update 2 Office 365 API Tools Multi-Device Hybrid Apps for Visual Studio 2013 Office 365 API Office 365 API 入門 JavaScript Library (Cordova 開発) こんにちは。 今週は、前回書ききれなかった Office 365 API の JavaScript Library について記載します。 最近発表された調査結果でも iPhone、Android といったマルチデバイスに対応したアプリは、アプリ全体の 40 % を上回るそうですが、ここで使用する Apache Cordova は HTML / CSS / JavaScript による開発プラットフォームを提供することで、こうしたクロス デバイスのアプリ開発を実現します。 そして、最新の Visual Studio では「Multi-Device Hybrid Apps」という Cordova 用の開発環境が提供されています...(read more)

Azure HDInsight 公開預覽 HBase 叢集做為 Azure Blobs 上的 NoSQL 資料庫

Sun, 06/08/2014 - 18:53

原文發表於 Azure HDInsight previewing HBase clusters as a NoSQL database on Azure Blobs

2014 年 6 月 3 日,Azure HDInsight 公開了一項更新消息,Azure HDInsight 將支援 Hadoop 2.4,並提升查詢資料的效能 100 倍。而今天,我們宣佈在 HDInsight 產品中,開始預覽 Apache HBase 叢集(cluster)。

HBase 是一個低延遲的 NoSQL 資料庫,適合用來做大數據的線上交易處理(OLTP, online transactional processing)。我們在 Azure 中提供 HBase 叢集,而叢集的資料直接儲存於 Azure Blob 之中,如此一來便能在成本及效能的考量上,取得最大的存取效能以及擴充彈性。這個產品讓我們的客戶能擁有一個大型資料庫來建立高互動性的網站、或是儲存從百萬個感測器回傳的遙測資料等等,並且能在 Hadoop 中分析這些資料。

如何建立 HBase 叢集

由於目前 Azure HDInsight 上的 HBase 還在預覽階段,所以操作上需要利用 PowerShell。

  1. 安裝為 Azure 環境優化的 PowerShell
  2. 按照文章步驟設定環境
  3. 利用下列指令將 Azure 的認證資料存在變數中:
    PS C:\> $creds = Get-Credential
  4. 建立 HBase 叢集(可根據需求修改資料中心位置,以及修改 Blob 帳號的資料):
    PS C:\> New-AzureHDInsightCluster -Name yourclustername -ClusterType HBase -Version 3.0 -Location “West US” ` -DefaultStorageAccountName yourstorageaccount.blob.core.windows.net -DefaultStorageAccountKey “yourstorageaccountkey” ` -DefaultStorageContainerName hbasecontainername -Credential $creds -ClusterSizeInNodes 4
在 HBase 叢集中操作資料

應用程式開發人員可以透過 REST APIs 、HBase shell 或是不同的 map/reduce 工具如 Hive 及 Pig 來存取 HBase 的資料,HBase shell 提供了一個互動式的主控台(console)讓您可以管理 HBase 叢集、建立或刪除資料表(table)、以及操作資料。

  1. 要使用 HBase shell,首先您必須開啟建立的 HBase 叢集的遠端桌面連線(RDP)來連上它。
    在叢集建立完成時,你可以在 Azure 管理介面上設定(CONFIGURATION)的頁面中,在最下方按下 ENABLE REMOTE 的按鈕來開啟 RDP,最後可以利用 CONNECT 按鈕來進行連線。
  2. 連結進叢集後,按下桌面上 Hadoop command prompt的捷徑,然後輸入下列指令來開啟 HBase shell: cd %HBASE_HOME%\bin hbase shell
  3. 下面的指令則是建立一個範例資料表,並且加入一列資料、以及列出資料表的所有資料:
    create ‘sampletable’, ‘cf1′
    put ‘sampletable’, ‘row1′, ‘cf1:col1′, ‘value1′
    scan ‘sampletable’

如果您想瞭解更多關於 Azure HDInsight 上的 HBase,下面是一些參考資料:

這篇文章原始發佈於「Microsoft Azure 中文部落格」

Microsoft Dynamics GP 2013 R2 updates to Report Writer Functions

Sun, 06/08/2014 - 18:00

You might remember the story about how I created a suite of Report Writer functions and got them added to the version 7.0 Dynamics.dic core dictionary. The aim for these functions was to make it easier for partner consultants and customers to modify the reports without needing custom scripting in Visual Basic for Applications (VBA) or Dexterity. They are documented in the Report Writer Functions document in the Software Developers Kit (SDK).

Based on feedback I have received from the community, I have made some changes to a few of the Report writer functions and submitted them to the development team for inclusion in the Microsoft Dynamics GP 2013 R2 (Service Pack 3) code.

Below is a summary of the Report Writer (RW) functions changed and what new functionality is available. 

 

RW_CoAddrIDInfo()

  • If an empty string is passed as the Address ID (first) parameter, the address data is pulled from the Company Master (SY_Company_MSTR, SY01500) table instead of Location Master (SY_Location_MSTR, SY00600) table.

 

RW_PMAddrIDInfo()

  • If an empty string is passed as the Address ID (second) parameter, the address data is pulled from the Vendor Master (PM_Vendor_MSTR, PM00200) table instead of Vendor Address Master (PM_Address_MSTR, PM00300) table.

 

RW_RMAddrIDInfo()

  • If an empty string is passed as the Address ID (second) parameter, the address data is pulled from the Customer Master (RM_Customer_MSTR, RM00101) table instead of Customer Address Master (RM_Customer_MSTR_ADDR, RM00102) table.
     
  • For the Field (third) parameter, The values 14 and 15 have been added for the User Defined 1 and User Defined 2 fields respectively.

 

RW_GetInternetText()

  • Updated Field (sixth) parameter, so that it works without errors. The values of 10 (to), 11(cc) and 12(bcc) return email addresses, any other value returns the internet text field.

  

RW_ConvertToWordsAndNumbers()

  • Added new mode to support full conversion of dollars and cents to words. The Mode (third) parameter now supports the following three values:

0 = Whole Number in words, Parts in numbers
1 = Whole Number in numbers, Parts in numbers
2 = Whole Number in words, Parts in words *NEW

 

RW_ConvertToWordsAndNumbersParse()

  • Added new mode to support full conversion of dollars and cents to words. The Mode (third) parameter now supports the following three values:

0 = Whole Number in words, Parts in numbers
1 = Whole Number in numbers, Parts in numbers
2 = Whole Number in words, Parts in words *NEW

 

Here are some examples of the RW_ConvertToWordsAndNumbers() function in action:

  • RW_ConvertToWordsAndNumbers( 1234.56   ""   0 )

One Thousand Two Hundred Thirty Four Dollars and 56 Cents

  • RW_ConvertToWordsAndNumbers( 1234.56   ""   1 ) returns

** 1,234 Dollars and 56 Cents

  • RW_ConvertToWordsAndNumbers( 1234.56   ""   2 ) returns

One Thousand Two Hundred Thirty Four Dollars and Fifty Six Cents


 

For more information, check out the following blog articles:

 

Hope you like the improvements.

David

5/29-30 de:code セッション SV-007 “パワフル モバイル アプリ開発 ~ 最新 Microsoft Azure Mobile Services をフル活用しよう!~ ” フォローアップ (4)

Sun, 06/08/2014 - 18:00
皆様、こんにちは!多くの方に (1)  (2) (3) を読んでいただいて、大変感謝しています。 今回は、4番目のセッションフォローアップである、Microsoft Azure Active Directory 連携、に行きたいと思います。

セッションでもご紹介した通り、主に、Azure ポータル上で必要な手順と、ADAL(Active Directory Authentication Library)を使ったネイティブアプリの認証コードの記述、に分かれますので、順にご紹介していきます。

1.Azure ポータル上で必要な手順ーWebアプリ(Mobile Services のプロキシであるWebSites)の登録

まず最初に、アプリが Azure Active Directory を認証プロバイダーとして使用してMobile Services にログインできるように登録する方法をご紹介します。

Azure ポータルにログインし、Mobile Services タブをクリックして、対象のMobile Services をクリックします。

Identity(ID)タブをクリックします。

Azure Active Directory の箇所まで、当該セクションをスクロールダウンし、リストされている アプリケーション URL をコピーします。

 

管理ポータルから Active Directory に移動し、自分で作った Active Directory をポイントします(まだ作ってない場合には、新規作成ですぐに作りましょう)。もちろん、ユーザーも登録しておく必要があります。

 

アプリケーション タブをクリックし、 アプリを 追加します。

画面下部の追加ボタンを押して、組織で開発中のアプリケーションを追加 をクリックします。

アプリケーションの追加ウィザードの中で、アプリケーションの名前を適当に入力し、Web Application 及びまたは Web API タイプを選択して続けます。

サインオン URL ボックスで、先述した Mobile Services の Active Directory IDプロバイダー設定からコピーした App ID を貼り付けます。同じく、アプリケーション ID/URI も同じものを張り付け、保存します。このアプリは、この URI を使って、シングルサインオンのリクエストを、Azure Active Directory に送信します。継続ボタンをクリックします。

 

アプリケーションが追加されたら、 構成タブをクリックしますそして、 発行されたクライアント ID をコピーします。

Mobile Services の ID タブに戻ります。画面下部に、Azure Active Directory 用の Client ID 設定がありますので、そこにこの値を張り付けてして保存します。

※ .NETバックエンドを採用している場合(本稿もそうです)、Allowed Tenants リストが見えます。ここですべてのドメインを登録する必要があります(例: contoso.onmicrosoft.com) 。これを使って Mobile Services が Allowed Tenants リストにアクセスします。この設定は、Node.js(JavaScript)バックエンドには適用されません。

保存すると、Azure Active Directory を使って、このアプリの認証を行うことができます。

2.Windows ストアアプリ Mobile Services クライアントによる Azure Active Directory へのシングルサインオン   Azure 管理ポータルで、Azure Active Directory に戻ります。アプリケーション タブをクリックし、アプリケーションを選択します。 マニフェストの管理をクリックして、マニフェストのダウンロードを選び、アプリケーションマニフェストをローカルに保存します。

 

Visual Studio でこのマニフェストファイルを開きます。ファイルの先頭にある、apPermissions 部分を探します。

1: "appPermissions": [],

この部分を適宜変更して保存します。PermissionId の部分はもちろんこのままではなく、適宜変更してください。

1: "appPermissions": [ 2: { 3: "claimValue": "user_impersonation", 4: "description": "Allow the application access to the mobile service", 5: "directAccessGrantTypes": [], 6: "displayName": "Have full access to the mobile service", 7: "impersonationAccessGrantTypes": [ 8: { 9: "impersonated": "User", 10: "impersonator": "Application" 11: } 12: ], 13: "isDisabled": false, 14: "origin": "Application", 15: "permissionId": "b69ee3c9-c40d-4f2a-ac80-961cd1534e40", 16: "resourceScopeType": "Personal", 17: "userConsentDescription": "Allow the application full access to the mobile service on your behalf", 18: "userConsentDisplayName": "Have full access to the mobile service" 19: } 20: ],

PermissionId は、エンドポイントの表示をクリックすると、取得できます。

Azure 管理ポータルで、当該アプリのためのマニフェスト管理 をもう一度選択して、マニフェストのアップロードを選択します。ローカルにある、更新された当該マニフェストファイルの位置を指定して、アップロードします。

Azure Active Directory へのストアアプリの登録

Azure Active Directory へのストアアプリの登録には、このアプリを、Windows ストアに関連付けして、Package Security Identifier (通称:SID) を取得する必要があります。この SID を、Azure Active Directory の中のネイティブアプリケーションの設定の中に登録します。

新しい名前を付けたストアアプリのストアとの関連付け Visual Studio で、ストアアプリのプロジェクトを右クリックして、ストアアプリケーションとストアとの関連付けを選択します。 Windowsストアデベロッパーセンターにログインします。アプリ名を適当に入力して、 アプリ名を予約します。セッションでもご紹介した通り、予約は1年間は有効です。ストアで公開しないにしても、予約はしておきましょう。

適当な名前を付けて、次へ をクリックします。アプリとストアでの名前との関連付けをするをクリックすると、パッケージ SID が取得できます。パッケージ SID を取得するため、Windows ストアアプリ開発者ポータルのダッシュボードにログオンし、対象アプリの編集をクリックします。

そしてサービスをクリックします。

ライブサービスのサイトに移動します。 

パッケージ SID をコピーして、Azure Active Directory にペーストします。

ネイティブアプリの登録 Azure 管理ポータルで、Azure Active Directory に移動し、 ディレクトリを展開します。  

アプリケーション タブをクリックし、 アプリを 追加します。

画面下部の追加ボタンを押して、組織で開発中のアプリケーションを追加 をクリックします。

アプリケーションの追加ウィザードの中で、アプリケーションの名前を適当に入力し、ネイティブクライアントアプリケーションタイプを選択して続けます。

リダイレクト URI ボックスに、先ほどコピーした、パッケージ SID をペーストし、保存して登録を終了します。。   ネイティブアプリの構成 タブをクリックし、 クライアント ID をコピーします。後で必要となります(適宜、ロゴなどもアップロードします)。 ページをスクロールダウンして、他のアプリケーションに対するアクセス許可セクションに移動します。そして、該当する登録済み Mobile Services アプリケーションに対するフルアクセスを設定し、保存をクリックします。

これで、Mobile Services は、アプリからのログイン要求を、Azure Active Directory の中でシングルサインオンを要求するように、構成されました。

Mobile Services コントローラー側を認証を要求するように修正

ついで当該Mobile Services の .NET バックエンド側を、認証が必要なように、修正します。

.NET backend mobile service project in Visual Studio で .NET バックエンドのプロジェクトを開きます。ソリューションエクスプローラーで、Controllers フォルダを開き、 ProductWithPriceController.cs ファイルを開き、下記の通り、編集します。。

1: using Microsoft.WindowsAzure.Mobile.Service.Security;

ProductWithPriceController.cs ファイル内のすべてのメソッドに、 [AuthorizeLevel(AuthorizationLevel.User)]  属性を、追加して、保存します。プロジェクトを右クリックして、リビルドします。そして、Azure に、再度発行(パブリッシュ)します。

1: ・・・ 2: // GET tables/ProductWithPrice 3: [RequiresAuthorization(AuthorizationLevel.User)] 4: public IQueryable<ProductWithPrice> GetAllProductWithPrice() 5: { 6: return Query(); 7: } 8:  9: // GET tables/ProductWithPrice/48D68C86-6EA6-4C25-AA33-223FC9A27959 10: [RequiresAuthorization(AuthorizationLevel.User)] 11: public SingleResult<ProductWithPrice> GetProductWithPrice(string id) 12: { 13: return Lookup(id); 14: } 15:  16:  17: // PATCH tables/ProductWithPrice/48D68C86-6EA6-4C25-AA33-223FC9A27959 18: [RequiresAuthorization(AuthorizationLevel.User)] 19: public Task<ProductWithPrice> PatchProductWithPrice(string id, Delta<ProductWithPrice> patch) 20: { 21: return UpdateAsync(id, patch); 22: } 23:  24: [RequiresAuthorization(AuthorizationLevel.User)] 25: // POST tables/ProductWithPrice/48D68C86-6EA6-4C25-AA33-223FC9A27959 26: public async Task<IHttpActionResult> PostProductWithPrice(ProductWithPrice item) 27: { 28: ProductWithPrice current = await InsertAsync(item); 29: return CreatedAtRoute("Tables", new { id = current.Id }, current); 30: } 31:  32: [RequiresAuthorization(AuthorizationLevel.User)] 33: // DELETE tables/ProductWithPrice/48D68C86-6EA6-4C25-AA33-223FC9A27959 34: public Task DeleteProductWithPrice(string id) 35: { 36: return DeleteAsync(id); 37: } 38: ・・・

ストアアプリへの認証コードの追加 このままストアアプリを実行すると、当然ながら、401のエラー(Unauthorized)が返ってきます。

���こで、認証の ためのコードを追加します。ソリューションエクスプローラーで、ストアアプリのプロジェクトを右クリックして、NuGet パッケージの管理を右クリックします。 NuGet パッケージマネージャーのダイアログで、オンラインプレリリースを含んだ形で、検索します。検索ボックス内に、Microsoft.IdentityModel.Clients と入力して、Active Directory Authentication Library が見つかったら、インストール をクリックして、Active Directory Authentication Library Nuget package をインストールします。

ソリューションエクスプローラーで、MainPage.xaml.cs を開いて、下記の using 句を追加します。

1: using Windows.UI.Popups; 2: using Microsoft.IdentityModel.Clients.ActiveDirectory; 3: using Newtonsoft.Json.Linq;

MainPage クラスに、AuthenticateAsync() メソッドを追加します。

1: private MobileServiceUser user; 2: private async Task AuthenticateAsync() 3: { 4: string authority = "<INSERT-AUTHORITY-HERE>"; 5: string resourceURI = "<INSERT-RESOURCE-URI-HERE>"; 6: string clientID = "<INSERT-CLIENT-ID-HERE>"; 7: while (user == null) 8: { 9: string message; 10: try 11: { 12: AuthenticationContext ac = new AuthenticationContext(authority, false); 13: AuthenticationResult ar = await ac.AcquireTokenAsync(resourceURI, clientID); 14: JObject payload = new JObject(); 15: payload["access_token"] = ar.AccessToken; 16: user = await App.MobileService.LoginAsync(MobileServiceAuthenticationProvider.WindowsAzureActiveDirectory, payload); 17: message = string.Format("You are now logged in - {0}", user.UserId); 18: } 19: catch (InvalidOperationException) 20: { 21: message = "You must log in. Login Required"; 22: } 23: var dialog = new MessageDialog(message); 24: dialog.Commands.Add(new UICommand("OK")); 25: await dialog.ShowAsync(); 26: } 27: }

・INSERT-AUTHORITY-HERE は、テナント名です。フォーマットは、https://login.windows.net/tenant-name.onmicrosoft.com となります。こちらは、Azure ポータル内の Azure Active Directory から取得します。先ほども出てきました。

INSERT-RESOURCE-URI-HERE は、Mobile Services の App ID URI です。プロキシサービスとして機能する Websites です。フォーマットは、 https://todolist.azure-mobile.net/login/aad となります。これも既出です。

INSERT-CLIENT-ID-HERE の箇所は、Azure Active Directory で設定したネイティブクライアントアプリのページから、クライアント ID を取得してください。これも既出です。

Package.appxmanifest ファイルの設定

ソリューションエクスプローラーで、ストアアプリ内の Package.appxmanifest ファイルを開きます。機能タブを開いて、エンタープライズ認証と、プライベートネットワーク(クライアントとサーバー)にチェックをして保存します。

MainPage.cs に戻り、OnNavigatedTo イベントハンドラを、下記の通り編集し、AuthenticateAsync() メソッドを呼ぶように変更します。

1: protected override async void OnNavigatedTo(NavigationEventArgs e) 2: { 3: if (user == null) 4: await AuthenticateAsync(); 5:  6: RefreshTodoItems(); 7: }

アプリをリビルドして、実行し、このような画面が出てくればOKです。Azure Active Directory に作成済みのユーザーで、ログインしましょう。

なお、セッションでは、DEMOとして、これ以外に、Office 365 連携アプリ(SQL Database とExchange Online の両方に予定を書き込む)もご紹介しましたが、こちらは別途、サブスクリプションが必要となりますので、こちらは割愛します。興味のある方は、弊社エバンジェリスト・松崎のブログ等をご参照ください。また、資料には、このあたりのフローも入れてありますので、ご参考まで!

以上です。いかがでしたか?

次回は、最後の(5)、として、Xamarin 連携の箇所を簡単に取り上げて、このセッションのフォローアップを終了としたいと思います。

それでは、また!

鈴木 章太郎

ExpressRoute の概要

Sun, 06/08/2014 - 17:00

このポストは、6 月 2 日に投稿した ExpressRoute: An overview の翻訳です。

マイクロソフトは、5 月 12 日に開催された TechEd North America 2014 で、ExpressRoute の一般提供開始を発表しました。この記事では、このサービスの概要を簡単に説明すると共に、関連するドキュメントやプレゼンテーションへのリンクをご紹介します。

ExpressRoute は Microsoft Azure のサービスの 1 つで、お客様のオンプレミスのインフラストラクチャからインターネットを経由せずに Azure サービスにアクセスできるようにするものです。マイクロソフトは数社の接続プロバイダーと提携し、お客様のオンプレミスのインフラストラクチャと Azure データ センターの間にエンドツーエンドの接続を提供しています。サービスの詳細については、TechEd North America で発表されたプレゼンテーション「Virtual Network と ExpressRoute を利用してオンプレミスのインフラストラクチャを Microsoft Azure に拡張する (英語)」をご覧ください。ExpressRoute を使用すると、Virtual Machines や Cloud Services の他、Azure Storage や SQL Database など、Virtual Network でデプロイされた Azure サービスに接続できます。

ExpressRoute には、接続プロバイダーのタイプによって 2 つの種類があります。

ExpressRoute とエクスチェンジプロバイダー

マイクロソフトは、Azure とお客様のオンプレミスのインフラストラクチャとの間の接続を提供するために、Equinix や TelecityGroup などのクラウドエクスチェンジプロバイダー、および Level 3 などのポイント間接続サービス プロバイダーと提携しています。回線の帯域幅は、200 Mbps、500 Mbps、1 Gbps、10 Gbps のいずれかをお選びいただけます。お客様は、マイクロソフトがサービスを提供している地域で Equinix または TelecityGroup とコロケーションし、施設内の Equinix Cloud Exchange または TelecityGroup Cloud IX のインフラストラクチャと自社の設備を接続することができます。または、Level 3 と連携してオンプレミスのインフラストラクチャと Azure の間でイーサネット回線を接続していただけます。マイクロソフトは、Azure のインフラストラクチャと接続プロバイダーのインフラストラクチャの間で、アクティブ/アクティブ構成でのクロス接続のペアを構成し、高い可用性と障害に対する回復力を備えた接続を確保します。Equinix や TelecityGroup とのコロケーションを行わない場合は、ご利用地域のイーサネット サービス プロバイダーと連携して、Azure との接続を行う最寄りのエクスチェンジプロバイダーの施設まで専用回線を設置することも可能です。お客様は、ご自身のルーターとマイクロソフトのルーターの間で BGP セッションをセットアップし、経路情報を交換してご自身のネットワークと Azure の間のトラフィック フローを確立します。PowerShell で ExpressRoute 回線を構成する方法は、手順を追ったガイドに詳細に記載されています。

TechEd North America で発表されたプレゼンテーション「ExpressRoute: プライベート ネットワークとパブリック クラウドをエクスチェンジプロバイダー経由で接続する (英語)」では、Equinix 経由での ExpressRoute の機能とユース ケースの詳細をご覧いただけます。

このサービスはシリコンバレー、ワシントン DC、およびロンドンで提供していますが、今後近いうちに、世界中の多数の地域に提供を拡大する予定です。

 

ExpressRoute とネットワーク サービス プロバイダー

マイクロソフトは AT&T、Verizon、British Telecom、Level 3 (IPVPN)、SingTel の各通信会社と提携し、Azure とお客様のオンプレミス インフラストラクチャとの間の通信を提供しています。提供している回線の帯域幅は、10 Mbps ~ 1 Gbps です。上記のネットワーク サービス プロバイダー (NSP) のいずれかを使用して VPN サービスを利用しているお客様は、ネットワークを Azure に拡張することができます。この際、新たにハードウェアをデプロイしたり、既存のネットワークの構成を大きく変更したりする必要はありません。マイクロソフトは、該当する NSP と連携してルーティングの設定を行い、各地域の NSP と冗長な接続をセットアップして、障害に対する回復性を備えた接続を確立します。PowerShell で ExpressRoute 回線を構成する方法は、手順ごとのガイドに詳細に記載されています。

TechEd North America で発表されたプレゼンテーション「ExpressRoute: プライベート ネットワークとパブリック クラウドを WAN プロバイダー経由で接続する (英語)」では、AT&T 経由での ExpressRoute の機能と導入事例の詳細をご覧いただけます。

このサービスはシリコンバレー、ワシントン DC、およびロンドンで提供していますが、今後近いうちに、世界中の多数の地域に提供を拡大する予定です。

 

よく寄せられる質問

このサービスについてよく寄せられる質問をドキュメントとしてまとめてあります。さらに内容を充実させるため、ご不明な点やご意見がありましたらお気軽にお寄せください。

 

サービスの料金について

ExpressRoute の料金については、料金のページで最新の情報をご覧ください。

 

導入事例の紹介

ExpressRoute のプレビュー期間中に、数社のお客様と協力して導入作業を行いました。各社の導入事例と評価は、下記でご覧いただけます。

マイクロソフトは、一般提供開始前にサービスの品質を向上させるために、プレビュー期間中に大手企業として自らサービスをホスティングし、使用経験を積みました。プレビューの初期段階で自社の IT 部門と協力し、ExpressRoute を使用してサービスとワークロードを Azure に移行しました。このときの経験とそれによる発見は、公開中の導入事例 (英語) でお読みいただけます。

サービスとしてのストレージは、現在、大きな伸びを見せています。マイクロソフトは、Azure のお客様にこのサービスを提供するために、サービスとしてのストレージのプロバイダーである Zadara Storage と提携しました。同社のサービスでは ExpressRoute が活用されています。同社についての詳細および提供されているサービスについては、こちらの導入事例 (英語) をお読みください。

また、Accelera には最初にこのサービスをご利用いただき、コスト節減の観点からサービスのメリットの定量化にご協力いただきました。このときの経験とそれによる発見は、こちらの導入事例 (英語) でお読みいただけます。

 

近日公開予定

  • Virtual Network と ExpressRoute の比較
  • ExpressRoute を使用して Azure Storage に接続する方法
  • ExpressRoute による強制トンネリング
  • ExpressRoute のためのルーター設定
  • 仮想ネットワークをサイト間 VPN から ExpressRoute に移行する際にダウンタイムを最小限に抑える方法

 

役に立つコンテンツへのリンク

サービス全般に関する情報: http://azure.microsoft.com/ja-jp/services/expressroute/

導入事例

ネットワーク サービスと ExpressRoute に関する TechEd のセッション

 

Engineer Your Own Luck

Sun, 06/08/2014 - 15:18

“Chance favors the prepared mind.” - Louis Pasteur

Are you feeling lucky?

If you’re an engineer or a developer, you’ll appreciate the idea that you can design for luck, or stack the deck in your favor.

How do you do this?

As Harry Golden said, "The only thing that overcomes hard luck is hard work."

While I believe in hard work, I also believe in working smarter.

Luck is the same game.

It’s a game of skill.

And, success is a numbers game. 

You have to stay in long enough to get “lucky” over time.   That means finding a sustainable approach and using a sustainable system.  It means avoiding going all in without testing your assumptions and reducing the risk out of it.   It means taking emotion out of the equation, taking calculated risks, minimizing your exposure, and focusing on skills.

That’s why Agile methods and Lean approaches can help you outpace your failures.

Because they are test-driven and focus on continuous learning.

And because they focus on capacity and capability versus burnout or blowup.

So if you aren’t feeling the type of luck you’d like to see more of in your life, go back to the basics, and design for it.

They funny thing about luck is that the less you depend on it, the more if it you get.

BTW – Agile Results and Getting Results the Agile Way continue to help people “get lucky.”  Recently, I heard a story where a social worker shared Getting Results the Agile Way with two girls living off the streets.  They are off drugs now, have jobs, and are buying homes.   I’m not doing the story justice, but it’s great to hear about people turning their lives around and these kinds of life changing things that a simple system for meaningful results can help achieve.

It’s not luck. 

It’s desire, determination, and effective strategies applied in a sustainable way.

The Agile way.

ASP.NET WebForms OAuth2 multi-tenant resource and WPF client

Sun, 06/08/2014 - 14:45

Most published WebAPI samples (e.g. http://msdn.microsoft.com/en-us/library/azure/dn646737.aspx) are based on the MVC and OWin infrastructure, which is not available in WebForms applications. Following is a custom implementation of an OAuth2 access token handler presented by a WPF rich client application. The WPF is responsible for managing the OAuth code grant flow to obtain the token and present it to the WebForms application as part of an HTTP call. The code is based on the above samples but modified to support WebForms.

Features:

  1. The WebForm application is registered in an Azure AD as a multi-tenant web application. It's application manifest is modified as per sample instructions (see for example https://github.com/AzureADSamples/NativeClient-WebAPI-MultiTenant-WindowsStore, item 15 under the Register ToDoListServiceMT section). 
  2. To client, WPF application is registered in Azure AD as a native application. It is multi-tenant by default.
  3. The WebForms application extracts and validates the OAuth2 access token (in JWT format) in the JWTTokenValidator class. The class is also responsible for retrieving current federation metadata from the Azure AD tenant in which the ASP.NET application is defined to obtain the owning issuer id and token signing keys.
  4. Once validated, JWTTokenValidator sets the appropriate ClaimsPrincipal on the current thread.
  5. The WebForms application supports adding new tenants either through a set of web pages (RequestConsent/ProcessConsent) or via a REST API called by the rich client. In the second case, the JWTTokenValidator needs to be modified to remove the initial check for token issuer: the signup API must allow the user to be authenticated even if the user is from an as yet un-signed-up tenant. Relevant lines of code are commented appropriately.
  6. The application is currently using an in-memory array of valid issuers, which obviously does not persist between runs. For production purposes it needs to be replaced by a persistent database.

 

 

Custom Styles in Universal Apps Part 2

Sun, 06/08/2014 - 08:10

In Part 1 of this two part series, I covered how to create a ResourceDictionary with a custom style and reference that style in a Textblock control.  Although, I created a Universal App, I did mainly focus on the Windows 8 project not taking advantage of the Universal App capabilities.  Here, I will take what we learned in Part 1 and apply it to both Windows 8 and Windows Phone taking advantage of the benefits of using a Universal App.  If you haven’t followed through Part 1, I would recommend checking it out because I will be building on what we are already created there.

Let’s start simple.  Right now, we have a universal app.  In our Windows 8 project, we have a ResourceDictionary file called Styles.xaml that contains our “TextStyle” style made for TextBlocks.  So, how would we go about referencing that style sheet in our Windows Phone project.  We could very easily just copy that file over to the Windows Phone project, but then we would have two copies of the same exact file.  Needless to say, if we needed to update the file, we would have to do it in two different places.  Here is where we will take advantage of using a Universal App.

Instead of just copying Styles.xaml to the Windows Phone project, let’s copy it into our shared folder.  When we do, let’s also delete it from our Windows project so that we only have one copy in the shared folder.  Your project should look more or less like this now.

In general, anything in the Shared project can be shared between both the Windows and Windows Phone projects.  Yes, the Shared project is aptly named :)  Anyways, now that we stored our Styles.xaml file there, we should be able to run our Windows project again, and get exactly what we had in the previous post.

That works well.  Now, let’s turn our attention to the Windows Phone project.  We have yet to edit anything there, so open up it’s MainPage.xaml and simply copy the stack panel code (see Part 1) inside of the grid tags. Should look like this.

<Grid>
        < StackPanel>
            < TextBlock Text="Text 1" Style="{StaticResource TextStyle}"/>
            < TextBlock Text="Text 2" Style="{StaticResource TextStyle}"/>
            < TextBlock Text="Text 3" Style="{StaticResource TextStyle}"/>
        </StackPanel>
     </Grid>

If you run this in the Windows Phone emulator (or just take a look at the visual editor) you will notice that we are successfully referencing our TextStyle style from the Styles.xaml file in the shared project.

Obviously, this is a super simple example so far, but you can see the power of putting files, data, etc. in the Shared project.  Let’s take it one step further before we move on.  You might have noticed that both the MainPage.xaml files for the Windows and Windows Projects are exactly the same.  Typically it’s a good idea to keep these files separate because the UI will look different for each, but that’s not the case here.  Because of this, take one of them and copy it into the Shared project, and then delete the two existing ones.

You will notice that both run exactly as they had before but instead of having two different MainPage.xaml files, we only have the one.  However, like I mentioned, typically these XAML pages will be separate because you will want slightly different UI’s for the two different platforms.  I mean things that fit on a computer might not look as good on a phone’s smaller screen.  Regardless, through this example, you have gotten a glimpse of the power of using custom styles in Universal Apps!

Feel free to follow me on twitter for upcoming posts! @jquickwit  As always comment with any questions, comments, or concerns below!

Custom Styles in Universal Apps Part 1

Sun, 06/08/2014 - 07:22

Let’s say that you are working on the UI for an application, and you have several different buttons, textblocks, etc.  Each of them will have similar characteristics; the same font size, horizontal alignment, and vertical alignment for example.  You could set each of those properties for each individual control, or you could do the more efficient thing, and create custom styles and simply reference it in each control.  So how exactly do you create custom styles and reference them?  Let’s take a look!

The overall idea is to create a ResourceDictionary file that we will use to store all of our different styles.  Then, we will need to let our App.XAML that we will be using that ResourceDictionary.  This will allow us to reference those styles throughout our application, even across different pages.  So, let’s go ahead and get started.

Open up Visual Studio and create a Universal App and call it whatever you want.  I will be creating a Universal App instead of a Windows 8 or Windows Phone app as Universal Apps are the latest and greatest :) , but in this first post, I will mainly be focusing on the Windows 8 folder within our universal app.  In the follow up post I will show you what it looks like to reference those styles across both the individual Windows 8 and Windows Phone projects. 

Alright, now that we have our universal project created, right click on the Windows project and click Add->New Item.  Select Resource Dictionary, name it Styles, and click Add.

Our new Resource Dictionary file should open automatically, and this is where we will need to define our style.  Two things that we will need for each style are a key, the name to reference it by, and a target type, the type of control that this style will apply too.  Between the two ResourceDictionary tags, go ahead and add a <Style></Style>.  Within the initial style tag, we can add our key and target type by setting the x:Key=”” and TargetType=”” properties respectively.  I will use “TextStyle” as my key and TextBlock as the target type.  Now, between our two style tags, we will add each of the different properties I mentioned above; font size, horizontal alignment, and vertical alignment.

We will create a setter tag for each property and within that tag, we will set the Property and Value properties appropriately.  Hope that wording wasn’t too confusing!

For setting font size, the Property will be “FontSize” and the Value will be “54”.  The full setter tag for font size will look like. <Setter Property="FontSize" Value="54"/>.  We will follow the same pattern to create the Setter tag for both horizontal and vertical alignment with both properties being “Center”.  After you have added all three Setter tags, your file should look like this.


We can now close that file and move over to our App.XAML file where we will let our app know that we will be using our newly created ResourceDictionary file.  The App.XAML file will be listed under our Shared project, so go ahead, find it, and open it. Now add the following code in between the two Application tags.

<Application.Resources>
        < ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Styles.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
< /Application.Resources>

The line in bold is where we tell our app that we will be using the ResourceDictionary called Styles.xaml.  If you want to use more than one dictionary, you can simply add as many corresponding <ResourceDictionary> tags (the bold ones) as needed.  This code might seem a little redundant since we are declaring our bold <ResourceDictionary> tag inside of an already existing <ResourceDictionary> tag.  What we are doing is saying that we are going to merge different ResourceDictionaries, and that merged dictionary will be the ResourceDictionary for our app.  Again, we need to do this if we are using more than one dictionary, but obviously for our simple example, we only need the one for now. Good practice to use this format though because odds are you will need more than 1 dictionary quite frequently.

The last step now is to create our three textblocks (within a stack panel) and then set the style for each one appropriately.  But first, let’s just create the 3 textblocks without referencing our style so we see the difference after we do.   Open up the MainPage.xaml from the Windows project and add the three textblocks giving them whatever text you want.  I’ll use “Text 1”, “Text 2”, and “Text 3” respectively.

Within the grid tag, I just added the following code.

<StackPanel>
            < TextBlock Text="Text 1"/>
             <TextBlock Text="Text 2"/>
            < TextBlock Text="Text 3"/>
< /StackPanel>

Now, when you run your app, your three text blocks will show up in the top left very small like so.

If you can’t actually read the three texts in image above, then that goes to prove a point.  Without setting the font size property, it uses a very small font by default.  To fix this, let’s go ahead and reference our style.  Within each of our three textblocks let’s add Style="{StaticResource TextStyle}" (remember our x:key=”TextStyle”) to reference our static resource syle.  Let’s see how things have changed!

WOW!! You can now see that the font size for each is significantly higher and that they are all centered horizontally.  We might not notice the difference in the centered vertical alignment since it is a vertical stack panel (maybe vertical content wasn’t a great example), but you get the picture.  Anyways, you can definitely see that each of the textblocks was able to inherit the three properties from the style that we created.  This is a much more efficient process than going through and setting each of those three properties for each textblock that we use.

Stay tuned for Part 2 of this tutorial where will show how to reference these different styles across both our Windows Phone and Windows 8 projects!

Feel free to follow me on twitter for upcoming posts! @jquickwit  As always comment with any questions, comments, or concerns below!

SCOM 2012 R2 APM,APM 趨勢圖中的日期為亂碼

Sun, 06/08/2014 - 06:54

問題分析:

Problem
=========

Web page display “&#19978;”is Chinese "上" , &#21320 is Chinese "午"

Cause

=======

Language issue

解決方式 :

Workaround

=========
To set language preferences in Internet Explorer, on the Tools menu, click Internet Options , and then click Languages . In the Language Preference dialog box, click Add to add other languages. For example, to add French, in the Add Language dialog box, select English. You can change the priority of the languages; in the Language Preference dialog box, select the language you want to move, and then click either Move Up or Move Down accordingly.

set language preferences 

Pages

Drupal 7 Appliance - Powered by TurnKey Linux