.NET

SonarAnalyzer.CSharp でサイクロマティック複雑度を算出

C# ソースファイルのサイクロマティック複雑度(循環的複雑度)を算出するサンプルを SonarC# (SonarAnalyzer.CSharp) の API を利用して作ってみました。 今回、使用した環境は以下の通りです。 SonarC# 7.13 .NET Core SDK 3.0 preview3 ソースは http:/…

IronPython による VirtualBox のインポート・エクスポート - COM API 使用

VirtualBox のインポート・エクスポート処理を IronPython から COM API を使って試してみました。 環境は以下の通りです。 Windows用 VirtualBox-4.2.14-86644 IronPython 2.7.3 ソースは http://github.com/fits/try_samples/tree/master/blog/20130707/ …

記号文字の URL エンコード - Java, .NET, JavaScript, Ruby, Python, PHP

下記のような文字をいくつかのプログラム言語の標準的な API で URL (URI) エンコードしてみたらどうなるか試してみました。 ; / ? : @ = & % $ - _ . + ! * ' " ( ) , { } | \ ^ ~ [ ]使用した言語は下記の通りです。 Groovy (Java API) C# (.NET Fram…

Mono で Rx を使用する

Mono で Rx (Reactive Extensions) を使ってみました。 Mono 3.0.3 Rx 2.1 Rx は非同期やイベント処理を LINQ で実装できるようにする API で、id:fits:20130212 や id:fits:20130216 で試した Iteratee によく似ていると思います。 生産者 消費者 Iterate…

非同期処理でWebコンテンツをダウンロードする方法3 - node.js, C#

今回は、Node.js と Async CTP を使った C# で実装してみました。 node.js C# : Async CTP サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20111030/ node.js の場合 以前は Windows で node.js を使用するのに Cygwin を使ってビル…

非同期処理でWebコンテンツをダウンロードする方法2 - Groovy, Scala, Java, C#

今回は、前回(id:fits:20111016)と同様の非同期ダウンロード処理を Java と C# で実装し、Groovy と Scala は別の実装方法を模索してみました。使用した機能は以下の通りです。 Groovy : Actor (GPars) Scala : 限定継続 + ops Java : Concurrency Utiliti…

非同期処理でWebコンテンツをダウンロードする方法 - Groovy, Scala, F#

前回(id:fits:20110925)、並列コレクション等で Web コンテンツをダウンロードする処理を実装してみましたが、今回はその非同期処理版を Groovy, Scala, F# で実装してみました。(主な仕様は前回と同じ) 実行例 groovy async_download_web.groovy destdi…

LINQやコレクションAPIを使ってCSVファイルからデータ抽出 - C#, F#, Scala, Groovy, Ruby の場合

id:fits:20110702 や id:fits:20110709 にて、SQL を使ってデータ抽出した処理を LINQ やコレクション API を使って実施し直してみました。(ただし、今回は station_g_cd でのソートを実施していない等、以前使った SQL と完全に同じではありません)今回は…

Windows Azure 上で F# の Web ロールを実行

Windows Azure 上で単純な F# の Web ロール用アプリを実行してみました。id:fits:20100906 の F# による ASP.NET のサンプルをそのまま使ってみるつもりだったのですが、Compute Emulator でのページ表示時に以下のようなエラーが発生し、解決策が見つから…

F# でパーサーコンビネータを使った CSV ファイルのパース処理 - FParsec 使用

前回(id:fits:20101226)実施したパーサーコンビネータによる CSV ファイルのパース処理を FParsec を使って F# でやってみました。環境は以下の通り。 F# 2.0.0 FParsec 0.8 サンプルのソースは http://github.com/fits/try_samples/tree/master/blog/2010…

Groovy, Scala, F#, Haskell による関数・クロージャの合成

Groovy 1.8 のクロージャ合成の機能を試したついでに、Scala, F#, Haskell での関数合成の機能も簡単にまとめてみました。サンプルのソースコードは http://github.com/fits/try_samples/tree/master/blog/20101213/ Groovy の場合 Groovy では >> や Groovy…

PHP, C# での Excel準拠 CSV ファイルのパース処理

前回 id:fits:20101129 の続きで、Excel の仕様に準拠した CSV ファイル(改行・カンマ・ダブルクォーテーションを要素内に含む)をパースするサンプルの PHP と C# 版です。使用する CSV ファイルや出力結果の例は、前回 id:fits:20101129 を参照。サンプル…

Entity Framework Feature CTP 4 で MySQL 使用 - モデル間に一対多の関連

ADO.NET Entity Framework Feature Community Technology Preview 4 (以下 EF CTP 4)を使って、MySQL に接続するコンソールアプリのサンプルを作成してみました。EF CTP 4 は ADO.NET Entity Framework(.NET Framework 4 に含まれている)に対する機能拡…

IronPython, IronRuby での Silverlight 4 におけるブラウザー外実行と COM 連携 - WshShell でメモ帳を起動

IronPython, IronRuby で実装した Silverlight 4 にて、ブラウザー外実行時の COM オートメーション連携機能を試してみました。(ただし、IronRuby の方は正常動作しなかった)使用した環境は以下の通り。 IronPython 2.7A1 IronRuby 1.1.1 なお、COM オート…

Scala, F#, Ruby によるメール送信 - メールで Evernote にノート登録

メールを使った Evernote へのノート登録を Scala, F#, Ruby で試してみました。Evernote は、ノート登録用のメールアドレス(アカウント情報に記載あり)に以下のような Subject(件名)でメール送信するだけでノート登録ができます。(メールの本文がノー…

Visual Studio を使わずに F# で Silverlight 4 のサンプル作成 - fsc.exe を用いた手動作成

Visual F# 等の助けを借りず、Silverlight 4 の簡単なサンプルを fsc.exe を使って手動作成してみました。以前 id:fits:20080310 に Silverlight 2 のサンプルを IronPython で作った方法と似てますが、今回は AppManifest.xaml も自前で用意するので Chiron…

Sinatra風にASP.NET(F# 編)

前回 id:fits:20100920 作成したサンプルを F# で実装しなおしてみた。 (ASP.NET で F# を使う設定に関しては id:fits:20100906 参照)サンプルソースは http://github.com/fits/try_samples/tree/master/blog/20100923/ Get, Post メソッドの定義 C# では…

Sinatra風にASP.NET - ASP.NETルーティング機能を使って

ASP.NET MVC を使えば、ASP.NET で Rails っぽい事ができますが、JSON を返すだけの処理とかに ASP.NET MVC を使うのは大げさすぎる感じがしています。そのため、ASP.NET で Sinatra 風のフレームワークが無いか調べてみたのですが、なかなか良さそうなのが…

F# で ASP.NET

F# で ASP.NET を実装してみました。 Visual Web Developer 2010 Express では、F# 用プロジェクトは作成してくれないみたいだったので(Visual F# が要ると思う)、自前で Web.config ファイルを用意し、Visual Web Developer を使わずに実装してみる事にし…

WCFで名前付きパイプを使ったプロセス間通信 - IronPython でサーバーとクライアントを実行

WCFで名前付きパイプを使ったプロセス間通信を実施してみる。 サービスは C# で、サーバー・クライアントは IronPython でコーディングしてみた。使用した環境は以下の通り。 .NET Framework 3.5 IronPython 2.6 サービスの作成 まず、C# でサービスをコーデ…

Scala で .NET 用の実行ファイル作成

Scala の追加パッケージ scala-msil を使えば、Scala のスクリプトから .NET 用の MSIL(Microsoft Intermediate Language)テキストファイルを生成できる。ということで早速試してみる。今回使った環境は以下の通り。 Scala 2.7.3 scala-msil インストール …

IronPython で Silverlight 2.0 - ボタン表示

前回 id:fits:20080310 のサンプルに手を加えて、ボタンを表示する簡単なサンプルを作ってみた。使用したのは前回と同様に Silverlight SDK 2.0 Beta1。前回との違いは以下のような点。 app ディレクトリに AppManifest.xaml ファイルを用意(前回は chiron.…

IronPython で Silverlight 2.0

Silverlight SDK 2.0 Beta1 を使って IronPython を使った簡単なサンプルを作ってみた。手順は以下の通り。 app ディレクトリ作成 app.xaml 作成 app.py 作成 chiron.exe による app.xap 生成 index.html 作成 なお、Silverlight SDK 2.0 Beta1 では IronPyt…

C# 3.0 を使ってみる

匿名型、クエリ式、オブジェクト初期化子 C# 3.0 で導入された「匿名型」、「クエリ式」、「オブジェクト初期化子」などを使った簡単なサンプルを書いてみた。 using System; using System.Collections.Generic; using System.Linq; using System.Text; name…

IronPython で WebDAV を使ってファイルをアップロード

以下のように .NET の WebClient や WebRequest クラスを使えば、WebDAV の操作が行える。 コレクションの作成 WebClient の UploadString 等を使って URI、MKCOL を指定するだけなので非常に簡単 http://localhost/webdav/ に test1 フォルダを作成する例 f…

IronPython での COM オブジェクトのプロパティ

COM オブジェクトの set_XXX メソッドは IronPython 上でプロパティ(attribute)として扱われる。そのため、複数の引数をもつ set_XXX メソッドの場合、IronPython 上では set_XXX が使えず、以下のような記述をすることになる。 obj.Property名[引数値, 引…

IronPython での Generics の扱い

IronPytyon では、generic な型は、" [タイプ名] "で指定するようになっている。例えば、C# で以下のような記述をする場合、 List<string> list = new List<string>(); IronPython では以下のようになる。 list = List[String]() IronPython での Generics タイプ使用例 # co</string></string>…

IronPython を使って Excel ファイルの指定セルの値を取得

IronPython を使って、既存 Excel ファイルの指定セルの値を取得するサンプルを作成する。 事前準備 Microsoft Office 2003 がインストールされていれば、以下のように clr を import し、office と Excel の .NETアセンブリを AddReference するだけでよい…

AspectDNG の GAOP 機能の問題点

GAOP 機能は、アスペクトのウィービング時に内容を決定できる機能で実装の追加内容を文字列等で指定できる。ただし、AspectDNG 1.0.3 の Generic アトリビュートを使った GAOP 機能では以下のような問題があり、現段階での有効利用は難しい印象がある。 フィ…

AspectDNG を使って private なフィールドにアクセスするメソッドを追加する

ターゲットクラスの private なフィールドにアクセスするメソッドを追加するには、アスペクトの定義クラスに Insert カスタムアトリビュートを使ってメソッドを実装すればよいだけだが、コンパイルを通すために アスペクトの定義クラスでターゲットクラスと…