銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

C#

VisualStudio 2015 のcsproj をいじるためのVS拡張 CSProjUtil をリリースしました

インストールはVisual Studio Galleryから。 visualstudiogallery.msdn.microsoft.com コードはGitHubで公開しています。 github.com 使い方はVisual Studio Galleryの方に載せていますが、ソリューションエクスプローラーでプロジェクトを右クリックして「C…

jsonをクラスとして貼り付けたあとに、プロパティ名をPascal Case に変更する CodeFixProvider を作ってみた (要Json.Net)

最近のVisual Studioでは jsonの文字列をコピーして、C# のクラスとして貼り付ける機能があります。 なんですが、これ元のjsonのキーが snake_case の場合、できたC#のクラス名も snake_case になるので気持ち悪いんですね。 C# でjsonを扱う多くの場合、Jso…

#5joffice で VSTO について話してきました

html5j 番外編 Microsoft Officeセミナー その1 で、「Introduction to VSTO」というタイトルでVSTOについて話してきました。 html5j 番外編 Microsoft Officeセミナー その15joffice.doorkeeper.jp 資料はこちらになります。 20150423 introduction tovsto …

Visual Studio 拡張(VSIX)用のプライベートリポジトリを作ろう

最近 Visual Studio拡張ツールの開発にはまっているのですが、パブリックに公開したいものであれば Products and Extensions for Visual Studio で公開するのがお手軽ですし、ダウンロードもしてもらえます。しかし、時には社内にのみ配布したい拡張もあるで…

Open for PowerShell Cmdlet v1.1 をリリースしました

OpenForPSCmdlet extensionvisualstudiogallery.msdn.microsoft.com すでにインストールしている方はアップデートがかかるはずです。 v1.0ではモジュールをImportした状態でPowerShell Consoleが開きましたが、v1.1ではこのConsoleのプロセスにアタッチして…

PowerShell Cmdlet のデバッグを楽にする、 OpenForPSCmdlet VS拡張

PowerShell Cmdlet のバイナリモジュールを作ったことがある方はわかるとおもうのですが、バイナリモジュールを実際にPowerShellで実行して動作を確認するためには、ビルドしたdllをImport-Moduleで読みこむ必要があります*1。さらに、一度 Import-Module す…

PowerShell Cmdlet バイナリモジュールのプラクティスまとめ (1) スレッド・Rx編

今まで何度か、PowerShell Cmdlet バイナリモジュール(C#でdllを記述し、Import-Moduleで利用するCmdlet)について書いてきました。実際、Cmdletを実戦投入して運用していますが、実際に運用してみるとなかなかはまりどころが多いこともわかりました。何回か…

リモート接続先で接続元の情報を C# で取得する

C#

リモート接続先で起動するアプリで、接続元の情報を取得したい事案が発生しました。 そんなときはこの関数を使えばよさそうです*1。 WTSQuerySessionInformation 関数 DllImportすれば C# でも書けますね、ということで書いてみました。sessionId は WTS_CUR…

パイザオンラインハッカソン4 の C# での解答を晒してみる

C#

パイザオンラインハッカソン4 というのが行われているのですが*1、 エンジニアでも恋がしたい〜転職初日にぶつかった女の子が同僚だった件〜|paizaオンラインハッカソン4 Lite なんかTwitterで@numa08氏を煽ってしまったようなので、せめて自分の解答くらい…

CLR/H in Tokyo 第7回で ETWとカスタムパフォーマンスカウンタについて話しました #clrhtky7

CLR/H in Tokyo 第7回 で話してきました。 CLR/H in Tokyo 第7回 (2014/12/20 10:30〜) 資料はこちらになります。 20141220 clrh etw from Takayoshi Tanaka 資料中にリンクはあるのですが、ETWとは?とか今までのイベントログとの違いとは?についてはこち…

【読み始めました】 「Pro Unity Game Development with C#」

Unity Advent Calendar の10日目のエントリ...だったのですが、いろいろ体調不良が重なり当初書評を書く予定で読んでいた本が読み切れませんでした...というわけなので、なぜこの本を読もうとしたのかと、読んだところまでの感想を書きたいと思います。 Unit…

ASP.NET/IIS 上で X509Certificate2 をバイト配列指定で生成するときは、 Application Pool の実行ユーザーのプロファイルを読みこませないといけません

C# Advent Calendar と ASP.NET Advent Calendar の9日目のエントリです。 C# Advent Calendar 2014 - Qiita ASP.NET Advent Calendar 2014 - Qiita もともと別の内容を書くつもりだったのですが、仕事であまりにはまったことがあったので、それを書こうと思…

.NET アプリから BigQuery に Streaming Insert する方法

このブログは Google Cloud Platform Advent Calendar 2014 の7日目のエントリです。 Google Cloud Platform Advent Calendar 2014 - Qiita Google Cloud Platform Advent Calendar 2014 - Qiita さて、以前テーブルをAPIから生成する方法は紹介したのですが…

PowerShell Cmdlet の中でRxを使いたい

PowerShell Advent Calendarの4日目の記事です。 PowerShell Advent Calendar 2014 : ATND PowerShell Advent Calendar 2014 : ATND 去年もPowerShell Advent Calendarなのに C# な話だったんですが、今年も性懲りもなくC# コード満載のCmdletネタになります…

CloudWach (Windows版)に.NET アプリから独自のイベントログとパフォーマンスカウンタを送信する方法

このエントリは、AWS Advent Calendar 3日目の記事です AWS Advent Calendar 2014 - Qiita AWS Advent Calendar 2014 - Qiita 先日出た CloudWatch にWindows Serverからイベントログやパフォーマンスカウンタの値を送信できる機能ですが、これを使うことに…

Visual Studio 2015 で強化されたリファクタリング機能について

Visual Studio 2015 の1日目です。 Visual Studio Advent Calendar 2014 - Qiita Visual Studio Advent Calendar 2014 - Qiita 一発目なので最新の機能の中からデバッグ関連の機能を軽く紹介したいと思います。 リネーム機能 変数名のリネーム機能が強化され…

第7回中心会議で C# 6.0 を中心にお話ししてきました #devchu

第7回業開中心会議 『2015年に到来する大変革「次期.NET/ASP.NET/Visual Studio、Windows 10」に備えよ』 で、話した資料になります。 20141129-dotNet2015 from Takayoshi Tanaka 20141129-dotNet2015

TopShelf と MSDeploy で作る、Windowsサービスお手軽自動展開環境

Windows上で長期間に渡ってバックグランドで動くようなプログラムを作るのに、Windowsサービスを使うことができます。 Windows サービス アプリケーションの概要 なんですが、WindowsサービスをVisual Studioにデフォルトで用意されているものだけで作ると割…

App.config の config変換をしてくれる便利すぎるVisual Studio 拡張「Configuration Transform」

コンソールアプリやWPFアプリを作っていて、アプリのコードは同一だけど配置先に応じて設定を切り替えたい、ということはないでしょうか?Webアプリの場合、 Web.config を変換する仕組みがデフォルトで備わっていて、このブログでも触れたことがあります。 …

VisualStudio "14" CTP4 の .NET 関連アップデート

C#

ここにきてアップデート関連の情報が多くなっている気がしますが、Visual Studio "14" CTP4 が出ました。リンク先から飛べるダウンロードページ、もしくは AzureのImageギャラリーから利用可能です。 .NET Blog Announcing October 2014 Updates to .NET Fra…

C# で WMI を使って実行中プロセスの一覧とそのオーナーを取得する

とあるC#で書いているツールでプロセスIDからそのプロセスのオーナーを取得する必要が出てきました。自分のプロセスであれば比較的容易に取得できますが、他プロセスの情報となると難しくなります。そこで、WMI .NET を利用してプロセスの一覧とそのオーナー…

Primary constructors と Declaration expressions は C# の次のバージョンから取り下げられるようです

C#

C# の次のバージョンはRoslynが導入されるとともにいくつかの新機能が追加される予定で、どの機能が追加される見込みなのかはこのページにまとまっています。 .NET Compiler Platform ("Roslyn") - Home 日々更新されていますが、今週 Primary constructors …

IIS の HttpModule で EventSource を使ってデバッグしてみる

突然ですが、IIS にカスタムHTTPモジュールを追加することができます。 チュートリアル : カスタム HTTP モジュールを作成および登録する が、これ絡みでバグが起きたのでデバッグしようと思ったのですが、割と手段がなくてつらたんでした... そこで、今回は…

Google BigQuery で空のテーブルを C# から作成する (Client Library for .NET)

時代はGoogle BigQuery ということで、最近BigQueryを触っています。BigQuery はWebのコンソールが用意されていて割とすぐに使えるのですが、空のテーブルを作成するのは、CLIツールかREST API経由のみのようです。(GUIからは、ファイルを読みこんで、テー…

Amazon Redshift への COPY コマンドで ISO 8601形式の時刻表記は完全にはサポートされていませんでした

Amazon RedShift にS3に上げたファイルからレコードをロードするときは、COPYコマンドが使えます。COPYコマンドにはいくつかのオプションがあるのですが、ファイルに記述されているJSONの中の日時文字列のフォーマットを設定するオプションがあります。 SLAB…

めとべや東京#5 で Universal App で Bluetooth を遊ぶ方法についてセッションをしました

ということでセッション資料です。 20140802 Bluetooth を使って Universall App で大連携 from Takayoshi Tanaka 資料中に出てくるGitHubのリポジトリは以下の2つです。 tanaka-takayoshi/BluetoothRfcommUniversalApp · GitHub MSDN Blogs をユニバーサル…

めとべや東京#5 で Universal App で Bluetooth を遊ぶ方法についてセッションをしました

ということでセッション資料です。 20140802 Bluetooth を使って Universall App で大連携 from Takayoshi Tanaka 資料中に出てくるGitHubのリポジトリは以下の2つです。 tanaka-takayoshi/BluetoothRfcommUniversalApp · GitHub MSDN Blogs をユニバーサル…

EnterpriseLibrary 6のSemantic Logging Application Block (SLAB) で Out-of-Process なログ出力を試してみる

数か月前にこういうセッションをして紹介したSLABですが、 20140329 modern logging and data analysis pattern on .NET from Takayoshi Tanaka 肝心の導入の仕方とか使い方は説明しないままでした。また、 id:okazuki 先生がわかりやすい SLABの解説を書い…

Microsoft MVP for Visual C# を受賞しました(2年連続2回目)

C#

タイトル通りですが、昨年初受賞したのにつづいて、今年も受賞することができました。カテゴリは引き続きVisual C#、期間は2014年7月~2015年6月です。 昨年の受賞では、主に趣味で開発していたWindows PhoneアプリやWindowsストアアプリに関するテーマでの…

#めとべや東京 #4 で The Next Generation for C# Developers  というセッションをしました

大仰なタイトルつけましたが、久しぶりにMVP for C# なセッションをした気がします。