技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

.NET

基本的な Aspect 実装をしてみた

結局、RealProxy 経由する限り、オブジェクトが MarshalByRefObject になるのは避けれないし、Attribute 実装で new をフックするにも、ContextBoundObject でないと、Attribute インスタンスでフックできない。 とはいえ、これはこれで使ったほうが早いかと…

素の .NET で Aspect 指向したくてがんばってみた。

C# の .NET でアスペクト指向がしたくて根性出してみた。 あぁ、Python ならデコレータで一発なのに、、、、とかやってて思った。*1実装方法的には、RealProxy 噛ませば、メソッドコールを基本すべて横取りできる。 で、RealProxy ラップすると、GetTranspar…

Graphviz の特定用途向けフロントエンド作ってみた

仕事で、仕様書を読む必要があったのだが、やたらと種類があるだけでなく、ディレクトリ階層もよく分からない。 挙句、ファイル名が処理コードなので、名前から関連性が分からない。そんな状況に嫌気が差して、ファイル間の繋がりを記録しておくものが欲しく…

.NET を理解する9

ガベコレされないパターンもあると覚えておく。.NET でガベージコレクションがあるので、みんな結構油断してると思うけど、意外なところでメモリリークすることがある。 代表例を以下に示してみる。 class SampleEventer { int vals; public SampleEventer(i…

.NET を理解する8

スレッド覚えてみる というか半分以上復習。スレッドの立て方一覧。 厳密にはスレッドとは違うけど、非同期実行できるものは列挙。 delegate の BeguinInvoke 経由でメソッドを非同期実行する。 System.Threading.Thread クラスインスタンスからスレッド実行…

.NET を理解する7

サービスの作成 .NET のサービスを作成するにあたり、色々調べてみる。 ServiceBase クラスを継承してサービス作る ServiceController クラスで .NET アプリからサービスの開始停止を制御できる ServiceControllerPermission サービス コントローラに対する…

.NET を理解する6

標準インターフェースを覚えてみる 標準インターフェースとその役割について考えてみる。 IComparable : Generic あり。オブジェクトの大小比較を行う。ソート時の評価で利用。 IDisposeable : オブジェクトガベージ時にリソースを開放する。com オブジェク…

.NET を理解する5

ジェネリックコレクション ジェネリックコレクションは、System.Collection.Generic に存在する、Generic 機能を利用したコレクションクラスです。 これは、対応する非ジェネリックコレクションに比べて、タイプセーフかつ高速に動作します。これには List D…

.NET を理解する4

ジェネリックを理解する .NET Framework 2.0 から追加された機能です。 主にコレクションで良く見られますが、プログラムの設計においてもタイプセーフでかつ汎用性の高いオブジェクトを作成することができます。 論より Run 以下で簡単な Generic の実装サ…

.NET を理解する3

.NET のデータ構造 Stack , Heap , Hash どれもちょっとプログラムを齧ったことがあれば聞き覚えはあるでしょう。 もちろん自分で実装する人もいますが、正直それは時間の無駄です。 Java 然り、C++ の STL 然り、古い言語であっても、そのようなライブラリ…

.NET を理解する2

型について .NET Framework の言語では、クラスとは独自に定義出来る型であり、値型、参照型、メソッド、属性、プロパティを含む事が出来ます。 // 属性 [Serializable] public class SampleClass { // 値型 int id; // 参照型 string name; // メソッド pub…

.NET を理解する(基礎にして初歩にあらず)。

はじめに .NET には様々な「型」が存在しており、これらの「型」を利用したり、ユーザが独自に「型」を定義することで処理の責任範囲や処理の種類を分類します。 オブジェクト指向に関する哲学や考え方を紹介する訳ではありませんので、ここでは説明しません…

オープンソースメモ

http://code.google.com/p/qizmt/MapReduce での分散処理を行う為のフレームワーク。 実装は C# で.NET3.5(SP1)以降が必要。(GPL)http://chartpart.codeplex.com/.NET でチャート表示する為のライブラリ。 結構数はあるはずですが、見た目がかっこ良かった…

フレームワーク作成支援ツールを作ってみた。

各イベントハンドラで似たことやってるとか、イベントハンドラの例外処理とか一括でやりたいとかいう時に便利そうなツール。さくっと作ってみた。 BSD ライセンスとでもしとくので好きに使ってほしい。http://www.white-azalea.net/EventInjector.zip.NET 3.…

またOSS メモ

Visual Studio Templates compliant with StyleCop RulesVisualStudio のデフォルトテンプレートは何を血迷ってるのか StyleCop に準じてないので、公開されたテンプレート。Entity Framework Oracle ODP.net Provider - EFOracleOdpProviderOracle 向けの E…

メモ

Gallio : テストプラットフォームらしい。 SharpDevelop : VSStandard よりいいかもしれない?SharpDevelop は ASP.NET 未対応? UI はちょっと残念気味っぽい。

StyleCop でカスタムスタイルを入れてみる

http://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=sourceanalysis&ReleaseId=1425 ここで StyleCop と一緒に配布されてる SDK を落として解凍、、、、、はしなくていいかも知れない。 だって chm ドキュメントが1個転がってるだけ…

.NET 環境を組みなおしてみる

Windows を入れなおすついでに、必須なモノを片っ端から列挙して入れてみる。 VisualStudio2008 Standard を購入。2010もアップデートパッケージ狙い。 Express でもいいかも知れないが、やっぱStandardは目に見えて機能が多い。 (DB 周りのヘルパとか) NUni…

ちょっとブックマーク

気分的に乗らないのでメモだけ。スニペットを作成する。 http://msdn.microsoft.com/ja-jp/library/ms165394(VS.80).aspx http://www.kanazawa-net.ne.jp/~pmansato/net/snippet.htmStyleCop のカスタムルール http://d.hatena.ne.jp/m-tanaka/20080530 http…

RSS をサクっと拾う。

環境は、C# 3.0 & .NET Framework 3.5 で動作 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml.Linq; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { XElem…

Mono 使って、ASP.NET を動かしてみる(Ubuntu)

以下面倒なので、sudo su - でRoot権限操作。 とりあえず mono をインストール。 apt-get install mono mono-gmcs mono-gac mono-utils monodevelop 次にコンパイラとかその辺をインストール apt-get install monodoc mono-xsp monodoc-http で、ドキュメン…

WPF を勉強してみるⅡ

WPF は見た目だっ!と意気込んで、レイアウトコンポーネントを色々触ってみた。 とりあえず触ったのは以下の連中 Grid UniformGrid Canvas StackPanel WrapPanel DockPanel Grid グリッドレイアウトとは良く言ったもの。 線を引くようにレイアウト配置を決め…

WPF を勉強してみるⅠ

今更だが、食わず嫌い(これまでちょこっと書いて動いたー程度)だったWPFを勉強しようと思った。 理由はコレ次期Visual Studio 2010と.NET Framework 4.0の新機能 やばい。かなりやばい。 Windows7 でも WPF は健在で、マルチタッチスクリーン対応だとぉぉぉ…

AOP(Seaser.NET)をC#でやってみる

前回の続きで、今度はAOP(Aspect-Oriented Programming。アスペクト指向プログラミング)を試してみる。 とりあえず、dll コピーと、参照設定は前回のものと同様にしておく。 AOP アスペクト指向プログラミング どんなもんかといいますと、以下Wikipediaから …

DI (Seaser.NET)を C# で試してみる

DI(Dependency Injection。依存注入)とかAOP(Aspect-Oriented Programming。アスペクト指向プログラミング)とかをC#でできると聞いてやってみた。 で、実際に利用するライブラリに関してはコレ。 Seaser.NET という、Java ではもう有名すぎるアプリケー…

WCF Webサービスに、JavaからWindows 認証してみる

とりあえず、統合Windows認証にしとくと非常にタチが悪いので、NTLM(Kerberos抜きのWindows認証)設定をWCF側に設定しとく。 このとき、認証を、Messageではなくて、TransportOnlyにしておいた。 wsHttpBinding では、どうも TransportOnly ができない、、、…

PartCover メモ

使い方が日本語資料無くて悶絶したので、メモ。基本的には GUI でないと確認できないのでGUIで起動。 プログラム→Gubka Bob→PartCover .NET2 →PartCover Coverage Browser がソレ。で、プログラム、動作ディレクトリはそのまま。 WorkingArguments には以下…

IronPython を本気で弄る準備

VisualStudioIDE上でどうしてもPythonしたくなったので、メモ。 まずは、IDEの受け入れ準備。VisualStudio2008Shell(integratedMode)ServicePack1再頒布可能パッケージ 言語統合に必要らしい。VisualStudio2008SDK1.1 VisualStudio拡張SDKIronPythonStudioIn…

フリーのカバレッジツール

http://sourceforge.net/projects/partcover/ OSS の .NET カバレッジソフトがあったのでメモ

ManagedDll を動的に読み込むあれこれ

流派は2つ。 Assembly 使って、動的にリンクする方法 http://athomejp.com/goldfish/vcs/assemblycall.aspAppDomain 使って、動的にロードする方法 http://d.hatena.ne.jp/akiramei/20071111/1194786373前者のほうが簡易だけど、後者はアンロードできるそう…