You are here

Feed aggregator

Compressing your block blobs before storing them

MSDN Blogs - Thu, 05/21/2015 - 23:02

It is true that Azure Block Blob storage is dirt cheap.   Why pay for storage though if you don't have to?  Unfortunately the current storage SDK does not have compression built in.   If you'd like to leverage GZip to compress your blobs before putting them into your container it is pretty easy.

I created a simple BlobStorage class that accepts the container name in the constructor then uses GZipStream to compress and decompress a byte array before storing it into Azure.   It depends on how compressible your data is but this has the potential to yield massive savings in terms of both storage and network transfer.

The implementation gives you a upload and download method which accepts the filename and a byte array.

 If you've got a MemoryStream you're working with for example you could use this helper to abstract away the compression/decompression for you as follows:

 byte[] mydata = ms.ToArray();
BlobStorage storageClient = new BlobStorage("Container");

//Upload data to container
storageClient.UploadBlob(mydata, "filename", true);

//Download data from container
byte[] mynewdata = storageClient.DownloadBlob("filename", true);

 

Here is the full code for the helper class (also attached):

using System;
using System.Configuration;
using System.IO;
using System.IO.Compression;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;

public class BlobStorage
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["StorageConnectionString"]);
CloudBlobClient blobClient;
CloudBlobContainer container;

public BlobStorage(string containername)
{
// Create the blob client.
blobClient = storageAccount.CreateCloudBlobClient();
container = blobClient.GetContainerReference(containername);
container.CreateIfNotExists();
}


public CloudBlockBlob UploadBlob(byte[] data, string filename, bool compressed = true)
{

if (compressed)
{
using (MemoryStream comp = new MemoryStream())
{
using (GZipStream gzip = new GZipStream(comp, CompressionMode.Compress))
{
gzip.Write(data, 0, data.Length);
}
data = comp.ToArray();
}
}

CloudBlockBlob blob = container.GetBlockBlobReference(filename);
blob.UploadFromByteArray(data, 0, data.Length);
return blob;
}

public byte[] DownloadBlob(string filename, bool compressed = true)
{
CloudBlockBlob blob = container.GetBlockBlobReference(filename);
byte[] data;
using (MemoryStream ms = new MemoryStream())
{
blob.DownloadToStream(ms);
ms.Seek(0, SeekOrigin.Begin);
data = ms.ToArray();

if (compressed)
{
using (MemoryStream comp = new MemoryStream())
{
comp.Position = 0;
using (GZipStream gzip = new GZipStream(comp, CompressionMode.Decompress))
{
gzip.Read(data, 0, data.Length);
}

data = comp.ToArray();
}
}
}

return data;
}

}  

成就微軟未來的四劍客(三): Jonah Sterling

MSDN Blogs - Thu, 05/21/2015 - 23:00

文章出自: Meet four people helping to design the future of Microsoft

    「每一位使用者的經驗都是一個等待被發掘的故事。」UX總經理 Jonah Sterling 表示。「每ㄧ位為產品貢獻心力的員工們也是其中一種使用者經驗。」Sterling 不僅擔任負責設計微軟雲端計算平台的創意總監,也負責設計微軟位於華盛頓州雷德蒙德總部的建築物。這聽似平凡的44樓,外表卻是用紅色皮革沙發及人造鹿角構成,而牆壁則是貼滿反骨雜誌內頁,就有如 Urban Outfitters 和一個 1960 年代休息室一樣,內部設計充滿著孩童之愛。

                                                                           (微軟雷德蒙總部44號樓內的一角)
Sterling 充分地把設計理念運用至每處,從蔓藤植物布置在客廳牆上,到自動藍色螺旋梯、委外的壁畫,而書桌正上方則是幅庸而不俗的貓王木質牆壁。

「這是我媽在車庫大拍賣買到的。」
大部分的設計裝置都來自 Sterling 家,這也讓人不禁好奇一個人到底可以擁有多少的陶瓷骷髏花瓶。

畫畫一直是我從小的夢想
我記得有次在紙箱裡面畫畫被抓到,那時我試著揣摩想要畫出火星人馬文的精隨,一直到後來,我才發現到畫畫其實也是種講故事的方式。Sterling 一開始原本想要投身動畫事業,但輾轉卻在高中時進入了西雅圖藝術與科技學院,並且開始畫起漫畫,是後來在念加州藝術學院時才開始傳成意象畫

    經過幾波轉折終於完成學業後,Sterling 發覺自己有設計孩童玩具跟遊戲的天分,例如那種去買速食送的小玩具,「這些送給孩子的玩具就算是能給家長五分鐘平靜時光也好」,他才發現到原來設計跟畫畫一樣都具有跳戰性。於是,他也學習開始如何和那些顧客互動。

    因此在2010進入微軟之前,他就曾經在 Razorfish, Ramp Group 和 IdentityMine 等知名設計公司當到創意總監的位置。現在,Sterling 在微軟帶領超過30人的團隊,其中包括視覺設計師、攝影師還有廣告文字撰稿人,致力於設計Azure的最佳用戶經驗。

「我們希望讓所有公司,不管他們的規模如何,都能更輕鬆地去設計、調整、製造他們的產品」
    這也是為什麼需要了解「感同身受」的用戶心理,從他們在做什麼,為什麼會這樣做,到該如何做,使用後的感受。Sterling 善於將幽默元素帶入自己的設計中,去達到這個目標的可能性。而 Sterling 在設計 Azure 用戶經驗的角色時也反應了他在設計建築上的能力及他自身的文化價值。

    Sterling 在管理團隊時採取軟硬兼施的策略,希望能達到開放式的工作環境、大家團結友愛互相幫助, 他從西雅圖跟波特蘭最好的餐廳得到了些靈感,不僅用音樂環繞工作環境,還鼓勵團隊成員們用自己的天賦來設計自己的空間。此外,還有復古皮革沙發及乒乓球桌擺設在樓層所謂的「海灘」邊界,製造了一些歡樂的氛圍。

「不管多具有挑戰性的設計,只要一起努力一定可以完成」,Sterling 始終認為「團隊比起個人絕對更好更有效率。」

Aplikační okénko: Barvy pro předškoláky

MSDN Blogs - Thu, 05/21/2015 - 22:40
Milá hra pro předškolní děti, která motivuje k zapamatování základních barev. Vyberte pro své ratolesti jeden z dvaceti jazyků, kterým hra s dítětem komunikuje. Poté můžete zvolit počet zobrazovaných různobarevných klíčů, mezi nimiž se vybírá v každém kole ten, jehož barva je shodná s barvou dveří roztomilého domečku. Dítě může pomocí klíčů...(read more)

Lync 2010 の表示画面が乱れる問題について

MSDN Blogs - Thu, 05/21/2015 - 22:15

免責事項: この Blog は "セキュリティ更新プログラム適用後、Lync 2010 の画面が崩れる" の差し替えとなります。本 Blog の公開により "セキュリティ更新プログラム適用後、
Lync 2010 の画面が崩れる" は取り下げられています。

 

Lync 2010 へ 2014年11月以降の修正プログラムを適用すると、Lync 2010 の表示が崩れる問題が報告されています。

以下が表示の問題が発生している状況におけるスクリーンショットの一例です。
このケース以外にも、他のユーザーの連絡先リストに追加された際の通知が、白い大きなウィンドウになり、操作が出来なくなる等の状況が発生します。

 

この問題は、最新のセキュリティ更新プログラム(以下 URL) にも内在している事が確認されております。

[MS15-044] Lync 2010 セキュリティ更新プログラムについて (2015 年 5 月 12 日)
https://support.microsoft.com/ja-jp/kb/3051464/ja

 

マイクロソフトでは、この問題を製品の不具合であると認識しており、現在修正プログラムの作成を進めております。
公開時期など決まりましたら改めてご報告させていただきますが、こうした問題が存在することについて当ブログでお知らせさせていただきます。

ご迷惑をおかけしまして、申し訳ございませんが、何卒よろしくお願いいたします。

 

以下に、よくある QA を記載させていただきます。

Q. 本問題は修正されますか?

A. はい。修正する事が決定されております。

 

Q. 修正はいつリリースされますか?

A. 修正のリリース時期につきましては、この夏にはリリースできるよう、開発を進めておりますが、現時点では正確なスケジュールは確定いたしておりません。

 

Q. セキュリティ更新プログラムをアンインストールすれば、現象は回避しますか?

A. はい。セキュリティ更新プログラムのアンインストールで、現象は回避いたします。しかし、セキュリティ
リスクが発生するため、MS としては非推奨となります。

なお、セキュリティ更新プログラムをアンインストールしても、2014年 11 月以降の修正プログラムを適用している場合、現象は回避しません。回避するには、2014 年 11 月以降の修正プログラムをすべてアンインストールする必要があります。

 

Q. 何らかの設定で回避可能ですか?

A. 全体的な GUI の崩れを回避する事はできません。

他のユーザーの連絡先リストに追加された際の通知が、白い大きなウィンドウになり、操作が出来なくなる問題につきましては、オプションの通知から、
「だれかの連絡先リストに追加された場合に通知する」のチェックを外しておいていただくことで、ウィンドウの表示を抑止する事が出来ます。

 

Q. Lync Attendee もこの問題が発生しますか?

A. Lync Attendee は該当のコードが含まれないため、この問題は発生いたしません。

 

以下の Link もご確認ください。

Microsoft フォント ドライバーの脆弱性により、リモートでコードが実行される (3057110)
https://technet.microsoft.com/library/security/ms15-044

[MS15-044] Microsoft フォント ドライバーの脆弱性により、リモートでコードが実行される (2015 年 5 月 12 日)
https://support.microsoft.com/ja-jp/kb/3057110

[MS15-044] Lync 2010 セキュリティ更新プログラムについて (2015 年 5 月 12 日)
https://support.microsoft.com/ja-jp/kb/3051464/ja

 

ご迷惑をおかけしまして、申し訳ございませんが、何卒よろしくお願いいたします。

 

IaaS がさらに簡単に

MSDN Blogs - Thu, 05/21/2015 - 21:30
このポストは、4 月 29 日に投稿された IaaS Just Got Easier. Again の翻訳です。 マイクロソフトは 3 年前の Meet Azure イベント (英語) で初めて Virtual Machines サービスをご紹介しました。その際は、即応性が高く強力な新しい Virtual Machines を使用すれば、アプリケーションの起動やデプロイがどれほど容易になるかを解説し、Azure で動作する初の Linux VM も披露しました。 そしてこのたび、Azure Resource Manager を使用してテンプレートベースでコンピューティング、ネットワーク、ストレージをデプロイする機能のパブリック プレビューをリリースしました。今回のリリースの目標は、大規模で複雑なアプリケーションの構築、デプロイ、管理の作業をシンプルなアクションに変換することです。この新しいテンプレート言語を使用すれば、VM、Virtual Network、Storage アカウント、NIC、Load Balancer のほか、App Service や SQL Database...(read more)

Visual Studio 2013中的 Azure API 应用程序

MSDN Blogs - Thu, 05/21/2015 - 20:42

[原文发表地址]: Introducing the Azure API Apps Tools for Visual Studio 2013

[原文发表时间]: 24 Mar 2015 12:00 AM

伴随着Azure SDK 2.5.1的发布,我们借此机会把现有的网页发布技术和新的Azure Resource Management APIs结合来支持对于网络,移动端和API 开发者Azure App Service的最新功能。我们已经添加了Azure API 应用程序作为面向ASP.NET开发人员的发布目标,因此可以使用Visual Studio里的新Azure门户中像资源组,应用程序托管计划等这些概念。

使开发者能一键式强类型REST API 客户端

对于那些需要不断地使用从不同的供应商或者服务获得的REST APIs的开发者,一个Azure 应用程序服务的组件 - Azure API Apps – 公开元数据格式像SwaggerWADL来描述REST API 终止点。Included是一个新的Azure API应用程序模板,它从ASP.NET Web API 控制器提供dynamic Swagger generation. 另外,在Visual Studio中还有一个新的功耗系统提供one-click C# code generation 功能使得比以前更容易的使用REST API 而无需重写HTTP调用或者JSON,XML解析。在Portable Class Library项目中也支持生成的客户端代码,这样你就可以在任何支持PCL的平台使用,像Windows Phone 8.1和Universal apps应用程序,以及针对Android和带有Xamarin的IOS这些书面定位的应用程序编写。阅读更多关于Azure 应用程序服务在Micorsoft 博客announcing the availability of Azure App Services 和 Azure 博客 announcing Azure App Service. 你还可以查看 recording of the webcast announcement 了解更多。

进入一个丰富的第三方APIs市场

现在Azure Marketplace 包含许多现有的Microsoft服务和产品,包含其他的合作伙伴的APIs,像Twilio, Salesforce, and Dropbox. REST API功耗功能定制化通过Azure 管理门户的界面对于APIs 安装也是可用的。那么你就能够在迅速成长的Azure上访问强类型客户端的任何APIs.

点对点的开发,部署和使用Azure的API应用程序的经验

现在让我们来演示新的Azure API应用程序工具。开始,我们将在2.5.1发布版本的使用新项目模板创建一个新的Azure API应用程序。然后,部署Azure API应用程序到云。一旦部署了它,我们将创建一个简单的客户端应用程序,它将通过强类型自动生成的客户端代码来使用之前部署的 API 应用程序.

入门教程:Azure API应用程序模板

使用Visual Studio 2013 创建一个新的命名为TodoListApi的网站应用程序

当一个One ASP.NET对话框打开时,选择Azure API Apps template. Azure API应用程序模板是网页API 项目的一个梗概,包含Azure API 应用程序 SDK NuGet和Swashbuckle NuGet 程序包,为dynamic Swagger generation提供支持。

 

注意API应用程序模板的项目自述文件。它包括一些很有用的归档文章的链接,这些文章将更详细地描述如何编写,部署,调试和使用Azure API应用程序。

使用这种模式添加一个自定义模型和控制器。下面的截图演示了添加一个TodoItem 模型和TodoController类后的醒目的结构。

接下来通过使用 右击>为web工程发布特性 来在您的Azure 订阅中创建一个新的Azure API。

选择新的Microsoft Azure API Apps (Preview) publish target.

Azure API应用程序对话框将会打开。在Azure 订阅中单击新建按钮来创建一个新Azure API应用程序。

Azure API 应用程序新建对话框将打开。现在,选择一个现有的 App Service Plan和Resource Group, 你的API应用程序将被部署。这个演示的目的,在对话框中使用方便的选项来创建一个新App Service Plan and Resource Group。

一旦你点击OK,Azure API 应用程序资源调配便开始了。这个过程将花费1-2分钟,你将收到一个警告,资源调配的进程将要完成。一旦它完成,再次执行发布动作将你的代码发布到API应用程序实例。

Azure 应用程序服务活动窗口将会反映出在您的订阅中创建的新Azure API应用程序的过程。创建进程完成后,会通知您。

一旦创建进程完成,在API应用程序项目执行右击>Publish 动作,观察发布设置文件是常驻的,代码准备发布到Azure。

注:你必须执行两次发布的流程来确保你的代码被发布到新设置的站点。第一个发布流程在您的订阅中创建Azure API 应用程序资源但是创建完成并不发布代码,因此您需要执行第二次发布来布署您的代码。

一旦你点击了Publish 按钮,API的应用程序代码将被布署到您正在运行的Azure API应用程序实例中。

在Azure 管理门户中查看Azure API 的应用程序定义

布署完成后,您可以在您的网页浏览器中开启Azure 管理门户,导航到您刚刚布署的API应用程序。通过在门户页上点击API定义按钮的API应用程序,你将看到你的网页API TodoController的REST API 端点和默认ValuesController(除非你从项目中删除ValuesController.cs 文件)。

在Visual Studio中的一键式API 应用程序客户端代码生成

API应用程序使用适用于大多数的C# 项目类型,在将来的发布中会添加更多。这个演示的目的,我们只是把一个简单的控制台程序来调用Azure API应用程序来验证它可以使用。作为使用API的开始,我们在Visual Studio中添加一个新的项目到您的解决方案中。

下一步,从对话框中的项目模板中选择Console Application,命名项目TodoListApiClient.

一旦在Visual Studio中加载了项目。右击项目节点并在上下文菜单选择Add > Azure API App Client 条目来打开Azure API 应用程序客户端生成对话框。一旦它打开了,选择Download from Microsoft Azure API App标签的按钮,选择您刚刚发布到Azure的TodoListApi API应用程序。然后,点击OK按钮。注意,如果喜欢你还可以为API应用程序客户端代码代码提供一个自定义命名空间。但是默认的命名空间等于您的控制台应用程序项目的基命名空间。

一旦您单击OK按钮,Visual Studio将从您的Azure API应用程序去掉Swagger元数据并且生成客户端代码使得您的控制台程序更易于调用您的Azure API应用程序端点。一旦Azure API应用程序客户端代码生成,你将看到已经添加到了控制台应用程序项目。

现在,在控制台应用程序项目中打开Program.cs文件。生成的代码比以前更易于使用强类型类和方法来调用您的Azure API 端点。下面的代码将伸向API和调用其Get方法,从API中返回TodoItems 的列表。

一旦你在Visual Studio调试器中按下F5去启动控制台应用程序,它将调用在云中运行的Azure API,拆掉TodoItems的列表,并将它们显示在控制台窗口中。

从来没有比通过现在的REST APIs去开发,布署,使用数据更容易的了。Download the Azure SDK for Visual Studio来尝试这个Azure API应用程序的新工具。

取得联系

社区反馈对Visual Studio 工具扩展的成功是势在必行的趋势,我们很重视您的反馈意见。欢迎您通过Visual Studio内的Send-a-Smile and Send-a-Frown 界面反馈意见,或者您可以通过Visual Studio Connect site填写一个bug. 如果您对我们刚刚介绍的产品就如何加强Azure API应用程序的工具功能有任何的想法,请在Visual Studio UserVoice或ASP.NET UserVoice分享它们。Azure API应用程序资源和工具在2.5.1发布版本的预览。在预览版期间我们很欢迎您的反馈意见和更多的需要。此外,请查看Azure SDK for .NET Release Notes的完整功能列表和已知问题。

Support Your Cloud Habit

MSDN Blogs - Thu, 05/21/2015 - 20:17

 

Developing a profitable cloud practice won't happen overnight, for many existing Partners it involves a significant rethink of how they structure their business. But for those that have begun the journey (or those that are already there) - the results can be downright euphoric. With new sales, presales and technical support offerings from the Microsoft Partner Network, there's never been a better time to turn your cloud habit into a full blown cloud addiction.

 

Microsoft Partner Support Overview

 

All Microsoft Partners are eligible for support from expert Microsoft consultants for MPN, Sales, Pre-Sales and Technical enquiries. Upgrading to an Action Pack or Competency increases your coverage.

 

Getting High (in the cloud)

Cloud addicts rejoice - in addition to the options above, Microsoft has released a plethora of offerings to help you; sell, deploy and support your Microsoft public, private and hybrid cloud based solutions. These support offerings can be accessed by redeeming your Partner Advisory Hours (see entitlement by membership level).

  • Sell: We can help you close more deals through partner focused business and technical consultation before your sale is closed
  • Deploy: We can help your staff deploy solutions by providing technical content and advice while you work through the design, development, and deployment phases of a customer solution
  • Support: We can help you build a support practice and resolve technical roadblocks by providing technical and product support if needed

 

Jacks Picks (top offerings for Azure, Office 365, CRM Online and Hybrid Cloud)

Read on for a few of my personal favourites, see the bottom of the page for links to the full selection.

 

Win more deals

Take this online workshop to learn how to spin up a test lab or sandbox quickly, and become agile in learning, development, and prototyping

Attend this online workshop to learn how to create cloud project opportunities by proposing Microsoft Office 365 solutions to your small and medium customers. You’ll also gain an understanding of the key tools available for selling and deploying Office 365

 

Deploy more seats

Consume this offering through 1:1 consultative guidance to receive engagement scenario experience, and architecture topology to deploy the most common usage scenarios

In this Practice Accelerator, you will learn the fundamental deployment principles and processes that lead to repeatable, successful deployments of Office 365 for small and medium business customers

Learn how you can enhance your Microsoft Office 365 deployments by offering your customers an Enterprise Voice solution

Take this online workshop to learn competitive positioning and how to integrate Microsoft Dynamics CRM Online into a Microsoft Office 365 portfolio

Participate in this online workshop to modernise your Windows 2003 server. Move into the cloud journey by migrating to Microsoft Azure or Windows Server 2012 R2

 

Resolve product issues

Learn about a consistent approach to supporting your customers, and reduce time and number of support incidents by having Partner Technical Services provide guidance on building a support practice

 

Full Listings By Product / Workload

 

So what are you waiting for? Dive headfirst into the most constructive fixation around!

 

 

Join the discussion in the Microsoft Australia Small Business Reseller LinkedIn Group or the Microsoft Australia MPN Yammer Community.

Need Support? Contact the Regional Service Centre on 13 20 58, Options 2,4,1 (Australian partners only) or visit the Partner Support Community.

Dynamics CRM Online 2015 Update 1: 日付列の新機能

MSDN Blogs - Thu, 05/21/2015 - 20:00

みなさん、こんにちは。

今回は Microsoft Dynamics CRM Online 2015 Update 1 で提供される
日付型の新機能を紹介します。

タイムゾーン非依存の日付サポート

Microsoft Dynamics CRM は複数のタイムゾーンユーザーをサポート
するために、日付型はすべて UTC としてデータベースに値が保存
されており、表示する際にユーザーのタイムゾーンに合わせた変換が
行われます。これは大概のシナリオでうまく機能します。

しかし誕生日のように、タイムゾーンに関係なく同じ日付を保持する
事が求められるようなデータに対しては文字列型を使っていました。

今回のリリースでは 2 種類のタイムゾーン非依存型をサポートします。

日付のみ

誕生日など、時刻までデータを保持する必要がない場合に使います。
時刻は 0:00 が自動的に入ります。

タイムゾーン非依存

画面や SDK から入力された時間がそのままデータベースに保存され、
表示される際もタイムゾーンの変換を行いません。

ユーザーローカル

これまでと同じ動作となります。

では早速試してみましょう。

1. ブラウザで Microsoft Dynamics CRM Online に接続します。

2. 任意のエンティティのカスタマイズ画面よりフィールドを追加します。
ここでは取引先担当者を使ってみます。

3. 比較のため、まずはこれまでの形式で日付フィールドを作成します。

4. 続いて「日付のみ」動作でもう 1 つフィールドを作成します。

5. さらに「タイムゾーン非依存」でも作成します。

6. 作成した 3 つのフィールドをフォームに配置して、カスタマイズを
公開します。

7. 任意の取引先担当者レコードを開いて、誕生日を入力します。尚、
ユーザーのタイムゾーン設定は GMT+9 の日本時間とします。

8. レコードを保存します。

9. ユーザーのオプションよりタイムゾーンを変更します。ここでは
(GMT-4) の大西洋標準時間にしてみました。同じ担当者レコードを
表示します。ユーザーローカル動作の場合、日付が 1 日遡っている
事を確認します。

既存日付フィールドの動作変更

手動での変換

日付フィールドの動作が「ユーザーローカル」の場合、「日付のみ」
または「タイムゾーン非依存」に変換することができますが、一度
変更するともとには戻せません。変更は既存の日付型フィールドを
開いて、動作を変えるだけで完了です。

動作変更時の詳細な変換指定

動作を変更した場合、既定ではデータベースに保存している UTC の
値を変換先の値として利用します。もしレコードの所有者や変換を
実施しているユーザーのタイムゾーン、または任意のタイムゾーンで
変換をかけたい場合は SDK を利用します。詳細は後日紹介します。

まとめ

タイムゾーンに依存しない日付データを利用すると、意図した日時を
表示できるほか、形式は日付型のため Excel で分析する場合などにも
便利です。是非お試しください!

- 中村 憲一郎

Submitting a WatchKit app

MSDN Blogs - Thu, 05/21/2015 - 19:29
In the spirit of our increasingly cross-platform company, I thought I'd start posting some iOS development tips as they occur to me. I've been coding in iOS since the launch of the official App Store (I had one of the first apps on it) and it's something I enjoy doing very much. I'm currently experimenting with Apple Watch apps, and so far the trickiest part has been getting them ready for submitting to the Store.  Tips for submitting Watch Kit Apps Once you have your Apple Watch app working in your emulator and running on your test device, set aside some time to get it ready for the store. The first time you try it might take longer than expected.
  • When making icons for the Watch Kit app, I recommend using an app called “Asset Catalog Creator” from the Mac App Store. It checks you haven’t done something illegal like using PNG files with transparency as a Watch Kit icon, and automates the creation of all the different sizes 
Now it’s time to get the AppIDs and Provisional Profiles configured. i.e. What's known in my office as "The Dark Arts".
  1. Go to the Apple Developer portal, and create some AppIDs for:
     
    1. Your app (you’ve probably done this if you are adding Watch Kit support to an existing app)
    2. The WatchKit App (com.company.AppName.watchkitapp)
    3. The WatchKit Extension (com.company.AppName.watchkitextension)
Double check your spelling is consistent. A mistake here is time consuming to fix later, not to mention annoying. Yes, I've made this mistake.
  1. Go the Apple Developer portal, and create some Provisioning profiles. (Select Distribution profiles for the Store, as these work for the Store and for Test Flight). Make profiles for:
     
    1. Your app (you may have done this already, as above.)
    2. A profile using the watchkitapp AppID you created above,
    3. A profile using the watchkitappextension AppID you created above.
When it comes to naming, I name them <appname> <store> <date> to help me keep track e.g. “MyApp Store May15” or “MyApp AdHoc June14”. Double check your spelling is still consistent! Now download these provisioning profiles so Xcode can use them.
  1. Go into the target for the app, watchkitapp, and watchkitextension and make sure the provisional profiles are listed in the correct places. The correct places are reached from..
     
    1. Targets / App /  Build Settings
    2. Targets / App Watch Kit App / Build Settings
    3. Targets / App Watch Kit Extension / Build Settings
Enter “Code Sign” in the search bar to jump to the relevant section, and ror each, make sure you:
  • Set the provisioning profile to match the correct one you downloaded, 
  • Set the Release value (and the "Any IOS SDK" setting underneath) explicitly to DISTRIBUTION.
  • Remember that if the build fails, chances are Xcode changed one of those back for you to an incorrect value. You’re welcome. 
Finally make sure you have the same Build and Version numbers. They must be exactly the same - 1.0 is not the same at 1. You should then be able to create an Archive, validate it, and submit it. I recommend using TestFlight to be certain it can be accepted to the Store (based on AppID etc, not content or quality!). Yes, unless you are updating an existing TestFlight version, this can take an extra day or two. It’s probably worth it. For more information, check out this excellent Blog post from ex-Microsoftie Mike Swanson. 

Experiencing Data Latency for Many Data Types - 5/22 -Investigating

MSDN Blogs - Thu, 05/21/2015 - 18:14
Initial Update: Friday, 5/22/2015 01:09 UTC

Application Insights recovered from the data latency at 05/21/15 21:10 UTC but is now latent again due to a new issue. After recovering from previous incident we enabled an optimization job which resulted in too much load on part of our service impacting indexing of data. We've stopped the optimization job and are working to recover the indexing health.

• Work Around: None
• Next Update: Before 5/22/15 06:00 UTC

We are working hard to resolve this issue and apologize for any inconvenience.

-Application Insights Service Delivery Team

Configure SharePoint with Kerberos and SSL for use with Team Foundation Server (TFS)

MSDN Blogs - Thu, 05/21/2015 - 17:40
This article gives the step by step instructions to configure SharePoint with Kerberos and SSL for use with Team Foundation Server (TFS). It involves the following steps, explained further in detail. 1. Configure SharePoint Foundation 2010 on SharePoint Server. 2. Configure Kerberos for SharePoint 2010. 3. Set SPNs. 4. Create a Web application on the SharePoint central administration site. 5. Configure SSL for SharePoint 2010 Foundation. 6. Configure SharePoint extensions on SharePoint Server. 7...(read more)

Win10 apps in .NET - design-time data in XAML

MSDN Blogs - Thu, 05/21/2015 - 17:16

This is Part 3 of my "VB Win10 Apps" series.

 

Design-time data in XAML

What I'm writing about is an essential basic skill for writing XAML, and half the folks I speak to don't know about it, so I want to spell it out. I want to have "sample design-time data" while I'm designing my XAML, so I can get the layout right.

This skill has always been important. You could just about scrape by without knowing it in the past, since Win8.1 came with advanced templates that used this design-time-data trick already. But in Win10, we've removed all but the "Blank" template, so you're on your own.

Let's make it real. I have a data-structure which looks like this:

Public Class Patient
    Public Property Name As String
    Public Property Health As String
    Public Property Thumbnail As String
End Class

And I want my UI to show an index page, a list of patients, something like this:

Well I start by trying to write it with a XAML ListView inside the <Grid> of my MainPage.xaml:

<ListView x:Name="listview1" ItemsSource="{Binding}">
  <ListView.ItemTemplate>
    <DataTemplate>
      <Grid Background="LightBlue">
        <TextBlock VerticalAlignment="Top" Text="{Binding Name}"/>
        <TextBlock VerticalAlignment="Bottom" Text="{Binding Health}"/>
        <Image HorizontalAlignment="Right" Source="{Binding Thumbnail}"/>
      </Grid>
    </DataTemplate>
  </ListView.ItemTemplate>
</ListView>

But I'm writing this blind! I don't know wither I've got it right! All I see in the designer is a big blank screen staring back at me. I need some design-time help. I need some design-time sample data.

 

Getting started

First, let's set up the project without design-time data:

1. File > New > VB > Windows > Blank App

2. Open MainPage.xaml and copy+paste the ListView XAML code from above inside the <Grid>...</Grid>. Explanation: the ItemsSource="{Binding}" directive tells it to look up listview1.DataContext, and use this as the ItemsSource, i.e. the list of objects that should be rendered. And the <ListView.ItemTemplate> says that each object should be rendered in this way.

3. Open MainPage.xaml.vb and copy+paste the definition of class "Patient" at the bottom of the file.

4. In MainPage.xaml.vb, inside "Class MainPage", add the following method. Explanation: here we're assigning a list to listview1.DataContext so it will display something.

Protected Overrides Sub OnNavigatedTo(e As NavigationEventArgs)
    Dim d As New ObservableCollection(Of Patient)
    d.Add(New Patient With {.Name = "Dawn", .Health = "Healthy", .Thumbnail = http://tinyurl.com/mnelmpf})
    listview1.DataContext = d
End Sub

Run this program now. You'll find that it got the XAML very wrong, so wrong that Dawn's mugshot fills the entire screen!

 

The solution: XAML design-time data

We're now going to make our design-time data. That'll let us fix up our XAML interactively.

 

1. Open MainPage.xaml.vb and add the following class to the bottom of the file. Explanation: this is an object which, when invoked by its parameterless constructor, will be populated with useful data. XAML generally requires parameterless constructors.

Public Class SamplePatientData : Inherits ObservableCollection(Of Patient)
    Public Sub New()
        Add(New Patient With {.Name = "Arthur", .Health = "Healthy", .Thumbnail = "http://tinyurl.com/ldde88y"})
        Add(New Patient With {.Name = "Betty", .Health = "Healthy", .Thumbnail = "http://tinyurl.com/k95djeu"})
        Add(New Patient With {.Name = "Charles", .Health = "Healthy", .Thumbnail = "http://tinyurl.com/mqdj5n2"})
    End Sub
End Class

 

2. Rebuild your project. Explanation: until you rebuild, the XAML designer won't have access to the class you just defined.

 

3. Open MainPage.xaml and add the following code just before <Grid...>. Explanation: you might think of XAML as a markup language, but it's really an object-instantantiation language. The following lines cause XAML to instantiate an instance of the "SamplePatientData" class via its parameterless constructor, and store it in the Page.Resources dictionary.

<Page.Resources>
    <local:SamplePatientData x:Key="data1"/>
</Page.Resources>

 

4. In MainPage.xaml edit your <ListView...> as follows. Explanation: the "d:" means that this is a design-time-only attribute. So, at design-time, it looks up "data1" in the Page.Resources dictionary, and assigns it to listview1.DataContext.

<ListView x:Name="listview1" ItemsSource="{Binding}" d:DataContext="{StaticResource data1}">

 

And there it is! Suddenly the XAML designed has become populated with sample data! And you can see that the XAML I wrote inside my ListView is pretty badly wrong... So let's fix it up:

 

5. In MainPage.xaml, edit your <ListView...> as follows. Explanation: I'm making some key size adjustments that will let the XAML layout engine position things sensibly.

<ListView x:Name="listview1" ItemsSource="{Binding}" d:DataContext="{StaticResource data1}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <Grid Background="LightBlue" Width="200">
                <TextBlock VerticalAlignment="Top" Text="{Binding Name}" FontSize="25"/>
                <TextBlock VerticalAlignment="Bottom" Text="{Binding Health}"/>
                <Image HorizontalAlignment="Right" Source="{Binding Thumbnail}" Width="40" Height="50"/>
            </Grid>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

 

 

You can also use Blend to provide design-time data. But I've found this to be the easiest way to get design-time data. It's a simple trick that will save you lots of hours on the XAML designer.


 

 

Turtle Maze versus Hangman - a case for seamless sharing.

MSDN Blogs - Thu, 05/21/2015 - 17:16

A lot of Small Basic programs use "Assets" in order to work, e.g. images, sound and text files.

Key to Small Basic's effectiveness is our ability to share code and programs. At present the sharing of code is seamless but the sharing of programs may not be.

To demonstrate the difference I use the 2 following games:

 

The Program ID's are:

  1. NFV721-2  (Turtle Maze)
  2. XNF825   (Hangman)

Sharing the code for both these programs is seamless for SB students. You simply:

  1. copy the ID
  2. click on the Import icon in Small Basic
  3. paste the ID as prompted, and
  4. click OK to load

To share the "program" (meaning, running the code from the IDE), is seamless for Turtle Maze:

  1. do the above 4 steps, then
  2. click the Run icon in Small Basic

However sharing the Hangman "program" is NOT seamless:

  1. do the above 4 steps, then
  2. scroll down to line 83 and uncomment it
  3. click the Run icon in Small Basic

Program sharing is predominately done by posting ID's. Seamless sharing of programs is broken at the point where the File object is used. ALL native File members are disabled on publishing.

Having "Introductory Programming" as a part of mandatory school curriculum is becoming ever more popular and I think Small Basic is a top candidate resource.

So I wonder if it's possible and worth while considering if some if not all the File class members be given an extra optional parameter that could set if the operations are using a child of the Program.Directory(). Then these File statements be parsed by the Programs Listing script and exempt any instance that contains the value "True" from security commenting.

Just a thought and a desire for SB to be even more fun.

“The new field name, Work Item Type, is already in use” Error while trying to publish from MS Project client.

MSDN Blogs - Thu, 05/21/2015 - 16:56
You may see the below error while trying to publish from MS Project Client, in an environment where Enterprise Project server is configured to work with TFS. WINPROJ.EXE Error: 0 : [Error, PID 14476, TID 10220, 2015/01/01 10:11:52.105, 10537 ms, General] { Exception:  { Exception Message: The new field name, Work Item Type, is already in use. (type COMException) Exception Stack Trace:    at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object...(read more)

TFS Optimize database Jobs and their nuances.

MSDN Blogs - Thu, 05/21/2015 - 16:54
Any job in TFS is a good to run one, which is what keeps the rhythm of the application, Optimize database job has special functions that keeps your databases tidy and updated with Indexes and statistics Sometimes, you might end up seeing this job running in duplicates and affecting other jobs, for example, when this job is still in progress other jobs may even fail to take off. Here is a sample error: [Full Analysis Database Sync]: ---> TF276000: The current Analysis Database Sync job has exited...(read more)

New C# T-Shirt Designs on the .NET Blog - Tell Us What You Think

MSDN Blogs - Thu, 05/21/2015 - 16:54

[HTTP 301: Hey, just so you know, we're posting on the .NET team blog now. Head over there for new content from the C# team and more. Below is an summary from my latest post]

Mads and Dustin showed off their cool VB and C# team t-shirts at BUILD and tons of people liked them and asked where they could get one.

So, we're thinking about making them available for purchase online. I've been working on some new designs and would love to know what you think. See the designs and leave your feedback on the full post over on the .NET team blog.

Regards,

-ADG

VMWare – TFS – Performance Tuning

MSDN Blogs - Thu, 05/21/2015 - 16:50
Suppose your application Tiers and or Data tiers are in VMWare Virtual machines, please try the following steps, this will throttle performance. VM Ware machine, << under – Control panel – system –Device manager-network adapters – right click on the Virtual Ethernet adapter and go to properties – Advanced >> Select the Speed & Duplex and if it is set to “Auto negotiate” then change it to “Full Duplex” (the change will cause a few seconds disconnection and it will resume on its own...(read more)

New VB T-Shirt Designs on the .NET Blog - Tell Us What You Think

MSDN Blogs - Thu, 05/21/2015 - 16:49

[HTTP 301: Hey, just so you know, we're posting on the .NET team blog now. Head over there for new content from the VB team and more. Below is an summary from my latest post]

Mads and Dustin showed off their cool VB and C# team t-shirts at BUILD and tons of people liked them and asked where they could get one.

So, we're thinking about making them available for purchase online. I've been working on some new designs and would love to know what you think. See the designs and leave your feedback on the full post over on the .NET team blog.

Regards,

-ADG

Application Tier only wizard errors out when HTTPS & SSL is not chosen again.

MSDN Blogs - Thu, 05/21/2015 - 16:43
When you Un-configure and reconfigure TFS and choose to use the new configuration without SSL or with a new certificate it errors out during application tier only wizard It still picks up the old https URL and gives an error as below Apparently the logs doesn’t depict a meaningful information. The solution is to rename the file ApplicationTierSettings.xml as ApplicationTierSettings.old The file can be found in the following folder: "C:\ProgramData\Microsoft\Team Foundation\Configuration\SavedSettings...(read more)

Write-up on 4 GB String store limit in SSAS TFS Cubes

MSDN Blogs - Thu, 05/21/2015 - 16:39
What is a string store? In an Analysis Services multidimensional database, strings are stored separately from numeric data to allow for optimizations based on characteristics of the data. String data is typically found in dimension attributes that represent names or descriptions. In TFS the largest contributor to string store is Version control file dimension. Often Implementations which are with SQL server 2008 & SQL server 2008 R2 face this problem, they typically encounter the following error...(read more)

Pages

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