C#
Monoでコマンドラインパーサーがあったので使ってみた。 .NET 4、コマンドラインパーサー未搭載 http://www.ndesk.org/Options 使い方はこんな感じ string data = null; bool help = false; int verbose = 0; var p = new OptionSet () { { "file=", v => da…
最近、WPF界隈でModel-View-ViewModel(M-V-VM)パターンとかいうデザインパターンが人気らしいのでちょっと調べてみた。発端は↓この辺からなのか知らないけど、拙い英語力ということもあり、よく理解できなかった。というか、そもそもWPFに興味無いし。 THE…
EnterpriseLibraryから独立したDIコンテナのUnity Application Block(UAB)がバージョン1.2になって、Silverlight対応版が出たので軽く使ってみた。前に1.1が出た時に使ってみた時のエントリを参照してもらうとUABがどんなものかわかると思う。 Unity Appli…
仕事でVB.NETを使う必要が出てきそうなので最近のVBがどうなっているのかチェックがてらメモしておく。VBは7(.NET 1.0)までしか使っていないので、その後ジェネリックとかがどのように取り込まれたか全く知らないのでそのへんも気になる。 基本的な相違点 …
ネタが無いのでASP.NETとSpring.NETでよくやる事を書いてみる。例えばサーバーサイドで「App_Data」フォルダなんかに置いてある設定ファイルを読み書きする場合、そのファイルのURLを「Server.MapPath」メソッドを使って実際の物理パスに変換するなんて事を…
ここでC# 4.0からdynamicというキーワードが追加されて動的型付けのオブジェクトが使えるようになったと書いたけど、てっきりC# 3.0のvarと同じでローカルスコープでしか使えないと思っていたらそうじゃないのね。なので、こういうことができるようになるん…
さっきの続きまだよくわからんけど、IDynamicObjectというインターフェースを実装すると動的型付けのオブジェクトを作れるみたい。しかもその情報(メソッドとかプロパティとか)をどのように持つかは実装クラスに委ねられる。で、その基本実装を提供するク…
PDC2008のAnders Hejlsbergのセッションをビデオで観てたら、新機能の紹介があったので書いてみる。 The Future of C# | pdc2008 | Channel 9 Dynamically Typed Objects 動的型付けオブジェクト?以前は、以下のようなオブジェクトのメソッド呼び出しを Cal…
前回の続きです。今回はSet−Contentコマンドレットへの対応からはじめます。 Set-Contentコマンドレットへの対応 Set-Contentコマンドレットに対応するには、IContentCmdletProviderインターフェースの以下のメソッドを実装します。 void ClearContent ICont…
前回の続きです。今回はタブ補完から実装します。 タブ補完への対応 タブ補完に対応させるには、以下のメソッドをオーバーライドします。 void GetChildNames(string path, ReturnContainers returnContainers) 実装する前にタブ補完とはどのような機能なの…
前回の続きです。今回はNew-Itemコマンドレットへの対応から始めます。 New-Itemコマンドレットへの対応 New-Itemコマンドレットに対応させるには、以下のメソッドをオーバーライドします。 void NewItem(string path, string itemTypeName, object newItemV…
前回の続きです。今回はまず、自作のプロバイダーでcd ができるようにする、つまりSet-Locationコマンドレットに対応させます。その前にこのプロバイダーをデバッグできるようにしておきましょう。 デバッグの設定 Visual Studioのプロジェクトのプロパティ…
PowerShellの重要な特徴として、ファイルシステムやレジストリ、環境変数など異なるデータソースに対して共通の操作(コマンドレット)が行えるということが挙げられます。例えば、以下のように「C」ドライブ直下に「New-Item」コマンドレットでファイルを作…
先日のSilverlightを囲む会#4でid:kiyokuraさんとASP.NETのObjectDataSourceの話をしていて、きよくらさんがObjectDataSourceを使わないと言っていたに対して自分がObjectDataSourceはSpring.NETと絡めると効果的ですよなんて話をしたので、そのへんの事を書…
テキストボックスの横幅は自動調整されるようになったけど、上下ボタンの縦高さも自動調整する必要があるのでこれもやる。 Controls/NumericUpDown.cs private ButtonBase upButton; private ButtonBase downButton; private TextBox valueTextBox; private …
Silverlightでカスタムのコントロールを作る場合、通常「UserControl」クラスを継承して作ることになるけど、この方法だと再利用性がかなり低い*1。なので、「UserControl」から派生するのではなく、UIコントロールの基底クラスである「Control」クラスから…
つづき データベースとの接続 次はツリービューにディレクトリの一覧を表示するために実際にデータベースにアクセスしてデータを取ってくるようにする。これにはLINQ to SQLを使用する。「SLDoc.dbml」というファイル名で「LINQ to SQL」ファイルを追加する…
では、プロジェクトを作っていく。 ソリューション構成 Visual Studuio 2008で以下のソリューションとプロジェクトを作成する。 「SLDoc」プロジェクトは「ASP.NET Web アプリケーション」で作成し、「SLDoc.UI.Silverlight」プロジェクトは「Silverlight ア…
最近仕事でもちょこちょこSilverlightを使い出してきて*1、Silverlight開発の定石みたいなものがうっすらと見えてきた。例えば、 Silverlightだけでアプリケーションを作ろうと考えない(HTMLにはHTMLの得意なところ苦手なところ、Silverlightには(ry ) Sil…
仕事でLINQ to SQLを使ってDBからデータを検索してくるアプリを開発していて、検索する値をスペースで区切った場合はOR検索するという仕様を実装する必要があった。OR検索自体は以下のように論理演算子で条件をつないでいくだけ。 var result = from d in db…
LINQ to SQLを仕事で使う機会があったので、実際に使うまでやり方を知らなかった機能のメモ。 Group by group 要素 by キー var db = new HogeDataContext(); var query = from d in db.Person group d by d.Organization; さらにここから集計する場合 var r…
この前eラーニング用のコンテンツを作るアプリを作ったけど(途中で面倒くさくなって未完成だけどね)、このアプリでは作ったコンテンツの情報はXMLに保存されていて、その情報を元にUIを生成していた。つまりSilverlightコンテンツ(XAP)は一つで、パラメ…
Mike SnowsさんのブログでSilverlightでマウスの右クリックをフックする方法が紹介されていたので、やってみた。 MSDN Silverlight | Microsoft Docs 普通はSilverlightコンテンツ上で右クリックすると「Silverlightの構成」というコンテキストメニューが表…
普段はNUnitを使って単体テストをやっているけど、まだSilverlightには対応していないのでSilverlightアプリの単体テストはやったことがなかった。でも、そろそろやった方がいいかなぁと思い始めてSilverlight用の単体テストフレームワークを調べたところJef…
Beta 2 になってからHttpWebRequestを使わなくてもWebClientだけである程度*1のHTTPリクエストができるようになったので、まとめておく。 GET まずはGETから。 var wc = new WebClient(); wc.DownloadStringCompleted += (s, e) => { if(e.Error == null) { …
この前遊んだ「けんてーごっこ」というWebサービスを会社の上司に見せたら、「これeラーニングサービスとかに使えるんじゃね?」とか言われたので、「けんてーごっこ」をパクってeラーニングアプリを作ってみた。ここで言う「eラーニング」っていうのは企業…
昨日のエントリで、 個人的にはScriptObjectからJsonValueにいきなりキャストできたら最高だった。 なんてことをつぶやいていたけど、せっかくなんで作ってみた。JsonValueオブジェクトはJSON文字列からしか生成できないけど、Silverlightは生の(文字列では…
Beta 2になってJSONを直接扱うためのクラスが追加されたので、ちょっと触ってみた。JSON用のクラスは「System.Json」(そのまんまやな)というアセンブリに納められている。その中には、 JsonValue JsonObject JsonArray JsonPrimitive JsonType(列挙型) …
id:nitoyonさんがおもしろいことをやっていたので、Silverlightでマネをしてみた。 AS3.0 で 3D プログラミングを1から勉強する (1) - てっく煮ブログ 跡地 ActionScriptで3Dエンジンを一から作ってみようという話。ActionScript自体はあまり知らないけど3D…
Beta 2になって(前から?)この両者からコールバックされる時のスレッドに変更があったっぽい。WebClientのDownloadStringCompletedイベントからコールバックされる時はメイン(UI)スレッドから呼び出されるのに対して、HttpWebRequestのBeginGetResponse…