M12i.

学術書・マンガ・アニメ・映画の消費活動とプログラミングについて

C#

Java言語ではFunc<T>とFunc<T,U>は区別できない

この1年くらいの間Javaを離れてC#ばかりをコーディングしていました。戻ってきて愕然としたのは例えばFunc<T>とFunc<T,U>という型を仮定した時、Java言語においてはそれらが区別のつかない型、型名の競合を引き起こす型として捉えられてしまうということです。これは</t,u></t>…

Unclazz.Commons.Jsonライブラリv1.2.1リリース

C#

昨年11月に公開したJSONパーサー(かつシリアライザ) Unclazz.Commons.Jsonライブラリ のバージョン1.2.1をリリースしました。 このリリースでは以下の2つのバグフィックスを行っています: Stringリテラルに含まれるCRLFなどのエスケープシーケンスを正し…

数週間かけてC#でパーサーコンビネーターつくってみた

C#

先日ふとFastParseというScala言語で開発されているパーサーコンビネーター・ライブラリーについての記事を見つけ、それを読んでいるうちにC#言語で似たようなものを作ってみたくなりました。そして、実際に作ってみたのがこちら。README.mdからの転載となり…

VSソリューションにDocFXのプロジェクトを追加する

C#

.NETファミリー(.NET Framework、Mono、.NET Core)向けのドキュメント・ジェネレータの1つにDocFXがあります。このツール自体はVisual Studioやその他IDEからは独立したコマンドライン・ツールですが、Visual Studioソリューションの中でそのバイナリや設…

ショートファイル名で実行された場合でも*.exe.configを読み込む

C#

前回の記事で紹介したように、Windows OSの環境で.NET Frameworkアプリケーションを実行するとき、エントリーポイントとなったアセンブリの名称がショートファイル名(8.3形式)で認識されるケースがあります。この場合、アプリケーション構成ファイル *.exe…

JP1/AJS2は基本的にショートファイル名で実行ファイルを取り扱う

C#

先日の記事 JP1/AJSから実行すると*.exe.configが読み取れないケースがある で取り上げた事象の原因がわかりました。分かってみればなんのことはありません。「それは仕様です」ということでした。 JP1/AJS2はPCジョブの[詳細定義]ダイアログボックス*1の…

JP1/AJSから実行すると*.exe.configが読み取れないケースがある

C#

JP1/AJSから.NET Frameworkのコンソールアプリを実行したときに起こることがある事象についてです。今のところ、なぜこれが起こるのかわかっていません。したがってこれが.NET Frameworkの問題なのか、当該アプリ固有の問題なのか、それともJP1/AJSの問題な…

Visual StudioでNUnitのテストケースが表示されなくなった

C#

Visual Studio 2017とNUnit 3.7の組み合わせで遭遇した事象とその対策方法です。stackoverflowのこちらの記事で見つけました。 事象 Visual StudioのテストエクスプローラにNUnitのテストケースが表示されなくなった。前日までは表示されていたのに、いつの…

空のAssemblyKeyFile・AssemblyKeyName属性の罠

C#

最近仕事でひとさまがC#で作成したライブラリをリファクタリングする機会がありました。既存コードに対してもそうですが、とくにリファクタリングで追加したコードに対してはきっちりUTを実施する方針です。そこで既存のプロジェクトに加えて同一ソリューシ…

macOS x NuGet v4.1で*.csprojに基づくパッケージ作成

およそ半年前の記事「maxOS環境でNuGetパッケージをつくる」を投稿した段階では、macOS上でNuGetによるパッケージ作成をしようとしたとき、nuget pack *.csproj -Build ...コマンドを実行した時点でエラーとなる状態でした。*.nuspecファイルによるパッケー…

ISBNコードのシリアライザ/デシリアライザをつくった

C#

まあ背景事情がないでもないのですが。。思い立ったが吉日とばかり、あれこれの予定をすっぽかしてISBNコードの仕様を調べて、シリアライザ/デシリアライザをつくってみました。ISBN-10・ISBN-13のいずれにも対応しています。単体テストはNUnitで、動作確認…

イベントログ1530直後に実行中の複数CLRプロセスでエラー発生

C#

直近、仕事で保守しているバッチシステムで、同時に実行されていた複数の.exeがある時間帯─数十秒間にほぼ同時にエラーとなるという事象が発生しました。標準エラー出力やエラーログに出力された内容は.exeにより様々で「インターフェイスがサポートされてい…

VS for Mac正式版インストーラを実行したらXamarin 6.3がインストールされた。。

この程正式版リリースとなったVisual Studio for Macですが、さっそくそのインストーラをダウンロードし実行してみたらXamarin Studio 6.3がインストールされました。。もちろんVisual Studio for MacはXamarin Studioをベースにしています。そうはいってもX…

『Exam Ref 70-483 Programming in C# (MCSD)』の章立ての謎

Exam Ref 70-483 Programming in C# (MCSD)作者: Wouter de Kort出版社/メーカー: Microsoft Press発売日: 2013/07/25メディア: ペーパーバックこの商品を含むブログを見るMicrosoft社の認定試験70-483の参考書です。同試験の参考書として事実上入手可能な唯…

xUnitハンズオン資料をSlideShareで公開

C#

昨年末以来、数回にわたって職場で開催してきた「xUnitハンズオン」の資料をSlideShareで公開しました。サンプルコードも含むファイルセットはGitHubのリポジトリ上にもコミットしてあります。 GitHubのリポジトリ SlideShareのプロフィール xUnitハンズオ…

Sphinxの拡張機能"sphinx-csharp"に機能を追加

Sphinxの拡張機能"sphinx-csharp"に機能を追加したときのメモ。 やりたかったこと pipを通じてインストールできるSphinxの拡張機能"sphinx-csharp"に機能を追加したい。より具体的に言うと、この拡張機能が提供してくれるC#言語用のドメイン(ディレクティブ…

Visual StudioソリューションをTravis CIでビルド&テストする

C#

Travis CIはGitHub上のGitリポジトリでバージョン管理されているプロジェクトのコードに対して、PushやPullリクエストをトリガーにして自動的にビルドやテストを実行して結果をログしてくれるサービスです。OSSのプロジェクトに対しては無償、それ以外のプロ…

NLogをプログラマブルに初期化し動的に構成変更する

少し前に、TAC(Talend Administration Center)のRPCインターフェースを突っつくためのC#ライブラリを作成しました(リポジトリはこちら)。そして直近これに手を加える中でNLogを使う機会を得ました。Log4nなどと同様NLogもXMLファイルで設定を記述するの…

CLI構築ライブラリ"Unclazz.Commons.CLI"をつくってみた

C#

昨日はJSONパーサー/ビルダーでしたが、調子に乗って今度はCLI構築ライブラリを切り出しました。「切り出す」といってもだいぶ独自のものに仕上がってしまいましたが。。Unclazz.Commons.CLIは.NETランタイム上で実行するコンソール・アプリケーションからコ…

JSON操作ライブラリ "Unclazz.Commons.Json" を公開

C#

半ば趣味、半ば必要に迫られて作ったJSON操作ライブラリを公開しました。C#アプリケーションからJSONをパースしたり、構築したり、フォーマットしたりできます。先日別の記事でご紹介したTAC(Talend Administrator Center)のRPCクライアント・ライブラリの…

macOS環境でNuGetパッケージをプッシュする

さて、今回は前回記事よりはだいぶマシでした。正直に申し上げて今回の手順はこちらのQiita記事の内容とほとんど変わりありません。ただしちゃんとハマりどころはあるのでご安心いただきたいのです。 環境 環境については前回と変わりません。例によってどこ…

maxOS環境でNuGetパッケージをつくる

例によって見事なまでにエラーと警告の嵐だったのでメモしておきます。NuGetの公式リファレンスやGithubのIssues、この記事を含む日本語の記事もいくつか参照しましたが、何と言っても役に立ったのはstackoverflowのエントリーでした。。。[2017/05/25追記…

Ubuntu上のMonoDevelopでASP.NET Core 1.0開発環境をつくるのは時期尚早?

MonoDevelopおよびXamarinのアドイン開発者Matt Ward氏のブログ記事"ASP.NET Core 1.0 RC2 support in Xamarin Studio"を参照しつつ、先日用意したUbuntu 16.04上でASP.NET Core 1.0開発環境をつくろうとしてみましたがうまく行きません。。"Unable to initi…

Ubuntu16.04上にASP.NET MVC 5.2開発環境をつくる

前回の記事ではUbuntu14.04をターゲットとして、ASP.NET MVC 5.2の開発環境を構築しました。今回はその追補として今年4月にリリースされたUbuntu16.04をターゲットにした場合の方法を記載しておきます。もともと14.04をターゲットにしたのは「本筋と関係のな…

Ubuntu14.04上にASP.NET MVC 5.2開発環境をつくる

引き続きC#/.NETについてお勉強をしている今日このごろですが、きょうはUbuntu上にASP.NET MVC 5.2開発環境をつくるというのを試してみました。最終目標はKestrelを使ったサーバ環境構築ですが、だんだんと行きましょう。今回はともかく開発環境です。あらか…

TACのRPCインターフェースMetaServletのクライアントをつくってみた

C#

前提・問題 最近しごとでTalendに関わる機会がありました。と云いますか随分前からなのですが。よくある顧客上層部の決定にみんな引っ張られる式で「とにかく何でもTalend」です。どうにもならないものもありますが、それはそれとして運用面で看過できない欠…

XamarinでつくったTestFixtureをVisualStudioで実行する

C#

前提 Xamarin Studio(以下Xamarin)ではVisual Studio(以下VS)と同じソリューション構成でC#のコンソールアプリを作成できます。前掲の通り3つの.NETプラットフォームは、それぞれに異なるアプリケーションモデルを提供していますが、コンソールアプリは…

Rich Landerの".NET Core Guide"を読む

C#

Microsoftが公開している.NET Core関連のドキュメントのうち".NET Core Guide"(Rich Lander)を読んでみました。例によって雑な翻訳を載せておきます(2016/07/19取得)。 * * *.NET CoreはMicrosoftおよびGitHub上の開発コミュニティによりメンテナンス…

C#のメソッド戻り値や可視性が共変(Covariance)でないのが地味ーに窮屈

近ごろお手製ライブラリのJava版とC#版のあいだを行き来していて、その中で地味ーに窮屈だと感じているのが、「C#のメソッド戻り値や可視性が共変(Covariance)でない」ということです。※一応註記しておくと、ここで「戻り値の共変」と述べているのはジェネ…

JP1/AJS2ユニット定義パーサAPIをC#向けにポーティングした

すでに何度も紹介してきたJP1/AJS2ユニット定義パーサAPIですが、最近取り組んでいるC#のお勉強の「実践編」としてC#向けにポーティングしてみました。リポジトリはこちら。サンプル・コードをご覧になればお分かりのように使い方はほとんどかわりません。途…