<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>pg2se - プログラマーとシステムエンジニアのスキルアップサイト</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/" />
    <link rel="self" type="application/atom+xml" href="http://pg2se.com/site/atom.xml" />
    <id>tag:pg2se.com,2008-11-24:/site//2</id>
    <updated>2010-02-11T09:34:49Z</updated>
    <subtitle>IT全般の知識・技術向上のための情報と、システム開発・設計に役立つコンテンツを提供</subtitle>
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.22-ja</generator>

<entry>
    <title>Google App Engine for Java [実践]クラウドシステム構築</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2010/02/google-app-engine-for-java-1.html" />
    <id>tag:pg2se.com,2010:/site//2.63</id>

    <published>2010-02-11T08:39:14Z</published>
    <updated>2010-02-11T09:34:49Z</updated>

    <summary><![CDATA[  &nbsp;Google App Engine for Java「実践」クラ...]]></summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="java" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="システム開発" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="本" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="googleappengine" label="Google App Engine" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windowsazure" label="Windows Azure" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="アプリケーションサーバ　" label="アプリケーションサーバ　" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="クラウド" label="クラウド" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6179860%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13272743%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7741%2f77413985.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7741%2f77413985.jpg%3f_ex%3d80x80" /></a> </p>
<p>&nbsp;<a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6179860%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13272743%2f" target="_blank">Google App Engine for Java「実践」クラウドシステム構築</a> </p>
<p>&nbsp;</p>
<div class="code">
<p>著者：　株式会社グルージェント</p>
<p>発行日：　２００９年１０月１０日</p>
<p>発行者：　片山　巌</p>
<p>発行所：　株式会社技術評論社</p>
<p>310ページ</p>
<p>2,480円＋税</p></div>
<p>&nbsp;</p>
<p><strong>&nbsp;内容</strong></p>
<p>Googleのスケーラビリティを案件で使い切る。活用の秘訣は、「制約」を正しく</p>
<p>理解すること。割り当てと制限、BigTableによるDB構築、課金のしくみ、</p>
<p>Google Apps、GDataとの連携、Memcache、Mail・・・API活用</p>
<p>&nbsp;</p>
<p><strong>ポイント</strong></p>
<p>Window Azureサービスも開始され、クラウドサービスもビジネスだけではなく、個人的な</p>
<p>利用についても十分現実的なものになっていきている。Windows Azureも魅力的であるが</p>
<p>まだまだ情報も少なく、個人的に試してみるのは、まだ先かなぁと思う。</p>
<p>&nbsp;</p>
<p>そんな中、やはり無料で使用でき、導入が容易、機能も豊富なサービスといえば、</p>
<p>Google　App Engine　for　Javaでしょう。特にJava Webアプリケーションサーバの</p>
<p>実行環境が無料で利用できるというのは、Javaユーザにとっては、特にありがたい</p>
<p>でしょう（レンタルサーバでもJavaの実行環境が提供されるのは稀なので）</p>
<p>一定の使用量を超えると課金になるが、そこそこヘビーなアプリケーションでなければ、</p>
<p>制限を超えることはないと思う。ぜひ一度試してください。</p>
<p>&nbsp;</p>
<p>本書では、こういった、サービスの基本的な内容、課金について、導入手順などはもちろん、</p>
<p>サービスの各機能の使用方法のポイントを、わかりやすく説明されているので、このサービス</p>
<p>の素晴らしさが実感できると思う。</p>
<p>&nbsp;</p>
<p>とりあえず、触ってみたいという方は、Eclipse環境で導入可能なので以下参照してください。</p>
<p><strong><a href="http://pg2se.com/site/2009/07/google-app-engine-for-java.html">http://pg2se.com/site/2009/07/google-app-engine-for-java.html</a></strong></p>
<p><strong></strong>&nbsp;</p>
<p><strong>内容詳細</strong></p>
<div class="code">
<p><strong>第１章　クラウド時代のシステムインテグレーション</strong></p>
<p>1.1　クラウドコンピューティング</p>
<p>1.2　Google App Engine</p>
<p>1.3　Google App Engine　for　Java</p>
<p>&nbsp;</p>
<p><strong>第２章　制約</strong></p>
<p>2.1　Quota(割り当て)とLimit(制限)</p>
<p>2.2　Java APIに対する制約</p>
<p>&nbsp;</p>
<p><strong>第３章　クラウド時代のシステムインテグレーション</strong></p>
<p>3.1　GAEアカウントの作成とデプロイの準備</p>
<p>3.2　開発環境の構築</p>
<p>3.3　アプリケーションの作成とデプロイ</p>
<p>3.4　アプリケーションの設定</p>
<p>3.5　アプリケーションの管理</p>
<p>&nbsp;</p>
<p><strong>第４章　データストア</strong></p>
<p>4.1　BigTable</p>
<p>4.2　JDOによるデータストアの操作</p>
<p>4.3　インデックス</p>
<p>4.4　トランザクション</p>
<p>4.5　JDO以外のデータストアAPI</p>
<p>4.6　データストア設計上の注意点</p>
<p>&nbsp;</p>
<p><strong>第５章　サービスAPI</strong></p>
<p>5.1　Memcache　API</p>
<p>5.2　URLフェッチ　API</p>
<p>5.3　Images API</p>
<p>5.4　Mail API</p>
<p>&nbsp;</p>
<p><strong>第６章　テスト</strong></p>
<p>6.1　ユニットテスト</p>
<p>6.2　ローカル環境でのテスト</p>
<p>6.3　実環境でのテスト</p>
<p>6.4　パフォーマンスの確認</p>
<p>&nbsp;</p>
<p><strong>第7章　GAEが提供するサービスとの連携</strong></p>
<p>7.1　GAEが連携可能なGoogleアプリケーション</p>
<p>7.2　アカウント認証サービスとの設定</p>
<p>7.3　Google Calendarとの連携</p>
<p>7.4　GAE/Jアプリケーションを独自ドメインで運用</p>
<p>7.5　Secure Data Connector</p>
<p>&nbsp;</p>
<p><strong>第8章　追加リソースの購入</strong></p>
<p>8.1　Billingの体系</p>
<p>8.2　Billingの設定</p>
<p>8.3　課金量の予測</p>
<p>&nbsp;</p></div>]]>
        
    </content>
</entry>

<entry>
    <title>Redmine - もっと手軽にプロジェクト管理</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/11/redmine--.html" />
    <id>tag:pg2se.com,2009:/site//2.61</id>

    <published>2009-11-07T18:31:54Z</published>
    <updated>2009-11-07T18:34:08Z</updated>

    <summary><![CDATA[  &nbsp;Redmineーもっと手軽にプロジェクト管理！  &nbsp; ...]]></summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="Ruby" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="システム管理" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="本" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="bts" label="BTS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="its" label="ITS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="redmine" label="Redmine" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="システム管理" label="システム管理" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="システム運用" label="システム運用" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プロジェクト管理" label="プロジェクト管理" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="本" label="本" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6130048%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13233687%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8443%2f84432730.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8443%2f84432730.jpg%3f_ex%3d80x80" /></a> </p>
<p>&nbsp;<a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6130048%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13233687%2f" target="_blank">Redmineーもっと手軽にプロジェクト管理！</a> </p>
<p>&nbsp;</p>
<div class="code">
<p>&nbsp;著者：　倉貫 義人　栗栖 義臣　並河 祐貴　前田 直樹</p>
<p>発行日：　２００９年８月１日</p>
<p>発行人：　土田 米一</p>
<p>発行所：　株式会社インプレスジャパン</p>
<p>231ページ</p>
<p>2,100円＋税</p></div>
<p>&nbsp;</p>
<p><strong>内容</strong></p>
<p>プロジェクト管理入門から、Redmine導入・運用・プラグイン開発まで</p>
<p>Excel派もTrac派も大注目！使いやすい、覚えやすい、プロジェクト管理の効率が</p>
<p>ぐ～んとUP↑　１．導入・設定　２．チケット登録　３．すぐ見える化</p>
<p>&nbsp;</p>
<div class="code">
<p>Chapter1　プロジェクト管理をもっと楽に！楽しく！</p>
<ul>
<li>Redmineでプロジェクト管理を変える！</li>
<li>導入と活用のキーポイントを紹介</li></ul>
<p>&nbsp;</p>
<p>Chapter2　Redmineの使いどころ・勘どころ</p>
<ul>
<li>導入の前後でどうかわる？導入効率がよくわかる</li></ul>
<p>&nbsp;</p>
<p>Chapter3　どうやって導入する？[Windows/Linux/Amazon EC2編]</p>
<ul>
<li>Amazon EC2ならインストールなしで、すぐに運用できる！</li>
<li>WindowsやLinuxへのセットアップ方法も紹介</li></ul>
<p>&nbsp;</p>
<p>Chapter4　プロジェクトメンバーはどう使う？</p>
<ul>
<li>メンバーすべてがカンタンに使いこなせる！</li>
<li>ユーザーの登録から、プロジェクト／チケットの作成、SCMとの連携まで</li></ul>
<p>&nbsp;</p>
<p>Chapter5　システム管理者はどう設定する？</p>
<ul>
<li>標準設定はここまで変えられる！</li>
<li>ロール、プロジェクト、チケット、サイト全体などをカスタマイズ</li></ul>
<p>&nbsp;</p>
<p>Chapter6　どう工夫して運用する？</p>
<ul>
<li>万が一に備えて、バックアップは必須！</li>
<li>性能もバージョンアップも考えて、しっかり運用</li></ul>
<p>&nbsp;</p>
<p>Chapter7　プラグイン、動追加する？どう作る？</p>
<ul>
<li>より使いやすく、さらに管理しやすく！</li>
<li>さまざまなプラグインを紹介。開発方法hも解説</li></ul></div>
<p>&nbsp;</p>
<p><strong>ポイント</strong></p>
<p>&nbsp;Redmineは、システム開発・運用時にプロジェクト管理で活用することができる、</p>
<p>ITS（Issue Tracking System）：課題管理システムです。</p>
<p>以前は開発時のバグ管理や、運用時のサポートツールとして、</p>
<p>BTS（Bug Tracking System）が利用されてきたが、現在では様々な機能が</p>
<p>追加され、プロジェクト管理全般で利用することができるプロジェクト管理ツール</p>
<p>にまで発展してきている。</p>
<p>&nbsp;</p>
<p>もちろんRedmineでも、BTSとしてだけでなくプロジェクトの概要・活動・ロードマップ</p>
<p>を管理したり、チケット（タスク管理の最小単位）の作成、ニュース・フォーラムの登録、</p>
<p>文書・ファイルの管理、Wiki、ソース管理連携機能などの多くの機能を備えている。</p>
<p>&nbsp;</p>
<p>Redmineは、ITSの中でも最も後発に出現したシステムの一つであり（２００９年現在）</p>
<p>現在、最も評価も高く、高機能なシステムといえるでしょう。</p>
<p>デファクトなシステムの移り変わりとしては、Bugzilla→Mantis→Trac→Redmineと</p>
<p>なってくるのではないでしょうか？</p>
<p>&nbsp;</p>
<p>さて、本書の内容ですが、上記のようなITS・プロジェクト管理についての概要から</p>
<p>始まり、インストール方法、各機能の操作説明、運用時のポイント、プラグインに</p>
<p>ついてという流れになっています。</p>
<p>&nbsp;</p>
<p>ある程度、BTS・ITSについて知識があり、オープンソフトウェアのインストールの</p>
<p>経験があれば、概要とインストール方法については、十分Webで調べられる範囲</p>
<p>である。また操作方法についても、基本は直感的に分かる範囲の説明がダラダラ</p>
<p>と書かれているという感じです。調査のための時間短縮にはなると思います。</p>
<p>&nbsp;</p>
<p>Webでの情報が少ない部分としては、最後の２つの章、どう工夫して運用する？</p>
<p>と、プラグインの活用についてです。こちらは、実際にシステムを業務で利用する</p>
<p>する際に必要になってくる、データのバックアップの方法や運用する、</p>
<p>アプリケーションサーバの変更方法やクラスタリングについて、Redmineの</p>
<p>バージョンアップについてが詳しく書かれています。</p>
<p>Redmineは、ある程度は設定でカスタマイズは可能ですが、Ruby On Railsで</p>
<p>開発されているので、ソースレベルでのカスタマイズが非常に簡単にすることが</p>
<p>可能です。</p>
<p>私も、実際の業務でRedmineを使用しており、項目の並びや、表示非表示、</p>
<p>運用に合わせた画面のリンクの追加、プロジェクト選択時の初期表示タブの変更</p>
<p>など、ソースレベルでどんどん変更し運用しやすいようにカスタマイズしています。</p>
<p>※Ruby On Rails は未経験ですが、MVCモデルがわかれば容易にソースを</p>
<p>変更してカスタマイズできると思います。</p>
<p>最後に、ソースでのカスタマイズだけでなく、プラグインを利用することでの機能</p>
<p>追加の方法や、プラグイ自体の作成方法についても簡単に説明されています。</p>
<p>&nbsp;</p>
<p>本書以外にも、Redmineの解説書は以下のものが発売されています。</p>
<p>&nbsp;</p>
<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f5918848%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13091059%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7980%2f79802137.jpg%3f_ex%3d80x80&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7980%2f79802137.jpg%3f_ex%3d64x64" /></a>&nbsp;</p>
<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f5918848%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13091059%2f" target="_blank">入門Redmine</a> </p>
<p>&nbsp;</p>
<p>似たような内容だとは思いましたが、発売日が新しいので私は、</p>
<p>&nbsp;<a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6130048%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13233687%2f" target="_blank">Redmineーもっと手軽にプロジェクト管理！</a> の方を選択しました。</p>
<p>&nbsp;</p>
<p>リンク：　<a href="http://redmine.jp/">Redmine.JP - 日本語情報サイト</a></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>Windows 7 新時代 - Vista から進化した新しいユーザー・インターフェイス</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/10/windows-7---vista.html" />
    <id>tag:pg2se.com,2009:/site//2.59</id>

    <published>2009-10-30T00:39:45Z</published>
    <updated>2009-10-30T00:43:48Z</updated>

    <summary>Windows7がCMで放送され注目を浴びていますが、IT業界で働く者にとっても...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="delphi" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="delphi" label="Delphi" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="os" label="OS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windows" label="Windows" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windows7" label="Windows 7" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windowsvista" label="Windows Vista" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windowsxp" label="Windows XP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="アプリケーション" label="アプリケーション" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="開発" label="開発" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>Windows7がCMで放送され注目を浴びていますが、<br />IT業界で働く者にとっても、新しいOSの技術・機能を<br />理解し学んでいくことは大切です。<br /><br />Vistaから進化した新しいユーザー・インターフェイス<br /><a href="http://www.atmarkit.co.jp/fwin2k/win7/04newui/04newui_01.html">http://www.atmarkit.co.jp/fwin2k/win7/04newui/04newui_01.html</a><br /><br /><br />特に、Windows7では、見た目はVistaと大きな違いがない印象が<br />あるかもしれませんが、細かなところでたくさんの部分がブラッシュ<br />アップされているだけでなく、機能強化、機能追加されています。<br /><br />パフォーマンスもVistaよりも断然良くなって(XPと比べても遜色なくなって)<br />いるので、今後、XPに代わるOSとして普及が予測されるのではないでしょうか？<br /><br />Windows7の特徴を少し抜粋すると、<br /><br />・ジャンプリスト<br />・新しいタスクバー<br />・新しいアプリケーションの切り替え／整列<br />・新しいアプリケーションの最大化／最小化<br />・ウィンドウのスナップ／シェイク<br />・デスクトップの透明化<br />・ガジェットの自由な配置<br />・通知アイコンの強化／通知メッセージの共有化<br />・UACレベルの切り替え<br />・ライブラリ機能<br /><br />となっています。<br /><br /><br />IT業界に視点を置くと、こういったOSの進化に、開発する<br />アプリケーションをどのように進化させていくか、連携させて<br />いくかを考え、付加価値の高い商品を生み出さないと、<br />どんどんと時代の波に取り残されることになります。<br /><br />開発ツールのバージョンアップの中でも、こういったOSの進化に<br />追随する機能がたくさん盛り込まれています。<br /><br />例えば、Delphiでは、Delphi2009で完全にユニコード対応になり、<br />ジェネリクス、無名メソッドなどの新しい言語仕様、Office2008で<br />採用されている新しいインターフェイスに対応した、リボンコントロール<br />が追加されたり、今秋発売された、Delphi2010では、Windows7の<br />シェイク機能を意識した、ジェスチャーコントロール（マウスの動きに<br />合わせてイベントを発生させる）などが導入されています。<br /><br />新しい技術の全てを理解し、開発するアプリケーションに取り入れる<br />必要はありませんが、少なくとも、開発するアプリケーションが陳腐化<br />しないようにバージョンアップ、メンテナンスをおこない、いつでも、<br />新しい技術を取り入れられるようにスケーラビリティを確保することが<br />大切ではないでしょうか？<br /><br />そのためにも普段からの技術力向上のための取り組みは必須です。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>C# - 静的クラス</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/10/c--.html" />
    <id>tag:pg2se.com,2009:/site//2.58</id>

    <published>2009-10-26T14:37:19Z</published>
    <updated>2009-10-26T17:09:34Z</updated>

    <summary>オブジェクト指向と言いつつ、クラスをインスタンス化させたくない場面は よくあるこ...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term=".net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="c" label="C#" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="visualstudio" label="VisualStudio" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="インスタンス" label="インスタンス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プログラム" label="プログラム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="静的クラス" label="静的クラス" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="静的フィールド" label="静的フィールド" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="静的メソッド" label="静的メソッド" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>オブジェクト指向と言いつつ、クラスをインスタンス化させたくない場面は</p>
<p>よくあることです。</p>
<p>&nbsp;</p>
<p>私の経験上では主に２つ。</p>
<p>&nbsp;</p>
<ol>
<li>ユーティリティクラス<br />他の色々なクラスから共通で利用されるメソッドを実装する。<br />共通関数群のような使い方をするが、そのたびにクラスを<br />インスタンス化して利用するのはコードもわかりにくくなるし、<br />そもそもオブジェクトとして利用する意味がない。<br /><br />この場合、Java等でも同様だと思うが、staticなメソッドを定義し<br />インスタンス化せずに手軽に共通メソッドを利用できるようにする。<br />その際、インスタンス化自体が無意味なので、コンストラクタを<br />private　で宣言するのが一般的です。<br /><br /><br />
<div class="code">public class StringUtil<br />{<br />&nbsp;&nbsp;&nbsp; private StringUtil<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //インスタンス化不可<br />&nbsp;&nbsp;&nbsp; }<br /><br />&nbsp;&nbsp;&nbsp; public static Find(string source, string search)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return ...<br />&nbsp;&nbsp;&nbsp; }<br />} </div><br /><br /></li>
<li>シングルトンクラス（シングルトンパターン）<br />オブジェクトをシングルトンにしたい場合に使用する。<br />シングルトンとはアプリケーション内であるクラスのインスタンスは<br />唯一であることを保証するクラスのこと(例：プリンタスプーラなど)<br /><br />クラスが内部的にそのクラスのオブジェクトをひとつだけインスタンス化し、<br />インスタンスが必要な場合にかならず、唯一のオブジェクトへの参照を<br />返すという仕組みである。<br /><br />
<div class="code">public class Singleton<br />{<br />&nbsp;&nbsp;&nbsp; private static obj = new Singleton();<br /><br />&nbsp;&nbsp;&nbsp; private Singleton<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //インスタンスの取得は、GetInstanceメソッドで<br />&nbsp;&nbsp;&nbsp; }<br /><br />　　public static Singleton GetInstance<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return obj;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</div><br /><br /></li>
</ol>
<p>C#2.0からは、上記のように、無理やりコンストラクタを、privateにして</p>
<p>インスタンス化できないようにするという、よく考えると無理やりな手法</p>
<p>ではなく以下のようにスマートに記述できるようになった。<br /><br />class定義の前に、staticを付加すると、そのクラスは自動的に静的な</p>
<p>クラスとなり、以下のような特徴を持つようになる。</p>
<p>&nbsp;</p>
<ul>
<li>静的メンバのみを含みます。</li>
<li>インスタンス化できません。</li>
<li>シールされます。</li>
<li>インスタンスコンストラクタを含むことができません<br /></li></ul>
<p>コンストラクタを記述しても言語レベルでエラーが検出され、</p>
<p>コンパイルすることができなくなります。<br /></p>
<p>このクラスを利用し、静的フィールド、静的メソッドだけを使用した</p>
<p>ユーティリティクラスやシングルトンの仕組みも簡単に実装できます。 
<p></p>]]>
        
    </content>
</entry>

<entry>
    <title>独習UML　第４版</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/10/uml.html" />
    <id>tag:pg2se.com,2009:/site//2.57</id>

    <published>2009-10-05T14:29:44Z</published>
    <updated>2009-10-05T15:28:27Z</updated>

    <summary><![CDATA[  &nbsp;独習UML第4版  &nbsp; 著者：テクノロジックアート 発...]]></summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="UML" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="システム設計" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="システム開発" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="本" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="uml" label="UML" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="オブジェクト指向" label="オブジェクト指向" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="システム分析" label="システム分析" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="システム設計" label="システム設計" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="パターンウィーバー" label="パターンウィーバー" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6035806%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13171526%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7981%2f79811854.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7981%2f79811854.jpg%3f_ex%3d80x80" /></a> </p>
<p>&nbsp;<a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6035806%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13171526%2f" target="_blank">独習UML第4版</a> </p>
<p>&nbsp;</p>
<div class="code">
<p>著者：テクノロジックアート</p>
<p>発行日：２００９年４月９日</p>
<p>監修：長瀬 嘉秀・橋本 大輔</p>
<p>発行人：佐々木 幹夫</p>
<p>発行所：株式会社 翔泳社</p>
<p>371ページ</p>
<p>3,600円＋税</p></div>
<p>&nbsp;</p>
<p><strong>ポイント</strong></p>
<p>２００９年１０月現在で、UML学習について比較的新しい書籍です。</p>
<p>UML２．ｘについての記述も多く取り入れられています。</p>
<p>UMLが取り上げられてからかなりの時間が経っていますが、UMLと</p>
<p>いう言葉や、UMLについてある程度の知識を持った技術者は多いと</p>
<p>思いますが実際の開発の現場で利用している、活用できている方は</p>
<p>少ないのではないでしょうか？</p>
<p>&nbsp;</p>
<p>私の考えでは、実際にUMLを使用しなかったとしても、UMLの内容を</p>
<p>理解し、習得することで、システム設計の手法や、オブジェクト指向に</p>
<p>対する理解など、システム開発に関する多くのことが学べスキルアップ</p>
<p>できることは間違いないです。もちろん実際にUMLを使用した開発にも</p>
<p>役立ちますし、自らUMLでの設計を取り入れた開発にチャレンジする</p>
<p>のも良いと思います。</p>
<p>&nbsp;</p>
<p>全てではなくとも、ユースケース図、クラス図、シーケンス図など、</p>
<p>部分的にドキュメントとして作成し活用できるのもUMLの特徴です。</p>
<p>&nbsp;</p>
<p>この書籍では、第１部で、基礎知識（各図の書き方、活用方法、</p>
<p>UML２．ｘでの変更点）が簡潔にまとめられており、初心者にも</p>
<p>十分理解できる内容になっています。</p>
<p>また、UMLを業務で活用したいと考えている方には、第２部の</p>
<p>"UMLの適用"がとても役立ちます。</p>
<p>実際に仮想のシステムの開発というストーリーで、分析から、</p>
<p>設計、展開まで現場目線で詳細に解説されていますので、</p>
<p>どのようにUMLを実際の現場で利用するかよく分かっていない</p>
<p>場合の参考になるでしょう。</p>
<p>&nbsp;</p>
<p><strong>内容</strong></p>
<div class="code">
<p>UML２．ｘ準拠「はじめての学習」にも、「体系立った習得」にも最適！！</p>
<p>信頼の定番メソッド＋詳説で基礎から実践まで徹底理解！！</p>
<p>３ステップだからよく分かる（１．解説　２．例文　３．練習問題）</p>
<p>&nbsp;</p>
<p>UML（Unified Modeling Languageとは、システムモデルの表記法です。</p>
<p>本書は、UML２．ｘの基礎概念と実践的な運用方法を無理なく身に付つける</p>
<p>ことができる構成になっています。</p>
<p>&nbsp;</p>
<p><strong>ステップ１</strong>　丁寧な解説で、１人でもスイスイ学習</p>
<p>UMLの基礎からオブジェクト指向の考え方、各種図形の描画方法、実務での</p>
<p>活用方法に至るまで、初学者の観点からていねいに解説しているため、途中</p>
<p>でつまづくことなく学習することができます。</p>
<p>&nbsp;</p>
<p><strong>ステップ２</strong>　章末の「理解度チェック」で学習内容を確認</p>
<p>各章の最後に「理解度チェック」を収録。「どこで」「なにが」理解できなかった</p>
<p>かを明らかにし、弱点を克服することができます。</p>
<p>&nbsp;</p>
<p><strong>ステップ３</strong>　付属CD-ROMのツールで実力をつける</p>
<p>コンポジット構造図やタイミング図、相互作用概要図といった、UML２．０</p>
<p>以降に追加されたダイアグラムなどに対応したパターンウィーバー２．３</p>
<p>CE版で、学習の成果を活かして図形を描画することができます。</p></div>
<p>&nbsp;</p>
<p><strong>目次</strong></p>
<div class="code">
<p>第１部　UMLの基礎知識</p>
<ul>
<li>第１章　UMLとは</li>
<li>第２章　オブジェクト指向とは</li>
<li>第３章　ユースケース図</li>
<li>第４章　オブジェクト図</li>
<li>第５章　クラス図</li>
<li>第６章　コンポジット構成図</li>
<li>第７章　コンポーネント図</li>
<li>第８章　シーケンス図</li>
<li>第９章　コミュニケーション図</li>
<li>第１０章　タイミング図</li>
<li>第１１章　相互作用概要図</li>
<li>第１２章　ステートマシン図</li>
<li>第１３章　アクティビティ図</li>
<li>第１４章　配置図</li>
<li>第１５章　パッケージ図</li>
<li>第１６章　UMLの基礎概念</li></ul>
<p>第２部　UMLの適用</p>
<ul>
<li>第１７章　現状業務（AsIs）の分析</li>
<li>第１８章　現状業務の改善（ToBe）</li>
<li>第１９章　要求分析</li>
<li>第２０章　システム分析</li>
<li>第２１章　システム設計（システム全体の俯瞰とアーキテクチャの決定）</li>
<li>第２２章　システム設計（ユースケースの実現）</li>
<li>第２３章　システム設計（システム全体の構造決定）</li>
<li>第２４章　プラットフォームへの展開</li></ul>
<p>付録</p>
<ul>
<li>理解度チェック解答集</li>
<li>パターンウィーバーについて</li></ul></div>
<p>&nbsp;</p>
<p>&nbsp;※UMLの概要だけを理解したいのであれば、類似のこちらの</p>
<p>書籍も良いのではないでしょうか？価格も安めです。</p>
<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f4379282%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12047670%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8163%2f81634207.jpg%3f_ex%3d80x80&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8163%2f81634207.jpg%3f_ex%3d64x64" /></a> </p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>Windows 7 完全移行マニュアル</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/09/windows-7.html" />
    <id>tag:pg2se.com,2009:/site//2.55</id>

    <published>2009-09-26T13:42:07Z</published>
    <updated>2009-09-26T14:01:33Z</updated>

    <summary>Windows７（ウィンドウズ・セブン）の一般発売日が日本語を含み、 ２００９年...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="Windows" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ニュース" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="リリース" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="製品" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="windows7" label="Windows 7" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windowsvista" label="Windows Vista" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="windowsxp" label="Windows XP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="データ" label="データ" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="環境" label="環境" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="移行" label="移行" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>Windows７（ウィンドウズ・セブン）の一般発売日が日本語を含み、</p>
<p>２００９年１０月２２日、１４ヶ国語対応で同時発売となっている。</p>
<p>&nbsp;</p>
<p>初期の開発コードネームは「Blackcomb」と呼ばれており、</p>
<p>のちに「Vienna」]、さらに「Windows 7」に改められている。</p>
<p>社内開発コード名がそのまま製品版の名称として採用された。</p>
<p>&nbsp;</p>
<p>７（セブン）の由来は想像が容易かもしれないが、</p>
<p>Windows 1.0 / Windows 2.0 / Windows 3.x / 4.x (95, 98, 98 SE, Me)</p>
<p>5.x (Windows 2000, Windows XP) / 6.0 ( Windows Vista ) に続く</p>
<p>７番目のクライアント向けのメジャーリリースだからである。</p>
<p>&nbsp;</p>
<p>しかし、Windows 7はWindows Vistaを基に改良されていることから、</p>
<p>バージョン番号としては、正式には6.1となっている。</p>
<p>Vistaと同様、Windows 7も個人向けおよび法人向けの両バージョン、そして</p>
<p>リテールパッケージ版には32ビットと64ビットの両バージョン同梱で出荷される。</p>
<p>&nbsp;</p>
<p>今回は、Windows７購入後の環境の移行作業ついての詳細な記事が掲載されて</p>
<p>いたので紹介します。</p>
<p>&nbsp;</p>
<p><a href="http://www.atmarkit.co.jp/fwin2k/win7/02win7mig/02win7mig_01.html"><strong>XP／Vista→Windows 7 完全移行マニュアル</strong></a></p>
<p><strong></strong>&nbsp;</p>
<p>&nbsp;残念ながら、Windows XPからWindows 7への上書きアップグレードは</p>
<p>サポートされていないようなので、手動による移行作業が必要になる。</p>
<p>&nbsp;</p>
<p>また、Vistaからユーザ別のドキュメント等のファイルの保存場所が変更に</p>
<p>なっているため、いざ環境の移行作業をしようとした際に戸惑うのではない</p>
<p>でしょうか？</p>
<p>&nbsp;</p>
<p>事前に上記の記事を読んで、概略でも理解しておきたいです。</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>絶対現場主義　Visual C#　実践講座</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/09/visual-c.html" />
    <id>tag:pg2se.com,2009:/site//2.54</id>

    <published>2009-09-23T14:24:16Z</published>
    <updated>2009-09-23T15:23:53Z</updated>

    <summary><![CDATA[  絶対現場主義Visual C＃実践講座  &nbsp; 著者：丸岡 孝司&n...]]></summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term=".net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="システム開発" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="本" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="net" label=".NET" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="c" label="C#" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="visualstudio" label="Visual Studio" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="フレームワーク" label="フレームワーク" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="開発" label="開発" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f4502683%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12112976%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8997%2f89977197.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8997%2f89977197.jpg%3f_ex%3d80x80" /></a> </p>
<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f4502683%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f12112976%2f" target="_blank">絶対現場主義Visual C＃実践講座</a> </p>
<p>&nbsp;</p>
<div class="code">
<p>著者：丸岡 孝司&nbsp;</p>
<p>発行日：２００７年７月２５日</p>
<p>発行者：黒田 康夫</p>
<p>発行所：株式会社ラトルズ</p>
<p>411ページ</p>
<p>2,600円＋税</p></div>
<p>&nbsp;</p>
<p><strong>内容</strong></p>
<div class="code">
<p>開発の現場から生まれた実践テクニック＆TIPS集。</p>
<p>"Visual　C#　プログラミング"という大海原をひとりゆくプログラマのために。</p>
<ul>
<li>Chapter1　.NET FrameworkとC#プログラミング<br />Visual Studioの使い方、C#コーディング方法、C#のデータ型、制御構造<br />などの言語仕様に関するテクニックやTIPSを収録。<br /><br /></li>
<li>Chapter2　Windowsアプリケーション<br />Windowsフォームやコントロールを使用した、Windowsアプリケーション<br />作成のテクニックやTIPSを収録。<br /><br /></li>
<li>Chapter3　データベース処理<br />.NET　Frameworkにおけるデータベース処理に関するテクニックやTIPS<br />を収録。<br /><br /></li>
<li>Chapter4　Webとネットワーク<br />.NET　Frameworkにおけるネットワーク処理について簡単に紹介。<br /></li></ul></div>
<p><strong></strong>&nbsp;</p>
<p><strong>ポイント</strong></p>
<p>職場で一緒に仕事している人からのお勧めの一冊。借りました。</p>
<p>現在、C#のプロジェクトを一から作り始めて進行中なので、フレームワーク</p>
<p>作りの参考にしました。</p>
<p>&nbsp;</p>
<p>タイトル　"絶対現場主義"　にもあるように、実際に現場で開発をする人たち</p>
<p>にとって役立つ内容となっています。</p>
<p>&nbsp;</p>
<p>特に、C#プロジェクトはまだあまり経験がないけど、こんな感じでいいのかなぁ</p>
<p>とか、Javaのプロジェクトは経験したけど、C#ではどうするべきか・・・(悩)とか、</p>
<p>昔ながらのVBスタイルのプログラムは書けるけど、C#ってオブジェクト指向が</p>
<p>ベースだし、クラスとか、継承とか、カプセル化もいまいち良くわかんないよなぁ</p>
<p>とか・・そんな悩める人たちの手助けになると思います。</p>
<p>&nbsp;</p>
<p>書き方も、従来の単純な解説書やリファレンス、TIPS集などとは違い、いちいち</p>
<p>現場目線での解説（こういう背景だからこんな疑問が発生し、こう解決すれば</p>
<p>良いのでは？スタイルでの記述）がされており非常に読みやすくなっています。</p>
<p>例示されているシーンも、一度は誰もが悩んできたであろう内容で納得できます。</p>
<p>（その分、普通のTIPS集では１ページで書かれている内容が３～５ページかけて</p>
<p>解説されていたりしますが・・）</p>
<p>&nbsp;</p>
<p>特に、Windowｓアプリケーションでは、開発のフレームワークをどうするべきかや、</p>
<p>コントロールの拡張方法、共通化などについても詳しく書かれていますので、</p>
<p>実際のプロジェクトの参考にできると思います。</p>
<p>&nbsp;</p>
<p>最後に、Webアプリケーションの事については紹介として少しだけ解説されて</p>
<p>いますが、つい先日、この書籍の、"Webアプリケーション編"が出版されたよう</p>
<p>ですので、紹介だけしておきます。※私は.NETだと、APS.NET MVCの方に</p>
<p>興味があるため、こちらの書籍（MVCについては触れられていなさそう？）</p>
<p>なので購入するかどうかは今のところ未定です。</p>
<p>&nbsp;</p>
<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6132404%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13236063%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8997%2f89977244.jpg%3f_ex%3d80x80&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f8997%2f89977244.jpg%3f_ex%3d64x64" /></a></p>
<p>&nbsp;<a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6132404%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13236063%2f" target="_blank">絶対現場主義Visual C＃実践講座（Webアプリケーション編）</a> </p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>C# - TransactionScopeでトランザクション</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/09/c---transactionscope.html" />
    <id>tag:pg2se.com,2009:/site//2.53</id>

    <published>2009-09-22T16:23:47Z</published>
    <updated>2009-09-22T16:50:17Z</updated>

    <summary>最近仕事でC#をメインで使うようになってきたので。 新しいこともいろいろと習得中...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term=".net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ADO.net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="DB" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="adonet" label="ADO.Net" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="c" label="C#" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="db" label="DB" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="transactionscope" label="TransactionScope" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="データベース" label="データベース" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="トランザクション" label="トランザクション" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>最近仕事でC#をメインで使うようになってきたので。</p>
<p>新しいこともいろいろと習得中です。</p>
<p>&nbsp;</p>
<p>業務アプリケーションにデータベース処理はつきもので、</p>
<p>さらにデータベース処理には、トランザクションがつきもので、</p>
<p>またまたトランザクション処理にはコミットと、ロールバックが・・・</p>
<p>&nbsp;</p>
<p>今まではどんな言語を使うにしろ、トランザクション処理では、</p>
<p>トランザクションの開始と、コミット、そして例外時にはロールバックと</p>
<p>明示的に記述していた。</p>
<p>&nbsp;</p>
<p>C#で、SｑｌTransactionを利用した従来の書き方</p>
<div class="code">
<p>using (SqlTransaction tran = con.Begin.Transaction())</p>
<p>{</p>
<p>&nbsp;&nbsp;&nbsp; try {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SQLによるデータベース更新処理</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //コミット</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tran.Commit();</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; catch {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ロールバック</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tran.Rollback();</p>
<p>&nbsp;&nbsp;&nbsp; }</p>
<p>}</p></div>
<p>&nbsp;</p>
<p>しかし.NET Framework2.0ではもう少し簡単に書けるようになった、</p>
<p>System.Transaction.TransactionScopeクラスが用意されている。</p>
<p>TransactionScope.Complete()メソッドが呼ばれるとコミットされ、</p>
<p>TransactionScope.Dispose()メソッドが呼ばれるとロールバック</p>
<p>される仕組みとのこと。</p>
<p>なので、usingステートメントと組み合わせて、以下のように書ける。</p>
<div class="code">
<p>using (TransactionScope tran = new TransactionScope()) {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;//SQLによるデータベース更新処理</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;:</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;//コミット</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;tran.Complete();</p>
<p>}</p></div>
<p>※例外が発生したり、Complete()メソッドを呼び出さずに、</p>
<p>usingステートメントを抜けると自動的にロールバックされる。</p>
<p>&nbsp;</p>
<p>また、TransactionScope クラスには自動的にコネクションや、</p>
<p>SqlCommandクラスを検出する機能があるため、今までのように</p>
<p>明示的にコネクションやSqlCommandのインスタンスとトランザクション</p>
<p>のインスタンスを結びつける必要が無くなっているのもポイント。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>twitter連携アプリを作ってみる（２）</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/09/twitter-1.html" />
    <id>tag:pg2se.com,2009:/site//2.52</id>

    <published>2009-09-14T14:02:34Z</published>
    <updated>2009-09-14T14:28:28Z</updated>

    <summary>前回は、twitterの最新のつぶやきを表示する、 簡単なアプリケーションを作成...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term=".net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="net" label=".NET" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="c" label="C#" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="json" label="JSON" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プログラム" label="プログラム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="マイクロブログ" label="マイクロブログ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p><a href="http://pg2se.com/site/2009/09/twitter.html">前回</a>は、twitterの最新のつぶやきを表示する、</p>
<p>簡単なアプリケーションを作成してみました。</p>
<p>&nbsp;</p>
<p>ロジックとしては、twitterで指定されたAPIを呼び出し、</p>
<p>XML形式のデータを取得し、XPathでXMLデータを解析して</p>
<p>表示するといった内容でした。</p>
<p>&nbsp;</p>
<p>今回は、Webの世界ではXMLより手軽に扱えるとされている、</p>
<p>JSON形式のデータを扱うことにします。twitterのAPIでも標準で</p>
<p>JSON形式のデータに対応されています。</p>
<p>&nbsp;</p>
<p>今回も、C#.netを使用してアプリケーションを作成してみました。</p>
<p>(プログラムの機能は前回と同じです)</p>
<ul>
<li>C#.net 2008</li>
<li>.net framework2.0</li>
<li><a href="http://www.codeplex.com/Json">Json.NET 3.5 beta4</a></li></ul>
<p>&nbsp;</p>
<p><a href="http://pg2se.com/site/s/exe/TwitterApplication2.exe">ダウンロード</a></p>
<p>
<span style="DISPLAY: inline" class="mt-enclosure mt-enclosure-image"><img class="mt-image-none" alt="20090914.jpg" src="http://pg2se.com/site/images/20090914.jpg" width="317" height="242" /></span></p>
<p>※実行にはJson.NETのライブラリも必要です<a href="http://pg2se.com/site/s/exe/Newtonsoft.Json.dll">（ダウンロード</a>）</p>
<p>&nbsp;</p>
<p>JSON形式のデータをC#で定義したクラスにマッピングすることで、</p>
<p>マッピング後のデータの操作が簡単・柔軟になります。</p>
<p>&nbsp;</p>
<p>ソース(TwitterForm.cs)</p>
<div class="code">
<p>using System;<br />using System.Collections.Generic;<br />using System.Windows.Forms;<br />using System.Net;<br />using System.IO;<br />using Newtonsoft.Json;</p>
<p>namespace TwitterApplication<br />{<br />&nbsp;&nbsp;&nbsp; public partial class TwitterForm : Form<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public TwitterForm()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.Items.Clear();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private String GetTweet(String URL)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(URL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Request.Method = "GET";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebResponse Response = Request.GetResponse();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Read<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StreamReader Readar = new StreamReader(Response.GetResponseStream());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String Results = Readar.ReadToEnd();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Readar.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Results;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void btnTimeLine_Click(object sender, EventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String URL = "<a href="http://twitter.com/statuses/user_timeline/">http://twitter.com/statuses/user_timeline/</a>" + txtUser.Text + ".json?count=50";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String JSON = GetTweet(URL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; List&lt;Status&gt; StatusList = (List&lt;Status&gt;)JsonConvert.DeserializeObject(JSON, typeof(List&lt;Status&gt;));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.Items.Clear();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.HorizontalScrollbar = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (Status StatusObject in StatusList)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.Items.Add(StatusObject.Text);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ScrollBarSetting<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.HorizontalScrollbar = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />}<br /></p></div>
<p>&nbsp;</p>
<p>ソース(Twitter.cs)</p>
<div class="code">
<p>namespace TwitterApplication<br />{<br />&nbsp;&nbsp;&nbsp; public sealed class Status<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string In_reply_to_status_id { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool Favorited { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string In_reply_to_user_id { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Source { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Created_at { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string In_reply_to_screen_name { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public User User { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Id { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool Truncated { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Text { get; set; }<br />&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp; public sealed class User<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Profile_sidebar_border_color { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Description { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Url { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Screen_name { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Following { get; set; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool Verified { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Profile_text_color { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Followers_count { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Profile_background_image_url { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Created_at { get; set; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Notifications { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Friends_count { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Profile_link_color { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool Profile_background_tile { get; set; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Favourites_count { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Profile_background_color { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public bool Protected { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Time_zone { get; set; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Location { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Name { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Profile_sidebar_fill_color { get; set; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Id { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Statuses_count { get; set; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public int Utc_offset { get; set; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public string Profile_image_url { get; set; }<br />&nbsp;&nbsp;&nbsp; }<br />}<br /></p>
<p>&nbsp;</p></div>]]>
        
    </content>
</entry>

<entry>
    <title>twitter連携アプリを作ってみる（１）</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/09/twitter.html" />
    <id>tag:pg2se.com,2009:/site//2.51</id>

    <published>2009-09-12T15:23:49Z</published>
    <updated>2009-09-12T16:06:58Z</updated>

    <summary>twitter（ツイッター）とは、&quot;つぶやき&quot;という短いテキストを投稿して公開す...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term=".net" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="プログラム" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="net" label=".NET" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="c" label="C#" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="twitter" label="twitter" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="xml" label="XML" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プログラム" label="プログラム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="マイクロブログ" label="マイクロブログ" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>twitter（ツイッター）とは、"つぶやき"という短いテキストを投稿して公開する</p>
<p>サービス（マイクロブログサービス）である。</p>
<p>&nbsp;</p>
<p>ま、大抵の人は名前だけは知っていると思いますが、このtwitterには、API</p>
<p>が公開されており、簡単に呼び出して外部アプリ等と連携することができます。</p>
<p>&nbsp;</p>
<p>今回は、C#.netを使用してアプリケーションを作成してみました。</p>
<ul>
<li>C#.net 2008</li>
<li>.net framework2.0</li></ul>
<p><a href="http://pg2se.com/site/s/exe/TwitterApplication.exe">ダウンロード</a></p>
<p>&nbsp;</p>
<p><img class="mt-image-none" alt="20090913.jpg" src="http://pg2se.com/site/images/20090913.jpg" width="317" height="242" /></p>
<p>&nbsp;</p>
<p>内容は、テキストボックスに、ユーザ名を入力して表示ボタンを押すと、</p>
<p>リストボックスに最新のつぶやきが50件まで表示されるというシンプルなもの。</p>
<p>&nbsp;</p>
<p>APIとしては、</p>
<p><a href="http://twitter.com/statuses/user_timeline/">http://twitter.com/statuses/user_timeline/</a>ユーザ名.xml?count=50</p>
<p>上記へリクエストした結果のXMLを解析して表示するだけです。</p>
<p>コメント"count"パラメータが取得する最大件数です。</p>
<p>XPathにて"//statuses/status/text"のノードリストを取得します。</p>
<p>&nbsp;</p>
<p>ソースコード</p>
<div class="code">
<p>using System;<br />using System.Windows.Forms;<br />using System.Net;<br />using System.IO;<br />using System.Xml;</p>
<p>namespace TwitterApplication<br />{<br />&nbsp;&nbsp;&nbsp; public partial class TwitterForm : Form<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public TwitterForm()<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; InitializeComponent();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.Items.Clear();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private String GetTweet(String URL)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Request<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HttpWebRequest Request = (HttpWebRequest)WebRequest.Create(URL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Request.Method = "GET";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; WebResponse Response = Request.GetResponse();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Read<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; StreamReader Readar = new StreamReader(Response.GetResponseStream());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String Results = Readar.ReadToEnd();</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Return<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Readar.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Response.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return Results;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void btnTimeLine_Click(object sender, EventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String URL = "<a href="http://twitter.com/statuses/user_timeline/">http://twitter.com/statuses/user_timeline/</a>" + txtUser.Text + ".xml?count=50";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String XML = GetTweet(URL);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlDocument Doc = new XmlDocument();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Doc.LoadXml(XML);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; XmlNodeList XMLNodes = Doc.SelectNodes("//statuses/status/text");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.Items.Clear();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.HorizontalScrollbar = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (XmlNode Node in XMLNodes)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.Items.Add(Node.InnerText);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //ScrollBarSetting<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; lstItems.HorizontalScrollbar = true;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; private void TwitterForm_Load(object sender, EventArgs e)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; }<br />}<br /></p>
<p>&nbsp;</p>
<p>&nbsp;</p></div>]]>
        
    </content>
</entry>

<entry>
    <title>オープンソース給与・勤怠システム「MosP」</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/09/mosp.html" />
    <id>tag:pg2se.com,2009:/site//2.50</id>

    <published>2009-09-07T15:12:28Z</published>
    <updated>2009-09-07T15:43:20Z</updated>

    <summary>２００９年９月７日、オープンソース給与・勤怠システム「MosP」の フレームワー...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="java" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="ニュース" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="製品" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="saas" label="SaaS" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="struts" label="Struts" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="オープンソース" label="オープンソース" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="フレームワーク" label="フレームワーク" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="勤怠管理システム" label="勤怠管理システム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="給与システム" label="給与システム" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>２００９年９月７日、オープンソース給与・勤怠システム「MosP」の</p>
<p>フレームワークとAPIが公開された。</p>
<p><a href="http://www.mosp.jp/">MosPは、Mind Open Source Project　の略で、「モスプ」と呼ぶ。</a></p>
<p>&nbsp;</p>
<p>MosPはマインドが開発し公開しているJava Webアプリケーションであり、</p>
<p>Strutsと同様にMVCアーキテクチャをとる構造となっている。</p>
<p>&nbsp;</p>
<p><strong>画面サンプル</strong></p>
<p>
<p><img class="mt-image-none" alt="mosp0.jpg" src="http://pg2se.com/site/images/mosp0.jpg" width="446" height="241" /></p></p>
<p>
<p><img class="mt-image-none" alt="mosp1.jpg" src="http://pg2se.com/site/images/mosp1.jpg" width="446" height="251" /></p></p>
<p>
<p>&nbsp;</p>
<p><strong>フレームワークの特徴</strong></p></p>
<p>Action基本クラスは簡易ワンタイムパスワード機能や認証情報確認機能等を備えて</p>
<p>おり、データベースにアクセスするためのクラスとしてDaoとDtoクラスがある。 </p>
<p>またjOpenDocumentを利用したOpenOffice.org帳票作成クラスと、Apachi POIを</p>
<p>利用したMicrosoft Excel帳票作成クラスがある。OpenOfficeまたはExeclで作成</p>
<p>したテンプレートに値を埋め込んで帳票を作成できる。</p>
<p>
<p>&nbsp;</p></p>
<p>ドキュメントとして、アプリケーションの作成方法を記述した「MosPフレームワーク</p>
<p>手順書」と、APIのドキュメントが用意されている。 また、開発者向けにコミュニティ</p>
<p>MosP Developer's Communityを開設されており、情報を入手することができる。</p>
<p>&nbsp;</p>
<p><strong>標準機能（給与計算）<br /></strong>・SaaS基盤対応　 　　・賞与計算<br />・勤怠データ取込　　　・個別賞与計算<br />・給与計算　　　　　　　・賞与情報一覧<br />・個別給与計算　　　　・賞与明細出力<br />・給与情報一覧　　　　・賞与データ出力<br />・給与明細出力　　　　・社員賞与情報管理<br />・給与明細出力　　　　・賞与項目管理<br />・給与データ出力　　　・MosP連携<br />・社員給与情報管理<br />・給与計算情報管理<br />・給与項目管理<br /></p>
<p><strong>標準機能（勤怠管理）</strong></p>
<p>・SaaS基盤対応　 　　・個人情報登録<br />・出勤入力　　　　　　　・MosP連携<br />・退社入力 <br />・休暇入力<br />・有休管理<br />・確認変更 <br />・承認機能<br />・帳票印刷<br />・スケジュール登録 <br />・エクスポート<br />・基本情報登録 </p>
<p>&nbsp;</p>
<p>勿論、業務としてMospを採用するのは、それぞれの会社や、個人個人で、</p>
<p>意見は分かれるだろうが、オープンソースでどのように、給与システムや</p>
<p>勤怠管理システムが作られているかは技術者としては気になるところです。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>プログラマの道具箱</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/08/post-5.html" />
    <id>tag:pg2se.com,2009:/site//2.49</id>

    <published>2009-08-20T15:06:22Z</published>
    <updated>2009-08-20T15:37:56Z</updated>

    <summary><![CDATA[  プログラマの道具箱  &nbsp; 編著者：イノウ 発行日：２００９年７月５...]]></summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="システム開発" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="本" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="doa" label="DOA" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ooa" label="OOA" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="oop" label="OOP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="システム開発" label="システム開発" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="プログラム" label="プログラム" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="書籍" label="書籍" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="設計" label="設計" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6086976%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13204228%2f" target="_blank"><img border="0" src="http://hbb.afl.rakuten.co.jp/hgb/?pc=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7741%2f77413878.jpg%3f_ex%3d128x128&amp;m=http%3a%2f%2fthumbnail.image.rakuten.co.jp%2f%400_mall%2fbook%2fcabinet%2f7741%2f77413878.jpg%3f_ex%3d80x80" /></a> </p>
<p><a href="http://hb.afl.rakuten.co.jp/hgc/09c4a208.b62e2a35.09c4a209.8de5493b/?pc=http%3a%2f%2fitem.rakuten.co.jp%2fbook%2f6086976%2f&amp;m=http%3a%2f%2fm.rakuten.co.jp%2fbook%2fi%2f13204228%2f" target="_blank">プログラマの道具箱</a> </p>
<p>&nbsp;</p>
<div class="code">
<p>編著者：イノウ</p>
<p>発行日：２００９年７月５日</p>
<p>発行者：片岡　巌</p>
<p>発行所：株式会社技術評論社</p>
<p>178ページ</p>
<p>1,580円＋税</p></div>
<p>&nbsp;</p>
<p><strong>内容</strong></p>
<div class="code">
<p>図解　ビジネスの現場</p>
<p>マンガとキャラが楽しく解説！</p>
<p>素人でも、システム開発の思考の道具、わかります！</p>
<ul>
<li>序章　基本<br />プログラマの道具　基本</li>
<li>１章　分析<br />DOAによる分析<br />OOAによる分析</li>
<li>２章　設計<br />DOAによる設計<br />OOAによる設計</li>
<li>３章　開発<br />DOAによる開発<br />OOAによる開発</li>
<li>４章　テスト<br />単体・結合のテスト<br />システム・受入のテスト</li>
<li>５章　基盤と部品<br />プログラマの道具　基盤と部品</li></ul></div>
<p>&nbsp;</p>
<p><strong>ポイント</strong></p>
<p>システムの分析、設計、開発などの各工程で必要になる手法やドキュメントを</p>
<p>"道具箱"と表現して、それぞれの道具を解説しています。</p>
<p>各工程での道具について出来る限り多く、網羅的に取り上げようとしており、手法に</p>
<p>ついても、DOA（データ中心アプローチ）、OOA（オブジェクト指向アプローチ）それぞれを</p>
<p>解説しようとしています。</p>
<p>個々の説明については深くはなく、トータルとして浅く広くという印象です。</p>
<p>また、多くの項目を解説しようとしているので、システム開発の一連の流れを学ぶための</p>
<p>書籍というよりも、用語解説という印象も受けました。</p>
<p>おおまかな知識の習得という目的で読めば良いのではないでしょうか。</p>
<p>内容は読みやすく書かれてはいますが、"マンガとキャラが楽しく解説"というところは少し</p>
<p>言いすぎです。マンガは最初の数ページのみ、キャラが解説と言っても、ところどころに</p>
<p>イラストが挿入されている程度です。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>Google App Engine for Java を利用する</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/07/google-app-engine-for-java.html" />
    <id>tag:pg2se.com,2009:/site//2.48</id>

    <published>2009-07-05T14:18:03Z</published>
    <updated>2009-08-04T15:15:12Z</updated>

    <summary>Googleのインフラでウェブサービス（ウェブアプリケーション）が利用できる、 ...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="java" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="eclipse" label="eclipse" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="google" label="Google" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="googleappengine" label="Google App Engine" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="java" label="Java" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="webアプリケーション" label="Webアプリケーション" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>Googleのインフラでウェブサービス（ウェブアプリケーション）が利用できる、</p>
<p>「Google App Engine for Java」が２００９年４月に遂に公式発表された。</p>
<p>（最初の言語としてにPythonが２００８年に公開されています）</p>
<p>&nbsp;</p>
<p>スクリプト言語ではなく、JavaのWebコンテナ上でのバイトコードでの動作が</p>
<p>提供されるのは驚きです（もちろんセキュリティ上の制限はあるようです）</p>
<p>&nbsp;</p>
<p>JSP、Servletはもちろん、JavaVMで動作することから、JRuby、Jython、Groovy、</p>
<p>Scala、Quercusなどを利用して、各種スクリプト言語も動作させることができそうです。</p>
<p>&nbsp;</p>
<p>まずは、「Google App Engine for Java」を利用するまで進めてみたいと思います。</p>
<p>&nbsp;</p>
<p><strong>１．必要な環境</strong></p>
<p>　　<a href="http://www.eclipse.org/downloads/">Eclipse3.3、または、Eclipse3.4</a></p>
<p>　　<a href="http://code.google.com/intl/ja/appengine/">Google App Engine のアカウント</a></p>
<p>　　※インストール・取得方法は割愛します。</p>
<p>&nbsp;</p>
<p><strong>２．Eclipseへのプラグイン追加</strong></p>
<ul>
<ul>
<li>[ヘルプ]-[ソフトウェア更新]　メニューを開きます。</li>
<li>[使用可能なソフトウェア]　タブを選択し、[サイトの追加]　ボタンを押します。</li>
<li>[ロケーション]　に、次の内容を入力し、[OK]　ボタンを押します。</li>
<ul>
<p>Eclipse3.3の場合-&gt;<a href="http://dl.google.com/eclipse/plugin/3.3">http://dl.google.com/eclipse/plugin/3.3</a><br />Eclipse3.4の場合-&gt;<a href="http://dl.google.com/eclipse/plugin/3.4">http://dl.google.com/eclipse/plugin/3.4</a></p></ul>
<li>[Google Updates Site for Eclipse]　が追加されるので、チェックボックス<br />に、チェックを入れ、[インストール]　ボタンをクリックします。 </li>
<li>[次へ]で進み、ライセンス確認をすると、インストールが開始されます。<br />※インストール後、Eclipseを再起動をするようになります。</li>
<li>Eclipseのツールバーに、次のような、Google App Engine のツールが<br />表示されていると準備完了です。<br /></li>
<span style="DISPLAY: inline" class="mt-enclosure mt-enclosure-image"><img class="mt-image-none" alt="20090705.jpg" src="http://pg2se.com/site/images/20090705.jpg" width="186" height="56" /></span>　</ul></ul>
<p>&nbsp;</p>
<p><strong>３．プロジェクトの作成</strong></p>
<ul>
<ul>
<li>Google App Engine ツールの、左端のボタンをクリックすると、<br />新規プロジェクト作成のウィザードが開始されます。</li>
<li>[Project Name]　[package]　を任意で指定して、[終了]　ボタンを押します。<br />ワークスペースに、[Project Name]　で指定したプロジェクトが作成されま<br />す。</li></ul></ul>
<p>&nbsp;</p>
<p><strong>４．プロジェクトの実行</strong></p>
<ul style="MARGIN-RIGHT: 0px" dir="ltr">
<ul>
<li>ワークスペースの、プロジェクト名を右クリックして表示されるメニューの、<br />[実行]-[3.Web Application]　をクリックします。</li>
<li>ウィンドウが２つ起動されます。<br />a)AppEngine server　...デバッグ実行用のサーバコンテナ<br />b)デフォルトアプリケーションの画面（簡易ブラウザ）</li>
<li>デフォルトアプリケーションはGWTで実装されたAjaxのサンプルです。<br />-&gt;ボックスに入力し[Send]ボタンを押すとAjaxでメッセージが表示されます</li></ul></ul>
<p dir="ltr">※このデフォルトのソースを変更して、自分のアプリケーションを開発していきます。</p>
<p dir="ltr">※[デバッグ]メニューで実行すると、クライアント、サーバどちらもデバッグできます。</p>
<p dir="ltr">※簡易ブラウザでなく、同じURLをほかのブラウザに入力しても実行できます。<br />&nbsp;&nbsp; -&gt;コンパイルが必要です（ツールの真ん中のボタンをクリック）</p>
<p dir="ltr">&nbsp;</p>
<p dir="ltr"><strong>５．アプリケーションの公開（デプロイ）</strong></p>
<ul dir="ltr">
<ul>
<li>Google App Engine　のアカウントを取得して<a href="http://appengine.google.com/">ログイン</a>します。</li>
<li>[Create an Application]　ボタンを押します。</li>
<li>[Application Identifier] [Application Ttitle] を入力し、[Save] を押す。<br />-&gt;IDはGoogle Appspotのサブドメインなので世界でユニークな設定になります</li>
<li>次に、Eclipseの設定です。ワークスペースのプロジェクトを右クリックし、<br />[Google]-[App Engine Settings]　メニューを開き、以下を入力します。<br />[Application ID]-&gt;　先に設定した[Application Identifier]を入力します。<br />[Version]-&gt;　ユニークな番号を指定し、[OK]ボタンを押します。</li>
<li>デプロイを実行します。同じく[Google]メニューから、[Deploy to App Engine]<br />を選択するか、ツールの右端のボタンを押します。</li>
<li>Google App Engineで登録した[Email]、と[Password]を入力し、[Deploy]<br />ボタンを押すとデプロイが実行されます。</li>
<li>[コンソール]　ウィンドウの最後に"Deployment completed successfully"<br />と表示されればデプロイの完了です。</li></ul></ul>
<p dir="ltr">&nbsp;</p>
<p dir="ltr"><strong>６．アプリケーションの実行</strong></p>
<ul dir="ltr">
<ul>
<li>
<div>アプリケーションはインターネットを通じて、世界中に公開されます。</div></li>
<li>
<div>公開されるアドレスは、<a href="http://[Application Identifier].appspot.com/">http://[Application Identifier].appspot.com/</a>　です。<br />-&gt;[Application Identifier]　は、先に設定したIDです。<br />※ちなみに私の場合、<a href="http://appcontents.appspot.com/">http://appcontents.appspot.com/</a>　で公開してます。<br />※GWTのUIを利用する際に日本語を設定すると文字化けしますので、<br />ソースコード（リソース）の設定をUTF8にすると回避できます。</div></li>
<div></div></ul></ul>
<p dir="ltr"><br />以上、Google App Engine for Java　を利用する方法を書きました。</p>
<p dir="ltr">※とっても簡単にGoogleのインフラを利用したWebアプリケーションの開発ができる</p>
<p dir="ltr">ことが分かってもらえたかと思います。</p>
<p dir="ltr">&nbsp;</p>
<p dir="ltr">JavaVMの環境が提供されているので、これを利用して、様々なサービスを</p>
<p dir="ltr">提供できる可能性が広がっています！！</p>
<p dir="ltr">&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>PHP開発環境の構築（２）　ZendDebugger, xdebug</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/06/phpzenddebugger-xdebug.html" />
    <id>tag:pg2se.com,2009:/site//2.47</id>

    <published>2009-06-20T06:26:17Z</published>
    <updated>2009-06-20T08:19:16Z</updated>

    <summary>前回の、PHP環境構築（１）では、 もっとも重要である、統合開発環境（IDE）の...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
    <category term="cakephp" label="CakePHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ide" label="IDE" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pdt" label="PDT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="xdebug" label="xdebug" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="zenddebugger" label="ZendDebugger" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p><a href="http://pg2se.com/site/2009/06/php.html">前回</a>の、PHP環境構築（１）では、</p>
<p>もっとも重要である、統合開発環境（IDE）のインストールと、IDEを利用しやすく</p>
<p>するために、IDEの日本語化というところまでを説明しました。</p>
<p>統合開発環境には無料で高機能そしてもちろんデファクトスタンダードな開発環境</p>
<p>である、<a href="http://www.eclipse.org/pdt/">eclipse"PDT（PHP Development Toolkit）"</a>を選択しています。</p>
<p>また、日本語化には、<a href="http://mergedoc.sourceforge.jp/">Pleiades（プレアデス）プラグイン</a>を使用しました。</p>
<p>※どちらも簡単にセットアップできますのでまだのかたは、<a href="http://pg2se.com/site/2009/06/php.html">前回</a>を参照してください。</p>
<p>&nbsp;</p>
<p>さて、今回はセットアップした開発環境で、PHPのデバッグができるようにします。</p>
<p>通常、ビジネスでのシステムの開発では、システム設計→開発→テストという工程</p>
<p>で進められますが、重要になるのが開発環境でのデバッグの機能です。</p>
<p>&nbsp;</p>
<p>プログラムの開発中、テスト実施中、不具合が発生した場合の調査など、</p>
<p>プログラムの実行中のある時点での、変数の内容の参照や、どのような順番で</p>
<p>プログラムが実行されているか、分岐命令でどういう動作をしたかなどを知ることは</p>
<p>とても重要です。</p>
<p>&nbsp;</p>
<p>そのために、ブログラムに"ブレークポイント"という一時停止できるポイントを設定したり、</p>
<p>ブレークポイントから一行一行プログラムを実行していく、"ステップ実行"などの機能が</p>
<p>一般的な開発環境には備わっています。※Visual Studio, Delphi、Eclipse(Java)など</p>
<p>&nbsp;</p>
<p>今回は、PDTというPHPの開発環境でデバッグをおこなうにはどうすれば良いかを説明</p>
<p>していきます（残念ながらデフォルトでPDTにはデバッグ環境が含まれていないので）</p>
<p>&nbsp;</p>
<p>まず、PHPでデバッグをおこなう最も有力な手段としては、次の２つが考えられます。</p>
<ul>
<li>"ZendDebugger"のデバッグ機能を利用する</li>
<li>"Xdebug"のデバッグ機能を利用する</li></ul>
<p>&nbsp;</p>
<p>どちらも安定性、速度面など、性能的には大差はないようです。機能的にいくと、</p>
<p>ZendDebuggerは、mod_rewrite環境で正常にデバッグできない。(a)</p>
<p>Xdebugは、変数の内容表示で日本語が表示されない。(b)</p>
<p>というところが欠点に挙げられています。</p>
<p>&nbsp;</p>
<p>CakePHPをフレームワークとして利用しようとした場合、両方とも深刻な問題です。</p>
<p>⇒念のため、ZendDebuggerも、Xdebugも両方とも使用してみたところ、私の環境で</p>
<p>(a)については現象は発生しませんでした。きちんとブレークポイントでも静止しますし、</p>
<p>CakePHPフレームワーク内ののソースでもデバッグできています（今のところ）</p>
<p>また、Xdebugについては、(b)の問題があるのと、細々とした点で、使いにくい点が</p>
<p>あったので、当面は、ZendDebuggerを利用しようと思います。</p>
<p>(a)の問題については現在のバージョンでは既に解決されていたのかも...</p>
<p>&nbsp;</p>
<p>前置きが長くなったのですが、以下、簡単に設定手順を説明します。</p>
<p>（基本的には単純です）</p>
<p>&nbsp;</p>
<p>１．ZendDebugger</p>
<p>　　a)インストール済のPDTに、モジュールのみ設定する方法を説明しますが、</p>
<p>　　<a href="http://downloads.zend.com/pdt/all-in-one/">ZendDebugger＋PDTのAll in Oneモジュール</a>も提供されています。</p>
<p>　　PDT＋PHP＋ZendDebugger。2009年6月20日のWindows環境での最新版は、</p>
<p>　　"pdt-2.0.0GA_debugger-5.2.15.v20081217-all-in-one-win32.zip"です。</p>
<p>&nbsp;</p>
<p>　　個別に、ZendDebuggerモジュールを取得する場合は、</p>
<p>　　<a href="http://downloads.zend.com/pdt/server-debugger/">ZendDebugger</a>のダウンロードサイトより、モジュールをダウンロードします。</p>
<p>　　Windows環境での最新版は、"ZendDebugger-5.2.15-cygwin_nt-i386.zip"です。</p>
<p>　　</p>
<p>　　b)それぞれのモジュールの中に、"ZendDebugger.dll"というモジュールがあるので、</p>
<p>　　任意の場所に保管します。一般的には、PHP本体、extフォルダの中でしょうか...</p>
<p>&nbsp;</p>
<p>　　c)そして、php.iniの設定に次を追加します。</p>
<div class="code">
<p>　　[Zend]<br />　　zend_extension_ts="C:\php\ext\ZendDebugger.dll"<br />　　zend_debugger.allow_hosts=127.0.0.1<br />　　</p></div>
<p>　　※zend_extention_tsの"_ts"を付けるかどうかはPHPの環境で変わります。</p>
<p>　　ZendDebugger.dllのパスの設定は、自身の環境に合わせてください。</p>
<p>&nbsp;</p>
<p>　　d)ここで、Webサーバ（Apache）を再起動しておきます。必要に応じて、</p>
<p>　　phpinfo()で"ZendDebugger"の項目が表示されるか確認しておいてください。</p>
<p>&nbsp;</p>
<p>　　e)eclipsePDTを起動して、デバッガーの設定をします。</p>
<p>　　メニューの[ウィンドウ]-[設定]から設定画面を開きます。</p>
<p>　　PHP-&gt;デバッグの項目を設定します。</p>
<p>　　・"PHPデバッガー"を、"Zendデバッガー"に設定します。</p>
<p>　　・必要に応じて"サーバー"の項目を変更します。</p>
<p>　　・"PHP実行ファイル"を自身の環境に合わせます。</p>
<p>　　　php-cgi.exeの場所と、php.iniの場所と、デバッガーのタイプを指定します。</p>
<p>　</p>
<p>　　f)デバッグしたいファイルを開き、必要に応じてブレークポイントを設定します。</p>
<p>　　ワークスペースの該当のファイルを右クリックし、"デバッグ"メニューまたは、</p>
<p>　　ツールメニューのデバッグアイコンをクリックすると、デバッグが始まります。</p>
<p>&nbsp;</p>
<p>　　g)設定等に問題がなければ、該当のファイルのブレークポイントで実行が停止</p>
<p>　　されるはずです。</p>
<p>&nbsp;</p>
<p>
<span style="DISPLAY: inline" class="mt-enclosure mt-enclosure-image"><a onclick="window.open('http://pg2se.com/site/assets_c/2009/06/20090620_2-11.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false" href="http://pg2se.com/site/assets_c/2009/06/20090620_2-11.html"><img class="mt-image-none" alt="20090620_2.jpg" src="http://pg2se.com/site/assets_c/2009/06/20090620_2-thumb-450x337-11.jpg" width="450" height="337" /></a></span>　　</p>
<p>　　　　</p>
<p>１．Xdebug</p>
<p>　　最後に、Xdebugの設定も説明しておきます。</p>
<p>　　手順は、基本的にZendDebuggerと同じです。</p>
<p>&nbsp;</p>
<p>　　a)まずは、<a href="http://www.xdebug.org/download.php">モジュールをXdebugのサイトよりダウンロード</a>します。</p>
<p>　　PHPのバージョンに合わせてダウンロードします。2009年6月20日現在の</p>
<p>　　最新バージョンは、2.0.4です。私の環境に合わせて、 "5.2 VC6"を</p>
<p>　　ダウンロードしました。</p>
<p>　　</p>
<p>　　b)私の場合、"php_xdebug-2.0.4-5.2.8.dll"というモジュールがダウンロードされた</p>
<p>　　ので任意の場所に保管します。一般的には、PHP本体、extフォルダの中でしょうか...</p>
<p>&nbsp;</p>
<p>　　c)そして、php.iniの設定に次を追加します。</p>
<div class="code">
<p>　　[xdebug]<br />　　zend_extension_ts="C:\php\ext\php_xdebug-2.0.4-5.2.8.dll"<br />　　xdebug.remote_enable=1<br />　　xdebug.remote_handler="dbgp"<br />　　xdebug.remote_mode=req<br />　　xdebug.remote_host="localhost"<br />　　xdebug.remote_port=9000<br />　　xdebug.remote_log="C:\php\logs\xdebug.log"<br />　　xdebug.manual_url = <a href="http://jp2.php.net">http://jp2.php.net</a><br />　　xdebug.collect_params = On<br />　　xdebug.dump.GET = *<br />　　xdebug.dump.POST = *</p></div>
<p><br />　　※zend_extention_tsの"_ts"を付けるかどうかはPHPの環境で変わります。</p>
<p>　　dllのパスの設定は、自身の環境に合わせてください。</p>
<p>&nbsp;</p>
<p>　　d)ここで、Webサーバ（Apache）を再起動しておきます。必要に応じて、</p>
<p>　　phpinfo()で"xdebug"の項目が表示されるか確認しておいてください。</p>
<p>&nbsp;</p>
<p>　　e)後の手順は、ZendDebuggerの時と同じです。デバッガーの種類に"xdebug"</p>
<p>　　を選択してください。xdebugの場合は、一度デバッグの実行後、デバッグ終了を</p>
<p>　　するまでデバッグのセッションが続いているので新たにデバッグを起動できません。</p>
<p>　　また、デバッグ終了後にダミーのブラウザが必ず立ち上がるのも少しうっとおしい</p>
<p>　　です。</p>
<p>　　</p>
<p>　　<u>※なお、php.ini　に両方のデバッガーの設定を書いた場合に、動作しなくなる場合が</u></p>
<p>　　<u>ありましたので、php.iniには、どちらか一方のみ記述するか、片方をコメントアウト</u></p>
<p>　　<u>してください。</u></p>
<p><u></u>&nbsp;</p>
<p>　　ここまでの設定で、開発環境の構築で大きな部分は達成できていると思います。</p>
<p>　　次回は、実際に、cakePHPのプロジェクトを作成し、構築した開発環境で、開発を</p>
<p>　　進める準備をしてみようと思います。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

<entry>
    <title>PHP開発環境の構築（１） PDT2.0, Pleiades(日本語化)</title>
    <link rel="alternate" type="text/html" href="http://pg2se.com/site/2009/06/php.html" />
    <id>tag:pg2se.com,2009:/site//2.46</id>

    <published>2009-06-18T15:27:10Z</published>
    <updated>2009-06-20T08:21:57Z</updated>

    <summary>私はPHPをメインでは利用していないのですが、CakePHPフレームワークが そ...</summary>
    <author>
        <name>kato(s)</name>
        
    </author>
    
        <category term="Cake" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="php" scheme="http://www.sixapart.com/ns/types#category" />
    
        <category term="開発環境" scheme="http://www.sixapart.com/ns/types#category" />
    
    <category term="cakephp" label="CakePHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="eclipse" label="eclipse" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="ide" label="IDE" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pdt" label="PDT" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="php" label="PHP" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="pleiades" label="Pleiades" scheme="http://www.sixapart.com/ns/types#tag" />
    <category term="統合開発環境" label="統合開発環境" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="ja" xml:base="http://pg2se.com/site/">
        <![CDATA[<p>私はPHPをメインでは利用していないのですが、CakePHPフレームワークが</p>
<p>そこそこ評判が良いようなので、いろいろと使っていこうと思ってます。</p>
<p>＊CakePHPについては...<a href="http://pg2se.com/site/2009/02/cakephp.html">こちらを参照</a></p>
<p>&nbsp;</p>
<p>CakePHPを選択した理由としては、</p>
<ul>
<li>PHPを利用できる環境がレンタルサーバなどで豊富</li>
<li>とりあえずのセットアップが超簡単</li>
<li><a href="http://rubyonrails.org/">RubyOnRails</a>フレームワークの影響を受け機能的にも十分</li></ul>
<p>&nbsp;</p>
<p>など他にもたくさん挙げられます。</p>
<p>&nbsp;</p>
<p>個人的には、Web開発ではJavaでTomcatを利用していたので、</p>
<p>PHPであれば、<a href="http://symfony.jp/">symfony</a>がその流れを汲むのだが、symfonyは、</p>
<p>まだ、CakePHPほどの勢いはないかなぁという感じです。</p>
<p>&nbsp;</p>
<p>（特にビジネスとしての）開発をおこなう場合には、開発環境の整備が重要</p>
<p>になると思います。スキルにばらつきのあるプロジェクトチームでは、開発環境</p>
<p>を整備することで、生産性の飛躍的な向上はもちろん、開発工程の標準化、</p>
<p>チーム開発での作業の統一化も図れます。</p>
<p>&nbsp;</p>
<p>そこで、ビジネスでの利用も想定にしたうえで、以下のように</p>
<p>PHPの開発環境を整備していきたいと思います。</p>
<ul>
<li>統合開発環境（IDE）を利用する</li>
<li>日本語の環境で利用できる</li>
<li>IDEでテスト（デバッグ）ができる</li>
<li>フレームワーク(CakePHP)と連携ができる</li>
<li>ソース管理(チームでの共有)ができる</li>
<li>データソースの管理ができる</li></ul>
<p>&nbsp;</p>
<p>今回はまず、</p>
<p>統合開発環境（IDE）の準備と、日本語化までを説明します。</p>
<p>&nbsp;</p>
<p>１．統合開発環境（IDE）</p>
<p>　　もちろんPHPの統合開発環境も様々なものが存在します。</p>
<p>　　有料の、ZendStudio、VS.PHP、Delphi for PHPなどをはじめ、</p>
<p>　　Eclipse環境で利用できる、PDT、PHPEclipse、TruStudio、etc</p>
<p>　　<strong>⇒無料で利用でき、スタンダードになりつつある<a href="http://www.eclipse.org/pdt/">PDT</a>を選択します。</strong></p>
<p>&nbsp;</p>
<p>　　PDTは、"PHP Dvelopment Toolkit "　の略です。</p>
<p>　　その名の通り、PHPの開発に特化した環境になっています。</p>
<p>　　上記、サイトより"Download"を選択し、"PDT 2.0.1 All In Ones"から</p>
<p>　　Windows、Linux、MacOSを選択します（2009年6月19日現在の最新版）</p>
<p>　　⇒<u>PDTをまだインストールしていない場合は、既に日本語化済のPDTが、</u></p>
<p>　　　<u>ダウンロードできます（２．を参照）</u></p>
<p><u></u>&nbsp;</p>
<p>　　Eclipseと同様、インストールといった特別な作業は必要なく、解凍して任意</p>
<p>　　の場所にコピーするだけでセッティングは完了です。</p>
<p>　　eclipseフォルダの、eclipse.exeを起動するだけです（Windows環境の場合）</p>
<p>　　PDTのバージョンは、2.0.1</p>
<p>　　Eclipsのバージョンは、3.4.1 となっています。</p>
<p>&nbsp;</p>
<p>　　起動すると、PHPのプロジェクト作成機能や、PHPファイルのコード補完機能、</p>
<p>　　Web開発（HTML,CSS、XML）等の開発がすぐにできるような設定になって</p>
<p>　　います。</p>
<p>&nbsp;</p>
<p>２．PDT開発環境の日本語化</p>
<p>　　Pleiades(プレアデス）という日本語化プラグインを適用します。</p>
<p>　　手順は至ってシンプルで簡単です。</p>
<p>　　<a href="http://mergedoc.sourceforge.jp/">MergeDoc Project</a>　よりプラグインをダウンロードします。</p>
<p>　　※このサイトでは、PDT＋Pleiadesが一体化になった、All in Oneモジュールも</p>
<p>　　ダウンロードできるようにもなっています(Windowsのみ対応)　</p>
<p>　　</p>
<p>　　個別にPleiadesだけをダウンロードする場合は、"Pleiades 本体ダウンロード"</p>
<p>　　より安定版をダウンロードします（2009年6月19日現在の安定板　1.3.0）</p>
<p>&nbsp;</p>
<p>　　インストール手順は、まずダウンロードしたファイルを解凍し、featuresフォルダと、</p>
<p>　　pluginsフォルダを、eclipse(PDT)フォルダに上書き。</p>
<p>&nbsp;</p>
<p>　　その後は、readmeフォルダを参照すれば、手順が詳しく書かれています。</p>
<p>　　まず、eclipse.iniの最後に、次の行を追加。</p>
<div class="code">
<p>　　-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar</p>
</div>
<p>&nbsp;</p>
<p>　　次に、"eclipse.exe -clean.cmd"ファイルをeclipseフォルダにコピーし、</p>
<p>　　ダブルクリックして実行します(Windows環境)</p>
<p><strong>　　⇒これだけでメニュー等、日本語化されています。</strong></p>
<p>　　</p>
<p>　　また、Pleiadesのスプラッシュを使用する場合は、eclipse.ini内の、</p>
<div class="code">
<p>　　-showsplash ～</p>
</div>
<p>　　の部分を削除します。</p>
<p>&nbsp;</p>
<p>　　以上で、まずは統合開発環境（IDE）のセットアップと、日本語化部分が</p>
<p>　　完了しました。</p>
<p>&nbsp;</p>
<p>
<p><img class="mt-image-none" alt="20090620.jpg" src="http://pg2se.com/site/images/20090620.jpg" width="461" height="288" /></p>
<p>&nbsp;</p>
<p>　　次回は、統合開発環境上での、PHPファイルのデバッグと、CakePHP</p>
<p></p>
<p>　　フレームワークの設定・動作確認・デバッグ部分を設定します。</p>
<p>&nbsp;</p>]]>
        
    </content>
</entry>

</feed>
