タグ

ブックマーク / www.moonmile.net (28)

  • EFのクラスをMVVMのINotifyPropertyChangedに対応させる裏技 | Moonmile Solutions Blog

    WPFでEF(Entitiy Framework)を使っていると、リスト表示には楽なのだが、データを反映するためにはINotifyPropertyChangedを継承させなくてはいけなくて、そこが面倒くさい。いちいち、ViewModel クラスで EF のクラスをくるめば良いのだが、それを自動化したい。 特にマスター管理用の画面なんかを作るときは、ASP.NET MVCのように足場を自動化させておきたいというのもある。 EFで出力されるクラスは、下記のようなクラスなので、 public partial class 社員名 { public int 社員ID { get; set; } public Nullable<int> 部署ID { get; set; } public Nullable<int> 営業担当FLG { get; set; } public string 社員名1 {

  • [ソフトウェア開発者の道具箱] 同情プログラミングをやめる | Moonmile Solutions Blog

    道具箱シリーズの第2弾は「同情プログラミング」の話です。 プロジェクト運営(プロジェクト「管理」ではなく)の視点から言えば、プロジェクトやチームがうまく動く方法は「うまくいかない部分」を切り去っていくことです。「切り去っていく」ということは、冷徹な感じがするような気がしますが、人を切り去るのではありません(チーム崩壊を招く「マイナス生産者」に対しては、切り捨ての手法をとりますが)、その人が何かをやるときに、うまくいかなくてマイナスになってしまう部分を切り落として捨て去ります。人なのだから、何かの間違いもするし、勘違いもするし、運が悪いときもあるし、体調が悪かったときもあるし、状況によりうまくいかない場合もあるでしょう。だから、トータルで考えるわけですが、チームとして(それは人として「成長」なのかもしれません)今よりもうまくいくためには、今、ダメである部分を少しずつ切り取っていくのが着実な方

    JHashimoto
    JHashimoto 2016/09/28
    “ベストな方法、かの人に書き直して貰う事です。仕事として。”
  • ASP.NET Core MVC の Web API で XML 形式のデータを扱う | Moonmile Solutions Blog

    ASP.NET Core の Web API は標準で JSON 形式を扱うようになっているので、XML 形式を扱おうとすると苦労します…というか、苦労したのでメモ書き。 送受信の形式 Web API を POST で送信する場合 Body に何の形式を使うのか、というのと、受信に何の形式を使うのか、で組み合わせがある。 送信側 – フォーム形式 application/x-www-form-urlencoded – JSON 形式 application/json – XML 形式 application/xml あるいは text/xml 受信側 – JSON 形式 application/json – XML 形式 application/xml あるいは text/xml で、最近はブラウザ経由で JSON 形式で送受信することが多いので、そっちの情報は比較的多いのだが、XML 形

    JHashimoto
    JHashimoto 2016/08/04
    “ASP.NET Core の Web API は標準で JSON 形式を扱うようになっているので、XML 形式を扱おうとすると苦労します...というか、苦労したのでメモ書き。”
  • ふと GoF のデザインパターンを再考しておく | Moonmile Solutions Blog

    懐かしの パタンランゲージ を眺めつつ、ふと 再考: GoF デザインパターン が気になったのでさらっと流しておこう。 [amazonjs asin=”4306041719″ locale=”JP” title=”パタン・ランゲージ―環境設計の手引”] そもそもが GoF 発祥自体が 90年頃で、日語の書籍は Java が発生した頃と前後してしまっているので、オブジェクト思考ブーム、UML, パターンのブームよりも随分前からある。C# や Java よりも前になので、今さら再考する意味もないのではないか?と思われるのだが(そもそも Qiita の「再考~」の記事自体が 2014 年だ)、歴史経緯から考えるのと、GoF の反省(あるいはドツボ?)からできあがった現在の C#, Java の言語拡張をみていくと、これらのパターンが言語仕様やライブラリに含まれてしまっていることが分かる。逆に言

  • Silverlight + MVVM モデルで DataGrid をバインド | Moonmile Solutions Blog

    昨日の続きです。 当は「View の切替/換装ができる」ってのを書きたいのですが、その前にデータバインドのところを押さえないと訳がわからなくなるので、書いておきます。まあ、覚書ということで。 Silverlight にもグリッドで表示するための DataGrid コントロールがあります。Windows で言う DataGridView であったり、ASP.NET だと名前が違ったりと色々ありますが、まぁ似たような動きをします。 この DataGrid には、データベースから検索した DataTable や List のコレクションなどを指定して、自動的にグリッドに表示できます。 忘れちゃいけないのは「System.Windows.Control.Data.dll」を参照設定することですね。DataGridのコントロールは System.Windows.Control namespace

  • JXUG で話した MVVM の活用の解説を | Moonmile Solutions Blog

    JXUGC #9 Xamarin.Forms Mvvm 実装方法 Teachathon – connpass http://jxug.connpass.com/event/22840/ にて、田淵さんコードに「マサカリ」を投げまくって来ました。実は、ピアレビューという手法があって、できるだけきめ細かくコードをレビューしていくという手法があります。来ならばインスペクションの形式を使うのですが、「人を攻撃する」のではなくて、コードのみをバシバシと叩いて向上させる方法ですね。コードを個人の成果物ではなくて、共同の成果物として仕立てあげることが最終目標です。 ひとまず、MVVM とは何ぞ?なり、Xamarin.Forms とは?という話はすっ飛ばして直接コードから入ったのは良かったと思います。ペアプロとか、M-VM-M の分業体制なんかはあんな感じで進めるとうまくいくでしょう。 私の発表したサン

  • 大規模プロジェクトで MVVM を導入するときの注意 | Moonmile Solutions Blog

    先日の JXUG の MVVM の補足 を書いたので、どうせだからもうちょっと突っ込んだ話題を残しておきます。Xamarin.Forms などを使う場合は、そんなに多くの人は関わらないでしょう。勉強会でもちらっと話しましたが、ひとりで MVVM すべてを作ったり、数名で MVVM を分け合ったりするのがほとんです。 せっかく V-VM-M と分かれているのだから、ある程度規模が大きくなれば分担しないといけません。最初に2つのパターンが考えられて、 縦割りにして、画面ごとに MVVM を一貫して作る。 横割りにして、V-VM-M を別々の人に割り当てる。 ことが考えられます。理想的には View をデザイナが受け持ち、VM をプログラマが、M をデータベーススペシャリストが担当するのが良いのですが、人数的な問題や規模的な問題、開発者のスキルのばらつき、遠地なのか近地なのか、同じ会社なのか別会

  • de:code 2014 の感想戦 | Moonmile Solutions Blog

    de:code | 日マイクロソフトの開発者/アーキテクト向けイベント – Microsoft Events & Seminars http://www.microsoft.com/ja-jp/events/developer/ 結論から言えば、何かと前評判が悪かった de:code ですが、蓋を開けてみれば「損はさせません」のツイートは当でした。値段相応なのか、値段以上なのかはさておき、自分の言ったセッションをメモ書きしておきます。 キーノートはプレゼントの発表が二転三転したのでさておき、 DE-023 Windows アプリ開発、どこへ向かうのか お昼に「.NET開発テクノロジ入門 2014年版」を買って読みながら奥主さんの話を聞く。行く予定のプレゼン資料は事前に OneNote で配布されていたので、そのまま Surface に入れてひと通り見ておく。紙の資料がないので、手荷物が

    JHashimoto
    JHashimoto 2014/05/31
    “Windows 8.1 Update からサイドローディングに限り、ローカル PC へのループバックを許可、さらにアプリブローカーを通してデスクトップの COM へアクセスできる。”
  • XamarinでAndroid/iOS/Windowsストアの回転に対応する | Moonmile Solutions Blog

    実機を回転したときに縦置きと横置きの対応する方法は、基はフローレイアウトを使うほうがいいのですが、コントロールがたくさん並んでいる場合にはなかなか大変ですね。…という理由を付けて、まとまったものが見つからなかったので、3つのプラットフォームでXamarinでどう対応するのかを残しておきます。 それぞれ方法があると思いますが、Potable Class Library で DataModel を共有化することと、3つのプラットフォームで似た方法で作れる、ことを目的とします。 ■Windowsストアプリ の場合 横置き(Landscape)と縦置き(Portrait)の2つのViewStateを作る。 PageクラスのLayoutUpdatedイベントで DisplayInformation.GetForCurrentView() でデバイスの向きを判断して、VisualStateManag

  • 日本語版Visual Studio 2013 に Xamarin 4.2.3 が入らない場合の対処 | Moonmile Solutions Blog

    Visual Studio 2012 と Visual Studio 2013 が同じPCに入っていると、何故か Xamarin Shell が 2012 のほうにしかインストールされなくて、肝心の 2013 では動作しないというインストーラのバグっぽい動きの回避方法です。半日ほど嵌ったので。 ※以前のインストーラーは VS2010, VS2012, VS2013 を別々に判断していたのですが、4.2.3 のインストーラから同時に入れるようになっています。選択肢がなくなっているので、たぶんインストーラのバグかと。 Visual Studio 2013 の「拡張機能と更新プログラム」を確認すると、何故か Xamarin Shell が入っていませんでした。何度再インストールしてもダメなのですが、どうせ拡張機能なのだから VS2012 と互換ではないかと思って、コピーすることに。 Instal

  • SQLとオブジェクト指向とO/Rマッピングの隙間で | Moonmile Solutions Blog

    ベンチャー社長で技術者で: オブジェクト指向言語で処理したら保守性が悪い! http://el.jibun.atmarkit.co.jp/g1sys/2009/12/post-af96.html SQLに依存することの危険性 ー 単体DBサーバでは終わらない時代の考え方 | 独り言v6 http://www.nonsensecorner.com/wp25/?p=4075 どちらも4年程前の記事ので、直接の言及は避けて、その延長上にメモを残して置かんと欲す…まあ、当時の状況とかもろもろの業務的な事情とか、その当時の「流行り」みたいなものがあるので、なんとも言えないところがあるのです。特に、オブジェクト脳とO/Rマッピング、さらに最近のNoSQLのあたりは数年たつと熱がおさまるもので、業務的にはうまく枯れてくれるとよいかなという分野です。どれも長く使うものですからね。 先に、先の2つの記事の欠

  • [WinRT] デスクトップで閲覧しているURLをSurface RTに送る | Moonmile Solutions Blog

    サブノート/サブディスプレイに Surface RT を使っていると、デスクトップで見つけた Youtube を Surface で表示したい時が頻繁にあります。この場合、どうやって送るかというと… Twitter でメモ的に流してから、Surface 側で拾う SkyDrive に URL を置いてから Surface で拾ってくる。 ちまちまと URL を Surface で打つ という方法があるわけですが、どれも面倒くさい。ただし、Windows 8 同士であれば、デスクトップアプリでさっくりとできそうなのですが、片方が Windows RT なものだから、Windows ストア アプリしないといけないという制限がある。 で、前々から考えていた、デスクトップPCのほうに簡易HTTPサーバー、タブレットPCWindows ストア アプリのクライアント、というパターンで実装してみます。

    JHashimoto
    JHashimoto 2013/04/29
    "簡易サーバーは HttpListener で作れば ok です。"
  • [C#] Log4netを使うサンプル | Moonmile Solutions Blog

    ざっと書き下しておきます。 Apache log4net: Home http://logging.apache.org/log4net/ Log4NET – TSCWiki http://www.tokyosoft.co.jp/tscwiki/index.php/Log4NET 【C#】【VS2010】Visual Studio 2010で Log4net を使う – プログラム の個人的なメモ – Yahoo!ブログ http://blogs.yahoo.co.jp/dk521123/20264938.html ■環境構築 Visual Studio 2012 と 64bit という環境なので、これで。 Download Apache log4net http://logging.apache.org/log4net/download_log4net.cgi から、log4net-1.

    JHashimoto
    JHashimoto 2013/04/24
    "■出力時のファイル名と行番号を出力する こんな感じで拡張メソッドを作っておけばOK。VS2012 の場合は、CallerMemberName 属性を使って生成、VS2010 の場合は StackFrame クラスを使って生成します。"
  • SQL Server のデータベースファイルを SSD に移す | Moonmile Solutions Blog

    SQL Server のファイルは、別の HDD/SSD に置くことができます。ってことで、基技なのですが、メモ的に書いておきます。 ■SQL Server Management Studio で新しいデータベースを作る 新しいデータベースを作ると、初期値が「C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQLDATA」になっています。 「MSSQL11.MSSQLSERVER」なところは、SQL Serverのバージョンとかインスタンスとかで決められているので、バックアップを取りたいときはここから直でコピーしてもOK。まあ、「タスク」→「バックアップ」でバックアップするのが筋なんですが。 ■データベースファイルをSSDに移動させる。 移動させる、というかデータベースを作成するときに別のドライブにファイルを作ります

    JHashimoto
    JHashimoto 2013/04/09
    "移動させる、というかデータベースを作成するときに別のドライブにファイルを作ります。"
  • データコンバートに explicit を使う | Moonmile Solutions Blog

    C#のあまり知られていない機能シリーズってことで、explicit を使ってデータコンバートしましょうってのを試してみます。と言いますか、linq to xml いらないよもどきを作っている最中に、そういえばキャストもオーバーライドができたよなぁ、ってところで気づきました。 一般的な型のコンバートは↓のようにするのが普通なのですが… 型なしDataTableから型付きDataTableにコピーする方法 | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/2047 いちいち、何とか.CONV 関数を作るのがうざったいですよね。と言うか、使うときに Conv しているのが、ちょっとってな感じなのです。変換しているのが分かり易いといえば分かり易いのですが、C++ 風に言えば、型から型へキャストっていうのも明示的な変換な訳

    JHashimoto
    JHashimoto 2013/04/08
    "★のところで、DataTable から 型付の DataTableProduct に変換しています。ここのところ、普通は converet 関数を作るところなのですが、こんな風に明示的なキャスト(explicit)を使うことができます。"
  • 型なしDataTableから型付きDataTableにコピーする方法 | Moonmile Solutions Blog

    最近だと、LINQ to SQL や LINQ to Entities があるので、DataSet/DataTable はあまり使わないのですが、ADO.NET と云えば、DataAdapter と DataSet の組み合わせでした。 その頃は、データベースのテーブルを型付で取ってこれる、型付きDataSetの存在が結構大きかったのです。 どういうことかというと、DataTable を直接扱ってしまった場合、 foreach ( DataRow row in dt.Rows ) { int id = (int)row["id"]; ... } のように、DataRow から値を取ってくる場合は、列名を指定しないと駄目かつキャストをしなければならず、という2重苦が待っています。これが、文字列なので、ええ、ちょっと間違うとえらいことになってしまうのです。PHP だと、こんな風に書くのが普通な

    JHashimoto
    JHashimoto 2013/04/08
    "これをコンバーターのクラスを用意して、型なしから型付にコピーできるようにしてしまおう、というものです。で、MyDataTable, MyDataRow の作成はなるべく手間をかけたくないという訳で。"
  • 意外と遅い DataTable 、なので List を使うと 5 倍早くなる | Moonmile Solutions Blog

    以前から気になっていたのですが、DataTable/DataSet を使うと遅いのでは?と思っていました。 実際、Visual Studio で自動生成する型付の DataTable を使うと思ったように性能がでないことが多く、結局 SQL でチューニング、ってことになります。 で、具体的に遅そうなところを実験してみました。 単純に DataTable の性能を比較したいので、データベースには使わず値の代入だけ実験します。 列が 100 のテーブルを想定する。 行数を 10000 件挿入する。 これを次のパターンで比較します。 普通に DataTable を使う With 構文を使って、高速化する? for earc を使ってカウンタを使わない方法 名前を使わずに index を使う generic list を使う generic list で構造体/クラスを使う 先に結論から書くと、1

    JHashimoto
    JHashimoto 2013/04/08
    "●データベースは SqlCommand でアクセス●取得したデータのアクセスは generic List を利用とする組み合わせ一番早いわけです。"
  • SSDにするとBlukcopyは5倍ぐらい早くなる | Moonmile Solutions Blog

    せっかく、最強.NET開発PCSSDを入れたので、SQL Serverがどれくらい早くなるか計測してみます。つーか、もともとその目的もあって、SSD にしています。大容量の SSD はそれなりにお高いので、当なら 64GB ぐらいの安めのを買って試してみたいところなのですが、まだ買ってないので。 PLEXTRO PX-512M5P http://www.goplextor.com/jp/index.php/m5-pro WDC WD20EZRX-00DC0B0 1TB という WD にあまりに不利な状況なのですが…まあ、ひと昔前の HDD と最新の SSD を比較するということでやってみます。状況としては、昔の HDD に SQL Server をがりがりやってチューニングして頑張って、という状況だけど、最近データアクセスが遅くて困る。となると、もっとチューニングをするのか、CPU

    JHashimoto
    JHashimoto 2013/04/08
    "以下、100万件のWEBアクセスログを、BulkCopy でインサートして計測しています。"
  • HDDのアクセススピードは VMWare に影響するのか? | Moonmile Solutions Blog

    最強.NET開発PCを作るよ(その4) ストレージ編 の番外編として、CrystalDiskMark で HDD, SSD のアクセススピードを比較してみます。 VMWare が仮想 HDD にアクセスすると、それはそのまま物理 HDD のスピードに影響される訳で、遅い HDD 上に VM のディスクを作るとか、複数の VM が同じ HDD にアクセスしに行くと VM のスピードが落ちるのではないか?という仮説を確認します。 ■まずは基性能のチェック 左から C ドライブの SSD D ドライブの 新しい HDD G ドライブの古い HDD です。シーケンシャルアクセス(Seq)が、SSD が HDD の約3倍ぐらい。しかし、Visual Studio を使ったコンパイルの場合や SQL Server によるデータの更新には、20K ぐらいの小さなファイルアクセスが頻繁に発生します。とな

    JHashimoto
    JHashimoto 2013/03/05
    "遅い HDD 上に VM のディスクを作るとか、複数の VM が同じ HDD にアクセスしに行くと VM のスピードが落ちるのではないか?という仮説を確認します"
  • 最強.NET開発PCを作るよ(その1) | Moonmile Solutions Blog

    去年の pp-club のイベント絡みの飲み会で「プログラマ用の開発PCとはなどんなスペックか?」という話があって、作ってみたい~と年末年始ごろに夢にまで見ていたのですが、リンクスインターナショナル社の阪口さんと、デザインラボの加藤さんのご協力もあって、晴れて最強.NET開発PCの自作にこぎつけました。 .NET 開発専用パソコンを考える(´・ω・)ス その1 全体とメモリ|WEB系技術電脳日記 http://ameblo.jp/konica/entry-11476853250.html あたりも参照にしてください。 私の場合、自作PCってのはDOS/Vの頃ぐらいしかなくて、そのあとはちょっとしたメモリ増設とHDDの追加ぐらい。当時、オーバークロックが流行っていたのですが、手を出したことがありませんでした。1年前ぐらいから、duck さん のようなオーバークロッカーという方もいて、まさしく

    JHashimoto
    JHashimoto 2013/02/25
    "晴れて最強.NET開発PCの自作にこぎつけました。"