タグ

.NETに関するkahkiのブックマーク (307)

  • Break Free of Code Deadlocks in Critical Sections Under Windows

    Admittedly, my choice of cmdlet names is rather terse—most of my colleagues prefer more descriptive cmdlet names. For example, you might want to rename the get-window to something like get-automationWindow or get-uiAutoWindowHandle. (Fortunately, you can provide aliases for custom cmdlets with long names.) Every custom cmdlet library in Windows PowerShell must implement a special snap-in class tha

    Break Free of Code Deadlocks in Critical Sections Under Windows
  • UIAutomationのサンプル - じゅんじゅんのきまぐれ

    昨日書いたもののソースを掲載。 クラス名はUIWindowでない方が良いかな。 $source = @" using System; using System.Windows.Automation; using System.Threading; public class UIWindow { private const int _moment = 100; private AutomationElement _ae; private AutomationProperty _ap = AutomationElement.AutomationIdProperty; public AutomationElement Element { get { return _ae; } } public AutomationProperty Property { get { return _ap; } s

    UIAutomationのサンプル - じゅんじゅんのきまぐれ
  • PowerShellスクリプトの実行方法とUIの自動テスト

    2012/03/31 作成 2012/04/01 更新 概要 MSDNの記事に「Windows PowerShell での UI テスト自動化」がある。 PowerShellに慣れている事が前提の記事なので慣れていないと難しい。 そこでPowerShellスクリプトの実行するために必要なことを記述する。 「Windows PowerShell での UI テスト自動化」のスクリプトが動かせることを目標とする。 PowerShellで注意点 デフォルトではPowerShellスクリプトの実行は許可されていない。 C#でPowerShellの機能(コマンドレット)を作成できる。 PowerShellには任意のウインドウ上のコントロールを直接操作する機能はない。 C#でコマンドレットを作成し使用する。 32bit環境をターゲットに作成したコマンドレットは64bitのPowerShell上では動作

  • UIAutomationについて - 潜在推力

    msdn : UI オートメーションの基礎 MSDN Magazine : テストの実行: Microsoft UI オートメーション ライブラリ msdn : UI Spy (UISpy.exe) .NET Framework 3.0から追加になっていたらしい、UI オートメーションが面白い。何が出来るか、については、Microsoft SDKについてくる、UISpyを触るとわかりやすいと思います。UISpyは、UIAutomationで出来る事を、ストレートにGUIでラップした感じのものなので。使うと、FirefoxのDOM InspectorでWindowsデスクトップが触れる、みたいな印象だと思います。他プログラムのウィンドウやコントロールを取得して、操作出来る。操作するには、コントロールからGetCurrentPatternで、操作用のパターンを取得する必要があり、ちゃんと対応

    UIAutomationについて - 潜在推力
  • UI Automation Clients

    UI Automationについて参考になりそうなページを50個ほどブックマークしたものの、多すぎるので入口として役立ちそうなページを抜粋しておく。 来はUIテストやアクセシビリティを目的としているようだが、今回は他人が作ったソフトを自動制御するために使う。 プロバイダとクライアントの説明があるが、今回はクライアントのことが分かればよいはず。 Windows Forms、WPF、サードパーティのUIコンポーネントでもたいていはオートメーションプロバイダとして扱えるようだ。 確証はないがUISpy.exeを使ってAutomationIdなどが確認できれば対応していると思っていいのではないかと思っている。 UI Automation のススメ UI Automation Fundamentals UI Automation Client Programmer's Guide (Windows

    UI Automation Clients
  • Visual Studio Tools for Git (Preview)のインストールと使い方その2

    GitHubへのPush 前回の記事で、ローカルでの基的な機能の確認をしたので、リモート関係の機能を確認していきたいと思います。 まずGitHubにテスト用のリポジトリを作成します。 この状態で、README.mdなどは作成しない様にします。 ページ上にあるHTTPSのURLをコピーします。 次にVisual StudioのChangesを表示させ、View Commitsを選択します。 Commitsが表示されたら、下の図で黄色に反転しているテキストボックスに、先ほどコピーしたGitHubのレジストリのURLを貼り付けます。 Publishをクリックします。既にボタンの名称がヤヴァイ感じです こうすると、勝手にPushします。当に勝手にPushします。(大事なことなので2回書きます)ドイヒーすぎです。Remoteの登録と見せかけて、Pushですよ。 そして、Pushが完了すると以下の

    Visual Studio Tools for Git (Preview)のインストールと使い方その2
    kahki
    kahki 2013/03/06
  • “Microsoft All-In-One Code Framework”からサンプルコードのブラウザーが無償公開

    kahki
    kahki 2013/02/27
  • Coding Guidelines for C# 3.0, 4.0 and 5.0を読んで - Kokudoriing

    Dennis Doomenさんとやら(よく知らない)がお作りになった「Coding Guidelines for C# 3.0, 4.0 and 5.0」 というC#のコーディングガイドラインがあるんですが、それが日語翻訳されたらしいとのこと。 Coding Guidelines for C# 3.0, C# 4.0 and C# 5.0 - Download: Coding Guidelines for CSharp 3.0, 4.0 and 5.0 早速読んでみたのでその感想を。 当たり前ですが万人受けするガイドラインなんてあるはず無いのでいくつかは僕には合いませんでした。のでその理由も。 そして間違ってたらこっそりゆっくりまったり優しくご指摘いただければ幸いです。 ・The Principla of Least Surprise(最小の驚きの原則) は、ソリューションには人々が理解

    Coding Guidelines for C# 3.0, 4.0 and 5.0を読んで - Kokudoriing
    kahki
    kahki 2013/02/18
  • 菊池さんによるT4テンプレート講義

    Visual Studioと言うか、MS開発環境でT4テンプレートというテキストテンプレートエンジンが用意されています。 このT4テンプレートはなかなか情報も無く(MSDNにはある)取っつきにくいところもありますが、そこをT4を実際にたくさん使用されている菊地さんが2/9のCLR/Hで講義した内容を速くもYouTubeに上げてくれました。ずっとデモなビデオになっているので、参考になると思います。 セッションスライド

    菊池さんによるT4テンプレート講義
    kahki
    kahki 2013/02/18
  • http://winscript.jp/powershell/260

  • Linq to DataSet

    kahki
    kahki 2013/02/07
  • DataSet / DataTableに対してLINQを使う方法 - @kotyのブログ

    追記:このエントリーが当ブログで一番アクセスが多いです。DataSetはまだかなり使われてるんですね。。。 追記終わり。 感動したんでポストしときます。 Entity Frameworkが登場したり、Silverlightじゃサポートされなかったりと、昨今はめっきり印象が薄いDataSetやDataTableですが、.NET Framework 1.1/2.0 アプリだとバリバリ使われまくってると思います。そんなアプリを.NET 3.5 に移行後、「よーしLinqつかっちゃうぞ!」と思って、いざDataTable.Rows. まで打ってインテリセンスを表示させてみると、いつもの拡張メソッドが出てきません。このガッカリ感はハンパない。DataRowCollectionはIEnumerableを実装してないんですねぇ。 とガッカリしていたのが半年ほど前でそのまま放置してたんですけど、最近見つけ

    kahki
    kahki 2013/02/07
  • DataTableのJOINの代わりにLINQ to DataSetを使う - Architect's Log

    DataTableは便利ですが、JOINの機能がありません。そのため、以下のような方法を使って擬似的にJOINを実現するしかありませんでした。 DataColumn.Expression プロパティ (System.Data) 行のフィルタ処理、列内の値の計算、または集約列の作成に使用する式を取得または設定します。 親子のリレーションシップの参照 列名の前に Parent を付けて、式の中で親テーブルを参照できます。たとえば、Parent.Price は、親テーブル内の Price という名前の列を参照します。 列名の前に Child を付けて、式の中で子テーブル内の列を参照できます。ただし、子のリレーションシップから複数の行が返される可能性があるため、集約関数には子への参照を含める必要があります。たとえば、Sum(Child.Price) は、子テーブルの Price という名前の列の合

    DataTableのJOINの代わりにLINQ to DataSetを使う - Architect's Log
    kahki
    kahki 2013/02/07
  • C# LINQラムダ式入門 1. 便利なとこから始めよう - 勝綾正テルの憂き浮遊

    C#は非常に書きやすいし、見やすい言語です。 が、LINQとラムダ式に関しては、 かなり特殊な見栄えでとっつきにくい。 これが、僕の第一印象です。 C#は、数年前に書き始めましたが、 最近やっと自分の中でこれらが馴染んだ気がするので、 少しずつ紹介していきたいと思います。 まず、初めてこれらのコードを見た人は、 二、三度見返したと思います。 「なんだ、これは…」 そう思ったでしょう。 今だから思うのですが、最初は無理に理解しようとしない方がいいと思います。 簡単便利な使い方から初めて、 自分の中で少しずつ咀嚼(そしゃく)するのがいいです。 最初に専門書の説明をだらだら見た結果、 僕は一時期LINQ嫌いになってしまいました。 だから、小難しいことは最初はやめましょう。 というわけで、最もわかりやすくて使いやすくて 使用頻度か高い(自分調べ)Whereさんから慣れ親しみ始めましょう。 次のよう

    C# LINQラムダ式入門 1. 便利なとこから始めよう - 勝綾正テルの憂き浮遊
    kahki
    kahki 2013/02/07
  • なれる! .NETer! 春までにVBerを脱却して、モテカワコーディング! - はちみつとビール

    やぁみんなこんばんわ! 今日も元気にVB書いてるかな? Wow! そいつぁゴキゲンだ! ところでVBerのみんなは、自分たちの世間での評判、知ってるかな? うん、そうだね、くそみそだね! 実際、VBしか書けないよぉ〜〜って人で、まともなコード書いてる人は今まで(といっても僕の見てきた数は少ないけどね)一人もみたことないんだ。新人の子も、VB.NETで研修はじめてから、半年でびっくりするくらいのクソコードを量産するようになっていたしね。 そういった歯がゆい現実に対処するため、VBAからプログラミングを学びはじめて、今に至るまでひたすらVB.NETでコーディングしているというVBネイティブの僕が、ここ一年とちょっとで学んだあれやこれを載せたいとおもう。世の中に存在する、あるいはこれから生まれるVBコードが、少しでも良くなるように……ね! 目標 これだからVBerは……とあんま言われないようなコ

    なれる! .NETer! 春までにVBerを脱却して、モテカワコーディング! - はちみつとビール
    kahki
    kahki 2013/01/31
  • Modern C# Programming 現代的なC#の書き方、ライブラリの選び方

    入門 Kubeflow ~Kubernetes機械学習をはじめるために~ (NTT Tech Conference #4 講演資料)NTT DATA Technology & Innovation

    Modern C# Programming 現代的なC#の書き方、ライブラリの選び方
    kahki
    kahki 2013/01/31
  • 社内システムのリプレイス方針とTips - Cybozu Inside Out | サイボウズエンジニアのブログ

    「サイボウズ・アドベントカレンダー」の5日目です(これまでの記事一覧)。第1週は無事クリアできました。ありがとうございます。 こんにちは、社内システム開発チームの山田です。 突然ですがサイボウズは何を販売している会社でしょう? そうですグループウェア・・・のライセンスです!社内システム開発チームでは主にライセンスの販売管理システムを担当しています。 開発しているシステムは、cybozu.com を販売するための cybozu.com Store と cybozu.com Store と連携する社内向けのライセンス販売管理システムです。クラウド化が打ち出される前から社内向けシステムのリプレイスを進めていたのですが、結果としてビジネスの変化を予想したかのような絶妙なタイミングとなりました! 今回はそのリプレイスでうまくいった方針とちょっとしたTipsを紹介します。 リプレイスしたシステム、しな

    社内システムのリプレイス方針とTips - Cybozu Inside Out | サイボウズエンジニアのブログ
  • Ito Blog » Blog Archive » LINQ における ToList メソッド

    LINQ to Objects を使うときに、一度 ToList<T> メソッドで List<T> インスタンスを生成する人をよく見かけます。 例えば、先日以下のようなコードを見かけました。 var q = Enumerable.Range(0, 10).ToList().Where(x => x%2 == 0); foreach(var x in q) Console.WriteLine(x); LINQ to Objects は、シーケンスを式として表現できるため、具体的なコレクションにする必要はありません。 Enumerable.Range メソッドは、IEnumerable<int> 型のシーケンスを返しますから、これに対して Where すれば良いのです。 したがって、以下のように記述することができます。 var q = Enumerable.Range(0, 10).Where

    kahki
    kahki 2013/01/13
  • DAOの詳細設計 C#編 - @ledsun blog

    J2EEパターンから始まって今となっては一般的になったDAOパターン、の詳細設計。 DTO DTOは更新時間、更新ユーザ以外のテーブルカラムをすべて持たせる。 カラム名とプロパティ名を対応させておくとINSERTとUPDATEのSQLを動的に生成できて楽。 マスタメンテナンス画面なんかは削除中も表示することがあるので削除フラグも持たせる。 ゲッターはpublic 次の実装が楽 IDの差し替え 特定カラムの更新 セッターはprivate コンストラクタで指定すれば、カラムの増減があった際に修正個所をコンパイルエラーで拾える DAOのメソッド 次のようなメソッドを一律用意しておくと大体なんとかなる*1。何とかならない場合は個別に追加すればよい*2。 前提 更新ユーザはDAOの引数で受け取る 更新時間はDAOで現在時刻を取得して更新する 更新件数を戻すとテストしやすい C 1件Insert pu

    DAOの詳細設計 C#編 - @ledsun blog
  • C# | Aiming 開発者ブログ

    kahki
    kahki 2012/12/26