2011年1月29日土曜日

MacBookAirの良いところ

<MacBookAir(13inch, SSD 250G)の良いところ>

・画面が見やすいです。文字の視認性が良く楽になりました。
最近、目がやられてきたので、vaioの白が眩しく思えていました。MacBookAirの白
は、私の目にやさしいです。
・キータッチが良いです。
・バッテリーが長持ちします。vaioの比じゃないです。
・VMWareFusion-lightでWindows7が動くので、Windowsの開発環境が構築できます。
・薄いので携帯性が良いです。
・どうでも良いことですが、見た目が格好良いです。 筐体はアルミの削り出しだそうです。
・筐体の剛性があります。
・VAIO(Z)からの引越しなので、タッチパッドの動きに驚きです。例えば、
・2本指で下げると、スクロールします。
・3本指でさげると、終端・先端の移動です。
・4本指で下げると、タスクリストです。
こういう動きが意外に自然で、慣れると手・指の移動が少なくて済むかもしれません。

<MacBookAirの今ひとつのところ>

・キーボードの配列がWindowsパソコンと違うので、慣れるまで大変です。
例えば、@などの記号系の位置が異なります。
慣れるという以前に、キートップとタイプした文字が違います。これは致命的です。 タイプミスしまくり。模索中。
→ その後、 デバイスマネージャーで、「キーボードドライバ」を「PS/2 101/102 キーボード」に変更したところ、英語キーボードとなりました。Macキーボードは、つまり英語キーボード配列ということですね。今頃気が付きました。

思いつくのは今のところこれぐらいです。

2011年1月6日木曜日

classのSerialize

classをSerizlize(XMLフォーマット)して、DBやファイルに書き込むことで、柔軟性の高いデータ形式で保存できる。

例) DBの可変長列にSerializeしたクラスオブジェクトを書き込み、そのオブジェクトをDBを介して再現するような場合。あるいは、設定値などを保存しておく、などに使える。


Sample : refSbXmlに、typeとobjで渡したクラスの情報を、Serializeした結果をセットして戻す。
//■Serializeするメソッド例
        public void Serialize( ref StringBuilder refSbXml, Type type, object obj)
        {
            System.Xml.XmlWriter xml_writer = System.Xml.XmlWriter.Create( refSbXml );
            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer( type );
            serializer.Serialize( xml_writer, obj );

            //    clean
            xml_writer = null;
            serializer = null;
        }

-----------------
//■呼び出し側
        StringBuilder sb_xml = new StringBuilder();
        OpLogDataKey_PAT_OPEN data_key = new OpLogDataKey_PAT_OPEN();
        data_key.PAT_ID = id;
        oplog_dataman.Serialize( ref sb_xml, typeof( OpLogDataKey_PAT_OPEN ), data_key);


//■SerializeするClass
    public class OpLogDataKey_PAT_OPEN
    {
        public string PAT_ID;
    }
-------------------
sb_xml.ToString()は、以下の文字列が得られる。

<?xml version="1.0" encoding="utf-16"?><OpLogDataKey_PAT_OPEN xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"><PAT_ID>36102152</PAT_ID></OpLogDataKey_PAT_OPEN>

-------------------
Deserializeは、XmlSerializerクラスのDeserializeメソッドを使う。

        public object Deserialize( string xmlData, Type type)
        {
            System.Xml.XmlReader xml_reader = System.Xml.XmlReader.Create( new System.IO.StringReader( xmlData));
            System.Xml.Serialization.XmlSerializer serializer = new System.Xml.Serialization.XmlSerializer( type );
           return serializer.Deserialize( xml_reader);
        }

2011年1月5日水曜日

SQLServer データベースのコピー

SQLServerのデータベースを、SQLServerを止めずにコピーする方法について調べました。
(1)
簡易コピーツール DBCopyTool (紹介記事)
<特徴>
コピー先に新規のデータベースを指定した場合、テーブル構造、キー、トリガー、インデックスもコピーされ、元の環境と同じ定義状態になります。
内部的には、Backup / Restore でコピーしているようです。
※試したところ、データがコピーされたあと、「Error Delete File。このフォーマットはサポートされていません」 と表示されました。何のエラーかはわかりませんが、コピー先のデータを確認したところ、元データと同じ内容だったので、問題ないかな?Backup時のファイル削除に失敗しているとか。
(2)
SQL-ManagementStudioから、タスク・「エクスポート」の場合、データのみコピーされます。
つまり、エクスポート先にテーブルが作成されていない場合は、テーブルは作成されるが、キー、インデックス情報はコピーされません。
したがって、予めエクスポート先のデータベースを作成してから実行する必要があります。