C#

ValidationAttributreでDIされたオブジェクトを取得する

こんにちは。beaglesoftの真鍋です。 このところ、開発しているときにあれどうだったっけ…?ってGoogleとかで検索をすると過去に書いたブログのエントリーが表示されることがあり記録を残すことは大事だと痛感してながら開発をしています。 以前同じような内…

C#でKuromojiを利用して形態素解析を試してみる

こんにちは。beaglesoftの真鍋です。 ちょっとC#で形態素解析をしたいと思いましてLucene.Net.Analysis.Kuromojiを利用してみました。 www.nuget.org むかしC#で形態素解析をしたときにはNMeCabを利用しました。 www.nuget.org とても便利に使わせていただき…

SerilogでログレベルをSkinごとに設定する

こんにちは。ビーグルソフトの真鍋です。 ASP.NET MVC Coreもバージョンが2.1になってちょっと盛り上がってきた感があるようなないような感じですが、いろいろとエコシステムもこなれてきて大分何をするにも困らない状況になってきた感じがします。今回はロ…

ASP.NET MVC Core2でステートレスな構成を作るための設定

こんにちは。beaglesoftの真鍋です。 ASP.NET Core で構築しているレポートシステムの開発が大分すすんで本番環境で稼働させられるところまで来ました。本番環境を構築して社内で利用してみるといろいろな課題画見えてきます。そんな中でちょっと直面した問…

C#でRestSharpを利用する

HttpClientはいろいろあるらしい 外部のRestAPIを実行しようとしたときにC#であればHttpClientを利用するのがいいかと漠然と思っていたのですが、意外と罠が多いことを知りました。 .NETのHttpClientの取り扱いには要注意という話 - Qiita 確かにMSのサイト…

automapperを6.1.1から6.2.1へバージョンアップしたら例外がスローされた

開発の区切りが良かったのでライブラリを一斉にアップデートしたところAutoMapperの初期化のタイミングでテストがコケるようになりました。例外は以下の内容です。 System.InvalidOperationException: 'Mapper already initialized. You must call Initializ…

migrationのテーブル名や列名をLowerSnakeCaseに設定する

EF Coreを利用してCodeFirstでMigrationによりデータベースのテーブルを作成するときですが、テーブル名と列名がC#のプロパティ名となるため、デフォルトではUpperCamelCaseになります。 これを変更するにはテーブル名であれば{Table("table_name")、列名で…

異なるプロジェクトにあるContextでMigrationを実行する

複数のプロジェクトで構成されたソリューションのうち、Startupプロジェクト以外でef migrationsを実行する場合には以下のようにDbContextを含むプロジェクトでマイグレーションコマンドを実行する必要があります。 SampleSln -- StartupProject -- Reposito…

C#でDbGeographyに定義したPolygonの巻きを補正する

こんにちは。beaglesoftの真鍋です。 SQL ServerでGeographyのポリゴンを扱う場合には右巻/左巻で世界が一変するわけで、結構重要です。普通はSQL Serverで以下のクエリを発行すればよしなに行ってくれます。 -- geomがポリゴンを保存しているGeeography型の…

EFのMigrationでDefaultValue制約を削除する

こんにちは。beaglesoftの真鍋です。 SQL Server上でEntityFramework4を利用したCodeFirst開発を行う時のことなのですが、NotNull制約(Require属性)を設定した列の定義をNullableへ変更するとき、MigrationでDefaultValue制約を削除する処理を追加しなけれ…

beaglemapを少しだけ改修しました

みなさん、こんにちは。beaglesoftの真鍋です。 先日のりといきおいで公開したbeaglemap - beaglemapですが、少しだけ改修しました。主な回収内容は表示と不具合です。 表示 地図を表示するために住所を検索するのですが、この処理が遅いので処理中表示を行…

YOLP(地図)に市区町村の町目境界をマッピングする

こんにちは。beaglesoftの真鍋です。 ちょっとお試しなのですが、YOLP(地図):YOLP(地図) - Yahoo!デベロッパーネットワークを利用して市区町村の町目境界を表示するアプリケーションを削井してみました。まだ、複数の市区町村が表示されるときに中心が1つ目…

C#でリストを持つエンティティからフラットな構成のXMLを作成する

こんにちは。beaglesoftの真鍋です。 XMLを作成するときに、Listなどのフィールドを保持するクラスからXMLを生成するときに、要素が二重になってしまうことがありちょっと調べたことがありますのでまとめます。 サンプルの全体はGitHubからダウンロードでき…

MSTestが動作しない…

ある日突然MSTestがうんともすんとも言わなくなりました。ResharperのUnitTestRunnerを利用してテストを行っても全く反応がないのです。いろいろと調べてみたのですが、よくわかりませんでした…。 とりあえず、NUnitに載せ替えようかなどと考えつつ途方に暮…

SQL ServerのID列に明示的な値を追加する

EntityFrameworkを利用しているとSQL ServerでもID列を利用することが多いのですが、モデルを変更時にデータを再登録しなければならないときはちょっと面倒です。 Railsの場合、テーブルスキーマに対応するモデルの変更があった場合もデータを保持してくれる…

リフレクションでインスタンスのプロパティを取得する

C#

リフレクションを利用するときのメモ。instanceオブジェクトのプロパティ一覧を取得してから、プロパティの値を取得する方法。 取得対象はpublicなプロパティ。 [sourcecode language="csharp"] var infoArray = instance.GetType().GetMembers(BindingFlags…

BitConverterで文字列化したByte配列を復元する方法

暗号化モジュールなどを利用する場合、暗号化後のByte配列の扱いに困ることがあります。Unicodeでエンコードした文字列にすると、複合時にうまくいかなかったり…。 ということで、わたしはByte配列をシリアル化して保存する場合、BitConverterを利用していま…

LinqでXMLデータからいろいろ取得

C#

XMLデータを扱う場合にXMLTextReaderを使用してごにょごにょしていたのですが、どうにもすっきりしませんでした。ちょっとプログラミングC# 第6版をめくってみるとどうやらLinqでXMLを操作できるらしいということでしたので早速試してみました。 試してみた…

byte配列をごにょごにょと…

C#

Byte配列を文字列へ変換し、文字列からByte配列へ戻す方法のメモ。@ITのこちらを参考にしました。 [sourcecode language="csharp"] private static void Main(string[] args) { byte[] orgByteArray = { 0, 1, 2, 10, 11, 12, (byte) 'a', (byte) 'b' }; // …

プログラミングC# 第6版

C#

このところRubyばかりでしたが、まだまだ仕事では.NETを利用します。ここ半年ほどはほとんど.NETの技術はキャッチアップしていなかったのでそろそろ置いてけぼり感を感じてきたのでスキルのキャッチアップを行おうと思います。 先日のエントリーではEntityFr…

EntityFramework4.1 コードファースト

久しぶりに自宅でVisual Studioを起動しました。 WEB+DB Vol.66の「いまどきの.NET開発 第4回」に記載のあったEntityFramework4.1 コードファースト を少し試してみました。ちょうど1年ほど前に簡単なプログラムを作ろうと思ったときにもEntityFrameworkを利…

プログラムを書くときとHTMLを書くときの参考書籍の違い

私はごく平凡なプログラマで、どちらかというと人よりスキルが低い部類に入ると思います。そんな私は新しい言語を身につけるときには大体3セットの書籍を購入してきました。 通読できる書籍 参照できる書籍 中級者向けの書籍 通読できる書籍とは、C#であれば…

Microsoftキーボード

最近MSネタが続きますね。まぁもともとAndroid界隈より.NET界隈に生息していたのでこっちの方が居心地が良いのですが。 これまではエルゴノミックキーボードを使用していたのですが、我が家の省エネ計画の一環からパソコンごと移住して小さな机になりました…

.NETでアプリを実行しても起動しない場合はイベントログを確認 その2

先日のエントリですが、原因がわかりました。参照先で使用しているDLLではLOG4NETを使用しているのですが、このLOG4NETがなぜかGACに登録されたものを参照していました。その結果、テスト環境で実行しようとしてもGACに登録されたLOG4NETアセンブリが存在し…

.NETでアプリを実行しても起動しない場合はイベントログを確認

今直面している問題が、.NETで開発したアプリをテスト機など開発環境以外へ持って行った場合に初期画面さえ表示されず実行もされないという問題です。この手の話は、だいたい使用しているアプリのライセンスや参照しているDLLが参照できないためにコンストラ…

SQLiteって同時接続できない

当たり前のことなのですが、気付かずにいました。C#とPostgresで作成したシステムをSQLiteへ載せ替え中に、データベース周りのテストにあるMS-DTCで "The database file is locked"というエラーにぶつかりいろいろい調べて初めて気づきましたよ。 主に調べた…

System.Resources.MissingManifestResourceException

つい先日まで何事もなかく動作していたプログラムが、ある日突然動かなくなることがあります。もちろんデジタルな世界のことですから、突然動かなくなるには動かなくなるなりの要因があるわけです。ちょうどそんな状況に遭遇しました。 一昨日までグリーンバ…

System.Resources.MissingManifestResourceException

つい先日まで何事もなかく動作していたプログラムが、ある日突然動かなくなることがあります。もちろんデジタルな世界のことですから、突然動かなくなるには動かなくなるなりの要因があるわけです。ちょうどそんな状況に遭遇しました。 一昨日までグリーンバ…

MSTestでのタイムアウト設定(続き)

C#

前回のエントリーでMSTestのタイムアウト設定をメソッド単位で設定する方法を書きましたが、テストプロジェクト全体でタイムアウト時間を設定することができる要です。 具体的には、次の通りです。 上記の通りソリューションに作成されるSolution Itemsフォ…

MSTestでのタイムアウト時間を変更する

C#

UnitTestを書いていると、網羅性の観点から長時間のテストを行いたいことが出てくるとお思います。もちろん、テスト駆動開発の趣旨からするとリズムを壊してしまうため決して良いことではないのですが、まぁそういうこともあります。(たとえばIPアドレスを…