2017-01-01から1年間の記事一覧
Application アプリケーション Run 走る Execute 実行 Commit コミット RollBack ロールバック Save 保存 Load 読み込み Store 保存 Restore 復元 Register 登録 Repository 貯蔵庫 Cancel 取り消し Repeat 繰り返し Receive 受け取る Throw 投げる Ignore …
下記URLにて公開されており、ダウンロードすることが出来ます。http://referencesource.microsoft.com/中身を理解する必要はないけど.Net Frameworkで開発してる全ての人は一度でいいから目を通してみるべきだと思います。 カプセル化という概念の重要性…
3年以上の前の記事ですが、参考にさせていただき調べてみました。proprogrammer.hatenadiary.jp要約するとintへのキャストは高速だけどGetHashCodeの実装は低速とのこと。 あまり厳密なテストをしたわけではないですが、.Net Framework4.6の環境で試してみ…
Gofデザインパターンの復習でアダプターパターンについて書きます。 書籍等で見ると最初は混乱したのですが、覚えるとデコレーターパターン同様、シンプルなパターンだと思います。 アダプターパターンとは アダプターパターンの構成 適合させたい型 アダプ…
Gofデザインパターンの一つ、デコレーターパターンについて復習します。 デコレーターパターンは比較的簡単で、デザインパターンの中で一番最初に覚えたパターンでした。 再利用しやすいコードを書く上で今でも欠かせないパターンだと思います。 デコレータ…
色んな書籍をみても、c#のプロジェクトやjavaのパッケージの分け方について深く言及しているものがあまり無い。 最近思うのは、プロジェクトやパッケージの分離方法の勘所を抑えていれば、自ずとメンテナンスが容易なシステムになるのではないかということ。…
デザインパターン、オブジェクト指向エクササイズの教材として自作ライブラリを作ろうと検討中。名前空間についてメモ Nmdm ⇒最上位の名前空間、ブログ名からNmdm.Pair ⇒ジェネリックインターフェースで二つのインスタンスのペアを表現Nmdm.Collection ⇒IEnu…
ソフト全体で使いたいインターフェースがある時、 インターフェースとその実装を同じプロジェクトに入れると実装部分をメンテナンスする度に大規模なビルドが必要になる。そもそも抽象(インターフェース)に依存して処理を標準化するのに実装を直す度にビル…
ステートソーシングな設計の「商品テーブル」をイベントソーシングな設計に置き換える時のイメージをメモ「商品テーブル」 ・ID ・コード ・名称 ・登録担当者ID ・登録日時 ・更新担当者ID ・更新日時 ・削除担当者ID ・削除日時手順1)ドメインに…
プロパティとメソッドとの違いについておさらいします。MSDNに掲載されている説明は以下の通り。プロパティとメソッドの選択 一般的に、メソッドは操作を表し、プロパティはデータを表します。 例えば「人」オブジェクトがあれば、 「名前」や「性別」は…
7月5日に発売されたのでさっそく購入しました。現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法作者: 増田亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版この商品を含むブログを見るこの本の著者…
using System; using System.Printing; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { var queueByFullName = new PrintQueue(new LocalPrintServer(), LocalPrintServer.GetDefaultPrintQueue().FullName); Console.…
using System; using System.Printing; namespace LocalPrintersName { class Program { static void Main(string[] args) { foreach(var queue in new LocalPrintServer().GetPrintQueues()) { Console.WriteLine(queue.FullName); } Console.ReadLine(); }…
using System; using System.Printing; namespace DefaultPrinterName { class Program { static void Main(string[] args) { Console.WriteLine("既定のプリンタは{0}です。", LocalPrintServer.GetDefaultPrintQueue().FullName); Console.ReadKey(); } } …
ネットで色々検索してみるとWPFでも帳票印刷が出来るらしい。 後で参考に出来そうなリンクをメモ以下参考: WPFでの印刷の基本(1) 単一ページの印刷 - Qiita WPFでの印刷の基本(2) 複数ページの印刷 - Qiita WPFを帳票フレームワークとして使う - @kotyの…
DbProviderFactoriesの仕組みを勉強してて、DbProviderFactories.GetFactoryClasses()でConfigurationErrorExceptionが発生。App.Configをよ~く見てみるとセクションの後のスペースが交っていた。 これを消してやると解消。1時間くらい悩みました・・・
public DateTime MonthFirstDate(DateTime value) { return new DateTime(value.Year, value.Month, 1); } DateTimeのコンストラクタの日にち部分に1を渡す。
public DateTime ToMonthLastDate(DateTime value) { return new DateTime(value.Year, value.Month, DateTime.DaysInMonth(value.Year, value.Month)); } 年と月はそのまま、日にちだけDateTimeクラスのDaysInMonthメソッドに年と月を渡してやる。 VB6の時…
C#実践開発手法のシングルメソッドインターフェースで色々書いてきたけども、 途中途中浮かんだ考えをだぁーっと箇条書きにしてみる。C#実践開発手法 デザインパターンとSOLID原則によるアジャイルなコーディング作者: ゲイリーマクリーンホール出版社/メ…
IActionやISpecificationなど、単一の要素に対するインターフェースでしたが、 実際にアプリケーションを組むとなると必ずコレクションに対する操作が必要になると思います。今回は拡張メソッドを使って、都度コーディングをしなくてもこれらインターフェー…
IActionインターフェースについて思いついたことがあるので書いてみます。まずIActionインターフェース namespace Nmdm.Actions { public interface IAction<TContext> { void Do(TContext context); } } 機能面だけで見ると一つの引数を受け取って戻り値の無いメソッ</tcontext>…
ISpecification同様IActionを手直し+拡張メソッドを導入まずCompositeActionクラス namespace Nmdm.Actions { public sealed class CompositeAction<TContext> : IAction<TContext> { public CompositeAction(IAction<TContext> one, IAction<TContext> other) { this.One = one ?? new NullAction<TContext>()</tcontext></tcontext></tcontext></tcontext></tcontext>…
この記事では以下の記事で実装したクラスをテストしてみて、クライアントコードの具合を考えてみます。 記事の順序やらテストのタイミングがぐちゃぐちゃですが、チラシの裏ブログなのでご容赦を・・・nomoredeathmarch.hatenablog.comまず、最初のテストコ…
前回ISpecificationでAndやOrといった論理演算を拡張メソッドで簡単に記述出来るようにしましたが、 思うにこれって他の汎用的なインターフェースにすべて適用出来ますね。 以下前回の記事 nomoredeathmarch.hatenablog.comただ適用する際の注意点としては …
ISpecificationの組み合わせ方について これまで以下のような実装をしていました。 using System.Linq; using System.Collections.Generic; namespace Nmdm.Specifications { public sealed class AndSpecification<T> : ISpecification<T> { public AndSpecificat</t></t>…
IPredicateの拡張について書きます。前回実装した記事は↓から nomoredeathmarch.hatenablog.comまずは前回のTestedTaskを少し手直し。 using System; using Nmdm.Tasks; namespace Nmdm.Predicates { public sealed class TestedTask : ITask { public Teste…
WPFのチューニングが全然捗らないので分析ツールを導入してみる。 バインディングはほんと便利だと思うけど、こういうツールなしにチューニングするのはきついですね・・・とりあえずこの記事で目についたWPF Performance Suiteというのを入れてみよう。 WPF…
WPFではまったのでメモします。開発用マシンとは異なるOS、ハードで実行すると画面がぼやけてしまった。 アンチエイリアス処理の結果かなぁとは思ったけどぼやけかたが余りに酷い。なにかないかと試してみたのがこちら↓ FrameworkElement.UseLayoutRoundin…
今更ですがIEnumerable.Countで痒いところに手が届いた感
以前書いたドメインイベントの実装について、 インターフェースの側から考える。nomoredeathmarch.hatenablog.com nomoredeathmarch.hatenablog.comまず作成したインターフェースについて復習まず、イベントを表すクラスのインターフェースIEvent namespace …