2014年12月26日金曜日

MVCのモデルについて備忘録を書いておく。

MVCは何度読んでも、分かりにくいが、ちょっとずつ理解は進んでいる気がするので、現状の理解について、記載しておき、後で、また振り返ろう!

以下考察。

MVCモデルについて
※あくまで、以下の話はC#FormでMVCを実現する時の話。
  • 実装構造を考えた時に、Controller(以下con)の存在価値がわからなくなる。
    • C#ではユーザーの操作を基本的にViewで受けざるをえないため。Controllerでユーザーの処理を受けるという基本的な使い方はMVCの構成は使えない。
  • 他の話で、ViewとModelの両方で使用したい関数があった場合に、共用できる関数群が無いと不便。
    • もし、ViewとModel間にConを挟む場合、この不便さはやばい。
  • Viewは表示機能と、入力データチェック、ControllerはModelにデータを渡す時と、Viewの表示統括(表示更新するウィンドウの指定処理)、
  • Modelは表示と無関係なデータを処理すると考える。
    • 切り分けが難しいが、ViewとModelはモジュールとして利用し、モジュール間を結ぶのがControllerとかんがえると良い気がする。

  • 使いドコロ
    • MVCは表示機能を実装する時の、プログラムの一部だと考える。故に、MVC以外にCommon等のフォルダを用意して、MVC全てから、呼び出せるフォルダを作る。
  • 基本データをModelに必ず置くと考えると上手くいかない。
    • Viewを表示する時に、必要とする流動的なデータをModelに置くと考えれば、うまくいくかも。。。
      • 固定値なら、Common等のどこからでも、アクセス可能なフォルダに置く。



  • MVCは表示を移植する時に便利な機能である前提で考えると、うまくいく気がする。


これで上手く実装できたら、嬉しい(*^^*)

2014年12月2日火曜日

【備忘録】C++,C#の特徴とdllについて

C++の特徴
マルチパラダイム 手続き型、オブジェクト指向、ジェネリック 等が出来る
書き方によっては結構高速に動作する
ポインタが使える
C言語の互換性が多少ある
組み込み開発で使われている

C# の特徴
include文が不要
try-catch-finallyが使える
継承機能が豊富
メモリに対するコーディングを安全に書きやすい ガーベージコレクション


VB、VC、C#等すべてをサポートするのは「stdcall」
CとC++だけをサポートするのは「cdecl」
C++クラスは「thiscall」が自動で利用されるため、Cから呼び出せない
自分の中で閉じる関数は速度を理由に「fastcall」を利用しても良い

linuxとWindowsのdll及びlib*****.so.****の違いについて
http://www.glamenv-septzen.net/nifty/others/computer/linux_ldd01.html

windowsとlinuxでライブラリに関する考え方は異なる
そのため、共有することは難しいと考えたほうが良い。(ソースコードはもちろん共有できるが、ライブラリファイルは共有がむずかしいという意味)

mfc dllを作成すれば、後はリンクを調整すればOK。
dllの登録をする。
外部公開用のヘッダファイルを作成し、class __declspec(dllexport) クラス名で公開用クラスを宣言する。
後は、クラス宣言場所と利用場所で、上記ヘッダファイルをインクルードする。

【備忘録】outlookのマクロについて

Outlookのマクロを作成すると、キーボードの押し方を半自動化することが出来る
マクロはデジタル署名をしないと、次の起動時に、無効化されてしまう。
また、outlook2013ではデジタル署名を作成する時に、ツールが無いので、直接program files以下を叩きに行く必要がある。

Outlookのマクロをデジタル認証する手法
http://www.compnet.jp/index.php/archives/2993
http://outlooklab.wordpress.com/2007/02/18/outlook-vba-%E3%83%9E%E3%82%AF%E3%83%AD%E3%80%81%E3%81%AF%E3%81%98%E3%82%81%E3%81%AE%E4%B8%80%E6%AD%A9/

Outlookの全角、半角を常に半角にする方法
If IMEStatus = vbIMEModeOff Then SendKeys "{kanji}"
http://www.relief.jp/itnote/archives/018017.php