Quantcast
Channel: MSDN Blogs
Viewing all 5308 articles
Browse latest View live

[Advent Calendar 2017 Day3] Web Apps – Linux への対応

$
0
0

 

こちらの記事は、Qiita に掲載した Microsoft Azure Tech Advent Calendar 2017 の企画に基づき、執筆した内容となります。
カレンダーに掲載された記事の一覧は、こちらよりご確認ください。

 

こんにちは。Azure CIE サポート 今村 です。
今回は、2017 年より強化された Web Apps のコンテナ対応、および Linux 対応について、アドベント カレンダー 3 日目の記事としてまとめてみました。

 

1. 従来の App Service


これまでの App Service は、その基盤にて Windows Server と IIS を利用し、「サンドボックス」と呼ばれる環境の中にアプリケーションを配置していました。

App Service におけるアーキテクチャに関しては、弊社開発部門の Yochay および Stefan が書いた MSDN マガジンの以下の記事に、詳細が記載されています。
"Azure - Inside the Azure App Service Architecture" :
https://msdn.microsoft.com/en-us/magazine/mt793270.aspx

 

なかでも、Linux をベースとした Web Apps においては、Web Worker と呼ばれるインスタンス群が、従来の Web Apps とは大きく異なっています。
Web Worker は、ユーザーがデプロイしたアプリケーションを動作させるためのインスタンスで、App Service プランよりスケール アウト/スケール インを行う際には、この Web Worker と呼ばれるインスタンスが増減しています。
Web Apps のコンテナ対応、ならびに Linux プラットフォームへの対応にあたっては、Web Worker と呼ばれるインスタンス群を Linux OS にて動作させ、さらにそのうえで Docker エンジンを動かすことで、サービスを実現しています。

 

また、既定の Docker イメージを利用して様々な言語のアプリケーションが配置可能な App Service on Linux というサービスと、ユーザーが独自にビルドした Docker イメージをデプロイ出来る Web App for Containers というサービスに分かれています。
次項よりそれぞれのサービスを見ていきたいと思います。

 

2. App Service on Linux


Linux プラットフォームに対応したことで、Web App の作成の際に、Azure ポータルでは新たに OS の種類を選択するオプションが追加されました。
ここで Linux OS を選択すると、App Service on Linux としてデプロイが行われます。

 

2017 年 12 月 3 日現在では、Node.js、PHP、.NET Core、Ruby の 4 種類の言語が、バージョンごとに選択可能となっています。
これらのランタイム スタックは、いずれも Docker イメージとなっており、Azure ポータルで言語を選択すると、docker run コマンドによりイメージからコンテナが起動される仕組みとなっています。
また、これらの Docker イメージは Dockerfile とともに、下記の通り Docker Hub 上に公開されています。

"Azure App Service" :
https://hub.docker.com/u/appsvc/

後述する Web App for Containers を利用して、独自にビルドした Docker イメージをデプロイする場合、これらのリポジトリをフォークしたうえで Dockerfile の作成に取り掛かると、より分かりやすいかもしれません。

 

次に、高度なツール (Kudu) はどのように Windows OS の場合と異なっているか見てみます。
Debug console を見てみると、Bash と SSH という 2 通りの選択肢があることが分かります。

 

ここで注意すべきなのが、Bash を選択した場合、Kudu 自体のファイル システムにアクセスする動作となる点です。
実は、上述した Docker Hub でも Kudu というリポジトリがあったとおり、Kudu も Docker エンジン上で機能するコンテナとして配置されており、Bash はこの Kudu コンテナに対するアクセスになります。

この Bash コンソールへのアクセスは、内部で実行されている docker コマンドの動作をトラブルシュートする際に有用です。
例えば docker pull や docker run といったコマンドの実行ログは、下記のように /home/LogFiles ディレクトリの配下に配置されます。

そのため、実際に Node.js や PHP アプリケーションが動作しているコンテナにアクセスするには、SSH コンソールの方を利用します。

 

ランタイム スタックを切り替えて、言語ごとに動作しているミドルウェアを SSH コンソールから確認してみると、それぞれが異なる仕組みで動作していることが分かります。

例えば、PHP のランタイム スタックで ps コマンドを実行してプロセスの一覧を確認すると、Web サーバーおよびアプリケーション サーバーとして Apache2 が動作しています。

一方で  Node.js では、node が直に HTTP の要求をリッスンしているため、下記のようなプロセスが動いている形になります。

Windows OS をベースとした Web Apps では、HTTP の要求はすべて IIS を介在させる形となっていましたが、App Service on Linux では、言語ごとにミドルウェアが全く異なった内容で、アプリケーションを動作させている点が大きな違いであると言えます。

 

また、Web ブラウザを経由した SSH コンソールを利用して、アプリケーションが動作するコンテナにアクセスはできますが、SSH コンソールから何らかの設定変更や、コンポーネントのインストールを行うことは推奨されません。
これは、/home ディレクトリ以外のファイルは、App Service on Linux が再起動されるたびに初期化されるためです。
App Service on Linux を再起動すると、docker run コマンドが実行され、Docker イメージからコンテナが再構成されるため、マウントされている /home ディレクトリ以外に保存した内容は、既定の内容に置き換えられます。

そのため、例えば PHP のランタイム スタックで Apache2 の設定を変更するために、apache2.conf を書き換えて保存したとしても、その設定内容を恒久的に反映させることはできません。
.htaccess など、/home ディレクトリに配置できるような方法で、設定変更を行う必要がありますので、注意が必要です。

 

 

3. Web App for Containers


Web App for Containers は、App Service on Linux とは異なり、独自に作成した Docker イメージをデプロイできる点が大きな特徴です。
新たな Web App リソースを追加する際に、"Web App for Containers" と入力して検索を行うと、サービスが表示されます。
(2017 年 12 月 3 日現在、日本語環境の Azure ポータルにて "Web App on Linux" と表示される場合がありますが、"Web App on Linux" をそのままご選択ください。)

 

作成画面を見ると、App Service on Linux のときとは異なり、Docker Hub や Azure Container Registry 等に存在する、Docker イメージを指定する方式に変わっていることが分かります。
例えば、Docker Hub の Public リポジトリより WordPress をデプロイする場合は、wordpress と入力して作成を行います。

ここで選択した Docker イメージは、Azure ポータルの Docker コンテナのメニューより、あとから切り替えることも可能です。

 

WordPress の作成後、アクセスしてみると分かりますが、App Service on Linux の場合と比較して、Web App for Containers にアクセスしてもすぐには WordPress が立ち上がっていないことが確認できます。
この理由は、Kudu の Bash コンソールより、docker ログを確認すると分かります。

Web App for Containers の場合、App Service on Linux の場合と比較して、docker pull コマンドが実行され、イメージをダウンロードする動作となっていることが確認できます。
ここでは 13:12:22 から 13:12:58 までのおよそ 30 秒間、docker pull コマンドに時間を要していたことになります。
そのため、重い Docker イメージを利用する場合は注意が必要です。

 

また、App Service on Linux の場合と異なり、SSH コンソールへ繋がらないことも分かります。

カスタムの Docker イメージにて SSH 接続を行う場合、Dockerfile の中でいくつかの設定を含める必要があります。
例えば、root アカウントのパスワードを "Docker!" にするといった変更が必要となり、そのため多くの Docker Hub 上のイメージは、Kudu から SSH 接続ができません。
SSH をセットアップする手順の詳細は、下記よりご確認ください。

"カスタム Docker イメージでの SSH サポート" :
https://docs.microsoft.com/ja-jp/azure/app-service/containers/app-service-linux-ssh-support#ssh-support-with-custom-docker-images

一方で App Service on Linux では、SSH コンソールを提供するために、ランタイム スタックの中で SSH のセットアップが含まれています。

 

また、Web App for Containers の場合、再起動が行われた際には /home 以下のディレクトリも、docker run コマンドの実行直後の状態に戻る設定が、デフォルトとなっています。
この状態は、Web Worker として利用されているインスタンスが個別に /home 以下のディレクトリを保持しており、インスタンス間で、マウントしたディレクトリを共有していない状態であることを意味します。
この場合、ネットワーク経由でマウントした領域を利用しないため、I/O が高速に行えるというメリットはありますが、インスタンス間で共有したいファイルがある場合、この既定の設定では要望を満たせないことになります。

ディレクトリのマウントは、Web Apps の「アプリケーション設定」のメニューより有効・無効が切り替えられるようになっているため、マウントが必要な場合は "WEBSITES_ENABLE_APP_SERVICE_STORAGE" の値を "true" に設定してください。
既定では下記のように false が入力されています。

 

 

このように、App Service では、今後も Linux への対応を拡充していきます。
もちろん、これまで提供してきた Windows 版も同様にご利用いただけますので、配置するアプリケーションの要件や用途に応じて、プラットフォームをご検討ください。


ASP.NET HttpContext in async/await patterns using the Task Parallel Library – Part 3

$
0
0

The SynchronizationContext (SC) is a vital component for the ASP.NET request lifecycle and it is strictly coupled to the HttpContext. In the previous posts we saw how running asynchronous operations by using specific TPL patterns might lead to losing the SynchronizationContext and, thus, reference to the HttpContext.

Such a behavior can impact applications in several ways, both directly (e.g. tasks failing due to null references when accessing the HttpContext or one of its fields) and indirectly (e.g. faults in external libraries).

 

Before jumping to the summary and conclusions, I owe you an answer to the challenge from the previous post.

Below the question I left you to meditate upon, which refers to our demo MVC application used to output debug traces about the execution flow and the SC flow status (I encourage you to quickly re-check the previous posts to recall the code involved):

 

What do you expect to happen when calling the Index action with

  • configureAwait = false
  • tsFromSyncContext = true

 

Previously we went through some tests and analyzed what happens when turning those flags on and off individually. Specifically:

  • configureAwait set to false causes the SC to stop flowing starting from the very first await operation. This yields into a definitive loss of the SC, which is then unavailable both in the awaited task and in the awaiter context once it resumes the execution.
  • tsFromSyncContext set to true, instead, proved to be useful to persist the SC on the awaited task.

 

This is the output we get when running the application with both flags enabled.

Notice the second await operation (the one calling Task.Factory.StartNew) fails. The error message is somewhat cryptic. However if we speculate on what the consequences of calling ConfigureAwait(false) on the awaiter context are, we should understand the SC is lost once the execution is returned to the controller context. Therefore, when the second await operation is invoked and tries to post the newly created task against the current SC, the operation simply can't happen as there is no SC available any more.

 

If you followed me thus far, this example should point out how delicate this whole system could be and how the TPL primitives could be challenging to handle and lead to unexpected behaviors.


Wrapping it all up!

Up to this point, I hope we have a clearer vision on the various scenarios we can run into when using async/await patterns in ASP.NET. However, I bet there are still a few questions open. The most interesting ones, or better, the ones I would be asking myself are:

  • Why awaiting on Task.Run (or other primitives like Task.Factory.StartNew) does not persist the SC while awaiting on a custom async method does?
  • Why if we force the awaiter to use the SynchronizationContextTakScheduler we don't face this problem?
  • Avoiding primitive TPL APIs might just not be a feasible option. How can we deal with this situation and instrument a workaround?

Let's try to address them one by one.

 

Why awaiting on Task.Run does not persist the SC while awaiting a custom async method does?

To find out, we need to peek at the .NET source code. Luckily, it's public! 🙂

Task.Run and other primitive TPL methods rely on the internal method Task.InternalStartNew, which then calls into the following one:

internal void PossiblyCaptureContext(ref StackCrawlMark stackMark) {
	// In the legacy .NET 3.5 build, we don't have the optimized overload of Capture()
	// available, so we call the parameterless overload.
#if PFX_LEGACY_3_5
	CapturedContext = ExecutionContext.Capture();
#else
	CapturedContext = ExecutionContext.Capture(
		ref stackMark,
		ExecutionContext.CaptureOptions.IgnoreSyncCtx | ExecutionContext.CaptureOptions.OptimizeDefaultCase);
#endif
}

The Capture method, invoked with the IgnoreSyncCtx flag, does exactly what we would expect. It skips capturing the SC, suppressing its flow.

// capture the sync context
if (0 == (options & CaptureOptions.IgnoreSyncCtx))
 syncCtxNew = (ecCurrent.SynchronizationContext == null) ? null : ecCurrent.SynchronizationContext.CreateCopy();

Guess what? The framework doesn't let user-defined async methods to follow this very same path and simply lets the SC flow.
What this actually means is if in our code we simply run await on DoStuff, the SC never gets lost.

 

Why if we force the awaiter to use the SynchronizationContextTakScheduler we don't lose the SC?

This question also needs some internals lookup.

The SyncrhonizationContextTaskScheduler exposes a queueing mechanism that posts the work items against the currently captured SC. In this way, the SC keeps flowing and it is persisted.

protected internal override void QueueTask(Task task)
{
	m_synchronizationContext.Post(s_postCallback, (object)task);
}

On the contrary, the ThreadPoolTaskScheduler (default for ASP.NET), ignores the SC completely:

protected internal override void QueueTask(Task task)
{
	if ((task.Options & TaskCreationOptions.LongRunning) != 0)
	{
		// Run LongRunning tasks on their own dedicated thread.
		Thread thread = new Thread(s_longRunningThreadWork);
		thread.IsBackground = true; // Keep this thread from blocking process shutdown
		thread.Start(task);
	}
	else
	{
		// Normal handling for non-LongRunning tasks.
		bool forceToGlobalQueue = ((task.Options & TaskCreationOptions.PreferFairness) != 0);
		ThreadPool.UnsafeQueueCustomWorkItem(task, forceToGlobalQueue);
	}
}

Avoiding primitive TPL APIs might just not be a feasible option. How can we deal with this situation and instrument a workaround?

Eventually if we just cannot get rid of calling Task.Run, what can we do?

The best option is to plan for stateless asynchronous operations. If you think about it, the great advantage of async/await is to offload background operations and allow the request to keep on executing in the meantime. Making those tasks stateless not only solves the potential problem of losing the HttpContext, but it also makes the web application more robust in case a background operation fails.
Odds of a ASP.NET request really needing to await on a purely stateless operation are not many and should let you think twice whether background operations are worth to be made asynchronous at all, given they would still have to be awaited for the request to complete.
Last but not least if you are thinking of porting your web app on microservices for great scaling and orchestration (e.g. deploying it on a Azure Service Fabric cluster), stateless agents performing specific, request-agnostic tasks can be much easier to implement.

That said, there might be situations where going stateless is not possible or easily achievable. Similarly there certainly are scenarios where an ASP.NET request should await on an async operation.
For such situations, the most immediate approach is either to await on custom async methods (which do not lead to SC loss) or on new tasks by using the Task.Factory.StartNew overload accepting a TaskScheduler as parameter. In other words, this would mean overwriting all code references from

Await Task.Run(myBackgroundDelegate());

To

Await Task.Factory.StartNew(myBackgroundDelegate(),
CancellationToken.None,
TaskCreationOptions.RunContinuationsAsynchronously,
TaskScheduler.FromCurrentSynchronizationContext());

Unfortunately, this approach might not fit all the situations too. For instance what if Task.Run is used in an external library?
In such a scenario, there is actually one an additional "trick" we can use. The caveat is to await on a wrapper task, that manually posts the actual awaitable operation against the SC.

To grasp how this works a little better, let's see it applied to our very first example using the Context action of the Home controller.
Besides the code for storing the SC I added a new log line to show if the SC context is properly restored once the execution resumes on the controller context:

public async Task<ActionResult> Context()
{
	Response.Write("
Context action invoked.<hr/>
<ul>");
	Response.Write($"
<li>Current HttpContext in <strong>controller context</strong> is { System.Web.HttpContext.Current.ToString() }</li>

");

	//first we save the current SC
	 var sc = System.Threading.SynchronizationContext.Current;

	//instead of awaiting on Task.Run(WriteHttpContext()), we use a wrapper
	//the SC is therefore persisted both within the awaited and awaiter
	await Task.Run(() =>
	{
		 sc.Post((state) =>
		 {
			  WriteHttpContext().Invoke();
		  }, null);
	 }).ConfigureAwait(configureAwait);

Response.Write($"
<li>Current HttpContext in <strong>controller context</strong> is { System.Web.HttpContext.Current.ToString() }</li>

");

	Response.Write($"</ul>

<hr/>Response complete.");
	return new HttpStatusCodeResult(200);
}

If you recall when we walked through this sample in the first post, we saw the HttpContext being lost in the awaited Task context. Here's the output we get this time:

If we were to use this approach with the Index action instead and get the full verbose output, we would see the SC being of type AspNetSynchronizationContext and the task scheduler of type ThreadPoolTaskScheduler.

Why is that? Simply because the "posting" against the SC is not piloted by the task scheduler in this case, but it is manually requested. In other words, we are explicitly taking care of what the AspNetSynchronizationContextTaskScheduler would do for us!


 

I know, this whole story is kind of endless and can get seriously confusing at times. However, I hope this posts contains enough insight to let you understand the basic inner workings between the TPL and the ASP.NET HttpContext.

As already stressed out, I believe a code sample is worth more than a thousand words. Although the demo web app I used is not at all complicated and it is fairly easy to setup, I will soon update this post to include the link to my GitHub repo project, so you can just clone it and mess around with it!

 

One final word to thank all the people who actively contirbute to this blog. I am humbled and impressed by receiving your feedback and I appreciate your efforts in highlighting possible mistakes or confused explanations! Also, thanks in advance to the ones who I am sure will be helping in the future too!

 

Happy parallel HttpContexting! 🙂

 

Catch you on the flipside!

 

albigi / Alessandro Bigi

Buildnummern-Übersicht Microsoft Dynamics NAV 2013

$
0
0

Stand: 05.12.2017

Folgend finden Sie eine aktuelle Auflistung der verfügbaren Buildnummern, aufsteigend sortiert, mit der dazu gehörigen offiziellen Beschreibung, KB Artikelnummer und Inhalt.

Der Release-Zyklus der Hotfixe wurde nun auf die monatlichen Cumulative Updates geändert, daher wird diese Übersicht ebenfalls nur noch monatliche aktualisiert.

Es wurden einige Hotfixe zurückgezogen, ich bitte Sie zu prüfen, dass Sie eines der unten aufgeführten Buildnummer einsetzten. Wenn nicht bitte ich Sie auf das aktuellste Build zu wechseln.

Download Microsoft Dynamics NAV Buildliste

Buildnummer Beschreibung KB Nummer Inhalt
33781 RTM n.a. Release aus dem Partnersource
34194 Hotfix 2802855 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34210 Hotfix 2803237 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34252 Hotfix 2804176 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34265 Hotfix 2808716 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34298 Hotfix 2815438 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34346 Hotfix 2817822 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34361 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34404 Hotfix 2822132 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34453 Hotfix 2789344 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34475 Hotfix 2830654 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34550 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34587 Update Rollup 1 2829782 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
34589 Hotfix 2837147 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34645 Hotfix 2841405 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34664 Hotfix 2837749 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34688 Update Rollup 2 2843305 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
34698 Hotfix 2843303 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34745 Hotfix 2843307 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34769 Hotfix 2843309 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34845 Hotfix 2843313 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34868 Hotfix 2852682 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34902 Update Rollup 3 2852685 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
34904 Hotfix 2852687 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34945 Hotfix 2852691 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
34975 Hotfix 2852693 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35001 Hotfix 2862723 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35026 Update Rollup 4 2860301 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
35034 Hotfix 2862724 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35078 Hotfix 2862726 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35152 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35177 Hotfix 2862727 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35201 Update Rollup 5 2872273 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
35212 Hotfix 2876779 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35282 Hotfix 2876783 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35318 Hotfix 2876786 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35345 Update Rollup 6 2881294 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
35355 Hotfix 2876788 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35391 Hotfix 2876789 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35429 Hotfix 2888350 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35469 Hotfix 2888351 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35488 Update Rollup 7 2892427 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
35494 Hotfix 2888354 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35553 Hotfix 2888355 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35562 Hotfix 2892801 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35591 Hotfix 2876782 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35612 Hotfix 2901561 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35663 Hotfix 2901563 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35670 Update Rollup 8 2901572 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
35694 Hotfix 2901565 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35732 Hotfix 2907584 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35772 Hotfix 2907573 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35782 Update Rollup 9 2913980 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
35789 Hotfix 2907574 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35821 Hotfix 2907575 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35855 Hotfix 2907576 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35926 Hotfix 2907577 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
35995 Hotfix 2923340 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36005 Update Rollup 10 2918536 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
36019 Hotfix 2923341 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36051 Hotfix 2923343 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36076 Update Rollup 11 2930616 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
36090 Hotfix 2923344 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36116 Hotfix 2923346 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36137 Hotfix 2934564 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36182 Hotfix 2934565 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36207 Update Rollup 12 2937998 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
36215 Hotfix 2934566 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36261 Hotfix 2934567 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
36295 Hotfix 2934568 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
36347 Update Rollup 13 2955943 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
36440 Hotfix 2953917 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
36569 Hotfix 2963998 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
36605 Cumulative Update 14 2964546 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
36702 Hotfix 2963999 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
36790 Hotfix 2964001 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
36848 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
36919 Cumulative Update 15 2971745 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
37019 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
37101 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
37188 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
37201 Cumulative Update 16 2977472 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
37306 Hotfix * ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
37532 Cumulative Update 17 2984829 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
37704 Hotfix 2991642 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
WebClient
37798 Cumulative Update 18 2992503 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
38052 Cumulative Update 19 3000200 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
38454 Cumulative Update 20 3013213 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
38800 Cumulative Update 21 3020883 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
39369 Cumulative Update 22 3024895 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
39671 Cumulative Update 23 3035980 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
40118 Cumulative Update 24 3039828 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
40468 Cumulative Update 25 3051268 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
40940 Cumulative Update 26 3058009 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
41354 Cumulative Update 27 3069230 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
41767 Cumulative Update 28 3075723 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
42219 Cumulative Update 29 3086433 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
42591 Cumulative Update 30 3091810 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
42948 Cumulative Update 31 3097765 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
43390 Cumulative Update 32 3106086 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
43894 Cumulative Update 33 3121031 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
44364 Cumulative Update 34 3130279 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
44969 Cumulative Update 35 3138201 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
45241 Cumulative Update 36 3145849 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
45477 Cumulative Update 37 3151023 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
45787 Cumulative Update 38 3157486 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
46056 Cumulative Update 39 3166277 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
46292 Cumulative Update 40 3172331 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
46576 Cumulative Update 41 3182126 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
46772 Cumulative Update 42 3188237 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
47058 Cumulative Update 43 3193864 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
47258 Cumulative Update 44 3202888 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
47432 Cumulative Update 45 3209075 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
47667 Cumulative Update 46 3216196 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
47880 Cumulative Update 47 4011765 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
48066 Cumulative Update 48 4014048 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
48310 Cumulative Update 49 4018441 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
48468 Cumulative Update 50 4021392 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
48618 Cumulative Update 51 4024638 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
48824 Cumulative Update 52 4034488 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
48967 Cumulative Update 53 4037305 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
49147 Cumulative Update 54 4040567 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
49316 Cumulative Update 55 4045667 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
49426 Cumulative Update 56 4052191 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build
49578 Cumulative Update 57 4055888 ADCS Files
NAV Server Files
OUTLOOK MapiHelper.dll File
OUTLOOK Microsoft.Dynamics.NAV.OLSync.NAVSyncAddIn.dll File
RTC Files
Application Files
DVD-Build

* KBArtikel wird in kürze veröffentlicht. // KBArticle will be released soon.

Hotfixes without a released KBArticle can be requested via a support request!

These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.

Mit freundlichen Grüßen

Sebastian Röttel

Microsoft Dynamics Germany

Buildnummern-Übersicht Microsoft Dynamics NAV 2013 R2

$
0
0

Stand: 05.12.2017

Folgend finden Sie eine aktuelle Auflistung der verfügbaren Buildnummern, aufsteigend sortiert, mit der dazu gehörigen offiziellen Beschreibung, KB Artikelnummer und Inhalt.

Der Release-Zyklus der Hotfixe wurde nun auf die monatlichen Cumulative Updates geändert, daher wird diese Übersicht ebenfalls nur noch monatliche aktualisiert.

Download Microsoft Dynamics NAV Buildliste

Buildnummer Beschreibung KB Nummer Inhalt
35473 RTM n.a. Release aus dem Partnersource
35664 Hotfix

2901564

ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
35701 Update Rollup 1 2901573 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
35727 Hotfix 2901571 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
35784 Hotfix 2907585 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
35796 Hotfix 2907586 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
35800 Update Rollup 2 2913982 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
35822 Hotfix 2907587 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
35866 Hotfix 2907588 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
35915 Hotfix 2907589 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36035 Hotfix 2907590 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36035 Update Rollup 3 2918538 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
36062 Hotfix 2923351 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36078 Update Rollup 4 2930617 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
36105 Hotfix 2923352 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36281 Hotfix 2934571 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36281 Update Rollup 5 2937999 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
36310 Hotfix 2934572 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36322 Hotfix 2934573 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36366 Update Rollup 6 2955941 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
36424 Hotfix 2934575 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36498 Hotfix * ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36556 Hotfix 2963993 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36703 Cumulative Update 7 2964528 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
36782 Hotfix * ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36836 Hotfix 2963995 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
36897 Cumulative Update 8 2971746 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
37020 Hotfix * ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
37102 Hotfix * ADCS Files
BPA Files
Help Server
NAV Server Files
Outlook Files
RTC Files
Web Client Files
37179 Hotfix * ADCS Files
BPA Files
Help Server
NAV Server Files
Outlook Files
RTC Files
Web Client Files
37221 Cumulative Update 9 2977473 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
37300 Hotfix * ADCS Files
BPA Files
Help Server
NAV Server Files
Outlook Files
RTC Files
Web Client Files
37385 Hotfix * ADCS Files
BPA Files
Help Server
NAV Server Files
Outlook Files
RTC Files
Web Client Files
37431 Hotfix * ADCS Files
BPA Files
Help Server
NAV Server Files
Outlook Files
RTC Files
Web Client Files
37479 Hotfix * ADCS Files
BPA Files
Help Server
NAV Server Files
Outlook Files
RTC Files
Web Client Files
37563 Cumulative Update 10 2984452 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
37799 Cumulative Update 11 2992495 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
38053 Cumulative Update 12 3000199 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
38455 Cumulative Update 13 3013214 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
38801 Cumulative Update 14 3020884 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
39354 Cumulative Update 15 3024898 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
39665 Cumulative Update 16 3035983 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
40076 Cumulative Update 17 3039826 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
40452 Cumulative Update 18 3052269 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
40941 Cumulative Update 19 3058010 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
41371 Cumulative Update 20 3069271 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
41768 Cumulative Update 21 3075724 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
42221 Cumulative Update 22 3084775 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
42610 Cumulative Update 23 3091811 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
42950 Cumulative Update 24 3097766 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
43391 Cumulative Update 25 3106087 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
43896 Cumulative Update 26 3121033 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
44366 Cumulative Update 27 3130282 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
44970 Cumulative Update 28 3138204 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
45254 Cumulative Update 29 3145852 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
45478 Cumulative Update 30 3151021 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
45822 Cumulative Update 31 3157488 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
46057 Cumulative Update 32 3166278 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
46292 Cumulative Update 33 3172538 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
46577 Cumulative Update 34 3182128 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
46774 Cumulative Update 35 3188238 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
47043 Cumulative Update 36 3193866 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
47259 Cumulative Update 37 3202886 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
47442 Cumulative Update 38 3209074 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
47662 Cumulative Update 39 3216194 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
47881 Cumulative Update 40 4011766 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
48068 Cumulative Update 41 4014098 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
48311 Cumulative Update 42 4018440 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
48469 Cumulative Update 43 4021393 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
48616 Cumulative Update 44 4024639 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
48825 Cumulative Update 45 4034489 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
48993 Cumulative Update 46 4037306 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
49153 Cumulative Update 47 4040568 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
49317 Cumulative Update 48 4045668 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
49431 Cumulative Update 49 4052192 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build
49579 Cumulative Update 50 4055889 ADCS Files
BPA Files
NAV Server Files
Outlook Files
RTC Files
Web Client Files
Application Files
DVD-Build

* KBArtikel wird in kürze veröffentlicht. // KBArticle will be released soon.

Hotfixes without a released KBArticle can be requested via a support request!

These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.

Mit freundlichen Grüßen

Sebastian Röttel

Microsoft Dynamics Germany

Microsoft Customer Service and Support (CSS) EMEA

Buildnummern-Übersicht Microsoft Dynamics NAV 2015

$
0
0

Stand: 05.12.2017

Folgend finden Sie eine aktuelle Auflistung der verfügbaren Buildnummern, aufsteigend sortiert, mit der dazu gehörigen offiziellen Beschreibung, KB Artikelnummer und Inhalt.

Download Microsoft Dynamics NAV Buildliste

Buildnummer Beschreibung KB Nummer Inhalt
37874 RTM n.a. Release aus dem Partnersource

38457

Cumulative Update 1

3013215

Application Files
DVD-Build

38798 Cumulative Update 2 3020885

Application Files
DVD-Build

39368 Cumulative Update 3 3024901

Application Files
DVD-Build

39663 Cumulative Update 4 3035986

Application Files
DVD-Build

40262 Cumulative Update 5 3039824

Application Files
DVD-Build

40459 Cumulative Update 6 3052226

Application Files
DVD-Build

40938 Cumulative Update 7 3058000

Application Files
DVD-Build

41370 Cumulative Update 8 3069272

Application Files
DVD-Build

41779 Cumulative Update 9 3075726

Application Files
DVD-Build

42222 Cumulative Update 10 3086434

Application Files
DVD-Build

42603 Cumulative Update 11 3091812

Application Files
DVD-Build

42951 Cumulative Update 12 3097767

Application Files
DVD-Build

43389 Cumulative Update 13 3106088

Application Files
DVD-Build

43887 Cumulative Update 14 3121037

Application Files
DVD-Build

44363 Cumulative Update 15 3130292

Application Files
DVD-Build

44973 Cumulative Update 16 3138205

Application Files
DVD-Build

45244 Cumulative Update 17 3145854

Application Files
DVD-Build

45483 Cumulative Update 18 3151020

Application Files
DVD-Build

45813 Cumulative Update 19 3157490

Application Files
DVD-Build

46054 Cumulative Update 20 3166286

Application Files
DVD-Build

46293 Cumulative Update 21 3172546

Application Files
DVD-Build

46580 Cumulative Update 22 3182130

Application Files
DVD-Build

46765 Cumulative Update 23 3188239

Application Files
DVD-Build

47039 Cumulative Update 24 3193867

Application Files
DVD-Build

47254 Cumulative Update 25 3202890

Application Files
DVD-Build

47438 Cumulative Update 26 3209073

Application Files
DVD-Build

47665 Cumulative Update 27 3216192

Application Files
DVD-Build

47871 Cumulative Update 28 4011764

Application Files
DVD-Build

48062 Cumulative Update 29 4014099

Application Files
DVD-Build

48308 Cumulative Update 30 4018439

Application Files
DVD-Build

48467 Cumulative Update 31 4021394

Application Files
DVD-Build

48614 Cumulative Update 32 4024640

Application Files
DVD-Build

48838 Cumulative Update 33 4034490

Application Files
DVD-Build

49000 Cumulative Update 34 4037307

Application Files
DVD-Build

49144 Cumulative Update 35 4040569

Application Files
DVD-Build

49321 Cumulative Update 36 4045669

Application Files
DVD-Build

49425 Cumulative Update 37 4052193

Application Files
DVD-Build

49576 Cumulative Update 38 4055890

Application Files
DVD-Build

How to get back the 'hotfix directories' from NAV 2015 Cumulative Update

 

* KBArtikel wird in kürze veröffentlicht. // KBArticle will be released soon.

Hotfixes without a released KBArticle can be requested via a support request!

These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.

Mit freundlichen Grüßen

Sebastian Röttel

Microsoft Dynamics Germany

Buildnummern-Übersicht Microsoft Dynamics NAV 2016

$
0
0

Stand: 05.12.2017

Folgend finden Sie eine aktuelle Auflistung der verfügbaren Buildnummern, aufsteigend sortiert, mit der dazu gehörigen offiziellen Beschreibung, KB Artikelnummer und Inhalt.

Download Microsoft Dynamics NAV Buildliste

 

Buildnummer Beschreibung KB Nummer Inhalt
42815 RTM n.a. Release aus dem Partnersource

43402

Cumulative Update 1

3106089

Application Files
DVD-Build

43897

Cumulative Update 2

3121038

Application Files
DVD-Build

44365

Cumulative Update 3

3130298

Application Files
DVD-Build

44974

Cumulative Update 4

3139364

Application Files
DVD-Build

45243

Cumulative Update 5

3145855

Application Files
DVD-Build

45480

Cumulative Update 6

3151017

Application Files
DVD-Build

45834

Cumulative Update 7

3157492

Application Files
DVD-Build

46045

Cumulative Update 8

3166287

Application Files
DVD-Build

46290

Cumulative Update 9

3172549

Application Files
DVD-Build

46621

Cumulative Update 10

3182131

Application Files
DVD-Build

46773

Cumulative Update 11

3188240

Application Files
DVD-Build

47042

Cumulative Update 12

3193868

Application Files
DVD-Build

47256

Cumulative Update 13

3202891

Application Files
DVD-Build

47444

Cumulative Update 14

3209072

Application Files
DVD-Build

47838

Cumulative Update 15

3216191

Application Files
DVD-Build

47864

Cumulative Update 16

4011762

Application Files
DVD-Build

48067

Cumulative Update 17

4014100

Application Files
DVD-Build

48316

Cumulative Update 18

4018438

Application Files
DVD-Build

48466

Cumulative Update 19

4021395

Application Files
DVD-Build

48628

Cumulative Update 20

4024641

Application Files
DVD-Build

48822

Cumulative Update 21

4034491

Application Files
DVD-Build

48992

Cumulative Update 22

4037308

Application Files
DVD-Build

49146

Cumulative Update 23

4040571

Application Files
DVD-Build

49326

Cumulative Update 24

4045670

Application Files
DVD-Build

49424

Cumulative Update 25

4052194

Application Files
DVD-Build

49575

Cumulative Update 26

4055891

Application Files
DVD-Build

 

* KBArtikel wird in kürze veröffentlicht. // KBArticle will be released soon.

Hotfixes without a released KBArticle can be requested via a support request!

These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.

Mit freundlichen Grüßen

Sebastian Röttel

Microsoft Dynamics Germany

Buildnummern-Übersicht Microsoft Dynamics NAV 2017

$
0
0

Stand: 05.12.2017

Folgend finden Sie eine aktuelle Auflistung der verfügbaren Buildnummern, aufsteigend sortiert, mit der dazu gehörigen offiziellen Beschreibung, KB Artikelnummer und Inhalt.

Download Microsoft Dynamics NAV Buildliste

 

Buildnummer Beschreibung KB Nummer Inhalt
13682 RTM n.a. Release aus dem Partnersource
14199 Cumulative Update 1 3209071 Application Files
DVD-Build
14767 Cumulative Update 2 3216190 Application Files
DVD-Build
15140 Cumulative Update 3 4011763 Application Files
DVD-Build
15601 Cumulative Update 4 4014101 Application Files
DVD-Build
16177 Cumulative Update 5 4018437 Application Files
DVD-Build
16585 Cumulative Update 6 4021396 Application Files
DVD-Build
16996 Cumulative Update 7 4024642 Application Files
DVD-Build
17501 Cumulative Update 8 4034492 Application Files
DVD-Build
17972 Cumulative Update 9 4037309 Application Files
DVD-Build
18197 Cumulative Update 10 4040570 Application Files
DVD-Build
18609 Cumulative Update 11 4045671 Application Files
DVD-Build
18976 Cumulative Update 12 4052195 Application Files
DVD-Build
19421 Cumulative Update 13 4055892 Application Files
DVD-Build

* KBArtikel wird in kürze veröffentlicht. // KBArticle will be released soon.

Hotfixes without a released KBArticle can be requested via a support request!

These postings are provided "AS IS" with no warranties and confer no rights. You assume all risk for your use.

Mit freundlichen Grüßen

Sebastian Röttel

Microsoft Dynamics Germany

Setting up continuous deployment from Docker Hub using VSTS Release Management

$
0
0

Now you can set up continuous deployment from DockerHub using Visual Studio Team Sservices Release management. A release can get triggered automatically once an image is updated in docker hub.

We will see how this can help us automatically keep our Azure web app updated with the source code siting in GitHub.

Step 1: (Code): You can keep your code on GitHub. For example https://github.com/jikuma/nodeJsSampleService. This is a simple site which displays "Hello Docker Hub".

We want to automatically create/update a container image once any edit is made to source code. Once an image is pushed to Docker hub, we further want to automatically trigger VSTS release to update my website hosted in Azure web app.

Step 2: (CI): Once we have a code we want to automatically build and push an image to docker hub.

Step: 2.1 (Link GitHub to your Docker Hub Account):

Log in to your docker hub account

If you have not already connected your GitHub account to DockerHub account. You will have to link these account. Here are steps to do it.

Step: 2.1.a  Click on link account

 

Select link GitHub and then provide details to link your GitHub account

If a GitHub account is already linked you will get list of your GitHub repository

Step: 2.2 (Create a Docker Hub image/repository using GitHub repo)

Click on 'Create Automated build.'

Select the repository you want to create image from

Enter repo detail and select Ok.

A docker hub repository will be created for you.

Step: 2.3 (Verify that CI is setup for you)

Go to Build setting tab of Dockerhub repo and check if the setting is correct.

It's saying that whenever a change is made to master branch of the GitHub repo it will trigger image build and will update the docker hub repo.

Your CI is set up. You can now make changes to your Github repo and check if Docker hub repository/image is getting updated or not.

You can see a build getting trigger in build details tab

 

Step 3: (Setting up CD: update my website as soon as the new image is pushed to Docker hub).

Step 3.1 Let's create an Azure web app using this docker hub image

Step 3.1.a Log into the Azure portal

Step 3.1.b  Select App service

Click o the plus to create new web app

Then select web app for containers

Click create and give details, like app name and click on configure the container.

Input the image details.

Click ok to create the web app.

Once the web app is created, visit the site to check if deployment is successful.

Once you have successfully deployed your web app , we will setup a CD so that whenever the image is updated in the DockerHub, web app gets updated automatically.

Step 3.2: (Setup CD using VSTS Release Definition)

Let's create a Release Definition in VSTS to achieve Continuous deployment

Log in to your VSTS account. If you don't already have a VSTS account, here are steps to get started.

Step 3.2.a: Create Docker Registry endpoint.

Step 3.2.b : NowCreate new release definition.

Step 3.2.c: Add Artifact of type Docker hub and select the namespace and repo from the drop-down.

Step 3.2.d: Once Artifact is created click on the lightning icon and enable continuous deployment.

Step 3.2.e: No, let's add the tasks to update the web app.

Add a task to deploy webapp and another to restart the web app.

Deploy Web app: Enter the details of the web app. Inside tag field input the variable name $(BUILD.BUILDID). The value of BUILD.BUILDID is the image tag name for which release has been queued.

Restart Web App:

Enter the details in the task and save the RD.

Now you are all set.

Step 4: Validation (Validate that a check-in in GitHub will automatically update your web app)

Step 4.1: Make a change in your github repo.

We have changed the message on the site from "Hello DockerHub - updated  - 15" to "Hello Docker hub. CD should automatically update the azure web app."

Commit the change.

Step 4.2: (Validate CI)

It will automatically trigger a build in docker hub to update the docker hub repo. Validate that in docker hub, check if a new build to update the image is triggered.

 

Step 4.3 (Validate CD): 

Once new image in dockerhub is updated, a release will automatically get triggered in VSTS. This will updated your webapp.

Step 4.4 (Validate web app):

Refresh the website for the change to take effect

You can also manually select the image tag to deploy without setting the CD. For this, you have to create a release and select the tag from the drop-down with which you want to update the web app.


An Introduction to Machine Learning through Microsoft ML

$
0
0


Guest blog by Christian Hollreiser Microsoft Student Partner at University of Oxford

image

About Me

Hi! My name is Christian Hollreiser and I am currently reading an MSc in Computer Science at the University of Oxford. My main interest lies in Artificial Intelligence and Machine Learning in particular. I hope to use these fields to find solutions to problems in medical research and healthcare. Linkedin Profile: https://www.linkedin.com/in/christian-hollreiser/

Introduction

In this blog, we will look at how to get started with the Microsoft Azure Machine Learning (Azure ML) tool and demonstrate how it can be used through a mini project. If you are interested in learning more about machine learning, data science and artificial intelligence, Microsoft offer a variety of other course modules as part of their new AI School (see the end of this blog).

We will partially follow the step by step tutorial provided and show how to get started with a hands on machine learning experiment. For a detailed explanation of the mathematical model used in this tutorial, interested readers are referred to the book Machine Learning A Probabilistic Perspective by Kevin Murphy.

Let’s get started!

What is Microsoft Azure Machine Learning?

Azure Machine Learning is an integrated, end-to-end data science and advanced analytics solution. It enables users to prepare data, build models, develop experiments, and deploy models at cloud scale. The main components of Azure Machine Learning are:

• Azure Machine Learning Workbench

• Azure Machine Learning Experimentation Service

• Azure Machine Learning Model Management Service

• Microsoft Machine Learning Libraries for Apache Spark (MMLSpark Library)

• Visual Studio Code Tools for AI

More information about these can be found here. In this blog we will make use of the tools and services in the first two bullet points.

We will install the Azure ML Workbench and configure a new Azure ML Experimentation account. Using these, we will conduct our first experiment in Azure ML on the famous Iris flower data set (or Fisher’s Iris data set - more info here).

For this time, we will look at how to prepare the data and build a simple model. We leave the deployment of the model as an exercise for the reader. Details on this can be found in the tutorial provided on the Microsoft Azure website.

Prerequisites

Before we get started, you need to have a Microsoft Azure subscription in order to be able to use Microsoft Azure ML. You can create a free account here, if you do not have one already.

Creating an Azure Machine Learning Experimentation Account and Installing the Workbench

Once you have a Microsoft Azure account, you are ready to create an Azure Machine Learning account. For the purpose of the mini project in this blog, you will need to create an Azure ML Experimentation (preview) account:

1. Log in to your Azure portal and at the bottom of the left-hand side menu select More services.

2. Search for Machine Learning and select the Machine Learning Experimentation option. You may also want to select the star option so that it appears as a favourite in the left-hand side menu (as can be seen in the screenshot below).

image

3. Next, select + Add in the upper-left corner to set up a new Machine Learning Experimentation account. Enter a unique relevant account name. Fill in the rest of the details as appropriate.

4. Click create when finished. Towards the right side on the Azure portal toolbar, click Notifications (the bell icon). Upon success of the deployment, your new Machine Learning Experimentation account page will open.

5. On your account page, you should be able to see two download options in grey boxes: one for Windows and one for Mac. Select the option that applies to you to download the Azure ML Workbench installer.

6. Once the download is complete, double click the installer AmlWorkbench.dmg from Finder (if you are using Mac OS Sierra or later) or the installer AmlWorkbenchSetup.msi (if you are using Windows 10, Windows Server 2016 or newer).

7. Finish the installation by following the on-screen instructions.

8. You will find the Workbench installed in the Applications directory (if using Mac) or in the directory C:Users<user>AppDataLocalAmlWorkbench (if using Windows).

Note that when installing the Workbench, the necessary components such as Python and Miniconda are also installed.

Once successfully installed, launch the Workbench and sign in to it by using the same account that you were using earlier for the Azure portal. Once signed in, the Workbench will automatically open the Experimentation account, which you just created.

You should see it list the workspaces and projects found in that account. As we have not yet created any projects, this will be an empty workspace with zero projects.

image

Creating a New Project in Azure ML Workbench

Let’s now create your first project using Azure ML:

Select the + symbol next to the PROJECTS header in the left panel. Select New Project.

image

Enter a name for your project, a directory where you want it to be stored, and a (optional) description of the project. Leave the GIT repository free for now. Select a desired workspace: it should select your newly created workspace automatically. Lastly, since we are going to be working with the Iris dataset, select the Classifying Iris template as the project template.

image

Select Create to finish creating the project.

Upon opening the project, you will see the Project Dashboard. In the side panel to the left of this, you should see five icons:

• The first (house icon) takes you to the dashboard.

• The second (stacked cylinder icon) takes you to the data, where you can manage and prepare your data for the experiment.

• The third (book icon) takes you to the Notebooks.

• The fourth (clock rewind icon) holds your experiment runs. Here you can view all of the details and analysis of the runs.

• The fifth (file icon) stores all the folders and files that are relevant for your project such a code scripts and .csv files which hold raw data.

You are now ready to begin the Classifying Iris experiment.

Classifying Iris Experiment

Data Preparation

Start by converting the Iris.csv file, containing the raw Iris data, into a data source which can then be prepared for the experiment. To do this, click the data icon in the left panel.

Select the + symbol and click Add Data Source to add a new data source.

image

image

Then, select the box labelled File(s)/Directory for the location of the data and click next.

In the next tab, select Local to search within the project folders and files (described earlier) and select Browse and then File. A window will open, in a directory where you will see the Iris.csv file. Select this file and click open and then Finish.

image

Upon clicking Finish, the new data source iris-1.dsource is created and added to the list of existing data sources. It will open automatically. The data is shown with column headers for each of the four numerical features (Column 1 to Column 4) and for the labels/targets (Column 5).

image

A great feature of Azure ML is the following. If you select the Metrics button just below the tabs panel at the top, you obtain useful statistics about each of the columns in the data source, including a visual histogram for each.

Furthermore, if you select Choose Metric, you can search and filter which statistics you want to view.

You are also able to order the columns by a certain statistic by clicking on the appropriate arrow below the header of the desired statistic in the table.

image

Next, to prepare this data, select the Prepare button.

Select + New Data Preparation Package from the drop down menu. Then, name this iris-1 and select OK. This creates the data preparation package iris-1.dprep and opens it in the data preparation editor in a new tab.

image

You can now prepare the data in this editor. Let’s do some basic preparations:

First, rename the column headers to be the respective feature names and label/target name: Sepal Length, Sepal Width, Petal Length, Petal Width and Species.

Second, count distinct values in a column by selecting a column header with the right mouse button and selecting Value Counts.

This opens up the Inspectors window, which displays a histogram of the values. For the Species column, this histogram should have four bars: three for the Iris labels and one for the (null) value. This null value is present due to the data set containing one empty row. To filter out this value, select the bar representing it and then the minus sign filter in the upper right corner of the histogram.

You are now ready to invoke this data preparation package. The Workbench provides the option to automatically generate the code to do this. Close the data preparation editor. Right-click the iris-1.dprep file under the Data Preparations tab in the left panel and select Generate Data Access Code File. This will create a new file named iris-1.py containing the code to invoke the data preparation package that you have constructed as a pandas DataFrame when using Python (see here for more details on the pandas DataFrame).

image

The last line in the code snippet simply shows an example of the data frame being used, in which the first 10 rows are returned. The purpose of this last part was just to show how one can easily prepare data and generate the code to invoke these preparations.

For the purpose of this blog, we will use a different pre-existing python script (given by the Classifying Iris template) for invoking the data preparation package, in addition to building the model. This script will refer to the pre-existing data preparation file iris.dprep, which is identical to the one which we have shown how to construct. We will cover this in the next section.

Model Building

image

In this section, you will see how to build a model to model the Iris data, which we prepared in the previous section. For this purpose, we use the logistic regression model for classifying the data (see here or Chapter 8 in Machine Learning: A Probabilistic Perspective by Kevin Murphy).

image

We will make use of the Python script provided in the Classifying Iris template. To view this script, select the Files icon button in the left panel of the Workbench. Next, open the iris_sklearn.py file. Go through this code in order to see how the model is built.
For the interested reader, a useful addition to this code could be to also plot the learning curves, showing the accuracy or mean squared error against incremental amounts of data. This can be done for both the training and test data and the curves can be compared. This gives valuable insight into answering questions such as: does the model overfit? We leave this as an exercise to the reader.
Once you are happy with the code, let’s run the script. In order to be able to run this script successfully, it requires the matplotlib package to be installed. The scikit-learn package was already installed when installing the workbench.
To install the matplotlib package, select File -> Open Command Prompt to open the Azure Machine Learning Workbench CLI (command prompt). Enter the following command.

image

Once the installation is successful, return to the script in the Azure ML Workbench and locate the toolbar which is above the script and below the tabs.

Select local from the first drop down menu (execution environment) , iris_sklearn.py from the second (the script which you want to run), and enter the argument 0.01 in the Arguments box. This value represents the regularization rate for the model.

Next, click Run to run the script with that argument. The job will appear in a pane on the right side of the workbench. Once it has completed, select Completed to view the output.

image

This shows all of the output that is printed corresponding to the print statements in the script.

If you close this window and now select iris_sklearn.py[n] (n is the run number), a window opens with information about that run.

image

This window displays the properties of the run, the outputs files, the visualisations (if any were coded - here you can see in the script that the confusion matrix and multi-class ROC curve was included), and the Logs.

image

Now, let’s run the script again with a different regularization rate. You should do this several times with different rates to compare.

Rather than entering them manually like before, a more efficient way to do this would be to write a small Python script that loops over the different rates.

The template that we have been using provides such a script: Open the script run.py, which can be found in the Files section of the workbench.

image

The script starts with a regularization rate of 10.0 and halves the rate in each of the following runs, until the rate is no less than 0.005.

To run the script, you can use the Azure Machine Learning Workbench CLI (command prompt) which we accessed earlier. Simply enter the following command.

image

image

image

Upon completion, you can compare the runs as follows. Select the Runs icon in the left panel of the workbench and select iris_sklearn.py to view all runs of this script.

We can see how the regularization rate decreased over time in the graph. Note that the first very low rate is from the initial run of the script, that we did with rate 0.01.

In order to compare runs, we can select the desired runs in the list beneath the graphs and select the Compare button.

Here you can compare, side-by-side, the Run Properties (including logged metrics such as the regularization rate) and Visualizations. You can see how the model performs on this dataset with different regularization rates.

image

Summary

So, you have now seen how to use Azure ML to prepare a data set, build a model and successfully run experiments for that model on that data set. I hope that you have enjoyed following this brief introduction to Machine Learning using Azure ML and that it has given you insight into the large number of possibilities that Azure Machine Learning offers.

What’s next…

• I would encourage you to find other data sets from online resources and try out the tools and methods described above with different models.

• Browse the various other Machine Learning and AI related courses offered by the Microsoft AI School.

Resources and Further Reading

Microsoft AI School: https://aischool.microsoft.com/learning-paths

(Full) Introduction to Machine Learning with Azure ML course:

https://aischool.microsoft.com/learning-paths/4ZYo4wHJVCsUSAKa2EoAk8

Information on Azure ML: https://azure.microsoft.com/en-gb/services/machine-learning-studio/

User guide scikit-learn: http://scikit-learn.org/stable/user_guide.html#user-guide

Book: Machine Learning A Probabilistic Perspective, Kevin Murphy

Stability and Change – Why and How to adopt WaaS.

$
0
0

Hello everyone,

Today I am writing you after my visit to the DevOps Days in Singapore.
The intention of this article is to give you a very brief overview of the current changes in IT, which you really should be aware of:

  • Why is Windows 10 not just a simple operating system as the previous one and why you really should be aware of this.
  • What does Digital Transformation mean and how does Windows 10 come into play?
  • How does Windows as a Service and Modern IT come into play here?
  • How can you adopt Windows as a Service and Windows 10 in a long-term perspective?

IT Measurement:

First of all let us think about, how IT performance can be measured.
For this I quote the current 'State of DevOps report 2017' (left), as well the report from Forrester 'The Digital Business Imperative' (right):



Okay let us recap - the left statement surely is directed completely into the DevOps area - especially when building your own tools. The quintessence of the right statement is definitely:"Digitize Your Business Strategy" and not just "to add an app here or a site there".

But it can be concluded to two very essential important points:

"Stability" is always tied to IT-performance, because it has ever been one of the most important requirements to IT. You know the sentences like "never touch a running system".  IT just needs to work. But then - why "Change", and what is actually meant with "Change"?

When doing your Digital Transformation you want to digitize your business strategy and bring in an effective business value.
In a sentence: You want to leverage IT not to just being a cost factor, but to make value out of it. 

This is led by bringing in these "Changes" to adopt Modern IT, DevOps, Modern Apps, Everything as a Service and many more. "Change" includes to being up to date, having the most current applications, drivers and OS; to have the possibility to adopt new technologies and services just as they arrive. "Change" also ensures a very secure environment, because you regularly apply patches and updates and also use the current security features. "Change" in this slide is a requirement for all, what it takes to place in the value-leveraging technologies, features and services. 

Therefore, the IT gets the requirement to adopt an increasing amount of changes in faster paces, but still ensuring the stability. But what does "stability" actually mean? Historically, it means that you don´t encounter any issues at any time. But in DevOps we know that you have to bring also some additional other aspects into play - like "remediation time". It´s not only about preventing any issues, but being able to remediate occuring issues very fast.


Windows as a Service

Now, having this information - let us take the turn over to Windows as a Service, which exactly addresses this all:

Windows 10 with its releasing pace of two times per year ensures the most current and completely patched system, which therefore results in an increased security level. In addition it is continuously delivering new features in terms for security and administration, but is also allowing to adopt new CPU architectures with their features and leveraging performance and security on a hardware layer. With Edge, the UWP, MDM and MFA it is addressing modern websites, applications and services, which ensures secure authentication and being manageable anywhere on the world just over the Internet. And, because of having a current OS with current technologies in place, you have always the possibility and agility to jump on the Emerging Technologies without long introduction times.


In a sentence: Windows 10 is the operating system for Modern IT. 


Why?

I have been very often confronted with sentences like 'Why is Microsoft doing this?'.

But - is it actually 'us' making the change?

Take a look at IT - development has moved to agile approaches 10 years ago. Every other operating system is having the same approaches some years now, or even since the beginning. We are speaking about DevOps, NoOps, serverless applications and many more. Hackers are improving day by day, leveraging their attacking frameworks with artificial intelligence, and - in fact - as we can see with all the Ransomware attacks going on and being much too successful, the adoption of "Evergreen" seems to be still very bad at our customers. In the same time now, GDPR is getting ready to becoming active and many customers are still figuring out, what GDPR actually means.
In fact, we are the very last ones moving our OS on the train of continuously"Change" and it needs to be there, because IT is moving there.


Long-term aspects for Windows as a Service

One of the challenges, which you might probably have read in my previous articles and you definitely encountered by yourself is the adoption of the two Feature Updates per year and transforming your processes and technologies to reduce the recurring amount of work to an absolute minimum.

I will show you here, how this can be achieved:

In this slide you can find three main areas:

  • Information-based Analysis
  • Proactive Testing
  • Reactive Testing

-> Information-based Analysis gives you safeness and control with a high certainty.
By continuously having the insights for your environment, you know about errors, before you encounter them. You should use this approach to find and fix the biggest issues and to always being in control of your environment.

-> Proactive Testing gives you safeness and control with a high certainty.
Manual testing can be even better than just working with the information from Upgrade Readiness, because you can walk through check-lists and ensuring stability. But in an testing environment applications can behave differently and you have to invest a lot of resources. Many customers find also automated testing very promising, but remind yourself that many errors cannot be even found by automated testing. You should use proactive tests for LOB applications, Upgrade tests and (may be) applications, which are known to be problematic or self-developed.

-> Reactive Testing returns the most accurate results by creating the less effort.
Reactive testing is very unconvential in IT today. Why? Because the impression for stability has been completely different in the past 20 years. Though, with the previous provided information, and speaking about Windows 10 - reactive testing creates only very small and controlled downtimes. You define the impacted computer collections and after encountering an issue, you can just retrieve the information of the blocking application/s and roll back your Windows environment for the dedicated users to the previous version. Afterwards you can just pause the deployment of the upgrade, fix the error, and then just turn the deployment on again.

Many of my customers start here:

Cloud services - or in detail - Upgrade Readiness is not adopted and reactive testing is just not allowed.

But as you can see the arrow, the intention needs be to push the higher percentage numbers in a long-term perspective to the right down corner. You could achieve this by focusing the proactive testing approach only on the most important and focused applications, and in the same space enabling Upgrade Readiness and establishing a slight approach for reactive testing. (just in case) You will need to tune your recurring processes and manual steps as I described in my previous articles.

Then, the next step could look like this:

At this point you still continue to work on your processes and try to automate every task, which needs to take place every release, and therefore reducing the human workload. With the coming releases you will see that the problems with the Feature Updates aren´t that painful and you can continue moving to the reactive approach and just focus the manual workload for the important and necessary things:

This will reduce your effective resource costs and allows you to push the tranformation in your environment. Though, keep in mind that there are no "Best Practices". Something that worked for one customer, can be completely uneffective for the other ones. You have to find a layout, which works well for you and you should never stop improving it.

Before finishing now, I hope that you find this information useful and would be very happy, if you could share your thoughts and improvements.

How is WaaS beeing adopted in your company and how well (or bad) are you doing?

And yes - I know that it is hard.
In a transformation, the easiest way to fail is, to handle it as an incremental change.
And - the transformation will come. Either you will bring the transformation, or the transformation will come to you.
(Trust me - the last part will come with a lot of pain in his backpack.)

 

All the best,


David das Neves

Premier Field Engineer, EMEA, Germany
Windows Client, PowerShell, Security

自動翻訳と機密情報 – Microsoft Translator

$
0
0

Microsoft Japan Data Platform Tech Sales Team

大林裕明

最近、Microsoft が提供する翻訳サービスの精度が向上してきていると思いませんか?

これは翻訳に従来の辞書を使った統計的な翻訳からニューラルネットワークを利用するようになったためです。

ニューラルネットワークを使った翻訳については 日本マイクロソフト株式会社  CTO の榊原の下記ページをご覧ください。

Microsoft Translator がニューラル ネットワークによる翻訳の提供を開始

ニューラルネットワークを使った自動翻訳は Bing 翻訳だけでなく、Office 製品、Edgeなどででも使われるようになってきています。

皆さんは日常業務で社内にある英語のドキュメントを読む際に、便利なのでブラウザの翻訳機能や翻訳サイトを気軽に使っていませんか?

実は翻訳のために送ったデータは翻訳精度を上げるためなどの目的で再利用されることが利用規約に明記されています。

<!--more-->

これは Microsoft のサービスだけでなく、他社の翻訳サイトも同様です。

企業によっては機密情報を翻訳の際にトレースをされたくないため、社内のドキュメントを翻訳サイトで翻訳することやOffice 製品の翻訳機能の利用を禁止されているところもあります。

そういったお客様には朗報です。

Azure Cognitive Services に含まれる Translator Text API を S2 以上の価格レベルに設定し、No-Trace Option を申込みいただくことで、Microsoft にトレースされることなく翻訳できます。

No-Trace Option

clip_image001

このAPIを利用した、Word、PowerPoint、Excel、PDF、テキストを翻訳するアプリケーションも提供されています。

Document Translator

こちらのアプリでは、ご契約いただいた Microsoft Azure の Translator Text API を呼び出すことができますので、こちらをS2 以上の価格レベルを選択していただくことで、Microsoft にトレースされることなく翻訳をすることができます。

是非、試してみてください。

Introducing the Liquid connector – transform JSON to JSON, JSON to Text, XML to JSON and XML to Text

$
0
0

We have recently added the Liquid connector to Logic Apps which provides four transform actions. These actions use maps, which are written using Liquid Template Language, to transform the data. Following are the four transforms available:

To use the liquid connector, the logic app must be associated with an Integration Account and the transform maps must be uploaded to that Integration Account. You can configure Integration Account in the Workflow Settings as shown below.

Here's how you can upload a liquid map to an Integration Account. Make sure you select liquid in the Map type dropdown.

  1. Go to your Integration Account's overview blade and click on Maps.
  2. Click on Add. Provide a name for the map, select liquid for Map type and upload the map file.

Here are few examples to demonstrate each of the actions:

  1. JSON to JSON
    • Map (AddressMap.liquid)
      {
      "name": "{{content.name}}",
      "address": "{{content.streetAddress | Append: ', ' | Append: content.city | Append: ', ' | Append: content.state | Append: '.'}}"
      }
    • Action inputs
    • Output
  2. JSON to Text
    • Map (SimpleJsonToText.liquid)
      {{content.firstName | Append: ' ' | Append: content.lastName}}
    • Action inputs
    • Output
  3. XML to JSON
    • Map (ProductXmlToJson.liquid)
      {
      "name": "{{content.product.name}}",
      "price": {{content.product.price}},
      "transactionReferenceNumber": {{content.product.transactionReferenceNumber}}
      }
    • Action inputs
    • Output
  4. XML to Text
    • Map (FullNameXmlToText.liquid)
      {{content.student.firstName | Append: ' ' | Append: content.student.lastName}}
    • Action inputs
    • Output

Detailed documentation coming soon.

Release notes – December 6 2017

$
0
0

On Wednesday, December 6, 2017, we began to deploy a regular service update. We upgrade production services in batches, and it takes about a week for the update to complete.

Below is the list of improvements, and bug fixes in this release.

Updates and fixes

  • We fixed a routing issue with our new revisions feature relating to APIs defined at the root. Revisions will now work with APIs defined in this way. The Versions and Revisions feature remains in preview at this time.
  • Request, Response and template parameters are now exposed in the GET /apis/{aid}/operations management operation. These values not being returned was causing some customers issues when creating and using ARM templates.
  • We have updated the DotLiquid library used in the set-body policy to version 2.0.227. This version provides support for support for strip, lstrip and rstrip filters.
  • We added support for wildcard hostnames in the developer portal console

NAV Development Preview – December Update

$
0
0

Welcome to our update for the Developer Preview; the December update. As usual, we've fixed a lot of issues reported by you, for more information view the list of fixed issues, In addition to that we're announcing the following changes as you can see listed below. To jump directly to an updated image go to the Azure Gallery sign up at http://aka.ms/navdeveloperpreview.

The AL Formatter

The AL Language Visual Studio Code extension now offers the option of automatically formatting your source code. The auto-formatter can be invoked to format an entire AL document or a pre-selected range.

  • In an existing project, open the document that you want to format, right-click inside the document, and then choose Format Document.
  • To format a range, open the document that you want to modify, select the specific range to format, right-click it, and then choose Format Selection.

Show My Code 

The manifest has a new setting: Show My Code. It specifies if the source code must be visible when other extensions debug it.  

For example, an amazing library is developed and shared on AppSource for other people to use, but the author doesn't want the users to see the code when they try to debug into it from their extension. The author sets the ShowMyCode setting to make sure that the code is not shown when the user tries to debug into it. By default ShowMyCode is false but can be overriden in the app.json file to true.

Pages and Reports Show up in Search in the Web Client

For pages and reports, a new property called UsageCategory specifies how the object will appear in search results. It has the following values:

  • None
  • Lists
  • Tasks
  • ReportsAndAnalysis
  • Documents
  • History
  • Administration

If UsageCategory is set to None, the page or report will not appear in search results.

Two other properties are added if UsageCategory is set: ApplicationArea and AccessByPermission. These properties control if a page or report is visible to the user and can be opened if it does appear in a search.

Example:

page 70050088 SimpleCustomerCard

{

PageType = Card;

SourceTable = Customer;

UsageCategory = Documents;

layout

{

area(content)

{

group(General)

{

field("No.";"No.") {}

field(Name;Name) {}

field(Address;Address) {}

}

}

}

}

As usual we encourage you to let us know how you like working with these additions and keep submitting suggestions and bugs. You can see all the filed bugs on our GitHub issues list (https://github.com/Microsoft/AL/issues). To get an updated image jump directly to the Azure Gallery signup at http://aka.ms/navdeveloperpreview.

For a list of our previous blog posts, see the links at the end of this post.

/NAV

Our earlier blog posts:

NAV Development Tools Preview - November Update

NAV Development Tools Preview - October Update

NAV Development Tools Preview - September Update

NAV Development Tools Preview - August Update

NAV Development Tools Preview - July Update

NAV Development Tools Preview - June Update

NAV Development Tools Preview - April Update

NAV Development Tools Preview - March Update

NAV Development Tools Preview - February Update

NAV Development Tools Preview - January Update

Announcing the Preview of Modern Development Tools for Dynamics NAV

Reasons to do a full crawl (*and it’s not for schema changes)

$
0
0

To avoid burying the lede, I'll start by "boldly" saying...
*You don't need to regularly schedule a full crawl for SharePoint Search

I've been at this long enough to realize that someone likely has an exception to this - but I truly cannot think of a reason to schedule full crawls (especially for SharePoint content). In fact, you generally do not need to run them at all outside of the few/specific reasons provided here in TechNet:

Reasons to do a full crawl
https://technet.microsoft.com/en-us/library/4356bad9-de1d-4e81-b049-17248b4a86c1#Plan_full_crawl

Most of these reasons are straightforward (e.g. the SSA or content source is new). However, the following reason in particular is commonly misunderstood (and drives the most common objection I hear when recommending customers avoid scheduling a full crawl):

  • A Search service application administrator or site collection administrator added or changed a managed property. A full crawl of all affected content sources is required for the new or changed managed property to take effect.

I feel this reason could be more accurately stated as:

  • A Search service application administrator or site collection administrator added or changed a managed property. A full crawl of all affected content sources is required for the new or changed managed property to take effect.
    • If this added/changed managed property impacts a very broad or global scope (such as the Title or Author managed property), a full crawl of the entire content source(s) may be required
    • However, if the added/changed managed property only impacts a smaller subset of content (e.g. a site collection or list/library), then only a full crawl of that subset requires the full crawl
      • In SharePoint 2013/2016 and SharePoint Online, this can be achieved with the “Reindex this site” or “Reindex this list/library” functionality as described here

In other words, the schema defines how an item gets stamped out when submitted to the Search index. Keep in mind, when a item gets written to the index, the item will only contain managed properties that have a value (if the MP is blank for an item, that item in the index will not contain any reference to this MP).

Let's say for example that a managed property mappings were updated to a crawled property for a column that only exists in a single library. If, after making this schema change, you started a full crawl, then only items in this library would get impacted by this schema change (*and all other items that did not have a value for this MP would also get crawled, but would see no change). In this case, the full crawl would generate a lot of load (e.g. crawling everything) just to update the relatively few items from that library. The same outcome could be achieved (after making the schema change) with MUCH less impact by setting this impacted library to be reindexed and starting an incremental.

I hope this helps...

----

(*Hopefully this is self-obvious, but I assume that incremental and/or continuous crawls have been scheduled)


Take Care of Thread Safe when Creating EventHubClient Object with Java SDK

$
0
0

Recently, I have worked on a weird azure app service issue. The app service just randomly returns 502.3 status code, and the win32 error code is 0x80072EFD. Normally speaking, for a Java web application, this is a bad gateway issue and the win32 error code means HttpPlatformHandler is not able to connect to Tomcat, because all Tomcat threads are used up and Tomcat cannot accept any more connections.
Then, I have used the jstack(can be found in the Java SDK directory) command in kudu to capture a thread dump and would like to check whether there are any deadlock threads or if they are hanging on any IO operation.

jstack -F PID D:/home/site/threaddump1.txt

Just as expected, almost all the tomcat threads (by default to 200 in Tomcat) are blocking in the following stack, it can explain why there is 502.3 error.

- sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(long, int, int[], int[], int[], long) - sun.nio.ch.WindowsSelectorImpl$SubSelector.poll() - sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(sun.nio.ch.WindowsSelectorImpl$SubSelector) - sun.nio.ch.WindowsSelectorImpl.doSelect(long) - sun.nio.ch.SelectorImpl.lockAndDoSelect(long) - sun.nio.ch.SelectorImpl.select(long) - org.apache.qpid.proton.reactor.impl.SelectorImpl.select(long) - org.apache.qpid.proton.reactor.impl.IOHandler.handleQuiesced(org.apache.qpid.proton.reactor.Reactor, org.apache.qpid.proton.reactor.Selector) - org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(org.apache.qpid.proton.engine.Event) - org.apache.qpid.proton.engine.impl.EventImpl.getType() - org.apache.qpid.proton.engine.BaseHandler.handle(org.apache.qpid.proton.engine.Event) - org.apache.qpid.proton.engine.impl.EventImpl.dispatch(org.apache.qpid.proton.engine.Handler) - org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(org.apache.qpid.proton.engine.Event, org.apache.qpid.proton.engine.Handler) - org.apache.qpid.proton.reactor.impl.ReactorImpl.process() - com.microsoft.azure.servicebus.MessagingFactory$RunReactor.run() - java.lang.Thread.run()

Based on com.microsoft.azure.servicebus.MessagingFactory$RunReactor.run function call, looks like it is blocking in the IO with service bus, but can't give further information. Luckily, some exception log says there is "Unable to establish loopback connection" exception when the issue happens, and this has given me more hint.

com.microsoft.azure.servicebus.MessagingFactory$RunReactor.run UnHandled exception while processing events in reactor:
org.apache.qpid.proton.reactor.impl.ReactorInternalException: java.io.IOException: Unable to establish loopback connection
org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:112)
org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:309)
org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:277)
com.microsoft.azure.servicebus.MessagingFactory$RunReactor.run(MessagingFactory.java:381)
java.lang.Thread.run(Thread.java:745)Cause: java.io.IOException: Unable to establish loopback connection
org.apache.qpid.proton.reactor.impl.IOHandler.onUnhandled(IOHandler.java:388)
org.apache.qpid.proton.engine.BaseHandler.onSelectableInit(BaseHandler.java:92)
org.apache.qpid.proton.engine.BaseHandler.handle(BaseHandler.java:221)
org.apache.qpid.proton.engine.impl.EventImpl.dispatch(EventImpl.java:108)
org.apache.qpid.proton.reactor.impl.ReactorImpl.dispatch(ReactorImpl.java:309)
org.apache.qpid.proton.reactor.impl.ReactorImpl.process(ReactorImpl.java:277)
com.microsoft.azure.servicebus.MessagingFactory$RunReactor.run(MessagingFactory.java:381)

Now it is more clear that the application has exhausted all the available loopback connections, all the threads are just blocking on waiting available loopback connection and finally stop Tomcat listening the request. After checking the code implementation, I can see this is a code defect that it has not considered thread safe when creating EventHubClient object. As the below code snippet shown, there is no problem for the implementation itself, a static EventHubClient object is expected to be created when it is being requested the first time, after that, it will be reused in the following requests.

import com.microsoft.azure.eventhubs.EventData;
import com.microsoft.azure.eventhubs.EventHubClient;
import com.microsoft.azure.servicebus.ConnectionStringBuilder;
import com.microsoft.azure.servicebus.ServiceBusException;

public class AzureUtils
{
    private static EventHubClient ehClient = null;
    private static void initAzure() throws ServiceBusException, IOException
    {
        // connStr is connection string
        ehClient = EventHubClient.createFromConnectionStringSync(connStr);
    }

    public static void send(String message)
    {
        try
        {
            byte[] payloadBytes = (message).getBytes("UTF-8");
            EventData sendEvent = new EventData(payloadBytes);
            if (ehClient == null)
            {
                initAzure();
            }
            ehClient.sendSync(sendEvent);

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}

However for a web application, especially a high throughput site as this one, as soon as the application launches, it will handle thousands of requests simultaneously. While, static keyword in Java doesn't mean it is thread safe, each thread may have its own local copy if the value is not initialized yet which means lots of EventHubClient objects have been created when the application launches. Each EventHubClient creates a dedicated physical socket to the EventHubService and exhausted the connections. The correct fix is to make sure the object has been initialized before using it in this scenario. Hope this is helpful if you have experienced similar issues.

Discover input/output paths of U-SQL jobs using Azure PowerShell

$
0
0

Do you use Azure Data Lake Analytics? Have you ever wanted to programmatically fetch the input and output paths of one of your U-SQL jobs? Now you can!

This is especially useful for developers who want to quickly debug an input file, fetch the results of an analysis, or check which files a particular job touched. With this new script, we’re helping those users by providing a simple Azure PowerShell script that reduces several steps into a one-line command.

How it works

Each time you submit a U-SQL job, a job folder is created in your Azure Data Lake Store account. This folder contains useful debugging information about the job, including a file called the U-SQL algebra file. This is an XML file containing information about your job graph, the list of input and output files, and other key U-SQL job metadata.

We’ve just published a sample script that reads the U-SQL algebra file for a specified job and returns the input or output files. Give it a try!

Running the sample

You can run this on a Windows machine with Azure PowerShell installed or via the Azure Cloud Shell.

  1. First, find the Job ID of the job for which you’d like to get the input or output paths. You can easily find this in the Azure Portal by opening your ADLA account, navigating to the desired job, and copying the Job ID.

    Alternatively, you can get the job ID of a job that you just submitted via Azure PowerShell.
      PS C:> $job = Submit-AdlJob -Account contosoadla -ScriptPath myScript.usql
      PS C:> $job.JobId
    
      Guid
      ----
      c3426e86-85f5-4521-b376-e4b3e8d32d8c
  2. Copy the contents of the sample script to a new local file called Get-AdlJobIoPath.ps1
  3. Open a new PowerShell window. Navigate to the folder containing the sample script.
  4. Log in to Azure.
      PS C:> Login-AzureRmAccount
  5. Run the following command in PowerShell, replacing the bolded parts with your own values. This example gets the input file and table paths of the U-SQL job with Job ID c342....
      PS C:> .Get-AdlJobIoPath.ps1 -Account contosoadla -Id c3426e86-85f5-4521-b376-e4b3e8d32d8c -Direction Input
    
      Type  Path
      ----  ----
      Table master.dbo.TransactionsTbl
      File  adl://contosoadls.azuredatalakestore.net/data/SalesData.csv

Try the sample script today!

The source code for the sample is available in GitHub.

Soon, U-SQL job input and output information will be more readily accessible through our REST API, SDKs, and other interfaces.

Let us know your feedback in the comments. Are you looking for any other samples, features, or improvements? Let us know and vote for them on our UserVoice.

NRF2018

$
0
0

Nous vous donnons rendez-vous  sur place pour vivre ensemble l’événement, édition 2018.

Afin de préparer au mieux votre visite, n'hésitez pas à nous contacter.

Cette année:

Les éditeurs mis en scène sont : Aprimo, Adobe, Blue Yonder, Fellow Robots, Genetec, Hitachi, Kroger, LiveTiles, Microsoft, Mojix, Microsoft Store, Sitecore, SBSoft, Lakeba

Pour nous inspirer, les scénarios des clients suivants : Home Depot, Sephora, Morrisons, Lowe’s, Pandora, Estée Lauder, The Shoe Box, Michael Hill, Dolce & Gabbana, Pet Supply Plus, …

Les thématiques partagées: le commerce digital, les coulisses du magasin, une Supply Chain connectée et intelligente, l’engagement en magasin, l’internet des objets et analyses en magasin, RFID, le temps réel, un commerce unifié, la reduction des coûts et des ruptures de stocks, la réalité mixte, les agents virtuels et autres communications originales, l’autonomie des coachs/vendeurs/ambassadeurs, la localisation en points de vente…


Dynamics 365 for Finance and Operations, Enterprise Edition – Tablas globales o Cross-company data sharing

$
0
0

INTRODUCCIÓN

Las Compañías Virtuales permiten configurar tablas que pueden ser compartidas por un grupo de Entidades legales. Esta funcionalidad trabaja agrupando tablas en colecciones de datos que se asignan a empresas 'virtuales', las cuales son empresas existentes. Así mismo, se crean consultas para que todas las empresas asociadas a la Compañía virtual puedan tener acceso a los datos en las tablas de las colecciones de tablas asociadas.

 

Por ejemplo:

En la entidad legal CEU se tienen dados de alta: Proveedor 1 y Proveedor 2.

Por otro lado, en la entidad legal CEE se han dado de alta: Proveedor A y Proveedor B.

 

Posteriormente, se decide crear una Compañía Virtual (CV), la cual va a compartir sus tablas a la entidad legal CEU y a la entidad legal CEE. Para lo cual, se define compartir la tabla de proveedores. Y en la Entidad legal CV, se dan de alta: Proveedor X y Proveedor Y.

A partir de ese momento, al consultar el Catálogo de proveedores desde CEU se observarán los mismos datos que desde CEE.

** Nota. Los datos Proveedor 1 y Proveedor 2 en CEU, y Proveedor A y Proveedor B en CEE aún existen, pero no son visibles desde el Catálogo de proveedores, ya que están compartiendo la tabla de la Compañía Virtual.

 

CONTENIDO

Dado lo anterior, los datos de las empresas virtuales, para ser compartidos por diferentes Entidades legales, deben ser configurados desde que se ingrese información en las diferentes Entidades legales. De manera que, cuando una tabla forma parte de una empresa virtual, pierde la información acerca del origen de los datos, y sólo se registra en la empresa virtual.

Así mismo, todas las tablas a las que se hace referencia desde las tablas en una empresa virtual también se deben agregar, incluso los datos maestros sencillos que se extienden en múltiples tablas deben formar parte de la empresa virtual. Cualquier error que se realice producirá problemas funcionales.

 

Por las razones anteriores, en Dynamics 365 for Finance and Operations, Enterprise Edition se pueden usar Tablas globales o Cross-company data sharing para que las tablas sean accesibles desde varias empresas. La funcionalidad de Compañías virtuales deja de estar soportada.

 

Esta funcionalidad permite replicar (compartir) datos entre compañías. La integridad de datos es verificada antes que la replicación ocurra.

Esta característica puede ser utilizada en los siguientes escenarios:

  • Compartir datos de referencia y grupos simples en una sola implementación
  • Compartir entre empresas que tienen configuraciones muy similares
  • Compartir escenarios que han sido probados explícitamente por Microsoft

 

Para obtener más detalle al respecto de esta funcionalidad, puede consultar las referencias de la documentación en línea que se mencionan abajo.

 

Referencias:

Características en desuso (Dynamics 365 for Finance and Operations, Enterprise Edition)

https://docs.microsoft.com/es-es/dynamics365/unified-operations/dev-itpro/migration-upgrade/deprecated-features?toc=dynamics365/unified-operations/fin-and-ops/toc.json

 

Cross-company data sharing

https://docs.microsoft.com/en-us/dynamics365/unified-operations/dev-itpro/sysadmin/cross-company-data-sharing

 

 

Para M

Guest Blog | Zero to App in 20 Minutes: Build Your First Chat App with Microsoft Azure, Visual Studio App Center, and Rapid

$
0
0

This is a special guest post from David Drobik, co-founder at Rapid.

Until recently, we had only one option for communicating with friends, family, and colleagues from our mobile phones: Short Messaging System (SMS).

Now, though, we don’t have to limit our communication to 160 characters (the SMS max per message, in case you don’t remember), and the options for real-time communication are virtually limitless.

In my work at STRV, creating web and mobile apps for Silicon Valley’s hottest companies and leading global brands, including Caviar, LegalZoom, Hallmark, and Lufthansa, and in developing our own real-time database (Rapid), we’ve seen the mobile explosion, beginning with the earliest smartphones in 2004.

Today we’re seeing the chat explosion. From dating to customer service and team collaboration, you name it and there’s a real-time messaging app for it. Industry research backs this up: Business Insider notes the top four messaging apps are bigger than the top four social networks, and eMarketer predicts that more than one-quarter of the world’s population will be using mobile messaging apps by 2019.

This is a massive opportunity, but chat interfaces are notoriously challenging to implement due to their complex asynchronous nature and underlying real-time infrastructure.

We developed Rapid to solve this problem for ourselves, as a 160+ member development shop, and for you, as an indie, commercial, or enterprise developer. We’ve combined numerous cloud services (the ones most critical to chat apps, including Azure Cosmos DB, Azure Redis, and Azure Container Service) into one simple real-time database to help you move fast.

In twenty minutes or less, any developer can get their first real-time chat app up and running. In this post, we’ll show you how (and why) to add “chat apps” to your StackOverflow Developer Story, GitHub repos, or [insert your preferred skills profile]. We’ll dive into basic chat requirements, what separates the good from the great, plus give you the code samples and step-by-step docs you need to get started.

But first, a little more on the rise of chat apps.

It’s no surprise that real-time messaging has permeated all industries, verticals, and demographics; humans are social beings, and we crave interaction with others.

Developers everywhere are incorporating social elements into their apps, from gamification to social sharing, and chat capabilities are arguably “social-plus.” Real-time messaging is the most direct, fastest form of digital interaction. From a developer's point of view, this results in happier, more engaged users; your user base launches your app more frequently, checking for updates, new messages, or shares with their friends.

Chat drives user engagement and loyalty, but there’s usually a trade-off. You want (and should) spend your time delivering a great user experience, not solving the server-side challenges, like scaling WebSockets, that chat messaging entails.

With the help of Azure and Visual Studio App Center, Rapid removes these barriers. Without further ado, let’s take a look at what it takes to build a chat app that people are eager to use again and again.

Anatomy of a Chat App

Chat Channels

Rapid app chat channels

As users, we’re accustomed to seeing chat groups where we can talk to dozens of friends or colleagues, in real-time or asynchronously, and direct messaging capabilities that allow us to communicate directly with one other person.

As you build your chat app, you need to make sure you can display, search, and send messages to multiple groups and associated members, as well as limit message sends to conversations between individuals.

Building the List of Channels

Most chat apps contain a list of all chat groups, commonly called channels, where users search, select, and post messages. Whatever you refer to them as, they allow your users to easily navigate through conversations.

In addition, don’t forget the “create a channel” feature. Offering pre-existing channels in your chat app is great, but users also need to create channels for specific teams, interests, events, and more, as well as have the ability to invite users to collaborate.

Rapid create a channel

Implement and Send Messages

Channels are the framework for your app. The core of your app is building the actual chat capabilities and allowing your users to easily read, write, and send messages to other users and channels.

Building the List of Messages

Every chat app has a way of displaying messages to users, but the best chat apps make navigating through conversations with other users as simple as possible. Building a list of messages makes it easy for users to parse, search, and find messages. We’ve seen this magnified in work-related chat applications, where colleagues sending new information quickly buries earlier (but important) information and documents.

Engage Users with Push Messages

According to a recent report from App Annie, average US users have over 80 apps installed on their smartphones, but only use around 30 on a monthly basis. To make your app stand out on a busy home screen, re-engaging users with push notifications is crucial.

We all know that as the number of App Store and Google Play apps increases, app discoverability gets harder and harder. How your app ranks in store searches (ASO) depends on various criteria, and how frequently your app is used per day is a major factor. This is partially in your control; using push notifications thoughtfully can drive significant increases in app launch frequency and boost your rankings.

Sending Notifications with Azure Notification Hubs and Visual Studio App Center Push Service

To get started, identify when, how, and why you’ll push notifications and conversation updates to your users.

Just like with email, push notifications fit into two different categories:

  1. Transactional Notifications: Notification that a new chat message is received.
  2. Marketing Notifications: Messages intended to re-engage your users by promoting a new upgrade or by prompting them to check out your latest features.

Visual Studio App Center’s Push service allows you to send re-engagement notifications directly from the App Center portal, and you can also use Azure Notification Hubs to send push notifications dynamically from any backend (including on-premises).

Both services handle device registrations for you, including storing device tokens and deleting them if they’re no longer valid, which is a big advantage since it gives you one less moving part to worry about. On the implementation side, each service has its own client-side SDK, with a slightly different API. Visual Studio App Center’s Push SDK handles most of the registration for you with a single line of code. The Notification Hubs SDK requires a deeper understanding of the platform’s specific device registration process.

Next Steps: Make it Your Own

Ready to build your own chat app in 20 minutes? Check out our demo projects (Android, iOS, and JavaScript) to download the full source code and docs, including detailed tutorial steps for the iOS version.

From there, you can customize the UI, add more capabilities, and, most importantly, show it off to your colleagues and friends!

To start sharing with others, check out Visual Studio App Center’s Distribute service. You’ll create and add members to distribution groups in minutes, send notifications to all group members with prompts to download your app, as well as automatically send notifications for future updates as you keep adding features.

We can’t wait to see what you build. And who knows—you might have the next big real-time app!

More About Rapid

We started Rapid, a globally distributed real-time database, to solve common problems and make it easy for web or mobile developers to deliver real-time data from servers to any client (iOS, Android, React Native, or React.js).Rapid relies on Azure Cosmos DB and many other Microsoft Azure services (VMs, Containers Services, Redis Cache), surfacing its powerful hyperscale capabilities, like rich queries, auto indexing, low latency, and predictable throughput, in an easy-to-use UI.

We’re a startup passionate about helping other startups ship lightning-fast, amazing apps - from chat apps to games to IoT scenarios. Any situation where speed is essential, Rapid has developers covered.

Special thanks to the Rapid team who helped with the heavy lifting on this post, namely: Martin Stava, Jakub Kinst, Jan Schwarz, Filip Skaloud and Daniel Kraus.
 
 
If you haven’t already, create your Visual Studio App Center account, connect your first app, and start shipping better apps now.

Have an account? Log in and let us know what you’re working on!

About the Author

David Drobik is the co-founder of Rapid, launching in early 2017. Prior to his work with Rapid, David led business development at STRV, Silicon Valley’s go-to software development partner. He’s enthusiastic about sharing his rich experience in tech and startups with the world through his blog and frequent community meet-ups, hackathons, and more.

Viewing all 5308 articles
Browse latest View live


Latest Images