Entity Framework コードファースト開発

こんにちは、mtjです。

現在DBの開発を行っており、今回はEntityFrameworkを使用して開発しております。
これで便利なのが、コードファーストなので接続先のDBさえあれば勝手にテーブル、
リレーションなども作成してくれます。

テーブル定義もコード上に記載するので確認も容易です。
通常ではテーブル定義を書いて、データベースを開いてなどコード上では面倒の多い事がありません。

データベース検索もSQLを発行することなくLinqでアクセスできます。
TestCont.TestEntity.Single(x=>x.Id == id);
のような感じで容易にアクセスできます。
テーブル定義の変更もコード上のクラスの定義を変更するだけでMigrationが変更を検知し
自動でDB書き換えのコードを作成してくれます。

ソフト開発者としてはSQLサーバーを気にせずアクセスできるのは大変便利な事です。
通常だと変更があったらDBの定義を変更するコードを書いたり、それに伴ってコード上のテーブル定義
などの修正も行う必要がありますが、このフレームワークの場合はコードを気にしているだけでいいという感じです。

またテスト環境を容易に構築できる利点もあるので今後DBはこのフレームワークを使っていくと思います。

C# タブインデックス(タブオーダー)の自動設定

先週、C#ソフトのタブインデックスを久しぶりに自分で設定しました。
いつもは誰かにして貰っていたのですが、自分でするとものすごく面倒くさい。
これは人のする作業ではないと考え、自動化する方法を検討。
結果、ネットの情報を元に以下の拡張メソッドを作成しました。

public static void RefreshTabIndex(this Control ctl) {
 //子コントロールのタブインデックス更新
 foreach (Control child in ctl.Controls) {
  if (child.Controls.Count <= 0) continue;
  child.RefreshTabIndex();
 }
 //子コントロールの位置をもとにソートする
 var children = new List<Control>();
 foreach (Control child in ctl.Controls) {
  children.Add(child);
 }
 children.Sort((x, y) => {
  if (x.Top == y.Top) return x.Left.CompareTo(y.Left);
  return x.Top.CompareTo(y.Top);
 });
 //タブインデックスを設定する
 for (int i = 0; i < children.Count; i++) {
  if (children[i].TabIndex == i) continue;
  children[i].TabIndex = i;
 }
}

フォームのコンストラクタなどで、this.RefreshTabIndex()を実行すると、
コントロールの配置をもとに自動でタブインデックスが設定されます。

まだ使い始めた所なので、この方法ではうまくいかない場合があるかも知れませんが。
概ね思っている動作をしており、作業が楽になりました。

 

国会議事録

現在、通常国会では速記ではなく音声自動認識が使われているという話をラジオで聞き驚きました。また、その翻訳精度は98%ということでさらに驚きました。
国会のような専門用語が飛び交うところで高精度に音声を文字変換するシステムは京都大学とNTTが開発したらしいです。
そして、速記者の募集はとっくの昔に終了していたという事も知りました。
技術の進歩で人の職業がなくなってしまう。しかも、単純作業ではなく、速記という高等技術さえも不要にしてしましました。

kindle Voyage買いました。

mtjです。

自分は漫画でも文庫本でもよく読むのでkindleを買いました。
大体漫画でも全巻買えば段ボール1箱程度、文庫本2冊でも結構場所を取りますよね。
そのスペースを6インチタブレット1つにできるなら買おうと思って購入しました。

大抵文庫本というのは気が向いたらもう一回読みますが大抵文庫のスペースは
遅いので本棚を探すか、押し入れを探すかになってしまいますが
これはデータがAmazon上にあるので探す手間も保管しておく場所も必要ありません。

さらに、電池の持ちも良いので読んでいて充電がストレスになることはあまりありません。
自分の読む速度なら漫画6冊程度読んでも半分以上電池がある状態です。

欠点を言うならマイナー作家などの本がないこと、文庫のジャンル毎に分けられていないこと
できればホラーとか色々分かれていた方が本屋で歩いて探すような楽しさがあって良いのですが。
本屋で歩いて探して、kindleで買えばいいだけなんですけどね、あれば。

というわけで、概ね満足です。
タブレットで一番の欠点の電池の持ちを考えれば良い買い物したなと思います。