You are here

Feed aggregator

How To Think Like a Microsoft Executive

MSDN Blogs - 10 hours 18 min ago

One of the things I do, as a patterns and practices kind of guy, is research and share success patterns. 

One of my more interesting bodies of work is my set of patterns and practices for successful executive thinking.

A while back, I interviewed several Microsoft executives to get their take on how to think like an effective executive.

While the styles vary, what I enjoyed is the different mindset that each executive uses as they approach the challenge of how to change the world in a meaningful way.

5 Key Questions to Share Proven Practices for Executive Thinking

My approach was pretty simple.   I tried to think of a simple way to capture and distill the essence. I originally went the path of identifying key thinking scenarios (changing perspective, creating ideas, evaluating ideas, making decisions, making meaning, prioritizing ideas, and solving problems) ... and the path of identifying key thinking techniques (blue ocean/strategic profile, PMI, Six Thinking Hats, PQ/PA, BusinessThink, Five Whys, ... etc.) -- but I think just a simple set of 5 key questions was more effective.

These are the five questions I ended up using:

  1. What frame do you mostly use to evaluate ideas? (for example, one frame is: who's the customer? what's the problem? what's the competition doing? what does success look like?)
  2. How do you think differently, than other people might, that helps you get a better perspective on the problem?
  3. How do you think differently, than other people might, that helps you make a better decision?
  4. What are the top 3 questions you ask yourself the most each day that make the most difference?
  5. How do you get in your best state of mind or frame of mind for your best thinking?

The insights and lessons learned could fill books, but I thought I would share three of the responses that I tend to use and draw from on a regular basis …

Microsoft Executive #1

1) The dominant framework I like to use for decisions is: how can we best help the customer? Prioritizing the customer is nearly always the right way to make good decisions for the long term. While one has to have awareness of the competition and the like, it usually fails to “follow taillights” excessively. The best lens through which to view the competition is, “how are they helping their customers, and is there anything we can learn from them about how to help our own customers?”

2) I don’t think that there is anything magical about executive thinking. The one thing we hopefully have is a greater breadth and depth of experience on key decisions. We use this experience to discern patterns, and those patterns often help us make good decisions on relatively little data.

3) Same answer as #2.

4) How can we help our customers more? Are we being realistic in our assessments of ourselves, our offerings and the needs of our customers? How can we best execute on delivering customer value?

5) It is key to keep some discretionary time for connecting with customers, studying the competition and the marketplace and “white space thinking.” It is too easy to get caught up on being reactionary to lots of short-term details and therefore lose the time to think about the long term.

Microsoft Executive #2

There are three things that I think about as it relates to leading organizations: Vision, People and Results. Some of the principles in each of these components will apply to any organization, whether the organization's goal is to make profit, achieve strategic objectives, or make non-profit social impact.

Vision

In setting the vision and top level objectives, it is very important to pick the right priorities. I like to focus on the big rocks instead of small rocks at the vision-setting stage. In today's world of information overload, it is really easy to get bombarded with too many things needing attention. This can dilute your focus across too many objectives. The negative effect of not having a clear concentrated focus multiplies rapidly across many people when you are running a large organization. So, you need to first ask yourself what are the few ultimate results that are the objectives of your organization and then stay disciplined to focus on those objectives. The ultimate goal might be a single objective or a few, but should not be a laundry list. It is alright to have multiple metrics that are aligned to drive each objective, but the overall objectives themselves should be crisp and focused.

People

The next step in running an organization is to make sure you have the right people in the right jobs. This starts with first identifying the needs of the business to achieve the vision set out above. Then, I try to figure out what types of roles are needed to meet those needs. What will the organization structure look like? What kind of competencies, that is, attributes, skills, and behaviors, are needed in those roles to meet expected results? If there is a mismatch between the role and the person, it can set up both the employee and the business for failure. So, this is a crucial step in making sure you've a well running organization.

Once you have the right people in the right jobs, I try to make sure that the work environment encourages people to do their best. Selfless leadership, where the leaders have a sense of humility and are committed to the success of the business over their own self, is essential. An inclusive environment where everyone is encouraged to contribute is also a must. People's experience with the organization is for the most part shaped by their interaction with their immediate manager. Therefore, it is very important that a lot of care goes into selecting, encouraging and rewarding people managers who can create a positive environment for their employees.

Results

Finally, the organization needs to produce results towards achieving the vision and the objectives you set out. Do not confuse results with actions. You need to make sure you reward people based on performance towards producing results instead of actions. When setting commitments for people, you need to be thoughtful about what metrics you choose so that you incent the right behavior. This again helps build an environment that encourages people to do their best. Producing results also requires that you've a compelling strategy for the organization. Thus, you need to stay on top of where the market and customers are. This will help you focus your organization's efforts on anticipating customer needs, and proactively taking steps to delight customers. This is necessary to ensure that organization's resources are prioritized towards those efforts that will produce the highest return on investment.

Microsoft Executive #3
  1. Different situations call for different pivots.  That said, I most often start with the customer, as technology is just a tool; ultimately, people are trying to solve problems.  I should note, however, that “customer” does not always mean the person who licenses or uses our products and/or services.  While they may be the focus, my true “customer” is sometimes the business itself (and its management), a business group, or a government (addressing a policy issue).  Often, the problem presented has to be solved in a multi-disciplinary way (e.g., a mixture of policy changes, education, technological innovation, and business process refinements).  Think, for example, about protecting children on-line.  While technology may help, any comprehensive solution may also involve government laws, parental and child education, a change in website business practices, etc.
  2. As noted above, the key is thinking in a multi-disciplinary way. People gravitate to what they know; thus the old adage that “if you have a hammer, everything you see is a nail.” Think more broadly about an issue, and a more interesting solution to the customer’s problem may present itself. (Scenario focused engineering works this way too.)
  3. It is partially about thinking differently (as discussed above), but also about seeking the right counsel.  There is an interesting truth about hard Presidential decisions.  The more sensitive an issue, the fewer the number of people consulted (because of the sensitivity) and the less informed the decision.  Obtaining good counsel – while avoiding the pitfall of paralysis (either because you have yet to speak to everyone on the planet or because there was not universal consensus on what to do next) is the key.
  4. (1) What is the right thing to do? (This may be harder than it looks because the different customers described above may have different interests.  For example, a costly solution may be good for customers but bad for shareholders.  A regulatory solution might be convenient for governments but stifle technological innovation.)  (2) What unintended consequences might occur? (The best laid plans….).  (3) Will the solution be achievable?
  5. I need quiet time; time to think deeply.

The big things that really stand out for me are using the customer as the North Star, balancing with multi-disciplinary perspectives, evaluating multiple, cascading ramifications, and leading with vision.

You Might Also Like

100 Articles to Sharpen Your Mind

Rituals for Results

Thinking About Career Paths

What to do if your antivirus subscription has expired

MSDN Blogs - 10 hours 24 min ago

Phil asks:

I'm new to Windows 8.1. Now that my free security software has expired, how do I go about making Windows Defender my choice security method?

Windows Defender is included with Windows 8 and Windows 8.1 and helps protect your PC against malware (malicious software). Many new computers come with free subscriptions to antivirus software and other security programs from companies other than Microsoft. If the subscription runs out and you don’t want to pay for it, you need to:

  1. Fully uninstall the non-Microsoft security software that came with your computer.
  2. Make sure Windows Defender is turned on.

To uninstall the security software that came with your computer, check the software’s Help file.

Make sure Windows Defender is turned on in Windows 8
  1. Swipe in from the right edge of the screen and tap Search (or if you're using a mouse, point to the upper-right corner of the screen, move the mouse pointer down, and then click Search).
  2. In the Search box, type Windows Defender.
  3. Tap or click the Windows Defender icon.
  4. Go to Settings, and make sure that Turn on real-time protection (recommended) is selected.
  5. Tap or click Save Changes.

Summer school in Russia explores research in the cloud

MSDN Blogs - 10 hours 24 min ago

Summer school in Russia explores research in the cloud
Held in Moscow in July 30 to August 6, this year’s Microsoft Research Russia Summer School focused on training a new generation of researchers to build cloud-based tools and services to support scientific discovery in this age of “big data.”

...(read more)

.NET Sample Code on GitHub

MSDN Blogs - 10 hours 41 min ago

Today, we're happy to announce that we've started to move some of our sample assets over to GitHub, using the MIT license. So I can directly answer Ben's question

with this tweet:

Why did we move to GitHub?

The reasons we decided to move the samples to GitHub is as follows:

  1. We want to be where our community is
  2. GitHub offers an awesome browsing experience
  3. GitHub enables conceptual documentation to be located with sample code
  4. We want to be able to accept contributions

Let me take them one by one.

We want to be where our community is

The majority of the .NET community is on GitHub these days. Our principle is, and has been, to go where our customers are, rather than asking them to move somewhere else, say, MSDN Code Gallery.

GitHub offers an awesome browsing experience

The nice thing with GitHub is that it allows us to link to parts of the samples. For example, in SIMD we can point you to a specific line of code that shows how you can use the SIMD types to vectorize Mandelbrot:

https://github.com/Microsoft/dotnetsamples/blob/master/System.Numerics/SIMD/Mandelbrot/VectorFloat.cs#L29

GitHub enables conceptual documentation to be located with sample code

Sample code usually comes with at least a README file that explains how to get started. However, depending on the component the sample is for we may want to include a more comprehensive documentation. While sample code and documentation aren't a replacement for MSDN, but we think they can provide a starting point for what will eventually become the official documentation.

Take, for example, the CLR Memory Diagnostics (CLRMD) library. The README.md file links to a more comprehensive documentation in the docs folder.

We want to be able to accept contributions

Publishing our samples to GitHub streamlines any updates. Team members can easily fix typos or clarify parts of the documentation using the web front-end.

But more importantly, it also enables you to provide sample code or propose changes. Many of you have asked about this for years -- it's finally a reality!

Summary

Please take a look at the new sample site on GitHub and let us know if you have any feedback!

Cuttable Scope

MSDN Blogs - 11 hours 1 min ago

Early on in my Program Management career, I ran into challenges around cutting scope.

The schedule said the project was done by next week, but scope said the project would be done a few months from now.

On the Microsoft patterns & practices team, we optimized around “fix time, flex scope.”   This ensured we were on time, on budget.  This helped constrain risk.  Plus, as soon as you start chasing scope, you become a victim of scope creep, and create a runaway train.  It’s better to get smart people shipping on a cadence, and focus on creating incremental value.  If the trains leave the station on time, then if you miss a train, you know you can count on the next train.  Plus, this builds a reputation for shipping and execution excellence.

And so I would have to cut scope, and feel the pains of impact ripple across multiple dependencies.

Without a simple chunking mechanism, it was a game of trying to cut features and trying to figure out which requirements could be completed and still be useful within a given time frame.

This is where User Stories and System Stories helped.  

Stories created a simple way to chunk up value.   Stories help us put requirements into a context and a testable outcome, share what good looks like, and estimate our work.  So paring stories down is fine, and a good thing, as long as we can still achieve those basic goals.

Stories help us create Cuttable Scope.  

They make it easier to deliver value in incremental chunks.

A healthy project start includes a baseline set of stories that help define a Minimum Credible Release, and additional stories that would add additional, incremental value.

It helps create a lot of confidence in your project when there is a clear vision for what your solution will do, along with a healthy path of execution that includes a baseline release, along with a healthy pipeline of additional value, chunked up in the form of user stories that your stakeholders and user community can relate to.

You Might Also Like

Continuous Value Delivery the Agile Way

Experience-Driven Development

Kanban: The Secret of High-Performing Teams at Microsoft

Minimum Credible Release (MCR) and Minimum Viable Product (MVP)

Portfolios, Programs, and Projects

Azure Modeler for Microsoft Dynamics ERP - Version 2

MSDN Blogs - 11 hours 10 min ago

We have received a ton of great feedback on V1 of the Azure Modeler for Dynamics ERP and added a few key requests and features.

We have added the ability to support Dynamics GP,NAV & SL on the Settings tab.  We have put in some sample data in the fence and expect that you will review/validate/adjust to meet your own recommendations.

We have also added some handy new features like a TCO (Total Cost of Ownership) worksheet tab to help your customers and prospects compare On-Premise, On-Line and other SaaS based solutions. 

You can model your customers current environment and compare these fixed costs with the dynamic costs for an Azure ERP deployment.  This is a really nice way to show your customers the advantages of moving to the Azure Cloud.  Optionally, you can share these details with your customers via a quick email on the Setting Tab.

 

 

And a great new Guide Me form that makes it easy to get started building your own models for your customers.

 

Also, we added a really nice (optional) network topology map that will build dynamically based on the Azure environment that you model for your customer.

 

Screen shot of the Network Topology image.

 

 

We can access the current version of the Azure Modeler for Dynamics ERP here.  Be sure that you download this file and unzip this on your local machine as it does contain a few simple macros that need to be enabled when you first open it.

There is a one time initial prompt to "Export the Outlook Template".  Answer Yes.  (This puts a Outlook Template file in the same folder as the modeler that you may modify to your own wording for the optional mail that is generated.)

  

And of course, we plan to keep enhancing the Azure Modeler for Dynamics ERP to help make it easier for your move all your customers and prospects to the Microsoft Azure Cloud.   

 

Always, keep the feedback coming at  john.dooley@microsoft.com

 

 

 

Sample chapter: Preparing for Windows Server 2012 R2

MSDN Blogs - 11 hours 24 min ago

This chapter from Training Guide: Installing and Configuring Windows Server 2012 R2 describes common deployment scenarios and outlines the steps involved in a typical server deployment or migration process. The chapter also examines some approaches and tools you can use for assessing the readiness of your environment for migrating to Windows Server 2012 R2.

Lessons in this chapter:

  • Lesson 1: Planning for Windows Server 2012 R2
  • Lesson 2: Assessing the readiness of your environment

Dynamics AX Workflow - Quick Tips

MSDN Blogs - 11 hours 24 min ago

In support I field a number of workflow cases and I very often will use the Tutorial Workflow Processor for testing.  I often get asked by customers and partners about the Workflow Processor.

You can find the workflow processor in the AOT under Forms | Tutorial_WorkflowProcessor (bonus tip: type the letter U and it will be two above UnitOfMeasure). If you right click on the Tutorial_WorkflowProcessor and choose Open a small form titled Demo will open.  Click on Start and you should see something like this:

 

 

You can see from the screenshot that there are 4 records in the queue.  So what use is this you ask?  We use this in support for testing very often because by watching the processor you can see the record count increase and then decrease when submitting and approving workflows.  If the count is at zero and you submit an item it will tick up to 1 and then back to zero after it is submitted and processed.  When you approve the workflow you will see it count up and then back down again as well. Additionally the workflow processor is faster then the standard batch processor which is set to recur every minute by default. It definitely beats clicking refresh over and over again while doing testing.

Another great use for the processor is to test workflows that are "stuck".  You will see these workflows sitting in a pending state and they aren't assigned to anyone.  In these cases you can run the processor (in test!) to see if this gets them moving.  If it does that usually indicates an issue with batches.  We know this because the workflow processor takes place of the batch processing infrastructure. 

There are a few caveats of course.  Generally speaking you don't want to run this in production.  There is a Clear button on the processor which clears out records and that usually isn't desired. 

A really quick tip.  When you open the Workflow Canvas you can see a list of errors and warnings on the bottom of the screen like this:

If you double click an error message the correct window will open so you can fix the error.  Pretty handy if you are in a hurry!

 

Learn how to keep your public sector office compliant with the ODF mandate

MSDN Blogs - 12 hours 5 min ago

Earlier this year, Cabinet Office mandated that all government documents be created in “open document format” file types, commonly known as ODF. Moving to comply with the ODF mandate is going be an issue that offices big and small have to face. But the good news is that you probably already have access to the software you need to conform to the new regulation. That’s right -- Microsoft Office has supported ODF since 2007. That means government offices can fully comply with the ODF mandate today using the office productivity software that staff are already familiar with. 

Still have questions about how to keep your office ODF compliant? Join experts from Microsoft to discuss best practices for complying with the ODF mandate in a free webinar. In just 45 minutes, you’ll learn all you need to know about the ODF mandate and how to implement ODF in your office. This free online event will cover the background and context of the mandate, as well as what it means for government organisations. You’ll get technical details for users of Microsoft Office and Office 365 on how they can take advantage of their existing investments to become compliant with the mandate. You’ll be able to ask questions and get advice from dedicated Microsoft experts with a deep understanding of public sector technology needs.

Join us on Thursday 25th September at 9:30 for this free, 45 minute event. Register now, as this event is sure to fill up quickly. 

Microspeak: spend

MSDN Blogs - 12 hours 24 min ago

Remember, Microspeak is not merely for jargon exclusive to Microsoft, but it's jargon you need to know.

We don't encounter the term spend much in the engineering side of the company, but it's in common use among those who regularly deal with money and budgets.

We are in line with company standards with regard to spend for this type of event. Q4 spend will be higher as a result of widget recolorization. Our corresponding spend will increase significantly if we adopt this proposal.

From the above citations, it is apparent that the word spend is shorthand for expenditure.

And then there's this citation: I'll let you know what we have available with respect to spend.

So much for that theory. Here, spend means available budget.

My new theory is that spend is shorthand for spending.

This appears to be common use in business-speak:

IT Spend Report Shows Tougher Times Ahead The spend is 15% more than the 100m T-Mobile allocated to marketing last year

.NET Framework の内部処理で発生する例外について

MSDN Blogs - 12 hours 34 min ago

こんにちは。Visual Studio サポート チームです。

今回は、.NET Framework アプリケーションで発生する異常終了の問題について、調査方法と有効な可能性のある回避策についてご案内します。

.NET Framework アプリケーションの異常終了は、大きく分けて以下の 2 種類の例外によって発生します。

 a) アプリケーションでハンドルされない一般的なマネージ例外
 b) .NET  Framework の内部処理で発生する例外

a) については、多くの方が経験されたことがありイメージしやすいかと思います。
例えば、未初期化のオブジェクトにアクセスしようとすると NullReferenceException がスローされますが、try-catch ステートメントで例外をハンドルしていない場合はアプリケーションが終了します。この問題は、Visual Studio や WinDbg などのデバッガを使用してアプリケーションをデバッグ実行するか、アプリケーション終了時のプロセスのダンプ ファイルを取得し、解析することで原因を調査することが可能です。デバッグ方法についての解説はここでは割愛します。

一方、b) については馴染みのない開発者の方も多いかもしれません。
これらは、通常、再現性が低く、問題発生時には「致命的な実行エンジン エラー」として ID 1000、および ID 1023 のイベント ログが記録されたり、アクセス違反の例外 (例外コード : 0xC0000005) として記録されたりします。これらの問題は、.NET Framework のコア ランタイム ライブラリ (mscorwks.dll または clr.dll) の内部処理でアクセス違反の例外が発生しているもので、イベント ログにもこれらのモジュールの名前が記録されます。(mscorwks.dll は .NET Framework 2.0/3.0/3.5 で使用される .NET Framework のコア ランタイム ライブラリです。clr.dll は .NET Framework 4 以降で使用されるものです。)

以下では、この b) の問題のうち、特に、ガベージ コレクション (GC) の実行中に発生する問題について取り上げ、原因、調査方法、有効な可能性のある対処策について解説します。

※ なお、GC 実行中の問題であるかどうかを判断するには、アプリケーション異常終了時のダンプ ファイルを解析するなどして、clr.dll や mscorwks.dll の GC 関連の処理 (WKS::gc_heap::mark_object_simple など) の最中に発生した問題であるかどうか確認する必要があります。

 

■ 原因について
GC 実行時にアクセス違反の例外が発生する原因としては、「マネージ オブジェクトの破損」が挙げられます。

.NET Framework では、オブジェクトは GC ヒープ上に世代ごとに隙間なく並べられます。各オブジェクトのメモリ上のレイアウトはこちらの記事の Figure 6 のとおりです。各オブジェクトは自身の型を示す TypeHandle という領域を保持しており、型の情報を保持するグローバル領域である MethodTable をポイントしています。

ここで、なんらかの理由により、この MethodTable へのポインタが不正なアドレスをポイントするよう書き換えられると、GC 実行時にこの不正なアドレスが参照されアクセス違反となり、.NET Framework でハンドルできない致命的なエラーとしてアプリケーションが終了する結果となります。

この「何らかの理由」の代表的なものとして、プラットフォーム呼び出し (P/Invoke) や COM 相互運用によるネイティブ関数の直接的な呼び出しにおける、呼び出し規約や引数のマーシャリングに関するコーディングのミスが挙げられます。また、.NET Framework の未知の不具合が影響している可能性もあります。

 

■ 調査方法について
マネージ オブジェクトの破損によりアプリケーションが異常終了する問題は、問題が混入したタイミングとアプリケーションが異常終了するタイミングが異なるため、アプリケーション異常終了時のダンプ ファイルからは原因を追究することはできません。ダンプ ファイルにはダンプ ファイルが出力された瞬間のメモリやレジスタの情報が記録されますが、根本的な原因は、アプリケーションが GC を実行してクラッシュするよりも前の時点で、オブジェクトのデータが何らかの処理により破壊されていることにあるからです。

- MDA の活用
前述の P/Invoke や COM 相互運用に原因があるような場合、MDA (Managed Debugging Assistants) の gcManagedToUnmanaged、gcUnmanagedToManaged、invalidGCHandleCookie、invalidOverlappedToPinvoke、pInvokeLog、および pInvokeStackImbalance といった項目を指定して現象の再現性を高めたり問題個所を絞り込むことができる可能性があります。MDA の利用方法や各オプションの詳細については、以下の MSDN ライブラリを参照してください。

 Diagnosing Errors with Managed Debugging Assistants
 http://msdn.microsoft.com/en-us/library/d21c150d.aspx

- Stress Log の取得
MDA を使用しても現象の再現性を高められない場合、Stress Log と呼ばれる特殊な設定を有効にした状態でアプリケーションを実行し、現象が再現した際のダンプ ファイルを取得して解析することで原因を追究できる場合があります。この解析作業は弊社のサポート サービスで承ります。
調査に有効な情報を採取するためには Stress Log と合わせて Heap Verify、GC Stress といった設定も有効にする必要があります。具体的にはレジストリを以下のように設定します。

 キー : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework

 名前 : StressLog
 種類 : REG_DWORD
 値 : 1

 名前 : HeapVerify
 種類 : REG_DWORD
 値 : 1

 名前 : GCStress
 種類 : REG_DWORD
 値 : 3

 名前 : LogFacility
 種類 : REG_DWORD
 値 : 0xffffffff

 名前 : StressLogSize
 種類 : REG_DWORD
 値 : 65536

 

なお、これらを有効にした場合、GC が高頻度で実行され、GC 実行時のオブジェクトの移動内容をすべてメモリ上にログするような動作となることから、アプリケーションのパフォーマンスが大幅に低下します。このため、運用環境への適用は避け、可能な限りテスト環境をご利用いただくようご注意ください。また、パフォーマンスが低下することにより現象の再現性が低下する場合もある点につきまして、予めご了承ください。
ダンプ ファイルの取得方法については以前のブログ記事でもご案内していますのでこちらをご参照ください。

 

■ 有効な可能性のある対処策について
上述のとおり、Stress Log の採取設定によりアプリケーションのパフォーマンスが低下し、マルチスレッドの処理のタイミングも影響を受けることから、再現性が大幅に低下して難航することが多く、残念ながら原因が特定できないことのほうが圧倒的に多いのが実情です。
そのため、根本原因の特定とは別に、現象の回避という観点で、「同時実行 GC の無効化」をお試しいただくこともご検討ください。

.NET Framework を使用してデスクトップ アプリケーションを開発すると、GC のモードは既定で、Workstation モードとなり、合わせて、同時実行 GC という機能が有効となります。この同時実行 GC では、GC を複数のスレッドで並行して、細切れに実行することで、アプリケーションの応答性を向上させるよう複雑な同期処理を行っています。

この同時実行 GC を無効化することで、複数スレッドによる複雑な GC 処理を単純化することができ、.NET Framework の未知の不具合や、マネージ オブジェクト破損時の不正なアドレス参照によりアプリケーションが異常終了する現象を回避、または問題の発生確率を大幅に低減できる可能性があります。

同時実行 GC を無効化する方法については、以下のドキュメントをご参照ください。

 How to: Disable Concurrent Garbage Collection
 http://msdn.microsoft.com/en-us/library/at1stbec.aspx

 

以上となります。
.NET Framework の致命的な実行エンジン エラーなど内部処理中に発生する問題は、現象の再現性によっては原因を特定することが難しい場合がありますが、同時実行 GC を無効にすることで現象の発生を抑止できる場合がありますので、原因調査とあわせて、こちらの利用もご検討ください。

如何使用 Microsoft Azure Media Services 進行現場直播 (Live Streaming)

MSDN Blogs - 12 hours 43 min ago

感謝北科大劉建昌同學翻譯 微軟公司 Azure Media Services 團隊主管  Jason Suess 於 2014 年 9 月 10 日所發表的文章 http://azure.microsoft.com/blog/2014/09/10/getting-started-with-live-streaming-using-the-azure-management-portal/

不久之前,微軟公司宣布了 Microsoft Azure Media Services 即時直播服務 ( Live ) 開始進入技術預覽階段,公開接受用戶測試。而這些即時直播服務其實早已被 NBC 運動頻道用於多項重大運動賽事直播,包括英超聯賽、NHL、週日橄欖球之夜 ( Sunday Night Football ) 以及 2014 年索契冬季奧運會。在最近剛結束的 2014 世界盃足球賽期間,Azure Media Services 即時媒體服務同樣的也被10 家世界性的電視傳播公司用來轉播比賽。也因此,我們對於這項服務的穩定性、可擴充性以及性能都深具信心,也很高興可以讓所有使用者都可嘗試提供即時直播服務給他們的用戶。

自本周起 Azure Media Services 團隊將撰寫多篇文章,內容涵蓋了 Microsoft Azure 即時串流服務的功能以及如何使用它們。首先,我們會介紹一些基本的即時串流所需要的一些要件,並且將其應用到一個特定的場景 (網路直播桌面)。而我們只需要透過 Azure 的管理入口網站,無需任何的程式碼即可達到所需要的設定。但是在未來的幾天,將會有另外一篇文章說明如何使用 Microsoft Azure SDK 以程式控制的方式來達到相同的設定。

即時串流的基本組件 :

以下將開始介紹在進行即時串流時所需要用到的組成,並且在文章的最後,將這些組件做結合。

  • Azure 的訂閱帳戶

如果您還沒有微軟的 Azure 帳戶,您需要先到http://azure.com上建立一個新的Azure帳戶,並且在購買前,會有一段免費期可供試用。

  • Azure Media Services 媒體服務帳戶

如果您還沒有創建 Azure 媒體服務帳戶,這裡有一些相關文件,說明如何建立一個 Azure 媒體服務帳戶http://azure.microsoft.com/en-us/documentation/articles/media-services-create-account/

  • 視訊攝影機

在本篇文章中,將使用筆記型電腦上的網路攝影機,如果您要使用其它的攝影機,而您的攝影機有提供數位輸出,可直接透過 USB 將攝影機連接到 PC,並且透過軟體進行編碼。倘若您的攝影機沒有支援數位輸出,那您則需要一個視訊擷取卡 ( video capture card ) 將攝影訊號傳入至 PC。

  • 即時編碼器 (Live Encoder)

目前 Azure Media Services 媒體服務支援兩種即時內嵌 ( live ingest ) 協定 :

fragmented MP4/Smooth Streaming 和 RTMP (Real Time Message Protocol)。

目前支援 RTMP 這項協定的編碼器軟體已經變得相當普遍,包括 :

1. 免費的編碼器軟體 ( Flash Media Encoder 和 FFMPEG )

2. 平價之商用編碼器軟體 ( Telestream 的 Wirecast )

3. 生產高價值產品 ( NewTek 的 Tricaster )

4. 專業級的編碼器 ( Cisco, Elemental, Image 等 )

在本文範例中,會使用 Telestream 的 Wirecast 做為示範用的編碼器,如果您沒有此一編碼器軟體,可以從Telestream的網站去下載 Wirecast 試用版,它提供了一段免費試用期。需要注意的是,視訊編碼需要耗用相當大的 CPU 資源,因此當以下範例在做視訊編碼時,會限制只有三個編碼品質等級 ( quality level ),並且產生相對的降低位元速率 (bit rates),若您所使用的筆記型電腦或是 PC 其 CPU 運算能力較低,您需要去監視 CPU 的使用率,若一直高於 70% 的話,您需要考慮刪除一個品質等級或是降低位元率和降低影片解析度。

  • 高速的網路連接

要提供視訊直播的服務,您需要連接一個高速的網路,而這個網路需要有相當穩定的傳出速度 ( 至少要為傳送視訊的位元速率的 1.5倍 )。考慮到編碼器輸出的位元速率會有波動,因此在本例中,我們建立了三種品質等級的串流 (400、600、900 Kbps),合計總位元速率為 1900 Kbps,因此最少需要 2850 Kbps (2.85 Mbps) 的網路傳出速率。

  • Azure Media Services Channel 媒體服務通道

通道 ( Channel ) 是在 Azure 媒體服務中的功能,用來實現即時串流。通道在 Azure 媒體服務範圍內提供編碼器輸出一個內嵌點 ( ingest point )。

  • Azure Media Services Asset 媒體服務資產

在媒體服務中資產 ( Asset ) 如同一個容器 (Container),用來儲存所有與您的串流有關連的音訊、視訊、中繼資料等。

  • Azure Media Services Program 媒體服務節目

Azure Media Service Program 媒體服務節目是 Azure 媒體服務的運作實體,其運作的流程為,建立一個通道,並且開始將串流透過通道寫入資產 ( Assest ) 中。

  • Azure Media Services Streaming Locator 媒體服務串流定位器

當您想要讓資產 ( Asset )可以開始存取流時,您需要在資產中建立一個定位器。

  • Azure Media Services Streaming Endpoint and Streaming Units 媒體服務串流端點與串流單位

1. 串流端點 (Streaming Endpoint) 提供了一個URL,從中您可以得到您的即時串流或是 VOD (Video On Demand) 資產,同時,也提供了動態封裝功能以及安全的傳送串流。

2. 串流單位 (Streaming Units) 保證了一定的最大輸出量提供給串流端點,每個串流單位提供了 200 Mbps 的串流流出產量,並且根據使用上的需求,可以增加更多的容量到您的串流端點。

  • Azure CDN

在不久的將來,我們將直接整合 Azure CDN 和 Azure 媒體服務。完成之後,串流端點將可以有一個新的設定。那就是允許直接配置一個 Azure CDN 端點連接至您的串流端點。在尚未完成整合的此時,您可不使用 CDN 直接由串流端點作串流播放的動作,或是聯絡 Azure support 部門,商請微軟公司為您的串流端點設置 Azure CDN。

  • 視訊撥放器

Azure 媒體服務的串流端點提供了動態封裝的功能,因此可用來針對多種不同用戶端所使用的通訊協定,提供不同的媒體串流格式 ,例如 : iOS 使用到 HTTP 即時資料流版本3格式 ( HLS version 3 ) 。在以下範例中,我們將使用一個遵循 動態與適應性媒體串流標準 (MPEG-DASH) 的 HTML/DASH.js 撥放器來支援多個平台的影片撥放 (電腦瀏覽器、Android、Windows Phone)。

有關更多動態封裝的資訊,可以去 Channel9觀看 Nicks 的影片或是到 MSDN網站 查詢。

實際範例 : 網路直播

現在,讓我們來解釋一下本篇案例將可以達到何種效果。

在以下的步驟中,我們將建立一個網路直播,用來撥放電腦視訊鏡頭所拍攝的事件。在直播串流的專有名詞中,我們可以把這項直播想像成一個”事件”(event)並且擁有一個開始的時間和結束的時間。這個觀念和我們平常在電視上看到的直播節目(線性串流Linear streaming)為一個對比,在之後的介紹文章中,我們也會介紹如何使用Azure媒體服務來達到線性串流。

事前設定(Pre-Event Setup)

在要進行直播的事件前,我們需要透過以下的步驟來做事前設定。

注意 : 這些步驟可以在任何時間點進行,而不需要趕在開始直播前做設定。

建立一個 Azure Media Services channel 媒體服務通道和串流端點

在第一組設定步驟中,我們將使用Azure管理入口網站配置一些基礎建設,這些基礎建設將要用來接收來自編碼器(encoder)的直播串流還有來自客戶端的撥放設備所傳送的封包(packet)。

1. 點擊連結到http://azure.com,然後在最上方的選單中點選”入口網站”(Portal),登入您的Azure訂閱帳戶,您將會進入到Azure的管理網站。

2. 在最左側的垂直選單中,選取”媒體服務” (MEDIA SERVICES),您將可以看到在 Azure 訂閱帳戶中的所有媒體服務。

3. 選取你要在哪個媒體服務中建立這項範例。

在這篇文章中,將使用先前建立好的名為 barttest 的媒體服務。

您可以在媒體服務裡面看到頂端的選單,這裡可以用來建立和控制所有媒體服務的細部設定。

若您已經使用 Azure 媒體服務一段時間的話,您將會注意到,現在新增”通道”這項新功能,在這裡可以管理和控制 Azure 媒體服務的即時通道 ( Live Channel )。

4. 選取最上方選單的”通道”選項,將會列出您在這個媒體服務中所建立的通道清單(如果您有建立的話)

5. 若您還沒有建立任何的通道,則在下方會顯示”您沒有任何通道”,選取”新增通道”,將會打開一個對話寬,在這個對話框中設定您的通道屬性。

6. 在”建立新的即時通道”對話框中,輸入您的通道名稱。

接下來要指定通道所使用的採集內嵌協定 (ingest protocol)。在本範例中,我所使用編碼器為 Wirecast,其輸出嵌入協定為RTMP。

最底下有三個選項 :

A. 立即啟動新通道” : 選取這個選項,之後您就不需要再做額外的動作去啟動這個通道。

B. 加入一個資料流單位” : 這個選項在您的串流端點上沒有任何串流單位時,將會自動預設為選取。選取這個選項,Azure 將會自動提供一個串流單位給您,這樣您就不需要再去花時間做設定。

C. 將影片內嵌限制為我電腦的目前IP位址” : 若選取這個選項的話,它會為您的通道申請一個 IP 存取控制清單 (IP access control list , ACL ),ACL 將會鎖定這個通道只能夠在您的電腦上作輸入的動作。在本範例中我們將此選項取消。

7. 點擊對話框右下角的確認按鈕,則Azure媒體服務就會開始建立一個新的通道,並且將一個新的串流單位加到您預設的串流端點中。

您可以在螢幕的底部看到建立新通道的進度列,新增一個新的通道大概需要花上幾分鐘的時間。

配置和啟動編碼器 (Encoder)

透過上面的事前設定,我們現在擁有了進行媒體服務時所需要的基礎建設。

下一個步驟則是設置 Wirecast,並且在我們的 Azure 服務通道上啟動它。

為了加快設定的步驟,我們使用先前已經建立好的 Wirecast 配置文件,在這裡面已經設定好了即時轉播所需要的設定。但是在本文中將不會介紹這個文件的細節,在未來的幾個禮拜,另外一位作者 Cenk Dingiloglu  將會介紹更多關於編碼器的細節。

1. 下載 Wirecast 配置文件 http://jasonsueblog.blob.core.windows.net/wirecastdocument/WirecastDocument.wcst

2. 打開 Wirecast 和剛剛下載的配置文件。您很可能得到和下面圖示一樣的錯誤,那就是 Wirecast 找不到文件中所描述的媒體裝置。會顯示這項錯誤的原因是因為您並沒有使用與本文中相同的錄影設備。在這裡我們先點擊取消,在下一個步驟中我們將會解決這個問題。

3. 在 Wirecast 的用戶介面中,我們可以新增新的影像來源。

在用戶端的底部有三排來源,點取”+”,並且選擇相機的圖示,此時會顯示目前連接電腦的錄影裝置,選取您要的錄影裝置之後,您就可以在錄影來源上看到目前攝影機的輸出畫面。

4. 選取 Wirecast 的 ”Output” 清單,並且選擇 ”Output Setting”。

您可以在對話框上看到,目前有三種串流編碼的品質等級 (400Kbp、600Kbp、900Kbps)。

400Kbp 品質等級是使用 H.264 視訊編解碼標準中的 Baseline profile 編碼格式(H.264 Baseline profile),用來支援舊的 Andorid 播放設備,而 600Kbp 和 900Kbps 品質等級則是 Main profile編碼格式,用來提供高品質的視訊水準。

在對話框中唯一缺少的則是目標串流位址(Address),我們在稍後會填寫上去。

5. 回到Azure管理入口網站並且找到您的通道清單。

在通道清單上選取內嵌 URL (INGEST URL),並且複製這段URL。

6. 再次回到 Wirecast 並且選取 ”Output Setting” 對話框,將剛才複製的內嵌 URL 貼到 ”Address” 框中,在這裡要確保三種品質等級的串流編碼都有進行此項動作。

7. 點擊”OK”按鈕。

8. 點擊您在步驟三時所建立的錄影來源,並且讓它顯示在使用者介面上 ”Preview” 的位址

9. 接下來,點擊“—>”按鈕,將“Preview”的畫面移動到“Live”上,此時您在畫面上可以看到錄影的輸出

10. 完成以上的步驟,您已經完成了所有 Wirecast 的設定,剩下唯一的步驟就是要將您的串流”推”’到您的 Azure 媒體服務通道上。

點選左上角 ”Stream” 按鈕,若一切順利的話,您將可以看到有一個紅點在按鈕中,讓您知道您目前正在進行直播。

11. 現在您可以檢查串流是否正確地從預覽的發送點傳送到通道中。

回到Azure管理帳戶中,在底部的工具列選取”播放”按鈕。此時會有對話框出現,選擇”播放預覽URL”,這個動作將會打開一個視訊撥放器,並且將其連接到您通道上的預覽URL。

NOTE : 注意,若您有任何理由需要停止編碼器並且重新啟動的話,您首先需要在Azure管理帳戶上選取”重設通道”來重新調整您的通道設定。

開啟事件 (Event) 和播放串流

現在已經將視訊串流移動到通道之中,現在我們可以透過建立媒體服務資產(Asset)、媒體服務節目(Program)還有媒體服務串流定位器來開始我們的事件(Event),並且讓觀看者可以透過串流端點來觀看我們的直播。

我們將使用一個快速的方法來達到以上的所有目標。

建立和開啟節目

1. 回到 Azure 管理帳戶,並且進入到通道的設定頁面裡,點擊頁面最下方工具列的”啟動資料流”,一旦完成這項步驟之後,通道列表上的”發行URL”將會被填入,您可以從上方的串流端點上拉進您的串流。

播放直播串流

現在,直播串流已經被存入資產中,資產是可以從串流端點中拉出的,並且可以動態的打包目前我們所支援的協定 ( MPEG-DASH,、HLS version 3、 HLS version 4、HDS、Smooth Streaming ),我們將充分利用這項功能讓直播串流可以在桌上電腦、iOS  和Android設備上播放

1. 在 Azure 管理入口網站中,在通道列表的頁面,選取複製”發行URL”。

2. 將"發行URL"將它貼到任何一個文字編輯器上

它看起來像是

“http://<您的帳號名稱>.origin.mediaservices.windows.net/<locator_guid>/<stream_guid>.ism/manifest”

在這段URL上添加 (format=mpd-time-csf),這將告訴串流端點要把串流打包為 MPEG-DASH。若增加的是 (format=m3u8-aapl-v3)則是告訴串流端點將串流打包為 HLS (version3)。

3. 在 Windows PC 或 MAC 上,(您需要一個瀏覽器可以支援擴充軟體資源,像是最新版本的 Internet Explorer 或 Chrome ),您可以透過http://aka.ms/dashplayer,用來測試您的串流。

在頁面頂端貼上 DASH URL 並且選取 ”Load”。您可以在Android裝置或是Windows Phone重覆這項動作。

NOTE : DASH 撥放器也可以用來把 DASH URL 當成查詢的參數,換句話說,您可以建構一個如以下範例的URL,並且分配到不同的裝置上

http://dashplayer.azurewebsites.net/?URL=http://<您的帳號名稱>.origin.mediaservices.windows.net/../…ism/manifest(format=mpd-time-csf)

4. 在 iOS 設備上,打開 Safari 瀏覽器,並且輸入 HLS ( version3 ) 的URL,就可以直接獲取本機播放器的串流,您也可以建立一個帶有視頻標籤的 HTML5 頁面,並且給予它一個 HLS 的 URL 作為其視訊的來源,來達到同樣的效果。

停止事件

當要結束一個事件時,您需要停止將串流傳入到資產中,這可以透過一個簡單的步驟來達成。

回到 Azure 管理頁面,並且選擇您所使用的通道,在最底下的工具列中,選取"停止資料串流"。這個動作將會阻止節目在您的通道中運作並且會將其刪除。

我們的即時服務所擁有的功能之一,就是我們的資產在即時或是VOD狀態是無縫接軌的,如果您現在去連接先前的URL,您還是可以發現原先的串流還是存在,但是是VOD而不是即時的。

清除通道

若您想要在通道內運行其它的節目,您當然可以清除掉先前的串流。

1. 第一,透過選取 Wirecast 上方的"Steam"按鈕,停止傳送串流,之後就可以關閉編碼器。

2. 第二,回到Azure管理頁面,選取"通道",並且選取最下方工具列的"停止通道"。當通道狀態變為"已停止",則表示該通道並不會消耗任何的資源,當然這樣也不會有任何的費用產生。

下次您要再次使用該通道時,您可以選取"啟動通道",此時該通道會再次的啟動,並且擁有相同的內嵌URL ( ingest URL ),這樣您就不需要重新設定您的編碼器了。

3. 最後,關於串流端點,若您想要繼續提供 VOD 的紀錄,則您需要讓串流端點保持運作。但是若您不需要,則可以進入到"資料流端點"頁面中,在最底下選取"停止",則您的串流端點就不會再繼續運作。

結論以及下一步發展

在上面的文章內容中,我們已經透過 Azure 的管理頁面來進行設定、執行、移除一個即時的串流。在未來的幾天,我們將會發表更多文章,內容涵蓋了如何對使用 RTMP 的編碼器進行設定、如何使用我們的 SDK 來執行現場活動 ( live event )、如何保護影片內容的安全性以及如何進行線性串流 ( linear streams )。

如何使用 Microsoft Azure Media Services 進行現場直播 (Live Streaming)

MSDN Blogs - 12 hours 43 min ago

感謝北科大劉建昌同學翻譯 微軟公司 Azure Media Services 團隊主管  Jason Suess 於 2014 年 9 月 10 日所發表的文章 http://azure.microsoft.com/blog/2014/09/10/getting-started-with-live-streaming-using-the-azure-management-portal/

不久之前,微軟公司宣布了 Microsoft Azure Media Services 即時直播服務 ( Live ) 開始進入技術預覽階段,公開接受用戶測試。而這些即時直播服務其實早已被 NBC 運動頻道用於多項重大運動賽事直播,包括英超聯賽、NHL、週日橄欖球之夜 ( Sunday Night Football ) 以及 2014 年索契冬季奧運會。在最近剛結束的 2014 世界盃足球賽期間,Azure Media Services 即時媒體服務同樣的也被10 家世界性的電視傳播公司用來轉播比賽。也因此,我們對於這項服務的穩定性、可擴充性以及性能都深具信心,也很高興可以讓所有使用者都可嘗試提供即時直播服務給他們的用戶。

自本周起 Azure Media Services 團隊將撰寫多篇文章,內容涵蓋了 Microsoft Azure 即時串流服務的功能以及如何使用它們。首先,我們會介紹一些基本的即時串流所需要的一些要件,並且將其應用到一個特定的場景 (網路直播桌面)。而我們只需要透過 Azure 的管理入口網站,無需任何的程式碼即可達到所需要的設定。但是在未來的幾天,將會有另外一篇文章說明如何使用 Microsoft Azure SDK 以程式控制的方式來達到相同的設定。

即時串流的基本組件 :

以下將開始介紹在進行即時串流時所需要用到的組成,並且在文章的最後,將這些組件做結合。

  • Azure 的訂閱帳戶

如果您還沒有微軟的 Azure 帳戶,您需要先到http://azure.com上建立一個新的Azure帳戶,並且在購買前,會有一段免費期可供試用。

  • Azure Media Services 媒體服務帳戶

如果您還沒有創建 Azure 媒體服務帳戶,這裡有一些相關文件,說明如何建立一個 Azure 媒體服務帳戶http://azure.microsoft.com/en-us/documentation/articles/media-services-create-account/

  • 視訊攝影機

在本篇文章中,將使用筆記型電腦上的網路攝影機,如果您要使用其它的攝影機,而您的攝影機有提供數位輸出,可直接透過 USB 將攝影機連接到 PC,並且透過軟體進行編碼。倘若您的攝影機沒有支援數位輸出,那您則需要一個視訊擷取卡 ( video capture card ) 將攝影訊號傳入至 PC。

  • 即時編碼器 (Live Encoder)

目前 Azure Media Services 媒體服務支援兩種即時內嵌 ( live ingest ) 協定 :

fragmented MP4/Smooth Streaming 和 RTMP (Real Time Message Protocol)。

目前支援 RTMP 這項協定的編碼器軟體已經變得相當普遍,包括 :

1. 免費的編碼器軟體 ( Flash Media Encoder 和 FFMPEG )

2. 平價之商用編碼器軟體 ( Telestream 的 Wirecast )

3. 生產高價值產品 ( NewTek 的 Tricaster )

4. 專業級的編碼器 ( Cisco, Elemental, Image 等 )

在本文範例中,會使用 Telestream 的 Wirecast 做為示範用的編碼器,如果您沒有此一編碼器軟體,可以從Telestream的網站去下載 Wirecast 試用版,它提供了一段免費試用期。需要注意的是,視訊編碼需要耗用相當大的 CPU 資源,因此當以下範例在做視訊編碼時,會限制只有三個編碼品質等級 ( quality level ),並且產生相對的降低位元速率 (bit rates),若您所使用的筆記型電腦或是 PC 其 CPU 運算能力較低,您需要去監視 CPU 的使用率,若一直高於 70% 的話,您需要考慮刪除一個品質等級或是降低位元率和降低影片解析度。

  • 高速的網路連接

要提供視訊直播的服務,您需要連接一個高速的網路,而這個網路需要有相當穩定的傳出速度 ( 至少要為傳送視訊的位元速率的 1.5倍 )。考慮到編碼器輸出的位元速率會有波動,因此在本例中,我們建立了三種品質等級的串流 (400、600、900 Kbps),合計總位元速率為 1900 Kbps,因此最少需要 2850 Kbps (2.85 Mbps) 的網路傳出速率。

  • Azure Media Services Channel 媒體服務通道

通道 ( Channel ) 是在 Azure 媒體服務中的功能,用來實現即時串流。通道在 Azure 媒體服務範圍內提供編碼器輸出一個內嵌點 ( ingest point )。

  • Azure Media Services Asset 媒體服務資產

在媒體服務中資產 ( Asset ) 如同一個容器 (Container),用來儲存所有與您的串流有關連的音訊、視訊、中繼資料等。

  • Azure Media Services Program 媒體服務節目

Azure Media Service Program 媒體服務節目是 Azure 媒體服務的運作實體,其運作的流程為,建立一個通道,並且開始將串流透過通道寫入資產 ( Assest ) 中。

  • Azure Media Services Streaming Locator 媒體服務串流定位器

當您想要讓資產 ( Asset )可以開始存取流時,您需要在資產中建立一個定位器。

  • Azure Media Services Streaming Endpoint and Streaming Units 媒體服務串流端點與串流單位

1. 串流端點 (Streaming Endpoint) 提供了一個URL,從中您可以得到您的即時串流或是 VOD (Video On Demand) 資產,同時,也提供了動態封裝功能以及安全的傳送串流。

2. 串流單位 (Streaming Units) 保證了一定的最大輸出量提供給串流端點,每個串流單位提供了 200 Mbps 的串流流出產量,並且根據使用上的需求,可以增加更多的容量到您的串流端點。

  • Azure CDN

在不久的將來,我們將直接整合 Azure CDN 和 Azure 媒體服務。完成之後,串流端點將可以有一個新的設定。那就是允許直接配置一個 Azure CDN 端點連接至您的串流端點。在尚未完成整合的此時,您可不使用 CDN 直接由串流端點作串流播放的動作,或是聯絡 Azure support 部門,商請微軟公司為您的串流端點設置 Azure CDN。

  • 視訊撥放器

Azure 媒體服務的串流端點提供了動態封裝的功能,因此可用來針對多種不同用戶端所使用的通訊協定,提供不同的媒體串流格式 ,例如 : iOS 使用到 HTTP 即時資料流版本3格式 ( HLS version 3 ) 。在以下範例中,我們將使用一個遵循 動態與適應性媒體串流標準 (MPEG-DASH) 的 HTML/DASH.js 撥放器來支援多個平台的影片撥放 (電腦瀏覽器、Android、Windows Phone)。

有關更多動態封裝的資訊,可以去 Channel9觀看 Nicks 的影片或是到 MSDN網站 查詢。

實際範例 : 網路直播

現在,讓我們來解釋一下本篇案例將可以達到何種效果。

在以下的步驟中,我們將建立一個網路直播,用來撥放電腦視訊鏡頭所拍攝的事件。在直播串流的專有名詞中,我們可以把這項直播想像成一個”事件”(event)並且擁有一個開始的時間和結束的時間。這個觀念和我們平常在電視上看到的直播節目(線性串流Linear streaming)為一個對比,在之後的介紹文章中,我們也會介紹如何使用Azure媒體服務來達到線性串流。

事前設定(Pre-Event Setup)

在要進行直播的事件前,我們需要透過以下的步驟來做事前設定。

注意 : 這些步驟可以在任何時間點進行,而不需要趕在開始直播前做設定。

建立一個 Azure Media Services channel 媒體服務通道和串流端點

在第一組設定步驟中,我們將使用Azure管理入口網站配置一些基礎建設,這些基礎建設將要用來接收來自編碼器(encoder)的直播串流還有來自客戶端的撥放設備所傳送的封包(packet)。

1. 點擊連結到http://azure.com,然後在最上方的選單中點選”入口網站”(Portal),登入您的Azure訂閱帳戶,您將會進入到Azure的管理網站。

2. 在最左側的垂直選單中,選取”媒體服務” (MEDIA SERVICES),您將可以看到在 Azure 訂閱帳戶中的所有媒體服務。

3. 選取你要在哪個媒體服務中建立這項範例。

在這篇文章中,將使用先前建立好的名為 barttest 的媒體服務。

您可以在媒體服務裡面看到頂端的選單,這裡可以用來建立和控制所有媒體服務的細部設定。

若您已經使用 Azure 媒體服務一段時間的話,您將會注意到,現在新增”通道”這項新功能,在這裡可以管理和控制 Azure 媒體服務的即時通道 ( Live Channel )。

4. 選取最上方選單的”通道”選項,將會列出您在這個媒體服務中所建立的通道清單(如果您有建立的話)

5. 若您還沒有建立任何的通道,則在下方會顯示”您沒有任何通道”,選取”新增通道”,將會打開一個對話寬,在這個對話框中設定您的通道屬性。

6. 在”建立新的即時通道”對話框中,輸入您的通道名稱。

接下來要指定通道所使用的採集內嵌協定 (ingest protocol)。在本範例中,我所使用編碼器為 Wirecast,其輸出嵌入協定為RTMP。

最底下有三個選項 :

A. 立即啟動新通道” : 選取這個選項,之後您就不需要再做額外的動作去啟動這個通道。

B. 加入一個資料流單位” : 這個選項在您的串流端點上沒有任何串流單位時,將會自動預設為選取。選取這個選項,Azure 將會自動提供一個串流單位給您,這樣您就不需要再去花時間做設定。

C. 將影片內嵌限制為我電腦的目前IP位址” : 若選取這個選項的話,它會為您的通道申請一個 IP 存取控制清單 (IP access control list , ACL ),ACL 將會鎖定這個通道只能夠在您的電腦上作輸入的動作。在本範例中我們將此選項取消。

7. 點擊對話框右下角的確認按鈕,則Azure媒體服務就會開始建立一個新的通道,並且將一個��的串流單位加到您預設的串流端點中。

您可以在螢幕的底部看到建立新通道的進度列,新增一個新的通道大概需要花上幾分鐘的時間。

配置和啟動編碼器 (Encoder)

透過上面的事前設定,我們現在擁有了進行媒體服務時所需要的基礎建設。

下一個步驟則是設置 Wirecast,並且在我們的 Azure 服務通道上啟動它。

為了加快設定的步驟,我們使用先前已經建立好的 Wirecast 配置文件,在這裡面已經設定好了即時轉播所需要的設定。但是在本文中將不會介紹這個文件的細節,在未來的幾個禮拜,另外一位作者 Cenk Dingiloglu  將會介紹更多關於編碼器的細節。

1. 下載 Wirecast 配置文件 http://jasonsueblog.blob.core.windows.net/wirecastdocument/WirecastDocument.wcst

2. 打開 Wirecast 和剛剛下載的配置文件。您很可能得到和下面圖示一樣的錯誤,那就是 Wirecast 找不到文件中所描述的媒體裝置。會顯示這項錯誤的原因是因為您並沒有使用與本文中相同的錄影設備。在這裡我們先點擊取消,在下一個步驟中我們將會解決這個問題。

3. 在 Wirecast 的用戶介面中,我們可以新增新的影像來源。

在用戶端的底部有三排來源,點取”+”,並且選擇相機的圖示,此時會顯示目前連接電腦的錄影裝置,選取您要的錄影裝置之後,您就可以在錄影來源上看到目前攝影機的輸出畫面。

4. 選取 Wirecast 的 ”Output” 清單,並且選擇 ”Output Setting”。

您可以在對話框上看到,目前有三種串流編碼的品質等級 (400Kbp、600Kbp、900Kbps)。

400Kbp 品質等級是使用 H.264 視訊編解碼標準中的 Baseline profile 編碼格式(H.264 Baseline profile),用來支援舊的 Andorid 播放設備,而 600Kbp 和 900Kbps 品質等級則是 Main profile編碼格式,用來提供高品質的視訊水準。

在對話框中唯一缺少的則是目標串流位址(Address),我們在稍後會填寫上去。

5. 回到Azure管理入口網站並且找到您的通道清單。

在通道清單上選取內嵌 URL (INGEST URL),並且複製這段URL。

6. 再次回到 Wirecast 並且選取 ”Output Setting” 對話框,將剛才複製的內嵌 URL 貼到 ”Address” 框中,在這裡要確保三種品質等級的串流編碼都有進行此項動作。

7. 點擊”OK”按鈕。

8. 點擊您在步驟三時所建立的錄影來源,並且讓它顯示在使用者介面上 ”Preview” 的位址

9. 接下來,點擊“—>”按鈕,將“Preview”的畫面移動到“Live”上,此時您在畫面上可以看到錄影的輸出

10. 完成以上的步驟,您已經完成了所有 Wirecast 的設定,剩下唯一的步驟就是要將您的串流”推”’到您的 Azure 媒體服務通道上。

點選左上角 ”Stream” 按鈕,若一切順利的話,您將可以看到有一個紅點在按鈕中,讓您知道您目前正在進行直播。

11. 現在您可以檢查串流是否正確地從預覽的發送點傳送到通道中。

回到Azure管理帳戶中,在底部的工具列選取”播放”按鈕。此時會有對話框出現,選擇”播放預覽URL”,這個動作將會打開一個視訊撥放器,並且將其連接到您通道上的預覽URL。

NOTE : 注意,若您有任何理由需要停止編碼器並且重新啟動的話,您首先需要在Azure管理帳戶上選取”重設通道”來重新調整您的通道設定。

開啟事件 (Event) 和播放串流

現在已經將視訊串流移動到通道之中,現在我們可以透過建立媒體服務資產(Asset)、媒體服務節目(Program)還有媒體服務串流定位器來開始我們的事件(Event),並且讓觀看者可以透過串流端點來觀看我們的直播。

我們將使用一個快速的方法來達到以上的所有目標。

建立和開啟節目

1. 回到 Azure 管理帳戶,並且進入到通道的設定頁面裡,點擊頁面最下方工具列的”啟動資料流”,一旦完成這項步驟之後,通道列表上的”發行URL”將會被填入,您可以從上方的串流端點上拉進您的串流。

播放直播串流

現在,直播串流已經被存入資產中,資產是可以從串流端點中拉出的,並且可以動態的打包目前我們所支援的協定 ( MPEG-DASH,、HLS version 3、 HLS version 4、HDS、Smooth Streaming ),我們將充分利用這項功能讓直播串流可以在桌上電腦、iOS  和Android設備上播放

1. 在 Azure 管理入口網站中,在通道列表的頁面,選取複製”發行URL”。

2. 將"發行URL"將它貼到任何一個文字編輯器上

它看起來像是

“http://<您的帳號名稱>.origin.mediaservices.windows.net/<locator_guid>/<stream_guid>.ism/manifest”

在這段URL上添加 (format=mpd-time-csf),這將告訴串流端點要把串流打包為 MPEG-DASH。若增加的是 (format=m3u8-aapl-v3)則是告訴串流端點將串流打包為 HLS (version3)。

3. 在 Windows PC 或 MAC 上,(您需要一個瀏覽器可以支援擴充軟體資源,像是最新版本的 Internet Explorer 或 Chrome ),您可以透過http://aka.ms/dashplayer,用來測試您的串流。

在頁面頂端貼上 DASH URL 並且選取 ”Load”。您可以在Android裝置或是Windows Phone重覆這項動作。

NOTE : DASH 撥放器也可以用來把 DASH URL 當成查詢的參數,換句話說,您可以建構一個如以下範例的URL,並且分配到不同的裝置上

http://dashplayer.azurewebsites.net/?URL=http://<您的帳號名稱>.origin.mediaservices.windows.net/../…ism/manifest(format=mpd-time-csf)

4. 在 iOS 設備上,打開 Safari 瀏覽器,並且輸入 HLS ( version3 ) 的URL,就可以直接獲取本機播放器的串流,您也可以建立一個帶有視頻標籤的 HTML5 頁面,並且給予它一個 HLS 的 URL 作為其視訊的來源,來達到同樣的效果。

停止事件

當要結束一個事件時,您需要停止將串流傳入到資產中,這可以透過一個簡單的步驟來達成。

回到 Azure 管理頁面,並且選擇您所使用的通道,在最底下的工具列中,選取"停止資料串流"。這個動作將會阻止節目在您的通道中運作並且會將其刪除。

我們的即時服務所擁��的功能之一,就是我們的資產在即時或是VOD狀態是無縫接軌的,如果您現在去連接先前的URL,您還是可以發現原先的串流還是存在,但是是VOD而不是即時的。

清除通道

若您想要在通道內運行其它的節目,您當然可以清除掉先前的串流。

1. 第一,透過選取 Wirecast 上方的"Steam"按鈕,停止傳送串流,之後就可以關閉編碼器。

2. 第二,回到Azure管理頁面,選取"通道",並且選取最下方工具列的"停止通道"。當通道狀態變為"已停止",則表示該通道並不會消耗任何的資源,當然這樣也不會有任何的費用產生。

下次您要再次使用該通道時,您可以選取"啟動通道",此時該通道會再次的啟動,並且擁有相同的內嵌URL ( ingest URL ),這樣您就不需要重新設定您的編碼器了。

3. 最後,關於串流端點,若您想要繼續提供 VOD 的紀錄,則您需要讓串流端點保持運作。但是若您不需要,則可以進入到"資料流端點"頁面中,在最底下選取"停止",則您的串流端點就不會再繼續運作。

結論以及下一步發展

在上面的文章內容中,我們已經透過 Azure 的管理頁面來進行設定、執行、移除一個即時的串流。在未來的幾天,我們將會發表更多文章,內容涵蓋了如何對使用 RTMP 的編碼器進行設定、如何使用我們的 SDK 來執行現場活動 ( live event )、如何保護影片內容的安全性以及如何進行線性串流 ( linear streams )。

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

Protecting Customer Data in Our Cloud through Microsoft Azure

MSDN Blogs - 12 hours 53 min ago

Last month we published guidance for IT Professionals looking to maximize the protection of their data using the tools and technologies available in the Azure platform and related services for encryption, access control and other aspects of data security.  This paper, entitled “Protecting Data in Microsoft Azure” explores key areas that should be considered when using either the platform (PaaS), infrastructure (IaaS) or a hybrid database solution.  Topics covered in the paper include:

  • Data Storage in Microsoft Azure
  • Understanding Data Security
  • Customer-Configurable Protection
  • Protecting data Through Redundancy and Backup
  • Privacy and Accountability

There are multiple tools within Microsoft Azure to help safeguard data according to your company’s security and compliance needs.  One of the keys to data protection in the cloud is accounting for the possible states in which your data may occur, and what controls are available for that state.  Key considerations for protecting data must address data at rest, in process, and in transit. This paper explores the essentials of all three states, and provide guidance on how the capabilities can be implemented for use. Additionally the paper provides customers with the insight to protecting a cloud implementation of a SQL server database. The guidance looks at key differences on encrypting data at the record level vs. volume level encryption techniques in a hybrid model.


Whether you are considering deployment of a hybrid, or cloud based solution, this paper is a recommended read in helping protect your organization’s information. May the Cloud be with You! – Jon C. Arnold

Part 2: Get Started with Python

MSDN Blogs - 13 hours 54 min ago

This is a tutorial series which will teach you how to code in Python. We will start with the absolute basics of installation of Python in Windows and Python Tools in Visual Studio. We will then go through basic constructs in Python and write a couple of programs to summarize what we have learned. We will end with an Object Oriented Approach using Python and a specific feature of Python Tools in Visual Studio: Mixed mode C/C++/Python Debugging

Part 1: Get Started with Python summarized the steps involved to setup Python and Visual Studio for Python Development. We essentially learned how to install Python in Windows, Visual Studio and Python Tools for Visual Studio.

In this section, Part 2, we will learn the basic constructs in Python which will cover:

  • Output
  • Input
  • Variables
  • Control Flow Statements
    • Conditional Statements
    • Loops

Let’s get started !

Output

For most basic programs or scripts you will need to print to a console, whether it’s to show information, as for user input or it’s just to display progress. The following piece of code does just that:

1: print(“This is a tutorial to show the basic constructs in Python”)

It’s always a good practice to comment your code as it not only helps you later when you come back to it, but also everyone else who reads your code. In Python commenting is quite simple. Just add a # before you write your comment.

1: #This will print the text in quotes in the console

Once you Run the code, the output will be displayed in a console window as follows:

Input

In most cases you will also need user input. To do so, you can use the function input(). For example,

1: input("Enter a number:")

 

Variables

Variable is essentially a names entity, a container or a box to store values which can change over its lifetime. In Python, a variable can simply be declared and used without declaring or defining it.

1: number=input('Enter a number:')

In Python, the naming convention for variables is that you cannot start the variable name with a digit, or have a space in-between the variable name. The following table can be used as a reference for Do’s  and Dont’s when naming variables:

Dos

Don’ts

Variable

First Name

First_Name

1userName

FirstName

Friend’sName

firstName

 

FirstName

 

userName1

 

 

An example of using the input function to store a value in a variable is as follows:

Control Flow Statements

Control Statements are essential in any program language. Python uses similar constructs with a slight twist. The primary difference being the addition of the ‘:’ after the conditional statement (either ‘if’ or ‘for’ or ‘while’ ). Let us deal with each of them with an example to show you how to use it:

If statement: 1: if (<condition>): 2: #execute code 1: userNum=input('enter a number:') 2: if (int(userNum) < 10): 3: print('the number '+userNum+' is less than 10')

The output of the above code is as follows:

 

If Else statement:

The syntax to use this construct is as follows:

1: if (condition1): 2: #execute the code 1 3: elif (condition2): 4: #execute the code 2 5: else: 6: #execute the code 3

An example of this flow is shown below:

You could also use multiple conditional statements as shown below:

1: if (condition) and (condition): 2: #execute code here 3: elif (condition) or (condition): 4: #execute code here 5: else(condition): 6: #execute code here

When executing multiple conditional statements, order of precedence of operators is important. The order of precedence is as follows:

For :

If you want to repeat something ‘n’ times you can use a for or a while loop. Which one you decide to use depends on your situation. The syntax for a for loop is:

1: for x in range(y): 2: #do the following

The code in the loop will be executed y – 1 times as you can see in the following example:

Note: here I have used the range() function. It generates a sequence of numbers in arithmetic progressions. The range function can be used as follows:

1: >>> range(5, 10) 2: [5, 6, 7, 8, 9] 3: >>> range(0, 10, 3) 4: [0, 3, 6, 9] 5: >>> range(-10, -100, -30) 6: [-10, -40, -70]

Or, it can also used as:

While loop:

The syntax of the while loop is as follows:

1: while (condition): 2: #do the following

An example of this is as follows:

 

Some additional control statement constructs:

Break and Else Clauses on Loops (Yes, this is unique to Python and is not ‘if-else’ else but ‘else’ for a conditional loop):

The ‘break’ statement like in other programming languages breaks out from the closest enclosing ‘for’ or ‘while’ loop. The ‘conditional loop-else’ works as follows:

It is executed when the loop terminates through exhaustion of the list ( for loop) or when the condition becomes false (while loop), but not when the loop is terminated by a break.

The below example shows how the break is used along with the loop-else construct:

Summary

In this tutorial, you have learned basic constructs of how to write a simple program. Starting with how to handle input and output statements, to variables and control flow statements. We also learnt about loop-else construct which is unique to Python. With this, you should be able to write your first simple programs and start experimenting with Python.

In the next part, I will cover how to define / handle functions and basics of file handling. Stay Tuned!

AX 2012 R3 & SEPA

MSDN Blogs - 14 hours 5 min ago

Microsoft Dynamics AX 2012 R3 is released with SEPA support 'out of the box' for SEPA Credit and SEPA Direct Debit transfers with all known SEPA updates released by Microsoft upon the release date of R3 (May 2014) included

The SEPA credit transfer payment format is implemented by using the payment format functionality in Microsoft Dynamics AX. Nine SEPA export file formats are available in Microsoft Dynamics AX. These export formats conform to the SEPA ISO 20022 XML standard that is specified in the SEPA Credit Transfer Scheme Rulebook that the EPC releases.

The following SEPA export file formats are currently available:

- The SEPA ISO20022 Credit Transfer export format is used for most countries/regions within the Single Euro Payments Area.
- Support is provided for eight countries that have special requirements, and a separate export format is provided for each of these countries: Austria, Belgium, Finland, France, Germany, Italy, Spain, and The Netherlands.

The SEPA direct debit generic payment format is currently supported in Microsoft Dynamics and follows the EPC B2B and Core Direct Debit Scheme Rulebooks. The ability to deal with pre-notification and handle direct debit mandates is currently supported in Microsoft Dynamics.

The following SEPA export file formats are currently available:
- The SEPA ISO20022 Direct Debit export format is used for most countries/regions within the Single Euro Payments Area.
- Support is provided for seven countries that have special requirements and separate export format for each of these countries/regions: Austria, Belgium, France, Germany, Italy, Spain and The Netherlands.

The latest SEPA update released for Microsoft Dynamics AX 2012 R3 at the time of writing(September 2014) is KB 2959798. Further details on this release can be found on the link below


http://blogs.msdn.com/b/axsupport/archive/2014/06/26/release-announcement-name-of-outbound-port-for-credit-transfer-or-direct-debit-can-be-setup-differently-than-sepacredittransfer-or-sepadirectdebit-in-microsoft-dynamics-ax-2012-r3.aspx

30 сентября в Киеве пройдет конференция для разработчиков DevDay*Kyiv

MSDN Blogs - 14 hours 6 min ago

Приглашаем вас присоединиться к мероприятию DevDay*Kyiv, которое будет проходить 30 сентября 2014 года.

DevDay*Kyiv – это однодневное техническое путешествие для разработчиков, присоединиться к которому вы сможете онлайн. В ходе мероприятия вы сможете услышать доклады от ведущих специалистов по следующим направлениям: client development, cloud technologies и tools and servers.

Открывать конференцию будет специальный гость Дэвид Чеппел – известнейший спикер, выступающий с лекциями по всему миру, признанный эксперт в области технологий разработки приложений, автор множества книг и статей, глава компании Chappell & Associates. Дэвид поделится своим виденьем по поводу будущего развития ИТ, поговорит о стратегии Microsoft и о том, почему ИТ еще долго будет одной из наиболее динамично развивающихся отраслей.

Вас ожидает исключительно технический контент – никаких маркетинговых слайдов! Доклады в три потока, больше 25 технических презентаций, возможность задать свой вопрос спикеру онлайн, используя хештег #devdayua.

Следить за новостями, делиться идеями и знакомиться друг с другом в рамках нашего сообщества вы можете в группе на facebook, а также используя хештег #devdayua в твиттере.

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

Участие в мероприятии бесплатное при условии предварительной регистрации. Все заявки проходят предварительную модерацию, поскольку количество мест ограничено.

 

Windows Store App Logo Maker v1.8 Release

MSDN Blogs - 14 hours 39 min ago

#win8dev_jp #wpdev_jp

久しぶりに Windows Store App Logo Maker を 修正しました。

  • Windows Phone 8.1 に対応
  • Universal Windows Application に対応

です。Universal チェックを入れると、Universal Windows Application 用のアイコン生成となり、まぁ、要は両方のアイコンを生成してくれるだけです。Windows Phone 8.1 用としては、ワイドタイルを基にスプラッシュスクリーンを生成します。ただ、スプラッシュスクリーンは独自のものを使いたいという場合は、チェックを外してください。

Windows Phone 8.1 のアプリのアイコンは100%でも、240%でもどちらでもOKです。サイズを抑えたい場合は100%のほうだけ使って、そうでないときは240%だけでもOKでしょう。こちらもファイルサイズが200kを超えた場合は、画質を落としてファイルサイズを200k以下になるようにしてあります。

ということで、Windows Phone 8.1 用にはこんな感じでアイコンが生成されます。

プロジェクトの、Asset フォルダにそのまま放り込んで上書きコピーすればOKです。

スプラッシュスクリーン。ワイドタイルもばっちりです。

ダウンロードはこちらから。

http://aka.ms/storelogomaker

Dynamics CRM 2013 Server Side Sync Email Approval

MSDN Blogs - 15 hours 52 min ago

Due to Server Side Sync being enabled for CRM Online, there is one major difference between Online and On Premise.

With CRM Online, it is required to have an O365 Global Admin (Tenant Administrator) approve the email address in CRM.  If the email address is approved by a CRM System Administrator that is NOT an O365 Tenant Administrator, Server Side Sync will not work for that Mailbox.  This was introduced for security reasons.

The error message that would be received in this scenario is below:

Email won't be processed for this mailbox until the email address of the mailbox is approved by an Office 365 Administrator

Additionally, an Alert is logged for this issue, so details can also be found at Sales > Alerts, as well as in the TraceLogBase table of the database. 

The alert will indicate an issue with IncomingEmailS2SApprovalNeeded and/or OutgoingEmailS2SApprovalNeeded.  This can also be checked by reviewing the IsEmailAddressApprovedByO365Admin column on the MailboxBase table.

 

Best Regards

EMEA Dynamics CRM Support Team

Share this Blog Article on Twitter

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

Follow Us on Twitter

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

Manually Uninstall & Install Dynamics CRM 2013 for Outlook

MSDN Blogs - 16 hours 3 min ago

 

Steps below for Uninstall & Install steps for CRM 2013 client for Outlook.

 

I. Manually Uninstall the CRM for Outlook 2013 Client:

1. Close outlook

2. Use the Configuration Wizard and delete the CRM for Outlook configuration

3. Go to Program s and Features and uninstall the following components:

a. Microsoft Visual C++ Runtime

b. Microsoft SQL Server Compact 4.0 Service Pack 1

c. Microsoft SQL Reporting Service Report Viewer Control

d. Windows Live ID Sign-in Assistant on Windows 7 and older Windows installations

e. Microsoft Online Services Sign-in Assistant

f. All MUI Language packs

g. Microsoft Dynamics CRM 2013 for Microsoft Office Outlook (Outlook Client)

4. Delete the following registry keys (if still available):

HKEY_CURRENT_USER\Software\Microsoft\MSCRMClient

HKEY_LOCAL_MACHINE\ Software\Microsoft\MSCRMClient

HKEY_LOCAL_MACHINE\ Software\Microsoft\MSCRM

5. Delete the following Folders:

a. %localappdata%\Microsoft\MSCRM

b. %appdata%\Microsoft\MSCRM

c. SystemDrive:\Program Files\Microsoft Dynamics CRM

6. If you are unable to uninstall an application using Programs and Features, use the following uninstaller tool provided by Microsoft:

http://support.microsoft.com/mats/Program_Install_and_Uninstall

II. Manually install the CRM for Outlook 2013 Client on environments where pre requisites can’t be downloaded due to firewall restrictions proceed as follows:

1. Microsoft Visual C++ Runtime installer from

http://go.microsoft.com/fwlink/?LinkId=299585.

2. Microsoft SQL Server Compact 4.0 Service Pack 1 installer from http://go.microsoft.com/fwlink/?LinkId=253118.

3. Microsoft SQL Reporting Service Report Viewer Control installer from http://go.microsoft.com/fwlink/?LinkId=193386.

4. Windows Live ID Sign-in Assistant installer from

http://go.microsoft.com/fwlink/?LinkId=194722

5. Microsoft Online Services Sign-in Assistant installer from http://go.microsoft.com/fwlink/?LinkId=317651

6. Microsoft Dynamics CRM 2013 for Microsoft Office Outlook (Outlook Client) Installer from:

http://www.microsoft.com/en-us/download/confirmation.aspx?id=40344

III. The below Screenshot is including also the needed components for the CRM for Outlook 2013 Offline Functionality

 

 

Best Regards

EMEA Dynamics CRM Support Team

Share this Blog Article on Twitter

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

Follow Us on Twitter

!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');

Pages

Subscribe to Randy Riness @ SPSCC aggregator