タグ

.netに関するmasakitkのブックマーク (114)

  • neue cc - MicroResolver - C#最速のDIコンテナライブラリと、最速を支えるメタプログラミングテクニック

    MicroResolver、というDIコンテナを作りました。Microといいつつ、フルフルではないですがそれなりにフルセットな機能もあります。DIの意義とか使い方とかは割とどうでもいい話なので、何をやったら最速にできるのかってところを中心に説明しますので、DIに興味ない人もどうぞ。 GitHub - neuecc/MicroResolver Install-Package MicroResolver 例によってインストールはNuGetからで、.NET 4.6 から .NET Standard 1.4 で使えます。 DIコンテナはIoC Performanceという、存在するDIライブラリは全部突っ込んだ総合ベンチマークがあるので、そこで好成績を出せれば勝ったといえるでしょう。 |Container|Singleton|Transient|Combined|Complex| |:------

  • より実践的なDDD本「.NETのエンタープライズアプリケーションアーキテクチャ第2版 」 - Shin x Blog

    DDD 関連の書籍といえば、Eric Evans の DDD ( エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践) )や、Vaughn Vernon の IDDD ( 実践ドメイン駆動設計 (Object Oriented SELECTION) )が有名です。 DDDで登場する実装パターンや周辺知識をより実践的に解説しているのが、「.NETのエンタープライズアプリケーションアーキテクチャ 第2版 (マイクロソフト公式解説書)」(naa4e)です。 .NET 以外にも大いに通じる内容 書は、.NET の名を冠しており、サンプルコードは、C# で記述されています。また、利用するライブラリも .NET 周辺のものであったり、解説で登場する RDBMS も、Web 系でよく登場する MySQL や PostgreSQL よりも、S

    より実践的なDDD本「.NETのエンタープライズアプリケーションアーキテクチャ第2版 」 - Shin x Blog
  • テスト駆動開発(TDD) in .NET #ngtnet by @masaru_b_cl

    はじめに このエントリは2016/5/7に開催したNiigata.NET 2.0で行ったセッションを再構成したものです。 ライセンス この 作品 は クリエイティブ・コモンズ 表示 – 継承 4.0 国際 ライセンスの下に提供されています。 Agenda テスト駆動開発(TDD)とは? .NET開発におけるTDD TDDの実例 TDDの指針 テスト駆動開発(TDD)とは テスト駆動開発とは、Kent Beck(ケント・ベック)が提唱した開発手法です。彼の著書であり、「原典」とも呼ばれる「テスト駆動開発入門」(http://www.amazon.co.jp/dp/4894717115)(残念ながら絶版。再販望む!)にはこのように書いてあります。 「動作するきれいなコード」、ロン・ジェフリーズのこの簡潔な言葉は、TDD(テスト駆動開発)の目標である。動作するきれいなコードは、あらゆる理由で価値

    テスト駆動開発(TDD) in .NET #ngtnet by @masaru_b_cl
  • [C#][ラムダ式][LINQ][式木] 匿名メソッドとラムダ式の違い (プログラミング C# - 翔ソフトウェア (Sho's))

    この記事では、匿名メソッドとラムダ式の意味の違いについて考えてみたい。 ■ 同じように使える匿名メソッドとラムダ式 匿名メソッドとラムダ式は、同じように使うことができる場面が多い。 例えば、以下のようなデリゲートを引数にとるメソッドがあったとして、 using System; using System.Collections.Generic; static class Enumerable { // 述語に基づいて値のシーケンスをフィルター処理 public static IEnumerable<TSource> Where<TSource>(this IEnumerable<TSource> source, Func<TSource, bool> predicate) { foreach (var item in source) { if (predicate(item)) yield

  • neue cc - Microsoft Fakes Frameworkの使い方

    Fakes FrameworkはVisual Studio 2012から搭載されたユニットテスト用のもっきゅっきゅライブラリです。いや、ライブラリというには大掛かりなので、やっぱFrameworkでしょうか。ともあれ、そんなもののようなものです。ドトネトだと競合で最も有名なのはMoqですね。競合との大きな違いは、通常のもっきゅっきゅライブラリがinterfaceやvirtualなメソッド類しか上書きできないのに対して、FakesはStaticメソッドやふつーの非virtualメソッドすらも上書き出来ちゃうところにあります。つまり、なんでもできます。 そして、Visual Studio Ultimateじゃないと使えません。……うぉーん。と、いうわけで、強力さはよーく分かるんですが、Ultimateでしか使えないところに萎えていたりしました。が、Visual Studioへの要望を出すFor

  • .NET クラスライブラリ探訪-040 (System.Windows.Forms.WindowsFormsSynchronizationContext)(SynchronizationContext, 同期コンテキスト, Send, Post) - いろいろ備忘録日記

    System.Windows.Forms.WindowsFormsSynchronizationContextは、SynchronizationContextクラスの派生クラスです。 Windows Formsにて、同期コンテキストを処理する際に裏で利用されています。 どんな役割を担っているのかをざっくりと言うと 別スレッドで動作している処理から、特定のコンテキスト(スレッド)上で処理が動くようにしてくれる機能 と思っていると分かりやすいかと思います。 この概念、UIを持つアプリの場合はすごく重要になります。 なぜなら、Windows FormsもWPFもJava Swingも、以下の決まり事があるからです。 UIを更新できるのは、UIスレッドからしか出来ない。 このあたりの事情に関しては、Java(一つは.NET)の記事になりますが 昔書いたので、よろしければご参照下さい。 Swingス

    .NET クラスライブラリ探訪-040 (System.Windows.Forms.WindowsFormsSynchronizationContext)(SynchronizationContext, 同期コンテキスト, Send, Post) - いろいろ備忘録日記
  • TDDでデータベースと付き合う方法

    はじめに データベースを読み書きする部分のユニットテストがやりにくいのには、いくつか理由があります。 複数人でテストを同時に実行すると、競合する データベースを使ったテストは、時間が掛かる データベース内のデータが変わると、テストが失敗する 1番目は、各自の開発環境にテスト用のデータベースを用意することで、解決できます。2番目の問題は、データベースにアクセスするコードをロジックから分離して、データベースに実際にアクセスするテストケースを減らすことで、改善できます(ロジックのテストにはモックやダミーを使います)。3番目は、テストのたびにデータベースの内容を初期化することが基になりますが、そうするとテストに長い時間が掛かるようになってしまいます。 今回は、ビジネスロジックの開発時にモックやダミーを使いやすくするにはどうするか、また、テスト時にデータベースの内容を安定させるにはどうしたらよいか

    TDDでデータベースと付き合う方法
  • Reactive Extensiions再入門 その1 - かずきのBlog@hatena

    修正履歴 2011/11/04 21:36 「Reactive Extensionsで提供されている機能」の「IObserver<T>生成へのショートカット 」の「ラムダ式からIObservable<T>を内部的に生成してくれる」を「ラムダ式からIObserver<T>を内部的に生成してくれる」に修正しました。ということで、この一年の目標で書いた目標を実現すべく第一歩として、とりあえず書いてみようと思います。書いておけば誰か間違いを指摘してくれるだろうというヨコシマな動機で書いているので、読んでくれる人がもしいるなら一緒に勉強していきましょう! はじめに ここでは、Reactive Extensions(下記リンク)の著者自身の理解を深めるために著者自身のReactive Extensionsの理解している内容を記載します。 Dev Lab Reactive Extensions ホームペ

    Reactive Extensiions再入門 その1 - かずきのBlog@hatena
  • Shows

    The .NET ecosystem is continuously growing and empowering developers to create amazing applications. Join us as we take a look at the APIs, the tooling, and some of the interesting projects being created in the .NET ecosystem. Find out how you can use GitHub Copilot, an add-on that is powered by AI, to get helpful suggestions when writing code or documentation. This series will show you how to use

    Shows
  • .NET開発における非同期処理の基礎と歴史

    連載:C# 5.0&VB 11.0新機能「async/await非同期メソッド」入門 第1回 .NET開発における非同期処理の基礎と歴史 鈴木 孝明 2012/08/31 ■.NET Frameworkにおける非同期処理実装技術歴史 それでは、.NET Frameworkがこれまでに提供してきた非同期処理実装技術の進化の歩みについて、復習も兼ねながら見ていこう。大まかにいうとFigure 3のようになる。

  • Visual Studio 2012の新機能(1/4) - @IT

    特集:新IDE「VS 2012」レビュー Visual Studio 2012の新機能 デジタルアドバンテージ 一色 政彦 2012/09/04 8月16日(日時間)にMSDNサブスクリプション会員向けにVisual Studio 2012日語正式版(以降、VS 2012)がリリースされた。稿では、このVS 2012の新機能を、キャプチャ画像を多用して短くまとめて紹介する。リリースから2週間以上が経過しているので、すでにいろいろと試している開発者も少なくないだろうが、ぜひ新機能情報の整理に役立ててほしい。 なお稿では、Windows 8上にインストールしたVS 2012「Ultimate」エディションを用いる。また、VS 2012のIDE(統合開発環境)の初回起動時に設定する[既定の開発環境の選択]ダイアログでは「Visual C# 開発設定」を選択した状態である。これらの条件と異

  • neue cc - DataSetについて

    けちょんけちょんに言ってるとか言ってないとかで言えば言ってるので、遅まきながらその理由などをつらつらと。正直なところDataSetなんて現代の観点から使ってみれば、一発でどれだけクソなのか自明だろう、ぐらいに思ってたので別に言うまでもないと思ってたので特に述べてなかったのですが、意外と支持の声も大きいのですね。困惑するぐらいです。 DataSetというと型付きと型無しがありますが、形無しのほうは、もういらないんじゃないかな。カジュアルな用途ならExpandoObjectを使ってくれという感じだし、そうでないなら、C#で型無しのヘヴィな入れ物とか利点を損ねるしかないわけで。せめてdynamicに合わせた作り直しが必要よね。 それでもADO.NETと密接に結びついていて、たとえばSqlBulkCopyはDataTableしか受け取らないなどがある。だから必要か、というと、そうじゃあなくて。そう

  • JenkinsとFxCopの組み合わせ

    .NET Frameworkの静的解析ツールとしては、バイナリを解析するFxCopが有名です。 (FxCopについては:ツールボックス: .NET 用の静的分析ツール、Matt Berseth のブログ) FxCopのレポート結果を確認するにはViolations Pluginを使用するので、インストールされていなければインストールしてください。 まずは、コマンドライン版のFxCopを使用して、静的解析を行うようにビルドのジョブを追加します。 Report Validationで以下図のように設定します。 設定保存後ビルドします。 以下のようにビルド結果にViolationsという項目と、そのグラフが表示されます。(以下は実際には設定後2回ビルドを行った。 ViolationsをクリックするとFxCopの解析結果にドリルダウンする。 なかなか良い感じです。

    JenkinsとFxCopの組み合わせ
  • ASP.NET MVC 3における単体テストの基本と記述方法

    はじめに 第4回ではASP.NET MVC 3(以下、MVC 3)のController周りの改良点として、Dependency Injection(以下、DI)の簡単な実装をご紹介しました。前回は単体テストを実施するための基についてご紹介しました。今回はMVC 3における単体テストの基と前回実装したDIプロジェクトにおける単体テストの記述方法について紹介します。 なお、ASP.NET MVCの基的な開発については過去の連載を参照してください。 ASP.NET MVCフレームワーク 正式版 入門 ASP.NET MVC 2入門 颯爽登場!ASP.NET MVC 3の概要を押さえる ASP.NET MVC 3Tools UpdateとView周りの改良点 ASP.NET MVC 3における検証まわりの改善点 ASP.NET MVC 3におけるDI実装のポイント 必要な環境 次の環境が必

    ASP.NET MVC 3における単体テストの基本と記述方法
  • 非同期処理とディスパッチャー

    24日・25日とWDDに行ってたわけですが。 講演者の皆様、UIスレッドとディスパッチャーの話で苦労されてた印象。この辺りの仕組み、どうなんだろうなーとか、少し書いておこうかと。 UIスレッドに紐付いたクラス まず前提。 UIスレッド まず、GUIがらみのクラスは、単一スレッドからしかアクセスできないように作ってあります。スレッド安全に作ろうとするとパフォーマンスが出ないので、いっそのこと、UIスレッド以外からアクセスがあったら例外を出して止まるように作ってあります。 この、GUIコンポーネントと紐付いているスレッドがUIスレッドです。 エンド ユーザーからの入力なんかを受け付けているのもこのUIスレッドで、UIスレッド上で時間がかかる処理をすると、UIがフリーズします。 なので、時間がかかる処理をするときは、一度別スレッドで処理して、結果をUIスレッドに戻すというフローが必要です。 WP

    非同期処理とディスパッチャー
  • NUnitの全貌 ~ 基本から、最新バージョンの新機能まで

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    NUnitの全貌 ~ 基本から、最新バージョンの新機能まで
  • SignalR を簡単に使ってみた - しばやん雑記

    こんばんわ、久しぶりに真面目に技術ネタでブログを書いてみます。 SignalR という非同期でリアルタイムな双方向通信を実現するライブラリが面白そうなので試してみました。作者は ASP.NET チームの Damian Edwards 氏と David Fowler 氏です。 ソースコードは GitHub で管理されていますが、NuGet で一式が公開されているので便利ですね。 GitHub https://github.com/SignalR/SignalR NuGet https://nuget.org/packages/SignalR とりあえず空の ASP.NET アプリケーションを作成します。SignalR は Web Forms や MVC などに関係なく動作するので、別にどれでも構わないのですが。 作成出来たら NuGet を使って SignalR をインストールします。パッケ

    SignalR を簡単に使ってみた - しばやん雑記
  • C#次世代非同期処理概観 - Task vs Reactive Extensions

    1. C#次世代非同期処理概観 Task vs Reactive Extensions 2012/3/10 #riaarch Yoshifumi Kawai @neuecc 2. Profile  Name => Yoshifumi Kawai仕事は近頃はASP.NETで、あまりRIAじゃなかったり  まあ、HTML5もRIAですし!  Twitter => @neuecc  HN => neuecc  読むときは“のいえ”と読ませてます  サイトのドメイン(特に意味はない)を繋いだだけ で、識別子になればそれだけでいいと思って発音考 えてなかったので割とアレ  Microsoft MVP for Visual C#(2011/4-)

    C#次世代非同期処理概観 - Task vs Reactive Extensions
  • Microsoft R Server now available for Academics and Students via DreamSpark - big data statistics, predictive modeling and machine learning capabilities - Microsoft UK Faculty Connection - Site Home - MSDN Blogs

    In Visual Studio 2022 17.10 Preview 2, we’ve introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Please install the latest Preview to try it out. Read on to learn what the Connection ...

    Microsoft R Server now available for Academics and Students via DreamSpark - big data statistics, predictive modeling and machine learning capabilities - Microsoft UK Faculty Connection - Site Home - MSDN Blogs
  • Version Control Guidance – Frequently Asked Questions - MSDN Blogs

    In Visual Studio 2022 17.10 Preview 2, we’ve introduced some UX updates and usability improvements to the Connection Manager. With these updates we provide a more seamless experience when connecting to remote systems and/or debugging failed connections. Please install the latest Preview to try it out. Read on to learn what the Connection ...

    Version Control Guidance – Frequently Asked Questions - MSDN Blogs