<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>VB/C#</title><link>http://blogs.wankuma.com/hatsune/category/714.aspx</link><description>VB/C#</description><managingEditor>初音 玲</managingEditor><dc:language>ja-JP</dc:language><generator>.Text Version 0.95.2004.102</generator><item><dc:creator>初音 玲</dc:creator><title>[WebSocket]System.Net.WebSocketsはWindows 7では動かない</title><link>http://blogs.wankuma.com/hatsune/archive/2017/10/07/569988.aspx</link><pubDate>Sat, 07 Oct 2017 17:31:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2017/10/07/569988.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/569988.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2017/10/07/569988.aspx#Feedback</comments><slash:comments>28</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/569988.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/569988.aspx</trackback:ping><description>&lt;p&gt;時々忘れがちになるのでまとめておきますね。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h4&gt;System.Net.WebSocketsはWindows 7では動かない&lt;/h4&gt;&lt;p&gt;System.Net.WebSocketsを使ってWebSocketクライアントを作成したとき、Windows 8/8.1やWindows 10では問題なく稼働しますがWindows 7では実行時エラーで異常終了します。&lt;/p&gt;&lt;p&gt;これは&lt;/p&gt;&lt;p&gt;&lt;a title="https://msdn.microsoft.com/ja-jp/library/system.net.websockets.websocket.aspx" href="https://msdn.microsoft.com/ja-jp/library/system.net.websockets.websocket.aspx"&gt;https://msdn.microsoft.com/ja-jp/library/system.net.websockets.websocket.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;-------引用開始&lt;/p&gt;&lt;p&gt;一部のクラスで、 &lt;em&gt;System&lt;/em&gt;.&lt;em&gt;Net&lt;/em&gt;.&lt;em&gt;WebSockets 名前空間&lt;/em&gt;は、Windows 7、Windows Vista SP2、および Windows Server 2008 でサポートされます。 ただし、クライアントとサーバー Websocket の唯一のパブリックの実装では、Windows 8 および Windows Server 2012となります。&lt;/p&gt;&lt;p&gt;-------引用終了&lt;/p&gt;&lt;p&gt;と注意書きがあるように、定義はあるけれどWindows 8以降じゃないと実装が伴っていないところがあるからです。&lt;/p&gt;&lt;p&gt;なぜ、こんなことがあるかといえば、Windowsのカーネルモードドライバであるhttp.sysを直接利用することでHTTP周りのオーバーヘッドを少なくしているのですが、Windows 7のhttp.sysがWebSocketに対応していないからです。&lt;/p&gt;&lt;h4&gt;Windwos 7のメインストリームサポートは終了しています&lt;/h4&gt;&lt;p&gt;&lt;a title="https://www.microsoft.com/ja-jp/atlife/article/windows10-portal/eos.aspx" href="https://www.microsoft.com/ja-jp/atlife/article/windows10-portal/eos.aspx"&gt;https://www.microsoft.com/ja-jp/atlife/article/windows10-portal/eos.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;みんな大好きWindows 7は2009年10月22日にライフサイクルがスタートして2015年1月13日にメインストリームサポートが終了しています。延長サポートの終了こそ2020年1月14日ということでまだ先ですが、延長サポート期間である現在はセキュリティ更新はおこなわれますが、仕様変更や新機能のリクエストはサポート対象外となり、これからWindows 7のHTTP.sysにWebSocket実装が追加されることはほぼないと考えてよいでしょう。&lt;/p&gt;&lt;p&gt;ではどうすればいいのか&lt;/p&gt;&lt;p&gt;一つの解決策としては、HTTP.sysを使わないWebSocket実装のコードを書く、もしくは、HTTP.sysを使っていないライブラリをNuGetで探してくるというものがあります。&lt;/p&gt;&lt;p&gt;&lt;a title="https://github.com/kerryjiang/WebSocket4Net" href="https://github.com/kerryjiang/WebSocket4Net"&gt;https://github.com/kerryjiang/WebSocket4Net&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a title="https://github.com/sta/websocket-sharp" href="https://github.com/sta/websocket-sharp"&gt;https://github.com/sta/websocket-sharp&lt;/a&gt;&lt;/p&gt;&lt;p&gt;NuGetでライブラリを探すときは、企業ユースを考えるならばSystem.Net.WebSocketsならば対応している認証PROXYがサポートされているかなどのチェックを十分に行う必要があるでしょう。なお、残念ながら上記２つについてもまだきっちり調べ終わっていません。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;しかし、System.Net.WebSocketsであればHTTP.sysを使って「オーバーヘッドが少ない」＝「性能がよいことが期待される」なのにWindwos 7をサポートすることでその利点を得られないという問題が生じてしまいます。&lt;/p&gt;&lt;p&gt;対象となる機能がWindows 7でも使えないといけないのか、もしくは、対象となる利用者がWindows 7をどれくらい使っているのかを見極めて判断するといいでしょう。&lt;/p&gt;&lt;p&gt;企業でもWindows 7からWindows 8.1やWindows 10への置き換え（少なくとも新規導入は8.1か10がデフォルト）が始まっている時期なので悩ましいところですね。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h4&gt;Windows 8以降かどうかをチェックする&lt;/h4&gt;&lt;p&gt;Windows 7のときにはWebSocketを使った機能をdisableしたいときなどは、OSのバージョンチェックが必要になってきます。&lt;/p&gt;&lt;p&gt;対象はWPFとかWindowsフォームのときで、UWPやXamarin.Android、Xamarin.iOSのときは対象環境で動かないということはないのでチェックは不要です。&lt;/p&gt;&lt;p&gt;ですので実装時は&lt;/p&gt;&lt;p&gt;#if WPF&lt;/p&gt;&lt;p&gt;#endif&lt;/p&gt;&lt;p&gt;のようにifディレクティブを定義してその中でOSバージョンのメジャーバージョンとマイナーバージョンを取得してチェックします。&lt;/p&gt;
&lt;pre&gt;var searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
var os = searcher.Get().Cast&lt;system.management.managementobject&gt;().FirstOrDefault();
var major = 6;
var minor = 1;
if ((os != null) &amp;amp;&amp;amp; (os["OsType"] != null) &amp;amp;&amp;amp; (os["Version"] != null))
{
    if (os["OsType"].ToString() == "18")
    {
        major = new System.Version(os["Version"].ToString()).Major;
        minor = new System.Version(os["Version"].ToString()).Minor;
    }
}
&lt;/system.management.managementobject&gt;&lt;/pre&gt;
&lt;p&gt;

Windows 10以上はmajor &amp;gt;= 10でよいのですが、Windows 8.xは、major == 6 &amp;amp;&amp;amp; minor &amp;gt;= 2で判断しますので、その点だけ注意しましょう。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/569988.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[HoloLens]HoloLensアプリのサンプルプロジェクトをgithubで公開する</title><link>http://blogs.wankuma.com/hatsune/archive/2017/09/07/566693.aspx</link><pubDate>Thu, 07 Sep 2017 00:36:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2017/09/07/566693.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/566693.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2017/09/07/566693.aspx#Feedback</comments><slash:comments>60</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/566693.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/566693.aspx</trackback:ping><description>&lt;p&gt;ソースコードを公開せずに多人数でHoloLensアプリを作るときは、「Visual Studio Team Services」などで非公開でやっていくとよいと感じです。&lt;/p&gt;&lt;p&gt;ちょっとしたサンプルコードならば、gistなどもいいでしょう。&lt;/p&gt;&lt;p&gt;サンプルプロジェクトを公開するならgithubがやっぱり一番よさそうです。&lt;/p&gt;&lt;p&gt;HoloLensアプリを公開するときはUnityプロジェクトとUWPプロジェクトでそれぞれ別の.gitignoreファイルを置けると便利です。&lt;/p&gt;&lt;p&gt;そこで次のようなフォルダ構造を作成し、UnityプロジェクトフォルダとVisualStudioソリューションフォルダにそれぞれに適した.gitignoreファイルを置きましょう。&lt;/p&gt;&lt;p&gt;[アプリ名フォルダ]&lt;p&gt;&amp;nbsp;&amp;nbsp; +[Unityプロジェクトフォルダ]&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +assets&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |unityファイル&lt;p&gt;&amp;nbsp;&amp;nbsp; +UWP&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |VisualStudioソリューションファイル&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +[プロジェクトフォルダ]&lt;p&gt;&lt;br&gt;&lt;p&gt;このフォルダの作り方やその他の詳細は&lt;a href="http://hatsune.hatenablog.jp/entry/2017/09/06/163806"&gt;HoloLensアプリ作成時の共通作業（2017年9月編）&lt;/a&gt;を参照してください。&lt;p&gt;&lt;br&gt;&lt;h4&gt;github上にサンプルプロジェクトのリポジトリを作成&lt;/h4&gt;&lt;p&gt;&lt;img width="910" height="711" title="image" style="display: inline; background-image: none;" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/HoloLensHoloLensgithub_F6/image.png" border="0"&gt;&lt;/p&gt;&lt;p&gt;新規にリポジトリを作るときに下の方に[.gitignore]ドロップダウンリストがあるので、そこで「Unity」を選択して「アプリ名フォルダ」と同じ名前でリポジトリを作成します。&lt;/p&gt;&lt;p&gt;Unityを指定したときの.gitignoreファイルの内容は次のようになります。&lt;/p&gt;&lt;p&gt;--&lt;/p&gt;&lt;p&gt;/[Ll]ibrary/&lt;br&gt;
/[Tt]emp/&lt;br&gt;
/[Oo]bj/&lt;br&gt;
/[Bb]uild/&lt;br&gt;
/[Bb]uilds/&lt;br&gt;
/Assets/AssetStoreTools*&lt;/p&gt;
&lt;p&gt;# Visual Studio 2015 cache directory&lt;br&gt;
/.vs/&lt;/p&gt;
&lt;p&gt;# Autogenerated VS/MD/Consulo solution and project files&lt;br&gt;
ExportedObj/&lt;br&gt;
.consulo/&lt;br&gt;
*.csproj&lt;br&gt;
*.unityproj&lt;br&gt;
*.sln&lt;br&gt;
*.suo&lt;br&gt;
*.tmp&lt;br&gt;
*.user&lt;br&gt;
*.userprefs&lt;br&gt;
*.pidb&lt;br&gt;
*.booproj&lt;br&gt;
*.svd&lt;br&gt;
*.pdb&lt;/p&gt;
&lt;p&gt;# Unity3D generated meta files&lt;br&gt;
*.pidb.meta&lt;/p&gt;
&lt;p&gt;# Unity3D Generated File On Crash Reports&lt;br&gt;
sysinfo.txt&lt;/p&gt;
&lt;p&gt;# Builds&lt;br&gt;
*.apk&lt;br&gt;
*.unitypackage&lt;/p&gt;&lt;p&gt;--&lt;br&gt;
&lt;/p&gt;&lt;h4&gt;リポジトリをローカルにクローンする&lt;/h4&gt;&lt;p&gt;リポジトリができたならば、ローカル（自分のPC）にリポジトリをクローンします。&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;p&gt;&lt;img width="817" height="628" title="image" style="display: inline; background-image: none;" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/HoloLensHoloLensgithub_F6/image_3.png" border="0"&gt;&lt;p&gt;このとき、すでにサンプルプロジェクトを作ってしまっていたならば、作成済のサンプルプロジェクトのアプリ名フォルダをリネームしておきます。そして、その場所を指定してクローンします。&lt;p&gt;&lt;img width="622" height="421" title="image" style="display: inline; background-image: none;" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/HoloLensHoloLensgithub_F6/image_4.png" border="0"&gt;&lt;p&gt;ローカルドライブにフォルダが作成できならば、このフォルダを「アプリ名フォルダ」としてHoloLensアプリのプロジェクトを作成します。&lt;p&gt;あらかじめ作成してありリネームしてあるならば、そのフォルダの中身を移動してきます。&lt;p&gt;&lt;img width="983" height="629" title="image" style="display: inline; background-image: none;" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/HoloLensHoloLensgithub_F6/image_5.png" border="0"&gt;&lt;p&gt;クローン下フォルダに移動するだけでローカル側の変更として検知されます。ここで、.gitignoreファイルをUnityプロジェクトフォルダに移動します。&lt;p&gt;今回はUWP側はUnityから自動生成すればいいのでUWPフォルダを丸ごと削除します。&lt;p&gt;UWP側でも独自のコードを書いているのであれば、UWPファイルだには次のような.gitigoneファイルを配置します。&lt;p&gt;--&lt;p&gt;#ignore thumbnails created by windows&lt;br&gt;
Thumbs.db&lt;br&gt;
#Ignore files build by Visual Studio&lt;br&gt;
*.obj&lt;br&gt;
*.exe&lt;br&gt;
*.pdb&lt;br&gt;
*.user&lt;br&gt;
*.aps&lt;br&gt;
*.pch&lt;br&gt;
*.vspscc&lt;br&gt;
*_i.c&lt;br&gt;
*_p.c&lt;br&gt;
*.ncb&lt;br&gt;
*.suo&lt;br&gt;
*.tlb&lt;br&gt;
*.tlh&lt;br&gt;
*.bak&lt;br&gt;
*.cache&lt;br&gt;
*.ilk&lt;br&gt;
*.log&lt;br&gt;
*.dll&lt;br&gt;
*.lib&lt;br&gt;
*.sbr&lt;br&gt;
*.msi&lt;br&gt;
*.appx&lt;br&gt;
obj/&lt;br&gt;
bin/&lt;br&gt;
TestResults/&lt;br&gt;
AppPackages/&lt;br&gt;
BundleArtifacts/&lt;br&gt;
packages/&lt;br&gt;
UpgradeLog*.*&lt;/p&gt;&lt;p&gt;--&lt;br&gt;
&lt;/p&gt;&lt;h4&gt;コミットしてプッシュする&lt;/h4&gt;&lt;p&gt;公開するコードがすべて格納出来たら、コミットを行い、プッシュします。&lt;/p&gt;&lt;p&gt;&lt;img width="983" height="629" title="image" style="display: inline; background-image: none;" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/HoloLensHoloLensgithub_F6/image_6.png" border="0"&gt;&lt;/p&gt;&lt;p&gt;github上のUnityプロジェクトフォルダを見てみる次のようになります。&lt;/p&gt;&lt;p&gt;&lt;img width="910" height="711" title="image" style="display: inline; background-image: none;" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/HoloLensHoloLensgithub_F6/image_7.png" border="0"&gt;&lt;/p&gt;&lt;p&gt;これでコードを公開できました。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/566693.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[Azure]MicrosoftのTranslator Text APIもDNN翻訳に対応しています（しかももっと簡単にお安く）</title><link>http://blogs.wankuma.com/hatsune/archive/2017/04/05/545441.aspx</link><pubDate>Wed, 05 Apr 2017 23:01:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2017/04/05/545441.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/545441.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2017/04/05/545441.aspx#Feedback</comments><slash:comments>48</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/545441.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/545441.aspx</trackback:ping><description>&lt;p&gt;&lt;a title="https://blogs.technet.microsoft.com/microsoft_japan_corporate_blog/2016/11/24/161124-microsoft-translator/" href="https://blogs.technet.microsoft.com/microsoft_japan_corporate_blog/2016/11/24/161124-microsoft-translator/"&gt;https://blogs.technet.microsoft.com/microsoft_japan_corporate_blog/2016/11/24/161124-microsoft-translator/&lt;/a&gt;&lt;/p&gt; &lt;p&gt;上記より抜粋&lt;/p&gt; &lt;p&gt;--&lt;/p&gt; &lt;p&gt;ニューラル ネットワークによる翻訳は、音声 API およびテキスト API を使用する開発者が使用できます。  &lt;ul&gt; &lt;li&gt;本日より、音声 API 呼び出しでは、すべてニューラル ネットワークが利用されます。  &lt;li&gt;テキスト API 呼び出しでは、標準カテゴリー (標準カテゴリーの詳細についてはこちらを参照してください：英語)「generalnn」を使用し、サポートされている 10 言語の任意の組み合わせを使用することで、ニューラル ネットワークを利用できるようになります。&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;--&lt;/p&gt; &lt;p&gt;ということで、Microsoft Azure Translator Text APIであればFreeプランであってもCategolyにgeneralnnって指定するだけでニューラルネットワークによる翻訳がビシバシ使えちゃいます。&lt;/p&gt; &lt;p&gt;これ使わない手はないですねほんと。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Translator Text APIを使うためにはAzure Poralでキーを取得したら、コードでキーからトークンを作ります。&lt;/p&gt; &lt;p&gt;トークンの作り方はこちら。&lt;/p&gt; &lt;p&gt;&lt;a title="https://github.com/MicrosoftTranslator/GetAzureToken" href="https://github.com/MicrosoftTranslator/GetAzureToken"&gt;https://github.com/MicrosoftTranslator/GetAzureToken&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;トークンができたらそれをAuthorizatonヘッダに設定して&lt;/p&gt; &lt;p&gt;&lt;a title="http://api.microsofttranslator.com/v2/Http.svc/Translate?text={0}&amp;amp;to={2}" href="http://api.microsofttranslator.com/v2/Http.svc/Translate?text={0}&amp;amp;from=|1|&amp;amp;to={2}"&gt;http://api.microsofttranslator.com/v2/Http.svc/Translate?text={0}&amp;amp;from=|1|&amp;amp;to={2}&lt;/a&gt;&lt;/p&gt; &lt;p&gt;のような感じで呼び出せば翻訳結果を取得できます（{0}には翻訳したい原文、{1}にはjpなどの原文言語コード、{2}にはenなどの翻訳先言語コード）。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/545441.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[Xamarin]Xamarinで作ったAndroidアプリをGoogle Playストアに登録する</title><link>http://blogs.wankuma.com/hatsune/archive/2017/04/02/545136.aspx</link><pubDate>Sun, 02 Apr 2017 03:36:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2017/04/02/545136.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/545136.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2017/04/02/545136.aspx#Feedback</comments><slash:comments>3287</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/545136.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/545136.aspx</trackback:ping><description>&lt;p&gt;Visual StudioでXamarinを使ってAndroidアプリを作成してストア登録するときの手順が最近(2017年3月末)変わりました。&lt;/p&gt; &lt;h5&gt;以前の方法&lt;/h5&gt; &lt;p&gt;以前であれば、[ツール]-[Android]-[Publish Android Application]メニューでダイアログを立ち上げて、そこでKeystoreなどを選択してapkファイルを作成しました。&lt;/p&gt; &lt;p&gt;&lt;img src="https://www.xlsoft.com/jp/products/xamarin/images/android_publish/09.png" width="550"&gt;&lt;/p&gt; &lt;p&gt;そして、apkファイルを手動でGoogle Play Developer Consoleにアップロードして公開していました。&lt;/p&gt; &lt;h5&gt;新しい方法&lt;/h5&gt; &lt;p&gt;新しい方法では、ソリューションエクスプローラーでAndroidアプリのプロジェクトを右クリックして、そこで[Archive]を選ぶ方法に変更されました。&lt;/p&gt; &lt;p&gt;[Archive]メニューを選ぶとArchive Managerが立ち上がり、該当プロジェクトのアーカイブが進行します。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image.png" width="772" height="383"&gt;&lt;/p&gt; &lt;p&gt;この時、ソリューション構成は[Release]を選択しておきましょう。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;ビルドがうまく通ればapkファイルが所定のフォルダに作成されます。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_3.png" width="772" height="383"&gt;&lt;/p&gt; &lt;p&gt;ただし、このapkファイルは未署名のものなので、そのままではGoogle Playストアに登録できません。&lt;/p&gt; &lt;p&gt;[Distribute]ボタンを押して署名を行いましょう。&lt;/p&gt; &lt;h6&gt;Select Channel&lt;/h6&gt; &lt;p&gt;Ad HocなのかGoogle Playなのか配布方法を選びます。Google Playストア経由で配布するので[Google Play]を選択します。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_4.png" width="844" height="484"&gt;&lt;/p&gt; &lt;h6&gt;Signing Identity&lt;/h6&gt; &lt;p&gt;署名を行います。&lt;/p&gt; &lt;p&gt;Keystoreファイルがすでにあるならば[Import]ボタンをクリックしてファイルを取り込みます。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_5.png" width="844" height="484"&gt;&lt;/p&gt; &lt;p&gt;既存のKeystoreファイルがないのであれば[+]ボタンをクリックして、新規にKeystoreファイルを作成します。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_6.png" width="444" height="548"&gt;&lt;/p&gt; &lt;p&gt;Alias：別名など（プロジェクト名とか）&lt;/p&gt; &lt;p&gt;Password：パスワード&lt;/p&gt; &lt;p&gt;Validity：25以上の数字。1000とかでもOK。&lt;/p&gt; &lt;p&gt;Full Name：発行者のフルネーム&lt;/p&gt; &lt;p&gt;Organization Unit：部署名（個人なら入力しないでもOK）&lt;/p&gt; &lt;p&gt;Organization：会社名（個人なら入力しないでもOK）&lt;/p&gt; &lt;p&gt;City：市区町村区名&lt;/p&gt; &lt;p&gt;State：都道府県名&lt;/p&gt; &lt;p&gt;Country Code：JP&lt;/p&gt; &lt;h6&gt;Google Play Accounts&lt;/h6&gt; &lt;p&gt;Google Playストアに登録するアカウントを指定します。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_7.png" width="844" height="484"&gt;&lt;/p&gt; &lt;p&gt;Google PlayストアにログインしているIDとパスワードではなく、Google API AccessのClient IDとClient Secretを指定します。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_8.png" width="644" height="459"&gt;&lt;/p&gt; &lt;p&gt;これにはGoogle Play Developer Consoleにログインして「APIアクセス」のところでOAuthクライアントを作成してその認証情報からコピペします。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_9.png" width="844" height="475"&gt;&lt;/p&gt; &lt;h6&gt;Google Play Track&lt;/h6&gt; &lt;p&gt;ここまでできたら、アルファ版、ベータ版、段階的公開、製品版のどれで公開するかを指定します。&lt;/p&gt; &lt;p&gt;&lt;img title="image" style="border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px" border="0" alt="image" src="http://hatsunejournal.jp/other/WLW/2017/xamarinXamarinGoogle-Play_24D9/image_10.png" width="844" height="484"&gt;&lt;/p&gt; &lt;p&gt;少し説明が必要そうなのは、段階的公開（Rollout）でしょうか。これはバージョンアップ版の公開を一度にすべてのユーザに対して公開するのではなく、徐々に公開していく方法です。&lt;/p&gt; &lt;p&gt;こうすることによって、致命的な障害があった場合に全台に影響がないようにします。また、新バージョンの最初の起動の時だけにアクセスするようなデータがあった場合の負荷分散にもなります。&lt;/p&gt; &lt;p&gt;段階的公開が必要なくらいの利用者数があるアプリとか夢のようですよね。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;新しい公開方法は以上です。&lt;/p&gt; &lt;p&gt;以前に比べるとGoogle Play Developer Consoleへの配置までできるので便利ですね。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/545136.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[Xamarin]Xamarin.AndroidやるならJava8とAndroid SDK Build-Tools 25以上で決まりっ！</title><link>http://blogs.wankuma.com/hatsune/archive/2017/03/12/542787.aspx</link><pubDate>Sun, 12 Mar 2017 23:03:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2017/03/12/542787.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/542787.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2017/03/12/542787.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/542787.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/542787.aspx</trackback:ping><description>&lt;p&gt;Android開発はJavaな訳ですが、Android 6.0 (API 23)まではJava7、Android 7.0 (API 24)からはJava8が使えます。&lt;/p&gt;
&lt;p&gt;では、Xamarinはというと2016年の夏くらいに、Android SDK Build-Tools 25あたりでちょっといろいろありましたが、今現在では、もう安定しているので、今から始めるならば、JDK8 (x86)をOracleのサイトからダウンロードしてきて、Android SDK Managerで、&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Android SDK Tools 25.2.5&lt;/li&gt;
&lt;li&gt;Android SDK Platform-tools 25.0.3&lt;/li&gt;
&lt;li&gt;Android SDK Build-tools 25.0.2&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;と、必要なSDK Platformのインストールしておくといい感じですね。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/542787.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[Azure]Azure DataMarketは2017/3/31に閉鎖されます。</title><link>http://blogs.wankuma.com/hatsune/archive/2016/12/13/539752.aspx</link><pubDate>Tue, 13 Dec 2016 00:11:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2016/12/13/539752.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/539752.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2016/12/13/539752.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/539752.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/539752.aspx</trackback:ping><description>&lt;p&gt;Azure DataMarketは閉鎖され、そこで提供されていたサービス（すべてかは未確認）はAzure Marketplaceにて提供されます。&lt;/p&gt; &lt;p&gt;閉鎖時期は2017/03/31、それに先立つ2016/12/31以降は新規オーダーを受け付けなくなります。&lt;/p&gt; &lt;p&gt;--&lt;/p&gt; &lt;p&gt;DataMarket and Data Services are being retired and will stop accepting new orders after 12/31/2016. Existing subscriptions will be retired and cancelled starting 3/31/2017. Please reach out to your service provider for options if you want to continue service.&lt;/p&gt; &lt;p&gt;--&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;例えば、Microsoft　Translator APIの場合、実際の翻訳URLなどは変わりませんが、そこで使われる認証トークンの取得が変更なります。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h5&gt;Azure DataMarketでの認証&lt;/h5&gt; &lt;p&gt;サンプルコード&lt;/p&gt; &lt;p&gt;&lt;a href="https://gist.github.com/b01abb3ddc0414157ba8d12bda9311e0:embed#Azure"&gt;https://gist.github.com/b01abb3ddc0414157ba8d12bda9311e0:embed#Azure&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h5&gt;Azure MarketPlaceでの認証&lt;/h5&gt; &lt;p&gt;サンプルコード&lt;/p&gt; &lt;p&gt;&lt;a title="https://github.com/MicrosoftTranslator/GetAzureToken/blob/master/AzureAuthToken.cs" href="https://github.com/MicrosoftTranslator/GetAzureToken/blob/master/AzureAuthToken.cs"&gt;https://github.com/MicrosoftTranslator/GetAzureToken/blob/master/AzureAuthToken.cs&lt;/a&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/539752.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[Xamarin]Xamarin.Forms Androidで画面をスリープ状態にしないためには</title><link>http://blogs.wankuma.com/hatsune/archive/2016/08/15/537561.aspx</link><pubDate>Mon, 15 Aug 2016 11:52:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2016/08/15/537561.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/537561.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2016/08/15/537561.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/537561.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/537561.aspx</trackback:ping><description>&lt;p&gt;Androidのアプリなどでロックスクリーン状態でも画面表示されているやつがあると思います。あれをXamarin.Formsでやろうとしたらどうするのか。&lt;/p&gt;
&lt;p&gt;Androidアプリの普通のノウハウがそのまま使えます。&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;[https://gist.github.com/39e69507f3f7f977b6515a08a32048de:embed#Xamarin.Forms (Android) でスリープ状態にさせないためには]&lt;/p&gt;
&lt;p&gt;&lt;a href="https://gist.github.com/39e69507f3f7f977b6515a08a32048de"&gt;Xamarin.Forms (Android) でスリープ状態にさせないためには&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/537561.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[VisualStudio]Visual Studio 2015 Update 3がリリースされました。</title><link>http://blogs.wankuma.com/hatsune/archive/2016/06/28/536412.aspx</link><pubDate>Tue, 28 Jun 2016 07:03:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2016/06/28/536412.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/536412.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2016/06/28/536412.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/536412.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/536412.aspx</trackback:ping><description>&lt;p&gt;MSNDサブスクリプションダウンロードから&lt;/p&gt; &lt;p&gt;Visual Studio Enterprise 2015 with Update 3&lt;/p&gt; &lt;p&gt;Visual Studio Professional 2015 with Update 3&lt;/p&gt; &lt;p&gt;などがダウンロードできるようになりました。&lt;/p&gt; &lt;p&gt;Update 3の内容は（いまはまだRCと表示されますが）リリースノートに詳細があります。&lt;/p&gt; &lt;p&gt;&lt;a title="https://www.visualstudio.com/news/releasenotes/vs2015-update3-vs" href="https://www.visualstudio.com/news/releasenotes/vs2015-update3-vs"&gt;https://www.visualstudio.com/news/releasenotes/vs2015-update3-vs&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;でも、Update 3の目玉はリリースノートには記載がないようです。&lt;/p&gt; &lt;p&gt;Update 3と同時に、.NET Core 1.0 SDKもリリースされていて、これを使うにはVisual Studio 2015 Update 3が必要になります。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;.NET Coreって何？&lt;/p&gt; &lt;p&gt;という人もいるかもしれません。&lt;/p&gt; &lt;p&gt;.NET Coreは、.NET Frameworkを軽量化したサブセットでオープンソースとして公開されています。Windowsだけではなく、Mac OSやLinuxでも動作します。&lt;/p&gt; &lt;p&gt;&lt;img alt="fig" src="http://www.publickey1.jp/blog/15/dotnetcore01.jpg" width="944" height="514"&gt;&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/536412.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[Windows10]マイクロソフトのモバイル戦略</title><link>http://blogs.wankuma.com/hatsune/archive/2016/06/08/536093.aspx</link><pubDate>Wed, 08 Jun 2016 23:23:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2016/06/08/536093.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/536093.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2016/06/08/536093.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/536093.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/536093.aspx</trackback:ping><description>&lt;p&gt;弊社アプリをスマホで使いたいとWindows 10 Mobile機をご購入していただけたり、短期間であれば弊社からお貸出ししてトライアルしてもらう場合が最近増えております。&lt;/p&gt; &lt;p&gt;自社保有機器といっても開発用なので手持ち機器だけではどうしても対応しきれず（予想外の引き合いの多さで緊急で予算確保のための折衝中→なんとかある程度の台数を購入できそう）端末メーカーさんにご協力いただきトライアル用端末を貸していただいていたりもします。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;そんなお客様の中でも特にWindows 10 Mobileを気に入っていただき、UWPアプリの作り方などもご質問頂いたお客様からこんなことを言われました。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;「Windows 10 Mobileはすごくよいし、自分たちもアプリを作っていくけれど、あとは心配なのはマイクロソフトの方針だね。」&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;最初、何をおっしゃっているのかと聞き返そうと思いましたが、思い当たる節があったので次のように回答しました。&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;「マイクロソフトがスマホ事業を縮小したのは、自社でつくらなくても様々なメーカーがWindows 10 Mobile機を作り出荷し始めたので、Lumiaから移籍した技術者を元の鞘に戻しただけですよ。Mobile First, Cloud Firstって方針は変わっていません。Windows 10とWindows 10 MobileはOSコアは同じですし、そのうえで動作するFrameworkも同じ.NET Coreだし、UWPアプリもどちらでも動くし、あえてデスクトップとモバイルと分けて情報発信しないでいいのでモバイルって言葉が話されなくなっているだけですよ。」&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;この説明には、すごくご納得頂けたようで、Windows 10 MobileがなくならないこととUWPやっていって無駄にならないことがわかってすごく満足な笑顔を頂いた。&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/536093.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>初音 玲</dc:creator><title>[Windows10Mobile]オープンセミナー岡山2016に登壇します</title><link>http://blogs.wankuma.com/hatsune/archive/2016/05/04/533770.aspx</link><pubDate>Wed, 04 May 2016 09:10:00 GMT</pubDate><guid>http://blogs.wankuma.com/hatsune/archive/2016/05/04/533770.aspx</guid><wfw:comment>http://blogs.wankuma.com/hatsune/comments/533770.aspx</wfw:comment><comments>http://blogs.wankuma.com/hatsune/archive/2016/05/04/533770.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blogs.wankuma.com/hatsune/comments/commentRss/533770.aspx</wfw:commentRss><trackback:ping>http://blogs.wankuma.com/hatsune/services/trackbacks/533770.aspx</trackback:ping><description>&lt;p&gt;&lt;iframe class="embed-card embed-webcard" style="display: block; width: 100%; height: 155px; max-width: 500px; margin: 10px 0px;" title="オープンセミナー2016@岡山" src="//hatenablog-parts.com/embed?url=https%3A%2F%2Foso-web.doorkeeper.jp%2Fevents%2F42344" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;cite class="hatena-citation"&gt;&lt;a href="https://oso-web.doorkeeper.jp/events/42344"&gt;oso-web.doorkeeper.jp&lt;/a&gt;&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;2016/05/14 (土)に開催されるオープンセミナー2016@岡山に登壇します。&lt;/p&gt;
&lt;p&gt;今回お話しするのは&lt;br /&gt;&lt;span style="font-size: 150%;"&gt;UWPアプリによるマルチデバイス開発最新事情&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;というタイトルで&lt;/p&gt;
&lt;p&gt;UWPアプリって実際はどうなのかbuild 2016やde:code 2016で発表された最新情報も交えて、実際のところを包み隠さずお伝えする予定です。&lt;/p&gt;
&lt;p&gt;まだまだ、iOSやAndroidに比べて情報の少ないUWPアプリですが、デバイスの価格という表面上のスペックだけではなく、サクサクと動く動作環境、作りやすい開発環境などは知らずにいたら損をすると思います。&lt;/p&gt;
&lt;p&gt;ぜひ、この機会に理解を深めに来ていませんか？&lt;/p&gt;&lt;img src ="http://blogs.wankuma.com/hatsune/aggbug/533770.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>