EXDoc」カテゴリーアーカイブ

dynamic を利用して ExDoc を書き直してみる(1)

「メタプログラミング .NET」をざっと読み終わったので、手元の github から ExDoc をダウンロードしてきて、dynamic 版の ExDoc を作っているところです。 旧 ExDoc は、演算子のオーバーライトと暗黙のキャストを使って、/,*,%演算子を使って XML を探索できていました。まあ、奇妙といえば奇妙だけど、LINQ の派生みたいな感じで作れるわけです。タグを指定するのが文字列なのがあれなのと、だったら XPath で指定してもいいんじゃないか、という話もありますが、まあ実験的に。ちなみに、このライブラリは実運用で4年ほど使っています。CakePHP をサーバーにして、クライアント側の XML パースを ExDoc を使ってパースしているという技ですね。 で、常々、PHP の SimepleXML がうらやましかった訳ですが、そんな風に直接プロパティで設定できるの … 続きを読む

カテゴリー: C#, EXDoc | コメントする

ヒアドキュメントっぽく Yaml を書くための ExDoc.Yaml をリリース

Yaml を利用して C# でヒアドキュメントを考える | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/6560 これの実装編です。Yaml をパースするためのライブラリが SharpYaml にあるので、これを使います。最初は、YamlDotNet を利用して作っていたのですが、 PCL 版がないので SharpYaml を使っています。SharpYaml 自体が YamlDotNet の派生ということなので、中身は同じクラスが使われています。 github moonmile/ExDoc https://github.com/moonmile/ExDoc コードは github で公開していて ExDoc の下にあります。ついでに、HTML と Json 版も作りました。 ExDoc.Html – … 続きを読む

カテゴリー: 開発, C#, EXDoc | コメントする

Yaml を利用して C# でヒアドキュメントを考える

XAML + XDocument + XamlReader.Load を使うと、ヒアドキュメントっぽくコードに XAML を書くことができます。 [WinRT] XElement を使い XAML を構築して動的に XamlReader.Load で読み込む技 | Moonmile Solutions Blog http://www.moonmile.net/blog/archives/6556 な感じで、XElement を使って構築してもよいし、文字列で XAML を書いてもよい(実際 Storyboard のクローンを作るときは、そうしています)。VB であれば XML 構文を使えばよいのです。 が、ヒアドキュメントで書くにせよ、外部ファイルの読み込み(あるいはリソースからの読み込み)であっても、XML を手書きするのがちょっと面倒で、特に「閉じタグ」の問題が関わってきてしまいます。 … 続きを読む

カテゴリー: 開発, C#, EXDoc | コメントする

[WinRT] HttpClient+HtmlAgilityPack+XDocument+ExDoc で HTML データから抽出する話

Web API 華やかな昨今ですが、HTML形式からデータ抽出しないといけないパターンがあります。と言いますか、ちょっと前までは Excel VBA とか DOM を使って抽出したものですが、Wordpress のバックグランドの MySQL から直接取り出したり、そもそも Web API が用意されていたりして、それほど機会は多くないと思うのですが。まあ、ブラウザから手軽に拾えるのは良いかと。 WPF だったりすると、DOM を使って検索する方が早いのですが、ストアアプリだと DOM が取れません。わざわざストアアプリにする理由もないのですが、ダウンロードが手軽なのと、タブレットで使いやすいので敢えてストアアプリを使います。 アンケートツクレール http://enq-maker.com/ 自体が Web API を提供しているのかどうか?は別として、ブラウザから直接抽出を試みます。実は … 続きを読む

カテゴリー: C#, EXDoc, WinRT | コメントする

艦これ秘書官 ver.0.1

艦これ 司令部室 http://nozomi.arege.jp/KanHQ/ に触発されて、遠征と入渠の残り時間だけ表示するツールを作ってみました。こんな風にデスクトップに貼りつきます…つーか、画像の縁取りがいい加減(プログラムがいい加減)なのは、サンプルということで。 ソースは http://sdrv.ms/15UAUWW からダウンロードしてください。Visual Studio 2012 でビルドしているので、そのあたりは適当に。バイナリは、もうちょっと整理してからにしましょう。 中身で何をやっているかというと、 FiddlerCoreを使ってIEのプロキシをフックする。 遠征(deck_port)と入渠(ndock)のアドレスの時だけレスポンスをチェックして、JSONをパース 定期的に遠征と入渠の時間を書き換え ています。 JSONでパースするところは、JsonReaderWrite … 続きを読む

カテゴリー: 開発, EXDoc, 艦これ | コメントする

LINQ で使う Entity Data Model を編集する(前哨戦)

LINQ to MySQL を使って wordpress のデータベースを弄ろうとするときに障壁になるのが、Entity Data Model の自動マッピングです。 のように、自動でマッピングしてくれるのですが、「wp_」のプレフィックスが邪魔だったり、「post_author」のように命名規則が.NET風ではなかったり(C# だったら「PostAuthor」と書きたいところ)。だから、このテーブル名やリスト名を変更したいと思うわけです。 Visual Studio 上でちまちまと名前を変えることもできるのですが、実は *.edmx ファイルを直接書き換えても、マッピングするときの名称を変えることもできます…と言いますから、デザイナ自体がこの *.edmx ファイルを参照しています。 そのまま *.edmx ファイルをエディタで修正してもいいのですが、どうせならば、ざっと効率 … 続きを読む

カテゴリー: C#, EXDoc | コメントする

XmlWriter で StringWriter を使うと Encoding が「UTF-16」になってしまうの対処方法

ExDoc 絡みで、今更ながら XmlWriter クラスを使って xml 形式のデータを出力しています。 そこで、XmlWriter クラスのエンコードなのですが、デフォルトでは「UTF-8」なんだけど、何故か StringWriter を使って文字列に吐き出させると「

カテゴリー: C#, EXDoc | 1件のコメント

もう LINQ to XML は要らないけど、LINQ は必要

ExDoc を Silverlight でも動くようにちまちまと書き換えている途中。 moonmile/ExDoc – GitHub https://github.com/moonmile/ExDoc 既に NUnit を使ってテストコードを書いていたものを MSTest に書き換えています。本当は NUnit のまま動かしたかったのですが、Silverlight 上で動かん…と言うか、MSTest の場合も Siliverlight のクラスライブラリは対象にしていない(???)という感じで、結局、Visual Studio 2010 の単体テストコードの雰囲気を感じるのも兼ねて、MSTest を利用しています。 さて、その中でちょっと面白いテストコードを追加しました。 ExDoc は、暗黙のキャストと演算子のオーバーライドを派手にやっていて、「==」演算子もオー … 続きを読む

カテゴリー: 開発, EXDoc | 1件のコメント

PHPでEXDocを作ってみる(準備)

C# で大方 EXDoc が動いたので、本命(?)の PHP で動かしてみるテスト。 いや、単純に PHP: マジックメソッド – Manual http://www.php.net/manual/ja/language.oop5.magic.php を使えば、XML のタグ名や属性を直接書けるのでは?という思いつきです。 まずは、UIDD に従って、こんな風にコードが書けたらいいなぁ、というコードを作ります。 何をやっているか分かりますよね。PHP の場合は / 演算子などの多重定義ができないので、普通にメソッド/プロパティ呼出しをします。 この、-> 演算子のところで、直接 members やら person やらを書くわけですが、これがメソッド名だったりプロパティ名だった利する訳です。 で、当然、このメソッドは定義していないのでエラーになります。が、PHP のマニュアルに … 続きを読む

カテゴリー: 開発, UIDD, EXDoc | 2件のコメント