« 2009年4月 | トップページ | 2009年6月 »

2009年5月

2009/05/30

ASP.NET の構成ファイルを暗号化する

CodeProject: Encrypt and Decrypt Configuration Sections in ASP.NET 2.0. Free source code and programming help

CodeProject をチェックしていたら、ASP.NET の構成ファイルをプログラムで暗号化する方法が紹介されていました。

へぇ、と思い自分でも appSettings を暗号化しようと試してみました。

もともとの appSettings はこんな感じ。

<appSettings>
  <add key="key1" value="key1's value" />
  <add key="key2" value="key2's value" />
  <add key="key3" value="key3's value" />
</appSettings>

そして構成ファイルを暗号化するプログラムはこんな感じ。

using System.Configuration;
using System.Web.Configuration;

string provider = "RSAProtectedConfigurationProvider";
string section = "appSettings";

protected void buttonEncrypt_Click(object sender, EventArgs e)
{
    Configuration confg =
      WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
    ConfigurationSection confStrSect = confg.GetSection(section);
    if (confStrSect != null)
    {
        confStrSect.SectionInformation.ProtectSection(provider);
        confg.Save();
    }
}

これを実行すると appSettings がこんな感じで暗号化されます。

    <appSettings configProtectionProvider="RsaProtectedConfigurationProvider">
  <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 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>MVZ9lJBnRj9b45wCpWVrSZgtbxLdbuMeY7StZfjMs1t1/Mx89D+XvYY4lWwRkg4kFjzP8lyVwtlZxkDrtS9NkG9kwoIQSijyNxG0qaxS+5V7VJcypPEP9f6jeewCs2DLfIUGwKy87cx+23puDGnzFQxqXcG4emF/NLPoxH2smOQ=</CipherValue>
     </CipherData>
    </EncryptedKey>
   </KeyInfo>
   <CipherData>
    <CipherValue>BXQFUE6w8pXyzm/S7+zHZ5z/K0JgsKOof+Aiu3qPQWJFQwqRa0I+tKl1Z7rkHUFwcrpKQm2rTUOLraYbyZY0s403WHTK9KiGPQjmHSBvmz4pzaEm2OmtuBfflkXX0pCTjsxSLsbtohGOUV+ieHebSywhHxf091aCt9qvkvlzPvgN+4EMTtPJwYiOb+effVMxT3bUt3h7jFOhzRp6mVrBXarUibldfwRKWSW8QJpGRBk=</CipherValue>
   </CipherData>
  </EncryptedData>
</appSettings>

構成ファイルが暗号化されているのに、以下のようなプログラムで普通に値を取得できます。

protected void Button1_Click(object sender, EventArgs e)
{
    textBoxKey1.Text =
        System.Configuration.ConfigurationManager.AppSettings["key1"];
    textBoxKey2.Text =
        System.Configuration.ConfigurationManager.AppSettings["key2"];
    textBoxKey3.Text =
        System.Configuration.ConfigurationManager.AppSettings["key3"];
}

これはなかなかいい感じ。

復号化するには以下のようにします。

protected void buttonDecrypt_Click(object sender, EventArgs e)
{
    Configuration confg =
     WebConfigurationManager.OpenWebConfiguration(Request.ApplicationPath);
    ConfigurationSection confStrSect = confg.GetSection(section);
    if (confStrSect != null && confStrSect.SectionInformation.IsProtected)
    {
        confStrSect.SectionInformation.UnprotectSection();
        confg.Save();
    }
}

構成ファイルを暗号化したいときはよくあるのでこれは便利だと思いつつ、プログラムで実行するのは不便だなぁと思っていたら、aspnet_regiis コマンドで暗号化する方法がちゃんと公開されていました。

ここら辺は以下のブログで詳しく解説されています。

構成ファイルを暗号化した場合は、キーコンテナに実行ユーザーのアクセス権を aspnet_regiis コマンドで行うんですね。

 

2009/05/29

ASP.NET Web サイトのパフォーマンス改善方法

CodeProject: ASP.NET Web Site Performance Improvement. Free source code and programming help

CodeProject で ASP.NET  Web サイトのパフォーマンス改善方法が紹介されていましたので、その概要だけご紹介します。

 

  1. HTTP 圧縮を使用する
  2. できるだけ ViewState を使用しない
    • 特に DataGrid コントロール使用時
  3. Web.config の設定を変更する
    • ページキャッシュを有効にする
    • 不要な httpModules を取り除く
    • Trace を false にする
    • profiles のオートセーブを無効にする
    • debug を false にする
  4. キャッシュの仕組みを組み込む
  5. スタイルシートを最適化する
    • 余計な宣言を削除
  6. JavaScript を最適化する → 参考
  7. JavaScript と CSS の読み込み場所を変える
    • マスターページのトップで CSS を読み込む
    • マスターページの最後に JavaScript を読み込む
  8. response.redirect() の代わりに server.transfer() を利用する
  9. クライアントサイドで入力チェックする

 

ASP.NET 固有のものがあり、参考になりますね。

 

巨大なサイズのファイルを簡単に作る方法

@IT:Windows TIPS -- Tips:巨大なサイズのファイルを簡単に作る方法 via おぎわら@.NET道場 Blog(わんくま編) さん

Windows XP/Vista で巨大なファイルを作成するには、fsutil コマンドを使うと簡単にできるとのこと。

1GBのファイルならこんな感じ(Vistaでは管理者権限必要)。

> fsutil file createnew testfile 1073741824

随分昔に、ディスクの空き容量テストで CreateFileBlock というツールを使っていたことがありますが、Windows XP からはコマンドで簡単にできるようになっていたんですねぇ。

これは便利。

Windows Vista SP2 リリース&インストールしてみました

Windows Vista と Windows Server 208 の SP2 がリリースされたとのこと

おおまかな修正内容はこんな感じ?

  • SP1 以降の更新プログラム一括適用(SP1がインストールされている必要あり)
  • ブルーレイ・ディスクにデータを書き込み機能追加
  • Bluetooth v2.1 対応
  • スリープモードから再開した時のWi-Fi接続のパフォーマンス向上
  • 新しい検索機能 Windows Search 4.0

ダウンロードは以下よりどうぞ。

とりあえず、Windows Vista に SP2 をインストールしてみましたが、特に問題なく動作しています。

VistaSP2

IE8 の自動更新が開始したらしい

5月25日の週から IE 8 の自動更新が開始になったとのこと。

一応、インストールするかどうかはユーザーが選択できるようですが、通常のユーザーは訳も分からずインストールしそうな気がしますが。。。

今更ながら、企業向けの IE 8 自動更新の無効化ツールキットも公開されていますので、TechNet の記事をご参照ください。

インターネットやユーザーのことを考えると望ましいのですが、企業のシステム管理者や Web サイトの管理者の方は大変ですね。。。

2009/05/24

Visual Studio 2010 と .NET Framework 4.0 のベータ版が公開されているらしい

Visual Studio 2010 と .NET Framework 4.0 のベータ版が早くも公開されたとのこと。

「Visual Studio 2010」「.NET Framework 4.0」のベータ1が提供開始:ITpro
http://itpro.nikkeibp.co.jp/article/NEWS/20090519/330230/

ペースが早いですねぇ。。。

新人さんによさそうな Visual Studio 2008 解説記事

@IT にて懇切丁寧な Visual Studio 2008 を解説している連載記事がありました。

新人さん向けによさそうですね。

簡単!Visual Studio 2008入門 − @IT
http://www.atmarkit.co.jp/fdotnet/easyvs2008/index/index.html

2009/05/23

Google Chrome と Firefox アドインの Prism のアプリケーション起動を比較してみました

Firefox で Web サイトをアプリケーション単体として起動・実行できるアドインである Prism のベータ版がリリースされたので、Google Chrome 2.0 のアプリケーションショートカットを比較してみました。

Prism が何かは下記記事をご覧ください。

以下の4つのサービスを比較してみたのですが、起動時間は体感的にはほとんど差を感じませんでした。Chrome の方が早いだろうと思い込んでいたのでちょっと意外でした。

  • Gmail
  • Google Reader
  • delicious
  • check*pad

そして起動直後の使用メモリ容量も意外な結果でした。

・Gmail

Chrome Prism
プロセス名 メモリ使用量 プロセス名 メモリ使用量
chrome.exe 6,224 KB firefox.exe 41,456 KB
chrome.exe 23,704 KB    
chrome.exe * 21,632 KB    
51,560 KB   41,456 KB

* はタスクマネージャーより Webサイトで使用していると思われるプロセス

・Google Reader

Chrome Prism
プロセス名 メモリ使用量 プロセス名 メモリ使用量
chrome.exe 12,204 KB firefox.exe 22,636 KB
chrome.exe * 19,540 KB    
chrome.exe 1,456 KB    
33,200 KB   22,636 KB

* はタスクマネージャーより Webサイトで使用していると思われるプロセス

・delicious

Chrome Prism
プロセス名 メモリ使用量 プロセス名 メモリ使用量
chrome.exe 5,076 KB firefox.exe 22,904 KB
chrome.exe 14,300 KB    
chrome.exe * 19,120 KB    
38,496 KB   22,904 KB

* はタスクマネージャーより Webサイトで使用していると思われるプロセス

・check*pad

Chrome Prism
プロセス名 メモリ使用量 プロセス名 メモリ使用量
chrome.exe 7,492 KB firefox.exe 15,432 KB
chrome.exe * 10,128 KB    
17,620 KB   15,432 KB

* はタスクマネージャーより Webサイトで使用していると思われるプロセス

実行環境による誤差もあるでしょうから、これだけで Chrome より Prism の方が軽いとは言い切れないですが、少なくとも起動時のメモリ使用量は少ないとは言えると思います。

あと、興味深かったのが Chrome はアプリケーションショートカットで起動したときに Chrome のログイン情報を引き継いだのに、Prism はログイン情報を引き継がず再度ログインが必要でした。

利便性では Chromeが、セキュリティ的には Prism が望ましい形ですね。

 

■関連エントリー

 

 

 

Google Chrome がバージョンアップしたらしい

Google Chrome 2.0 正式版がリリースされたとのこと。Chrome がインストールされていれば自動でアップデートされるようですね。

Chrome 2.0 では JavaScript のパフォーマンスが 30% 向上し、フルスクリーン対応や、画面起動時のサムネイル編集ができるようになったようです。

普段は Firefox をメインに使用していますが、check*pad を Chrome のアプリケーションショートカットから起動して使うようにしたら思ってたより便利でいい感じですね。

 

Chrome

2009/05/17

複数バージョンの IE を表示可能な「IETester」が IE 8 に正式対応

My DebugBar | IETester / HomePage via CodeZine

IE 5.5 ~ IE8 までの複数バージョンの IE を1代のPCで表示可能な 「IETester」 が IE8 に正式対応したとのことです。

 

IETester

 

■関連エントリー

Linq to XML 入門記事がいい感じ

Linq to XML の入門記事がいい感じです(via もり ひろゆきの日々是勉強 さん)。

以前、Linq to XML で XML の要素を取得して DISTINCT をかけることをやったことがあるのですが、Linq to XML の基礎が分かってないので苦労しました。。。

Linq to SQL の解説は割と多いのですが、Linq to XML の解説は少ないので、こういう入門記事はありがたいですね。

 

2009/05/16

Windows 7 の XP モード

Windows 7 には、デスクトップ仮想環境として「Windows XP Mode」が搭載される模様。

XP モードは、Virtual PC 上で Windows XP が仮想環境動作し、アプリケーションはその内部で動作するようです。ここまでは通常の仮想環境ですが、ちょっと工夫がされている?

ダウンロードしたアプリケーションやCD-ROMを使ったアプリケーションのインストールは、一般的な手順で行い、Windows 7上のスタートメニューに収まる。アプリケーションの起動は1クリックだ。

なお、仮想環境の XP にもセキュリティ対策は必要とのこと。

あと、CPU によっては XP モードは動作しないようですね。

開発者視点ではおもしろいのですが、運用視点からすると便利なような不便なような微妙な機能ですね、これは。

なお、Microsoft は、大企業には Windows 7 出荷後90日以内にリリースされる「Microsoft Enterprise Desktop Virtualization」(MED-V)の利用を勧めているようです。

 

Windows 7 は 2009年末に登場するらしい

「Windows 7」は2009年末発売,Microsoftが正式表明:ITpro

Microsoft が 次期クライアントOS「Windows 7」を 2009年末に発売することを正式表明したとのこと。サーバー版の「Windows Server 2008 R2」も同時期になるようです。

以前言われていたよりは遅くなったようですが年内リリースということになると、企業では Windows Vista をスキップして Windows 7 に移行するところも出てくるでしょうね。

だからといって、UAC 対応と JIS2004 対応がなくなる訳でもないですが。

まあ、企業がどのように動くのか様子見ですね。

 

■関連サイト 

■関連エントリー

 

Opera mini で delicious のブックマークレットが文字化け

EMONSTER で Opera mini からブックマークレットを使用して delicious にブックマークしていたのですが、EMONSTER が工場出荷状態に戻ったため再設定したら、登録するページのタイトルが文字化けするようになってしまいまいした。

Opera mini のバージョンは、4.2.13918 で、delicious で公開されているブックマークレットは以下のものになります。

javascript:(function(){f='http://delicious.com/save?url='+encodeURIComponent(window.location.href)+'&title='+encodeURIComponent(document.title)+'&v=5&';a=function(){if(!window.open(f+'noui=1&jump=doclose','deliciousuiv5','location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=550'))location.href=f+'jump=yes'};if(/Firefox/.test(navigator.userAgent)){setTimeout(a,0)}else{a()}})()

delicious/help/tools

いろいろ試していたのですが、画面のポップアップをやめてリダイレクトするようにしたらタイトルの文字化けが解消しました。

javascript:(function(){f='http://delicious.com/save?url='+encodeURIComponent(window.location.href)+'&title='+encodeURIComponent(document.title)+'&v=5&';a=function(){location.href=f+'jump=yes'};a()})()

Opera mini はタブブラウザでもなく複数ウィンドウを立ち上げられる訳でもないので、その辺でうまくいっていなかったのでしょうか。。。

まあ、なにはともあれ使えるようになってよかったです。

 

2009/05/03

EMONSTER (Windows Mobile 6) で Hello World

はじめに

EMONSTER で アプリケーション開発環境を構築して、Hello World を表示するまでまとめてみます。ベースとなる環境は、Windows Vista Home Premium + SP1 です。

環境構築

なにはともあれ、Visual Studio 2008 Professional 以上を入手する必要があります。ここでは、90日間評価版をインストールします。

Windows Vista なら以下より、自分の環境にあった「Windows Vista 用 Windows Mobile デバイス センター 6.1」をダウンロードしてインストール。Windows XP なら「Microsoft ActiveSync 4.5」をインストールっぽいですね。

次にインストールするのが Windows Mobile 6 SDK Refresh です。Windows Mobile 6 Standard 用にはWindows Mobile 6 Standard SDK を、タッチパネルがある Windows Mobile 6 Professional 用には Windows Mobile 6 Professional SDK をダウンロードしてインストールします。

EMONSTER はWindows Mobile 6 Professional  なので Windows Mobile 6 Professional  SDK をダウンロードしてインストールします。

次に、日本語版のエミュレーターイメージ(0411/Windows Mobile 6 Professional Images (JPN).msi)をダウンロードしてインストールします。

これでようやく開発環境準備完了。半日は軽くかかりますね。。。

EMONSTERの環境

Windows Mobile デバイスセンターを通じて、プログラムの配置時に自動的に構築されるようです。

Hello,World プロジェクトの作成

プロジェクトの作成

Visual Studio を起動して、ファイル >> 新規作成 >> プロジェクト >> Visual C# >> スマートデバイス >> Smart Device プロジェクト を選択します。プロジェクト名は HelloWorld としておきます。

ターゲットにする .NET Framework は .NET Framework 3.5 のままにしておきます。

スマートデバイスプロジェクトの設定
次の画面でスマートデバイスプロジェクトの設定を聞かれるので、以下のように設定して OK ボタンを押します。
  • ターゲットプラットフォーム
    • Windows Mobile 6 Professional SDK
  • .NET Compact Framework バージョン
    • .NET Framework Version 3.5
  • テンプレート
    • デバイス アプリケーション
開発画面

ここまできてようやく以下のような開発画面が表示されます。手強い。。。

IDEImage

Hello,World ボタンの配置

とりあえず以下のように "Hello,World" ボタンを作成し、メッセージボックスを表示するように設定します。

HelloWorld

コードはこんな感じ。

private void buttonHelloWorld_Click(object sender, EventArgs e)
{
    MessageBox.Show("Hello,World!");
}

エミュレーターで実行

F5 でビルド&実行すると、以下のような画面が表示されるので EMONSTER の解像度に合わせて「JPN Windows Mobile 6 Professional Square QVGA Emulator」 というエミュレーターを選択して実行します。

ConfigForm

 

そうするとこんな感じでエミュレーターで実行され、正しく動作することが分かります。よくできていますね。

Emulator

EMONSTER への配置

ビルド >> ソリューションの配置 を選択すると、先ほどのエミュレーターの種類を聞いてくる画面が表示されるので、ここで「Windows Mobile 6 Professional Device」を選択し配置ボタンを押します。

そうすると、Windows Mobile デバイスセンターが必要な環境とプログラムを EMONSTER に配置してくれます。.NET Framework Compact をどうやってインストールするか悩んだのですが、悩む必要すらありませんでした。

DeliveryImage

EMONSTER で実行

実機で実行した結果も以下のようになり、問題ありませんでした。

SubmitImage

感想

実際に作ってみるとよくできているなぁとは思うのですが、環境構築までの時間と情報収集がかなり時間がかかりますね。本当に丸1日かかってしまいました。

でも、やり方は分かったのでいろいろ遊んでみたいと思います。

本家サイト

参考サイト

関連エントリー

 

2009/05/02

Bluetooth メモ

Bluetooth って知っているようでよく分かってないので簡単に調査メモ。まともに理解しようとすると、結構難しいことが判明。むぅ。。。

Bluetooth 概要

Bluetooth は 免許なしで利用可能な 2.4GHz 帯の電波を利用して通信している。赤外線を利用する IrDA と違い障害物の影響を受けにくい。現在では、Bluetooth と IrDA は用途により使い分けがされている模様。

Bluetooth は無線LAN の干渉を受けることがあるという情報もあるが、周波数ホッピング方式(FHSS:Frequency Hopping Spread Spectrum)を採用しているため干渉を受けにくく、ver1.2からのAFH(Adaptive Frequency Hopping)機能のため安定した通信が可能らしい。

Bluetooth のバージョン

1.0b
    最初のバージョン。
1.0b+CE (Critical Errata)
    1.0bに修正を加えたもの。現在ではごく古い機器でまれに見かける程度。
1.1
    規格が安定し本格的な普及期を迎えたバージョン。多数の搭載機器が発売された。
1.2
    2.4GHz無線LAN(IEEE 802.11/b/g)との干渉対策を盛り込んだバージョン。比較的新しい機器に搭載されている。
2.0
    高速化機能EDR(Enhanced Data Rate)を盛り込んだバージョン。EDRに非対応の2.0機器と対応の2.0+EDR機器が混在している。
2.1
    ペアリングが簡略化され、近距離無線通信のNFC(Near Field Communication)に対応。マウスやキーボードのバッテリー寿命を最大で5倍延長できる「Sniff Subrating」機能を搭載した。
3.0
    IEEE 802.11 Protocol Adaptation Layerを採用することで規格値上24Mbpsの高速度通信を行えるようになった。また、電力管理機能を強化、省電力性を向上させた。

1.0b~1.1ではバージョン間の非互換性が問題視されていたが、1.1以降はそのような問題もほぼなくなり、順調に推移している。 将来的には超広帯域無線を利用したワイヤレスUSBとの統合も検討されている。

Bluetooth - Wikipedia

最大実行速度

バージョン 非対称型通信時 対称型通信時
1.x 下り723.2kbps/上り57.6kbps 432.6kbps
2.x 下り723.2kbps/上り57.6kbps 432.6kbps
2.x + EDR 下り2178.1kbps/上り177.1kbps 1306.9kbps

Bluetooth - Wikipedia より

通信距離

Bluetooth は電波強度を指定したクラスがあり到達距離が決まっている。

クラス 到達距離
Class 1 100m
Class 2 10m
Class 3 1m

最大接続数

Bluetooth で接続できる最大接続数は 1対7。ただ、仮想1対多接続というものがあるらしい。

Bluetooth の接続方法

Bluetooth は接続する側(マスター)と 接続される側(スレーブ)という役割がある。

  1. スレーブ側を待ち受け状態にする
  2. マスター側から「探索(発見)」操作を行う
  3. 接続可能な Bluetooth 機器から接続相手を決定する
  4. マスター・スレーブ双方でパスキー(PIN)を入力し接続する

利用方法

一般用途としてはこんな感じ。

  • 携帯電話・PHS のワイヤレスヘッドフォン
  • ハンズフリー通話
  • 無線モデム(インターネット接続)
  • カーナビゲーション
  • RFIDタグ・バーコード リーダ
  • マウス・キーボードなどの外部機器

特殊用途?

参考サイト

 

Microsoft Office 2007 SP2 がリリースされたらしい

マイクロソフト、「2007 Office system SP2」日本語版を提供:ニュース - CNET Japan

Office 2007 SP2 の日本語版がリリースされたとのこと。

結構、いろいろ更新されているようですね。

2007 Office system SP2は、すでに個別にリリースされているセキュリティアップデートなどに加え、ユーザーからのフィードバックを受けて修正されたアップデートを数多く含んでいるほか、Office IME 2007の最新の修正モジュールが含まれるという。さらに、Open XML、Open Document Format、PDF、XPSなどのファイル形式に標準対応し、相互運用性を大幅に向上したとしている。

マイクロソフト、「2007 Office system SP2」日本語版を提供:ニュース - CNET Japan

ダウンロードの詳細 : 2007 Microsoft Office スイート Service Pack 2 (SP2)
http://www.microsoft.com/downloads/details.aspx?FamilyID=b444bf18-79ea-46c6-8a81-9db49b4ab6e5&DisplayLang=ja

 

« 2009年4月 | トップページ | 2009年6月 »



プロフィール

  • 名前:fnya
    経歴:
    SE としての経験は15年以上。様々な言語と環境で業務系システム開発を行い、セキュリティ対策などもしていました。現在は趣味SE。

    Twitter では、ブログでは取り上げない情報も公開しています。


    ブログについて

    このブログは、IT、スマートフォン、タブレット、システム開発などに関するさまざまな話題を取り上げたり、雑感などをつづっています。


    >>ブログ詳細
    >>自作ツール
    >>運営サイト
    >>Windows 10 まとめ

    Twitter のフォローはこちらから Facebook ページはこちら Google+ページはこちら RSSフィードのご登録はこちらから