.NET

PowerShellにGrep(みたいなの)が標準である件について

前にPowerShellでGrep機能のあるスクリプトを作ったけど、標準のコマンドレットの「Select-String」というのがまんまGrepの機能を持ってたorz...しかもこっちはパイプラインからの入力も受け付けるし、はるかに高機能ときた。とりあえずAlias設定しといた。 …

PowerShellからはてなAPIを呼び出す 2

昨日作ったはてなAPIを呼び出すスクリプトから、XML-RPCの部分を抜き出して汎用的なスクリプト(Get-XmlRpc.ps1)にした。 Get-XmlRpc.ps1 param([string]$reqURL, [string]$methodName, [object[]]$arguments=@()) if($reqURL.Length -eq 0 -or $methodName…

PowerShellからはてなAPIを呼び出す 1

なんかムショウにPowerShellからWebサービスを使いたくなったので、身近なところではてなの「ブックマーク件数取得API」を呼び出してみた。 XML-RPCというプロトコルで呼び出す必要があるらしく、聞いた事はあるけど使った事が無いのでとりあえず調べる。 ↓…

C#からPowerShellをいじくりたおす 2

「Runspace」というクラスについてわかった事。例えば、以下のように「RunspaceInvoke」だけで変数を宣言して、その変数を出力する。 var pshEngine = new RunspaceInvoke(); pshEngine.Invoke("$global:msg = \"Hello\""); var psObjects = pshEngine.Invok…

C#からPowerShellをいじくりたおす 1

C#からPowerShellスクリプトを呼び出す方法を調べてみる。開発環境にはVisualC# 2008 Expressを使う。前提条件として「System.Management.Automation.dll」を参照していることと、以下の名前空間をusingしていること。 using System.Management.Automation; …

NAntを.NET 3.5に対応させる

.NET 3.5もリリースされたので、VisualC# 2008 Expressをダウンロードして、そろそろ本格的に使う準備を始めようとしているわけだけど、その中でも今使っている各種フレームワークを対応させていくという作業が必要になってくる。Spring.NETとかNUnit、NAnt…

Spring.NETでカスタム属性を使ったインジェクションを実現する

Spring.NETは非常に便利だが、プログラムがある程度の規模になってくると設定ファイルがかなり膨らんでくる。カスタムパーサーなどを使って記述量を減らしたりはできるが、たかがしれている。コンテナに登録するオブジェクトが少量でも、いちいち設定ファイ…

PowerShellでクラス(みたいなもの)を作ってみる

PowerShellでクラス(みたいなもの)を作ってみた。 # コンストラクタ param([string]$firstName, [string]$lastName) class Person | property FirstName $firstName | property LastName $lastName | def get_FullName { return "{0} {1}" -f $this.FirstN…

.NET Remotingでチャットアプリケーションを実装する

今までチャットアプリケーションを作った事が無かったので、ためしに作ってみた。 .NETでこういうクライアント⇔サーバー間で通信をするアプリケーションを作る場合、.NET Remotingを使うのが普通。いまさらソケット開いて、がちゃがちゃリスニングしたりする…

Formの派生クラスでLoadイベントを使わずにOnLoadイベントをOverrideするのは何故ですか?

なんて事を最近会社に派遣されてきたC#初心者に聞かれたので、その理由をここに書いてみる。聞かれた事は、 class MyForm : System.Windows.Forms.Form { private void MyForm_Load(object sender, EventArgs e) { // DoSomething } } ではなくて class MyFo…

はてなブックマークのRSSデータを加工

はてなブックマークのデータを引っ張ってきて適当に加工してHTMLで出力したかったので、PowerShellでやってみた。 $xml = New-Object xml $xml.Load("http://b.hatena.ne.jp/coma2n/rss") $xml.RDF.item | sort title | ConvertTo-Html title -title "はてな…

Ext JS

Ext JSはリッチなユーザーインターフェースを構築するためのJavaScriptライブラリ。@ITの記事↓で紹介されていた。 Ext JSとprototype.jsで作るリッチなUIこの手のライブラリは山程あるので大して興味は無かったけど、ベースライブラリにjQueryを使えると聞い…

Json.NET VS ASP.NET Ajax Extensions

以前、Json.NETっていう.NETオブジェクトをJSON形式に変換するライブラリを使ってみたけど、ASP.NET Ajax Extensionsにもこれと同等の機能を実現する「JavaScriptSerializer」というのがあった。 ASP.NET Ajax ExtensionsはMicrosoftが作ったフレームワーク…

ボタンを作る for Silverlight

とりあえずSilverlightを軽くさわってみたけど、標準的なコントロールが一切用意されていないので、普通のアプリがまったく組めない。四角形とか円とか描画しても仕方ないし。 将来的には標準コントロールが用意されるようなので、それまで待っておけという…

Silverlight 始めました

最近、仕事がひまなおかげでほとんどVS2008 Beta2で遊んでいる。 ついこの間まで休日出勤、残業の嵐だったのでそのギャップがすさまじい。開発の仕事っていうのは両極端なので困る。まぁ、そのかわりひまな時にこうやって新しい技術を学ぶ事ができるのでこう…

.NET3.5で気になる新機能

「System.Net.PeerToPeer」とかある。P2Pが標準でできるんやろか? あと「System.IO.Pipes」とかいうのもある。 その中には「NamedPipeClientStream」とか「AnonymousPipeClientStream」なんかもある。 名前からして名前付きパイプやろうけど、なかなかおも…

LINQ to SQLを使ってみる

.NET3.5から追加されたLINQ、そのSQLアクセス用であるLINQ to SQLをさわってみた。LINQ to SQLを使用する を見てみると、今までのADO.NETとは違いO/Rマッピングフレームワークになっているのがよくわかる。 データベースの作成 「HogeService」という名前で…

IExtenderProviderで実装するCommandパターン

普段よく使っている設計パターンをさらしてみる。GoFのデザインパターンにCommandパターンというのがある。「C#デザインパターン」の説明によると Commandは、特定のアクションに対する要求をオブジェクトの中に封じ込め、このオブジェクトを公開された パブ…

NAntでClickOnceの発行を自動化する 2

前回 やっとこさMSBuildからClickOnceの発行をする方法がわかったので、調子に乗ってNAntのタスクにしてみた。 ↓以下 ソース using System; using System.IO; using System.Xml; using System.Xml.XPath; using System.Diagnostics; using NAnt.Core; using …

Microsoft Popfly

Microsoft Popflyという「マッシュアップ作成 & Web ページ作成ツール」が公開された。http://www.popfly.ms/Home.aspx個人的にはサービスを組み合わせて新しいサービスを作るという発想にあんまり興味が惹かれないので、 いわゆる「マッシュアップ」という…

ListViewのグループ表示

.NET2.0からできるようになったListViewのグループ表示を有効にするには Application.EnableVisualStyles(); を呼び出す必要があるのね、( ´_ゝ`)フーン

PowerShellの勉強会

会社でPowerShellの勉強会を開く事になったので、その内容を考えながらアップしていく。 PowerShellとは Microsoftが開発した次世代のWindowsシェル環境です。 従来Windows上でのシェル環境はCmd.exe(コマンドプロンプト)しかありませんでした。(Cygwinな…

はてなダイアリーの分割

はてなでサブアカウントを作成できるというのを知って、さっそく作ってブログをもう一個作った。 で、本関係のエントリーを全部そっちに移そうと考えて、ダイアリーのデータをXMLにエクスポートした。 このXMLから本関係のエントリーだけを抽出して、新しい…

小ネタ

デバッグしている時にステップインしなくてもいいようなコード(プロパティのget、setとか)にステップインされて 煩わしい思いをする事がよくある。そんな時は「DebuggerStepThrough」属性を使うとデバッガがステップインするかどうかを制御する事ができる…

.NETリモーティングでIPCチャネルを使用する

.NET2.0から.NETリモーティングで使用できるチャネルに新しくIPCチャネルが追加された。 これは同じマシン間での通信、純粋なプロセス間通信用のチャネルで内部実装には名前付きパイプが使われている。(メモリマップドファイルやったかな?どっちかは忘れた…

NAntでClickOnceの発行を自動化する

アプリケーションをClickOnceで発行するには通常VS2005上から「発行」メニューを選択する必要があるが、毎回毎回めんどくさいので、NAntで自動化できないか調べてみる。VS2005からはプロジェクトファイル(*.csproj)自体がMSBuildというMicrosoft謹製のビル…

ClickOnceアプリを手動で更新

今回開発したシステムはクライアントモジュールをClickOnceで配布するのだが、ひとつ問題が発生した。ClickOnceアプリケーションを起動すると、更新がある場合「更新の許可を求める」ダイアログが表示されるがここで「スキップ」を選ぶと次回起動時からこの…

C#3.0をさわってみる

Silverlightを勉強するつもりでVS2008 Beta2をダウンロードしたが、C#3.0が気になって仕方がないのでちょっとだけさわってみた。 型推論 まずは型推論。C#2.0までは型を宣言する場合、必ず型を明示する必要があったが3.0からは型が文脈から推論できる場合の…

日付の書式指定

今開発しているシステムで現在の日付でフォルダを作成する処理があるのだが、その処理で作られたフォルダの名前が12時間表記になっているとPマネに指摘された。そういやまったく意識した事がなかった。ちなみにコードは以下(C#) Directory.CreateDirector…

テンプレートエンジン

メールを送信する機能を実装する必要があって、メール本文をテンプレートファイルから生成する機能が欲しかったのでテンプレートエンジンを使う事にした。 で、テンプレートエンジンといえばNVelocityという事になるんやけど、見た感じ開発がストップ(確か0…