...

.... Powered by Blogger.

日曜日, 2月 15, 2009

パワーポイントのビジネス素材


プレゼン前日。 ストーリーの組み立てはできているのに、どうしてもデザインがまとまらない。 手を加えれば加えるほどに、どんどん悪化し、時間ばかりが過ぎて行く。結局、時間を掛けた割には納得できないまま本番を向かえ…私のいつものパターンです。私がプレゼン資料を作っている時間の大半は、デザインの修正に費やしてしまっているのです。 センスも無いのに…

それなら、デザイナーさんが作ったクールな無料素材が沢山あるから、それを使えば良いのでは?
確かにデザイナーさんの素材はクールなものばかりですが、それ故に素人には使い難いのです。その素材を使うと、ページ内でその素材だけが目だって浮いてしまうのです。そう、結局は良い素材があっても、それを生かすセンスがないのです。

これを解決するには、クールで無くても幅広く利用できる素材があれば良いのでは無いか? そんな素人考えで作ったのが今回の素材です。基本的なコンセプトは、
  1. いろいろなテンプレートに合うように中間色で作る。
  2. 極力シンプルで邪魔にならない形状。
  3. 自由に加工できるように、オートシェープだけで作る。
  4. ビジネスで良く使うパターンを用意しておく。
だけです。何度か、このテンプレートから素材を切り出して資料を作成して見た所、以前よりは圧倒的に早く完成する事ができました。もちろん、辛うじて見られるって言うレベルですが…

--ニーズがなさそうなので公開をやめました。--

日曜日, 1月 25, 2009

WTL8.0のAppWizardをVisual Studio 2008で使う


 WTL8.0のAppWizardを、Visual Studio 2008で利用するためのメモ。 どうやらWTL8.0には、Visual Studio 2008にAppWizardを追加するインストーラが付いていないらしい。 でも簡単な手順で動くことを確認できたので、その手順を少しばかり。

[前提]
  • Visual Studio 2008は、C:\Program Files\Microsoft Visual Studio 9.0 にインストール済み。
  • WTL8.0は、C:\Program Files\wtl8.0 にインストール済み。
[手順]
  1. C:\Program Files\wtl8.0\AppWiz\Files フォルダから、WTLAppWiz.vsz, WTLAppWiz.vsdir の2ファイルを、C:\Program Files\Microsoft Visual Studio 9.0\VC\vcprojects フォルダにコピーする。
  2. C:\Program Files\wtl8.0\AppWiz\Files フォルダから、HTML, Images, Scripts, Templates の4フォルダを、C:\Program Files\Microsoft Visual Studio 9.0\VC\VCWizards\AppWiz\ATL\WTL\WTLAppWiz フォルダにコピーする。
  3. コピーしたWTLAppWiz.vsz ファイルを開き、以下の2箇所を書き換える。

    VSWIZARD 7.0
    Wizard=VsWizard.VsWizardEngine.9.0
    Param="WIZARD_NAME = WTLAppWiz"
    Param="WIZARD_VERSION = 7.0"
    Param="RELATIVE_PATH = VCWizards\AppWiz\ATL"
    Param="FALLBACK_LCID = 1033"
以上で、プロジェクトの追加からウィザードを実行できるようになるはずです。

土曜日, 1月 10, 2009

アプリケーションフレームワークの選択で悩む


 久しぶりにWindowsのネイティブアプリケーションを組んでみようと思い立った。 Windowsのネイティブアプリを作るのは、7,8年ぶりになる。 このブランクは非常に大きいが、趣味で始める話なので気長に取り組むことにする。 どんなアプリを作ろうと思っているかは、アイディアが固まりきっていないので、まだ秘密です。

 とりあえずネイティブアプリなので、開発言語は実質C/C++に限定されてしまう。 C/C++でWindowsアプリを開発する場合、大きく分けて
  1. SDKだけで直接APIをガリガリ書く。
  2. MFCを利用する。
  3. WTLを利用する。
  4. QTなど、商用フレームワークを利用する。
と言う選択がある。 さすがにフレームワークを利用しないのは厳しいので、1は選択外として、2~4のどれを使うかで、アプリの作りが大きく変わってしまう。 それぞれ特徴があるようなので、私なりにポイントを簡単にまとめておく。
  • MFC
     古くからあるアプリケーションフレームワークだが、Microsoftが.netに力を入れ出してからは大きな更新されていないイメージがあった。 しかしVisual Studio 2008ではMFC9.0としてその機能が大きく拡張されており、最新のUIを用いたアプリケーション開発が可能になっている。 Microsoftからの情報提供や、Webでの具体的な解説も豊富にあるため、ほとんどの問題に対しての解決策を簡単に見つけることができるのが大きな利点。
     フレームワークの作りはM-VC、いわゆるDocument-View構造を採用しているが、その作りが分かり難い場合がある。 クラスライブラリとしての提供であるため、オブジェクトに不要なコードが含まれサイズが大きくなる傾向にある。 また、OpenMPなどへの対応をし難いため、最近のマルチコア/ハイパースレッディングに最適化することは難しい。

  • WTL
     以前はMicrosoftから提供されていたが、現在はオープンソースになって公開されているテンプレートライブラリ。 軽量/高速なアプリ開発ライブラリであるATLを拡張し、高度なUIを実現するために開発されている。 MicrosoftやWebにより情報を得ることはできるが、簡単な説明になっている場合が多く、具体的な問題にへの解説は不足しがち。 特に日本語での情報が少ないため、情報は英語で探すのが良い。
     フレームワークの作りはMFC同様に、Document-Viewを採用しているが、MFCとは異なり多重継承を利用しているため、シンプルな作りが可能になる。 また名前が表す通り、テンプレートでの提供であるため、コンパイル時に具象化されたクラスのみがオブジェクトにリンクされるため、コードサイズが小さくなる。

  • QTなど
     商用で提供されているものだけに、高度なUIの作成や独自のコントロールなど豊富な機能が多い。 また、Windows以外のOSにも対応しているため、移植性の高いコードを作成することが可能。 QTのように有名なもの(条件付きで無償利用できるもの)は、Webにも多くの情報があるが、やはり英語での情報入手が基本になる。 有償で利用する場合には、サポートを受けることが可能になるが、個人で利用するには敷居が高い。
     フレームワークの作りなどは、詳細を調べていないので言及できません…
 アプリの特性によってフレームワークの合う合わないがあると思うが、実装を頑張れば同じ機能を実現することは不可能ではない。 結局は、好み/馴れ/何を作りたいかによってフレームワークを選択すればよい。

 今回は、”スレッドプログラミング”、”シンプルな構造”、”Windowsネイティブ” なものを目指しているので、アプリケーションフレームワークはWTLを使うと決めた。 ついでに、標準ライブラリを補間するため、Boost c++を利用し、極力手間の掛かる実装をしない方向で進めてみることに。