読者です 読者をやめる 読者になる 読者になる

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アドレスを…

意味不明な実行時例外

C#でプログラムを書くときに、コンストラクタでは例外をスローしないように注意しています。たとえとば、ファイルのIOやデータベースの接続などはそれらのコンストラクタではしないようにしています。 ところが、今回作ったアプリケーションで開発環境以外で…

大量データを扱う難しさ

これまでも数千万レコードのデータを処理することは幾度かありましたが、大変苦労してきました。今回テストデータと言うことで、数百万件のデータをC#からDMLの発行で作成してみましたが、いろいろと問題が出てくるものです。 いわゆるバッチ処理の難しさに…

DataBindings[“Text”].WriteValue()

画面上のコントロールにDataBingindingsを使用して値をセットする方法について、なんだかしっくりこなかったので確認してみました。具体的には、WriteValue/ReadValueメソッドの動きを確認したかったのですが、結論としては、DataBingingsに設定するオブジェ…

BitmapファイルをBase64でエンコーディングする

C#

C#で画像ファイルをデータベースへ保存する場合、バックアップの利便性を考慮するとBlob形式で保存するよりも文字列として保存したい。たとえばPostgresではBlob型はテーブルの列に参照先の情報(ポインタ)が保存されるだけなので、データのバックアップ時に…

Form.Shownメソッド

起動時に画面を最小化してそのまま画面を閉じて処理を終了するアプリケーションを作成していたのですが、このときにForm.Shownメソッドを使用しました。 Form.Shownイベント Form.Shownメソッドは、フォームが表示される最初に一度だけ発火するイベントです…

Parallelを使用してみる

C#4.0から並列処理を行う方法としてParallelというクラスが追加されました。メニーコア環境が当たり前となってきた昨今では、以下にたくさんのコアを利用して処理時間を短縮するかということも実装手段の一つになるでしょう。 ということでどのような感じで…

BindingSourceへエンティティをバインドする

BindingSourceへエンティティオブジェクトなどをバインドするときに嵌ったのでメモ。 これまでは主にBindingSouceへバインドするもはIListを実装しているかDataTableが多かったためBindingSource.DataSourceへバインドすることばかりでした。今回IDataErrorI…

DoubleClickイベントとMouseDoubleClickイベント

今まであまり意識してこなかったのですが、WindowsFormでダブルクリックしたときのイベントとしてDoubleClickイベントとMouseDoubleClickイベントの2つのイベントがそれらしく存在しています。ダブルクリック以外にも、クリックイベントも同様のイベントがあ…

Chartコントロール

なんだかんだ言ってもC#ばかり触っている今日この頃。Androidと違って古巣は居心地がいいものです。まったりした気分でWindowsFormのChartコントロールをいじっていたところ、いろいろとわかったことがあったのでメモしておきます。 今までは円グラフの凡例…

Postgresで二層コミット

PostgreSQLバージョン8.4.6で二層コミットを行おうとしたところエラーが発生してうまく行えない現象に遭遇しました。二層コミットはC#で作成したアプリケーションでTransactionScopeを使用して行おうとしたのですが…。 これまでは、MySQLにしろ、SQL Server…

MissingMethodException

リフレクションでプロパティに値をセットしようとしたところ、意外な例外がスローされてきたのでちょっとびっくりした。その例外が MissingMethodException 。 通常、存在しないクラス メソッドにコードでアクセスしようとすると、コンパイル エラーが生成さ…

MySQLのログファイルについて

MySQLにはいくつかログファイルがありますが、接続情報や実行したSQLのログを出力するオプションがあります。具体的には設定ファイルの[mysqld]に"log=…"で記載した場合が該当します。 このログファイルに記載される情報でC#から接続したときに"Quit"が出力…

System.BadImageFormatException

すでに作成したソリューションを必要に迫られて再度構成し直したところ、NUnitでSystem.BadImageFormatExceptionがスローされるという現象が発生しました。ビルドは正常に終了しているし、参照も正常に登録されているので何でだろうと不思議に思い調べてみま…

SherpSSHを使用してSSH接続を行う

訳あってC#からSSH経由でLinuxへ接続するアプリケーションを作成しているのですが、そのときに嵌ったところをメモします。 C#でSSHを使用する場合、いろいろな方法が考えられると思いますが私はSharpSSHを使用しています。今までも使用してきて特に不便を感…

64bit Windows7上のVisualStudio2010でエディットコンティニューが使用できない(C#)

64bit版Windows7でVisualStudio2010を使用した開発を行っていると、いろいろ今までできたことができなくなっていると感じます。たとえば、エディットコンティニュー。今まではデバッグ中に編集ができたのに…。 はい、すでにGoogleで検索をすればいろいろ情報…

System.IO.FileLoadException

SQLiteをデータベースとして使用してC#でプログラムを書いていると、初回実行時にSystem.IO.FileLoadExceptionがスローされてしまう。 いつも忘れてしまうのですが、App.configに以下の内容を追加すれば例外は発生しなくなります。 <configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup> </configuration> この中で、startup…