2006年09月16日

New York TimesがWPFのツールを提供?

 POLAR BEAR BLOG: Times Reader が面白い

 このツール、インストールには.NET 3.0必要と書いてあるので、おそらくWPFで作られたツールでしょう。早くもWPFのツールの登場のようです。
タグ:WPF

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2006年08月23日

XMLファイルからのオブジェクトの生成がかなり簡単に行えるようになる方法

 .NETにはシリアライズというものがあります。簡単に言えばXMLとオブジェクトの相互変換を行う技術です。詳しくは@IT:連載:.NETで簡単XMLの「オブジェクトをXMLでシリアライズ」の部分を見ていただければと思います。

 シリアライズには、シリアライズ/デシリアライズがあり、シリアライズがオブジェクト→XML、デシリアライズがXML→オブジェクトになります。シリアライズにはタイプの情報(要はクラスのこと)が必要になります。オブジェクト先にありきの場合はタイプの情報のクラスがあるはずなので、比較的導入が簡単だと思います。XML先にありきの場合は、そのXMLに対応するクラスを作成しないといけないので、敷居が高くなります。

 今回はXMLファイルからシリアライズに必要なクラスの作成がかなり簡単にできる方法がわかったので紹介させていただき、XML先にありきの場合のシリアライズ導入の敷居が少しでも低くなればと思います。

 まず、XMLに対応するクラスの作成のため、XMLのXMLスキーマを生成する必要があります。これは、ここで行えます。このページの「XML Document:」の部分にXMLスキーマを生成したいXMLファイルを指定します。あとは「Generate XML Schema」ボタンを押せば、XMLスキーマの内容が表示されます。これを名前を付けて保存などで保存します。

 XMLスキーマからクラスファイルを作成するには、Visual Studio 2003以降に付属するxsd.exeを使用します。Visual Studio 2005 Expressシリーズだと「[Visual Studio 2005 Expressをインストールしたフォルダ]\SDK\v2.0\Bin\」にあります。

 XMLスキーマファイルからC#のクラスファイルを生成する場合

xsd [XMLスキーマファイル] /c /l:cs

となり、Visual Basic .NETのクラスファイルを生成する場合は

xsd [XMLスキーマファイル] /c /l:vb

となります。

 上記の場合は出力先を指定していないので、xsd.exeと同じフォルダにクラスファイルが出力されます。ファイル名はXMLスキーマファイル名が「schema.xsd」だったら、「schema.cs」、「schema.vb」などになります。コマンドラインオプションを追加することで出力先を指定することもできます。詳しくはコチラをご覧になって下さい。

 これで、クラスファイルが作成されたので、シリアライズができるようになりそうですが、まだ手順が必要です。xsd.exeで生成されたものだとSystem.Xml.Serialization.XmlRootAttributeの関係でうまくデシリアライズできない可能性がありますSystem.Xml.Serialization.XmlRootAttributeのNamespaceが実際のXMLファイルのものと合っていないとオブジェクトは生成されますが値が読み込まれません。

 クラスに、System.Xml.Serialization.XmlRootAttribute属性が設定されている部分の修正を行います。
Yahoo!オークション - カテゴリ情報 - サンプルレスポンスを例にとると、

    [System.Xml.Serialization.XmlRootAttribute(Namespace = "",
IsNullable = false)]
public partial class category
{
・・・
}
は、
    [System.Xml.Serialization.XmlRootAttribute(Namespace = 
"urn:yahoo:jp:auc:category", IsNullable = false)]
public partial class category
{
・・・
}
に、(cagegoryタグのxmlns属性の値を設定)
    [System.Xml.Serialization.XmlRootAttribute(Namespace = "",
IsNullable = false)]
public partial class childCategory
{
・・・
}
は、
    [System.Xml.Serialization.XmlRootAttribute(IsNullable = false)]
public partial class childCategory
{
・・・
}
とします。(「Namespace = ""」を削除)

 これでデシリアライズも行われ、値も読み込まれるようになると思います。

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2006年08月18日

.NETでJSON作成とJSONからオブジェクトの作成が行えるライブラリ

 Json.NET - Newtonsoft

 .NETでJSON作成とJSONからオブジェクトの作成が行えるライブラリです。上記サイトの使用例のコード見てもらうとわかりますが、とても簡単に使えます。
タグ:JSON .net

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

.NET用のXML-RPCライブラリ

 XML-RPC.Net

 .NET用のXML-RPCライブラリです。上記サイトの使用例のコードを見てもらうとわかりますが、かなり簡単にXML-RPCの呼び出しが行えます。
タグ:XML-RPC .net

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2006年07月24日

CAB(Composite UI Application Block)についての記事

 英語ですが、ここここComposite UI Application Block(CAB)についての記事が合わせて7つ投稿されています。

 僕が探した中では一番丁寧に書いてあると思います。導入前などにご参照いただけたらと思います。
タグ:.net

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2006年05月26日

.NETのテンプレートエンジン

.NETのテンプレートエンジンをいくつか見つけたので、紹介しておきます。

StringTemplateAder Template

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2006年01月12日

.NETでのテンプレートエンジン

 .NETのテンプレートエンジンについて調べてみました。

 テンプレートエンジンとは、Javaでは、Velocity、PHPでは、Smartyなどのことです。

 .NETで、現時点で一番よい思われるものはTaHoGenでした。The Code Projectにアップされているものなので今後どうなるかはよくわかりませんが。
タグ:.net

posted by よっしぃ at 11:22 | Comment(0) | TrackBack(0) | .NET

2005年12月13日

N*の更新を確認できるサイト

 ここにN*の更新を確認できるサイトをつくりました。よろしければご活用下さい。

 現状は、はてなRSSの仕様でRSSを登録した順で表示されています。今後は更新されたものがあれば随時先頭に表示されていくはずです。
タグ:.net

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

.NET Framework 2.0 クラスライブラリのリファレンスの日本語版

 .NET Framework 2.0 クラスライブラリのリファレンスの日本語版のサイトができてますね。

 なんか英語の部分とかあったり、日本語も機械翻訳っぽくて、日本語版とは言い難い状態だけど、きっと徐々に改善されていくだろうと思っているので紹介しておきます。
タグ:.net 2.0

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2005年11月29日

構成ファイルの値を取得する

 構成ファイルの値を取得するだけなら、System.Configuration.Configuration クラスGetSection 関数を使うよりも簡単な方法があります。

 Windowsアプリケーションなら、System.Configuration.ConfigurationManager クラスにスタティックのGetSection 関数、スタティックのAppSettings プロパティ、スタティックのConnectionStrings プロパティがあり。

 Webアプリケーションなら、System.Web.Configuration.WebConfigurationManager クラスにスタティックのGetSection 関数、スタティックのAppSettings プロパティ、スタティックのConnectionStrings プロパティがあります。

 これらを使えば、いちいちSystem.Configuration.Configuration クラスのインスタンスを生成しなくても構成ファイルの値が取得できます。
タグ:.net 2.0 tips

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2005年11月08日

NAgileで始める実践アジャイル開発 第2回

 NAgileで始める実践アジャイル開発第2回の記事が掲載されています。

 この記事もとてもためになるので、.NET開発者の方は是非お読み下さい。
それ以外の人でも参考になる部分はあると思います。
タグ:記事 .net

posted by よっしぃ at 18:50 | Comment(0) | TrackBack(0) | .NET

2005年10月14日

.NET Framework 2.0 クラスライブラリのリファレンス(英語)のトップページのアドレスが変わりました

 ここで紹介した.NET Framework 2.0
クラスライブラリのリファレンス(英語)のトップページのアドレスが変わりました。

 現在のトップページのアドレスはここになります。
タグ:.net 2.0

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2005年10月13日

C#3とVB9についての記事

 @ITでC#3とVB9についての記事が公開されています。

 ここである程度つかんでいたので、徐々に紹介しようかと思っていたら、先を越されてしまいました。
 とてもわかりやすく書かれているので、これ以上私が書く必要もないですね。
 まだ、C#2も出ていませんが、興味あったらご参照下さい。
タグ:.net 3.0

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2005年09月26日

プロジェクトファイルからNAntのビルドファイルを生成してくれるページ

 NAnt BuildFile Builder

 プロジェクトファイルからNAntのビルドファイルを生成してくれるページです。
 ちょっと試したかんじだと、Windowsアプリケーション プロジェクト、Webアプリケーション プロジェクトではエラーになってしまいました。
 クラスライブラリ プロジェクトやコンソールアプリケーション プロジェクトなどの場合は使ってみても面白いかもしれません。
 その他のプロジェクトもいづれは生成できるようになるでしょう。興味ありましたら、試してみて下さい。

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2005年09月22日

NAntの資料とサンプル

 NAgiler 航海日誌というページでNAntの資料とサンプルが公開されています。よかったらご参照下さい。

 フィードバックは、コチラにお願いします。
タグ:NAnt .net

posted by よっしぃ at 23:19 | Comment(0) | TrackBack(0) | .NET

2005年09月16日

NAntでVSSからの最新取得を簡単にできるやり方の紹介

 チームで作業をすると頻繁にVSSから最新を取得することになると思うのだけど、手作業で面倒くさくなってきてませんか?
 NAntを使ってそれを簡単に行う方法を紹介します。

【手順】
1、ココからNAnt、ココからNAntContrib、ココからVssGet.zipをダウンロードし、適当な場所に解凍します。

2、VssGet.zipから解凍したBuild.cmdの${nant.dir}の部分をNAntのルートディレクトリのパス(「C:\nant-0.85-rc3」 等)で書き換えます。

3、VssGet.zipから解凍したVssGet.buildの
  
の…の部分をNAntContribのルートディレクトリのパス(「C:\nantcontrib-0.85-rc3」 等)で書き換えます。
  
4、VssGet.zipから解凍したVssGet.buildの

  <vssget
user="myusername"
password="mypassword"
localpath="C:\Dev\Latest"
recursive="true"
replace="true"
dbpath="C:\VSS\srcsafe.ini"
path="$/MyProduct"
/>

の各属性の値を自分の環境に合うように変更します。

5、Build.cmdを実行します。

 これで、VSSから最新が取得されると思います。
 Build.cmdのショートカットをスタートアップとかに入れておくと自動で最新にされるのでよいかもしれません。
タグ:.net NAnt VSS

posted by よっしぃ at 02:03 | Comment(0) | TrackBack(0) | .NET

2005年08月18日

構成ファイルのセクションをDPAPIで暗号化する(マシン単位のキーを使用する場合)

 構成ファイルのセクションをDPAPI(Windows Data Protection API)で暗号化する場合はここの手順の5の部分を下記のように変更すればできます。

 aspnet_regiis -pe "connectionStrings" -app "/MachineRSA"
-prov "DataProtectionConfigurationProvider"

 DPAPIの場合は、6の後半の手順(ASP.NETアプリケーションを実行しているアカウントにNetFrameworkConfigurationKey ストアへのアクセス権限を与える)は必要ありません。その分、RSAよりDPAPIの方が使いやすいですかね。

posted by よっしぃ at 11:34 | Comment(0) | TrackBack(0) | .NET

2005年08月13日

構成ファイルのセクションをRSAで暗号化する(マシン単位のキーを使用する場合)

 構成ファイルのセクションを暗号化には、%WinDir%\Microsoft\.NETFramework\<バージョン番号>にあるaspnet_regiis.exeというツールを使用します。このツールは、<appSettings>, <connectionStrings>, <identity>, <sessionState>などのセクションに使用できます。

 <processModel>, <runtime>, <mscorlib>, <startup>, <system.runtime.remoting>, <protectedData>, <satelliteassemblies>, <cryptographySettings>, <cryptoNameMapping>, <cryptoClasses>の暗号化には、Aspnet_setreg.exeというツールを使用します。詳しい情報は、コチラをご参照下さい。

 さて、aspnet_regiis.exeには、マシン単位のキーを使う方法とユーザー単位のキーを使う2種類がデフォルトで提供されています。今回は、マシン単位のキーを使う方法を紹介します。

【マシン単位のキーを使う方法】
1. MachineRSAというサイトを作成します。また、このディレクトリが仮想ディレクトリとして構成されていることを確認します。

2. このディレクトリに、Web.configファイルを追加します。

3. 追加したWeb.configファイルに以下の記述を追加します。
<connectionStrings>
<add name="MyLocalSQLServer"
connectionString="Initial Catalog=aspnetdb;data source=localhost;
Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
</connectionStrings>
4. コマンドプロンプトを開き、%WinDir%\Microsoft\.NETFramework\<バージョン番号>ディレクトリに移動します。

5. 以下のコマンドを実行することで、connectionStringsセクションを暗号化します。

aspnet_regiis -pe "connectionStrings" -app "/MachineRSA"
  • -peスイッチには、暗号化するセクションを指定します。指定するのはセクションのXML要素名(タグ文字列)になります。<system.web>セクション内の<page>セクションなど、入れ子になっているセクションの場合は、"system.web/pages"と指定します。
  • -appスイッチには、Webアプリケーションの仮想パスを指定します。ルートディレクトリから入れ子になっているパスの場合は、“/test/aspnet/MachineRSA”と指定します。
コマンドが正常に実行された場合は、以下のように出力されます。

 構成セクションを暗号化しています...
 成功しました。
なお、マシン単位のキーは以下のフォルダに保存されます。
  • Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys
6. Web.configファイルを開き、変更を確認します。
変更されたconnectionStringsセクションは、おおよそ以下のようになります。
...
<protectedDataSections>
<add name="connectionStrings" provider="RsaProtectedConfigurationProvider"
inheritedByChildren="false" />
</protectedDataSections>
...
<connectionStrings>
<EncryptedData Type="http://www.w3.org/2001/04/xmlenc#Element"
xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#tripledes-cbc" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<EncryptedKey Recipient="" xmlns="http://www.w3.org/2001/04/xmlenc#">
<EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-1_5" />
<KeyInfo xmlns="http://www.w3.org/2000/09/xmldsig#">
<KeyName>Rsa Key</KeyName>
</KeyInfo>
<CipherData>
<CipherValue>cbJNxB4OmxwzGVVn2R7b1+YsRtlik95RhsTnA6zMjkW/Ap
Bl4q/3+HrE3NRykcoyVgFsGKO2aRLkyQvnzEt2nwptwGsonDNOhbrNLa4wG
DXXq5YNnEUQmhAdPlaQQt8HAQ0/hhQOgjUib6SnlWLzlH5ZlpBGiuy4zr6E
ahbBztA=</CipherValue>
</CipherData>
</EncryptedKey>
</KeyInfo>
<CipherData>
<CipherValue>WkEoLFnva9rjH4faZu50eyJHV3a7+7mj3JnO9mUMaaZX78
dv1N/Q3TJ092ZGZ9HKJtomU6dhL9K5P6LHMvbrILDsB/4vdoaHeepAoKkHc
5d3Nva27mltxvq+IT0KaAtj3O6EGsrllUWX4rBeq18w6eyQqZqW3eHM1HJq
6PlcA9K2y3HenrY06BoKzosOHo9OPUpHK2kNoOxXg1XvP0AuBFAj7UUjXT4
QeoGIi15T3JT/YerHJ/mhZw15dHBfbTN36d60yBdHRTBKrvQQ78H9zzT15l
fmJTrX</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
...
6. Webサイトの仮想ディレクトリに以下の内容のDefault.aspxファイルを追加します。
<%@ Page Language="C#" %>

<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Response.Write("Clear text connection string is: " +
ConfigurationManager.ConnectionStrings
["MyLocalSQLServer"].ConnectionString);
}
</script>
<html>
<body/>
</html>
 もし、ASP.NETアプリケーションを実行しているアカウントに .NET Framework 構成キーストアにアクセスする権限がない場合は、以下のエラーメッセージが返されます。

 Failed to decrypt using provider 'RsaProtectedConfigurationProvider'.
Error message from the provider: キー セットがありません。
 この場合、コマンドプロンプトで以下のコマンドを実行して、ASP.NETアプリケーションを実行しているアカウントにNetFrameworkConfigurationKey ストアへのアクセス権限を与えます。

 ASP.NETアプリケーションを実行しているアカウントは、デフォルトでは、IIS 5.1なら、ASPNET、IIS 6.0なら、NT Authority\Network Serviceになります。

 aspnet_regiis -pa "NetFrameworkConfigurationKey" "NT Authority\Network Service"

 コマンドが正常に実行された場合は、以下のように出力されます。

 RSA キー コンテナへのアクセスのために ACL を追加しています...
 成功しました。
7. connectionStringsセクションを復号する場合は、コマンドプロンプトで以下のコマンドを実行します。

 aspnet_regiis -pd "connectionStrings" -app "/MachineRSA"

 コマンドが正常に実行された場合は、以下のように出力されます。

 構成セクションの暗号化を解除しています...
 成功しました。

 この記事は、コチラの内容(英文)を参考にし、日本向けに必要な部分に修正を加えたものです。

posted by よっしぃ at 08:35 | Comment(0) | TrackBack(1) | .NET

2005年07月11日

NUnitAspについてのドキュメントとサンプルが公開

 NAgile はじめの一歩というページで、NUnitAspについてのドキュメントとサンプルが公開されました。
 興味がある人は参照してみて下さい。
タグ:ASP.NET テスト

posted by よっしぃ at 19:22 | Comment(0) | TrackBack(0) | .NET

2005年06月11日

NHibernateのマッピングファイルとクラスファイルを簡単に生成できるツールを発見

 NHibernateのマッピングファイルとクラスファイルを簡単に生成できるツールを発見しました。

 http://www.mygenerationsoftware.com/のMyGenerationというツールです。(左上のDownload now!の画像をクリックすればダウンロードできるページに行けます)

 NHibernateのファイルを生成するにはMyGenerationのNHibernate用テンプレートファイルが必要です。
 http://www.mygenerationsoftware.com/TemplateLibrary/から「NHibernate Mapping Tools」という項目を探してダウンロードしてく下さい。(必要なのはNHibernate.Mapping.csgenというファイルです)

【ファイルの生成手順】
1、まず、MyGenerationをインストールして、起動します。
(初回起動時で、設定画面が表示されたらデータベースの接続情報を入力して下さい)
2、File - OpenでNHibernate.Mapping.csgenを開きます。
3、Template - Executeを選ぶと、「NHibernate Mapping Tools」という
タイトルの画面が表示されます。
4、その画面で、出力先(output path)、名前空間(Namespace)、データベース、テーブルを入力または選択して、OKをクリックします。

 これで、出力先にマッピングファイルとクラスファイルが作成されます。

posted by よっしぃ at 06:03 | Comment(0) | TrackBack(0) | .NET

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。