M12i.

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

C#

Oracle.ManagedDataAccess v12.1.022でOracleDB 12.1.0.2.0に接続しORA-12570

オンプレ環境に配備されていたOracleDB 12cからOCI(Oracle Cloud Infrastructure)に構築されたOracleDB 12cへ移行しようとしたときに確認されたエラーです。 前提 DBに接続するアプリケーションはC#で実装さてている。 DB接続のためのドライバにはOracle.M…

"MCP 70-483 Programming in C#"を受験

C#

ここ1年お勉強をする時間と気力がなく、日々貯金を切り崩すような感覚で仕事をしていたのですが、そろそろ余力が出てきたところで、思い立ったが吉日とばかり "MCP 70-483 Programming in C#" 試験の受験をしました。実は 去年4月に参考書(後述)を買ってい…

ASP.NET Core 2.0でWebAPIにXSRF対策を仕込む

C#

今日はASP.NET Core 2.0でWebAPIのコントローラーのアクションが起動するまえにXSRF対策の事前チェックを行う方法を調べていました。HTMLのform要素をPOSTリクエストの送信元とする場合については情報も多くありました。しかし、jQueryのような低レベルのAPI…

EntityFramework CoreとNpgsqlでPostgreSQLアクセス

C#

そろそろ.NET Core系のプロダクトを使ってアプリを作ってみようと思い立ち調べものをはじめました。まずはEntityFramework Coreの使い方です。アプリのデータベースにはPostgreSQLを想定しているので、EntityFramework CoreとNpgsqlを使用してPostgreSQLにア…

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は基本的にショートファイル名で実行ファイルを取り扱う

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

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

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#作者: Wouter de Kort出版社/メーカー: Microsoft Press発売日: 2013/07/29メディア: ペーパーバックこの商品を含むブログを見る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」です。どうにもならないものもありますが、それはそれとして運用面で看過できない欠…