xin9le.net

Microsoft の製品/技術が大好きな Microsoft MVP な管理人の技術ブログです。

脱・読みづらいコード!今日から一段上のプログラマーになる方法 5 選

「ソースコードを綺麗に書く」というのは、プログラマーであれば誰しもが心掛けたいと思っている極めて重要な事柄です。そもそも「綺麗なコードってなんぞ?」という感じですが、いくつかあると思います。 改行位置/空行の数/インデントなどに一貫性があり整…

30 分のライブコーディングでテトリス作った

2016/2/20 (土)、Japan ComCamp 2016 powered by MVPs という Microsoft MVP が中心となったイベントが全国一斉に開催されました。僕は例年通り北陸エリア (金沢開催) を担当していて、毎年恒例で超大好評の C# MVP によるドキドキ・ライブコーディング対決…

多次元配列を LINQ で簡単に扱おう

コレクション操作と言ったら LINQ!もはやコレがないと今の時代のプログラマとしてご飯を食べていけなくなるくらい、ないと困る存在であり強い味方です。 以前インデックス付きで簡単にアクセスする方法として、Indexed 拡張メソッドを作ってしまおうという…

Null 許容型の既定値付き文字列変換

タイトルはそれっぽいですが、大したことありません。何度も作るのがめんどくさいのでメモとして残しておこうというだけのカジュアルなものです。 Null 許容型の文字列化 Web でもクライアントでもそうですが、MVVM 的な考え方をする場合に「データとしては …

DeclarativeSql v0.2 リリース

もう半年以上前から構想はしていたけれど、案の定 (?) 放置し続けてきた自作のデータベースアクセス補助ライブラリ DeclarativeSql。搭載したかった機能の中でも特に重要度が高かった機能を詰め込んでアップデートしました。この記事を書いている今現在はま…

Azure で Oracle VM 立てたらサービス停止くらった話

明けましておめでとうございます!今年の元日は DeclarativeSql の vNext を作ろうということでほぼコーディングをして過ごしていました。 これまでしばらくやるやる詐欺をしていたのですが、実際に製品で使ってくださっている方から「とても便利で感激した…

Azure Web Appsで補足できなかった例外を確認する

ここ 3 ヵ月ほど Mashup Award 11 向けのサービスを作っていました。そこで相も変わらず超お手軽な Azure Web Apps を使っていたのですが、本番のデモ中にサービスがダウンするという事件が発生しました。独自に記録していたアクセスログが途切れていたので…

Microsoft MVPが社内システムを担当するのは本当にもったいないか

私が Microsoft MVP を受賞したのは 2012 年 7 月でした。ちょうどその頃から社内システムの開発に従事するようになり、早 3 年が経ちました。そんな話をすると「MVP が社内システムを作ってるなんてその会社は何してんの?宝の持ち腐れじゃん」と言われるこ…

NuGetパッケージの取得エラーを回避する

諸事情で CocosSharp を使ってみようということになり NuGet から PCL 版の取得を試みました。 ですが、安心した顔で待っていたら以下のような大変不親切なエラーを見てガッカリ...。 私の現在の環境は Visual Studio 2015 Enterprise ですが、バージョンが …

OWINセルフホストのサービスを外部公開する

ASP.NET 5 が OWIN を互換レイヤーとしてサポートすることを決定したということで、OWIN is dead などという記事を書いたわけですが。率先して選ぶことは減ってきているのかもしれませんが、そうは言っても OWIN は (一応) 現役です。 ASP.NET 5はどうしてOW…

ClickOnceアプリケーションを外部exeから起動する

ClickOnce を使ってアプリケーションを配布している人は減っているような気がしないでもないですが、そうは言っても社内イントラネット環境などではやはり重宝します。そうするとアプリケーション連携などで ClickOnce アプリケーションを別の exe から起動…

Docs.com はじめました

Microsoft さんが新しく Docs.com というドキュメント公開/共有サービスを始めました。Office ファミリーのひとつとして位置付けられており、Word / Excel / PowerPoint / PDF の各種ドキュメントのほか、新しいプレゼンテーションツール Sway にも対応して…

ASP.NET MVC 6でCamel CaseなJSONを出力する

半月ほど前になりますが Visual Studio 2015 が正式にリリースされました。コードページの問題などいろいろありますが、本当にたくさんの機能追加や機能改善があります。そんな機能たちの中でも最近は特に ASP.NET 5 / MVC 6 に関心があって、サンプルとして…

SignalRのコネクション切断時に自動再接続する

リアルタイムな双方向通信を容易に実現させてくれる SignalR。その特性上、常時サーバー側とクライアント側のコネクションを張っています。定期的に ping を飛ばし合って死活監視を行い、長時間接続状態を確認できなければコネクションは切断されたものとみ…

非同期メソッド単位で値を保持/提供するAsyncLocal<T>

2015/07/20 深夜、ついに Visual Studio 2015 が正式リリースされました。同時に .NET Framework も 4.6 にバージョンアップ。以下の記事にもある通り、関連の言語やライブラリも数多く更新されています。 Announcing .NET Framework 4.6 .NET 4.6 (@mataril…

AccessViolationExceptionを捕捉できるようにする

最近お仕事で開発している SignalR 製の Web アプリケーションが本日... を遂げるという怪奇事件が起こりました。常時接続なので落ちないように結構気を配っていたので、かなり思わぬ事態でした。何事かとイベントビューアーでログを見ていると、ODP.NET を…

Visual Studio CodeのShell拡張を一括削除する

Visual Studio Code を使っている方はどれくらいいるでしょうか?クロスプラットフォームなコードエディターとしてにわかに注目を集めるコイツですが、Windows 環境にインストールするとエクスプローラーのファイル選択時の右クリックメニューにコマンドが表…

Microsoft MVP for .NET 4 期目受賞しました!!

大変ありがたいことに、今年も Microsoft MVP を受賞しました!昨期は Visual C# のカテゴリーでの受賞でしたが、今年は Visual Basic や F# とのカテゴリー統廃合により .NET での受賞です。今回で 4 年連続 4 期目。こんなに長い間、しかも継続できるなん…

ASP.NET 5アプリをDocker上で実行する

前回は ASP.NET 5 アプリケーションを Linux 上で動作させてみました。今回はもう一歩進んで Linux OS 上に作成した Docker コンテナ上で実行してみます。de:code 2015 のキーノートでもデモが行われていたのは記憶に新しいですね。 de:code 2015 キーノート…

ASP.NET 5アプリをLinux上で実行する

ここ 2 回の投稿では、ASP.NET 5 アプリケーションを Mac OS / Azure Web Apps 上で動かす方法について見てきました。 ASP.NET 5アプリをMac OS上で実行する - xin9le.net Azure Web AppsにASP.NET 5アプリを配置する - xin9le.net .NET Core は Mac OS だけ…

Azure Web AppsにASP.NET 5アプリを配置する

今 ASP.NET 5 がアツい!(個人的に。前回は Mac OSX で動作させるところをやってみましたが、今回は Azure Web Apps です。ここで動かせることが確認できさえすれば、個人的な Web アプリケーションプロジェクトは ASP.NET 5 ベースにシフトさせても良いかな…

ASP.NET 5アプリをMac OS上で実行する

//build/ 2015 の基調講演で Mac OSX / Linux 向けの .NET Core 5 が Preview 版として公開されたとの発表がありました。 そんな発表からもうひと月が経過しましたが、遅ればせながら実際に Mac OSX 上で動作するかを試してみました。基本的には以下のチュー…

IAsyncDisposableについて考えてみた

Visual Studio 2015 も RC (= リリース候補版) となり、C# 6.0 も Go-Live となりました。言語チームは Roslyn という大物の開発に注力していたため、C# 6.0 は細かな使い勝手の向上を中心とした比較的小規模な機能追加となっています。詳細は以下をご覧いた…

Rx入門 (29) - メソッドの別名を提供するRx-Aliases

Rx

これまで全然気付いてなかったのですが、NuGet パッケージマネージャを眺めていたら Rx-Aliases というパッケージがあることに気付きました。約 1 年程前からリリースされているようですが、ダウンロード数が 500 に到達していないあたりメジャーでない感じ…

Azure上のリソースを別リソースグループに移動する

ひとつ前の記事でも紹介しましたが、Microsoft Azure のプレビューポータルからリソースグループという概念が導入されました。そして、各リソース (= Web Apps / 仮想マシンなどのサービスひとつひとつ) は必ずどこかのリソースグループに属するようになって…

クラウドサービスを指定のリソースグループ内に作成する

Microsoft Azure の プレビューポータル にはリソースグループという考え方が導入されています。簡単に言うと、1 つのアプリケーション内にある複数のリソースをまとめて管理するための論理的なグループのことです。現行の管理ポータルを利用している範囲で…

Monaco上のファイルを一括ダウンロードする

Azure Web App (旧 Azure Websites) に統合されているオンライン IDE の Visual Studio Online "Monaco"。多くの開発言語/ファイル形式をサポートし、ビルドしたり出力結果が表示できるのは当然こと、シンタックスハイライトやインテリセンスによる補完まで…

北陸新幹線開通記念!北陸・信州合同勉強会に参加してきました

2015 年 3 月 28 日 (土)、北陸新幹線の開通を記念して Hokuriku.NET と JAZUG 信州で合同勉強会を開催しました。多くの方に遠方からお越しいただき、本当に活気に溢れた勉強会となりました。最新の Azure 事情から、地方でスタートアップをする方法や可能性…

IIS上のPHP環境で気を付けるべき3つのタイムアウト制御

C#/.NET はサーバーからクライアントまで、そして今となっては iOS / Android などのモバイルでも使える超オールマイティな言語です。たったひとつの言語で一気通貫した開発ができることは、極めて効率的と言えます。 Powered by C# - Microsoft Visual Stud…

パラメーターなし構造体コンストラクタ

C#

C# 5.0 までは構造体 (struct) はパラメーターのないコンストラクタを作ることができませんでした (IL の制約ではなく C# の言語仕様としての制約)。これが結構「ぐぬぬ...」なときがありましたが、C# 6.0 では晴れてこの制限が解放されました。 struct Poin…