TEMTECOMAI ORTHOSTATIC HYPOTENSION

元ダメプログラマで現ダメ中間管理職の駄文

カテゴリ: MEMO

とりあえず。 http://technet.microsoft.com/ja-jp/windows/ee676462.aspx

作る時のためにメモメモ。

カスタムな共有フォルダーを作って欲しけりゃ所定の申請を行う。
システム担当者が作業を行い、オイラが確認を行う。
今はファイル サーバーにリモート デスクトップでアクセスしてフォルダーのプロパティーのセキュリティー タブから詳細を表示させて確認している。設定の内容は "読み取り" とか "変更" みたいな単純設定じゃなくて、社内で規定されてる設定内用にする。
かなり面倒。
WMI を使った VBScript はできてるけど GUI 版も欲しいところ。

.net な Windows アプリで、実行ユーザーは一般権限しか持たないオイラ。
そんなオイラがアクセスできないパスでも、申請書に書かれているパスを与えるとアクセス権一覧を確認できるようにしたい。
内部的には管理者特権で対象パスにアクセスするように WMI を利用する。

対象パスを与えるとエントリーされてるグループやユーザーのアカウント一覧を表示し、さらに各アカウントのアクセス権内容を表示する。

できれば、規定されてるアクセス権設定のどのタイプと合致しているかも表示してくれれば、細かいアクセス権の目視確認が不要になる。

対象パスの文字列、作業ユーザーのアカウント名とパスワード、エントリーされてるアカウント名の一覧を保持するクラス。

一つ分のアカウントの内容を保持するクラス。
こいつは対象アカウントの名前、ドメイン名、各アクセス権ごとの bool 値を保持するクラス。

こんなところか?

LacoodaST ネタが続いていますが。
スケジュール登録で開始日と終了日があって、終了日が 2038年 1月 1日以降だと画面がエライ事になります。PHP の吐き出したエラーがそのまんまブラウザに表示された。しかも繰り返し繰り返し。ページ出力が終わりません。サーバ死にそう。。。
思い切って 9999年にした時の方が可愛いエラーです。2行ぐらいのエラーだけで済んでます。
Lacooda Wiz ではエラー自体が画面に表示されちゃう事はないのですが、2038年 1月 1日の場合は画面こそ白紙ですが、後ろは同じ状況なんでしょうね。

入力された日付値の、日付としての妥当性チェックが先に行われ、パスしたらスケジュールとしての日付の妥当性チェック(開始日より終了日が前に来ているとか)をしてるようなのですが、各々で使っている日付関連関数が日付に対する許容範囲が違うためこんな事になっているようです。

LacoodaST や Apache などを管理する ST Server で Apache Errorlog を見る事が出来る。
やたらとエラーが記録されている。
大した内容ではないが、、、
C:/SpaceTag/www/htdocs/favicon.ico
C:/SpaceTag/www/htdocs/wiz/skin/default/css/task.css
なんだかお金取るわりにはおおざっぱだなぁ。。。

LacoodaST の全ファイルを grep して "gw.php" を検索してみたら結構な数の php ファイルで include していた。
なるほど、LacoodaST 内の環境変数だから各ページで読み込むわけか。
gw.php にはスクリプト的なものや html 的なものは何も書いてなくて、単純に複数の変数に値を仕込んでいるだけ。(LacoodaST の管理ページでこれらの値を書き換えるのだが、これは gw.php を上書き保存している。)
include ("gw.php") の処理をしているファイルと if ($smtpOnOff == "true") が書いてあるファイルを見比べてみると、keitaiRoutineForPc.php と NoticeDrawUp.php だけが gw.php をインクルードしてない。
この 2ファイルでどこかに gw.php をインクルードさせてあげればいいはず。。。
NoticeDrawUp.php の function insertPNotice() の最初の行に include ("gw.php"); を入れて試したらメールが飛んできた。OK
keitaiRoutineForPc.php の方はよくわからない。
if ($smtpOnOff == "true") が書いてある sendURLToUser() 関数の 1行目に global $smtpOnOff; って行があるのだが、これって・・・PHP はよくわからん。
global てだけにグローバル? $smtpOnOff て変数をグローバルで宣言?
んでもチュートリアルとかを見てみると、関数の外で定義されて値まで入ってる変数を関数の中で参照する場合に関数の中で global $hoge; ってやるみたい。
あーわからん。
sendURLToUser() 関数の外側で gw.php が読み込まれていれば関数内で global $smtpOnOff をする事によって関数内で $smtpOnOff の値を参照できるんだろうな。でも gw.php は読み込んでいない。それに keitaiRoutineForPc.php がどこでどのように使われる機能なのかが不明。

逆のアプローチ。
NoticeDrawUp.php の insertPNotice() 関数に追記した include ("gw.php") を削除し、替わりに同じ場所に global $smtpOnOff; を書いてみる。
そして NoticeDrawUp.php の先頭の方(関数の外側のベタ書き部分)で include ("../gw.php") って書いてみる。(gw.php は一個上のフォルダにある)
結果、エラー。
NoticeDrawUp.php をよく見ると class NoticeDrawUp ってなっていて、変数宣言と関数群で構成されている。
php はよくわからないけれど、クラスだから実質処理の部分は裸じゃダメってことだよな。
なのでさっきの状態、関数内で include する方法に戻した。

ちょっとまて。
insertPNotice() 関数で include ("../gw.php"); ってやったらエラーになった。「gw.php が見つからん」というような内容。
NoticeDrawUp.php から見たら gw.php は一個上の階層にあるはずなのだが。。。PHP はよくわからん。
ここは素直に include ("gw.php"); ってやることにした。

「if ($smtpOnOff == "true")」 で mb_send_mail を実行している部分は他にもあるので LacoodaST をフル機能で使うなら他もコメントアウトしたほうが良いかも。

解決した。
強引に。

飛ばない原因は wiz\class\NoticeDrawUp.php の中にあるメール送信の判断部分
if ($smtpOnOff == "true") {
  mb_send_mail($email, "[WIZ] 回覧が到着しました", $mailstr, "From:" . $fromMailStr . "\r\n" . "Date: " . date("D, d M Y H:i:s O") );
}
こいつの先頭 $smtpOnOff が空っぽだった。
とりあえず If のブロックをコメントアウトし、mb_send_mail を裸状態にしてあげたらメール送信できるようになった。
NoticeDrawUp.php は回覧を作成する部分らしい。
オイラの使い方では回覧機能自体は使わないが、スケジュール登録などでもこの機能を使ってメール通知をしているようだ。
管理機能でのメール通知使用 On/Off は効かなくなるが構わないだろう。

web でみっけたサンプルでやってみたけれど非常に遅かった。
処理中にメモリもガンガン使いまくったようだ。
よって今回は却下。

pg_dump で masters(Lacooda の DB) をダンプ出力したけどこいつをリストアするのは問題発生。
運用中の masters に pg_restore するとデータがダブってしまった。
結局 copy や insert でリストア先のテーブルにデータを "追加" しているので、リストア前に masters の中身を空っぽにしてあげる必要があるんじゃないかと思う。
LacoodaST インストール直後の masters はどうなっているのかというとインストーラによってイニシャル データが入ってるわけで、
システムのリストア: [ST 再インストール]->[ツールやコマンドで masters の中身のスキーマを空っぽにする]->[pg_restore で全てをリストアする]
ってなるんじゃないかと思う。(勝手な想像)
masters に接続するための DB ユーザー "lacooda" とその所有権情報は pgsql の管理 DB あたりにあると思うし、masters 自体を削除するんじゃないから問題ないとは思う。(勝手な想像)
んでも面倒くさい。
できればパッとやってパッと終わるほうがいい。

"LacoodaST の危機" てな場合にしかリストアしない方針。ユーザーが登録したデータを削除しちゃったとかいう細かいレベルは NG でいく方針。なので DB 全体をガバッとバックアップしてガバッと戻すほうが楽。

吉岡照雄さんの ZIP.VBS を参考にし、メッセージのダイアログを表示しないようにしたスクリプトを書き、こいつをタスクで深夜に動かすことにした。
【バックアップ元】
LacoodaST の php ファイル群(C:\SpaceTag\www\httdocs)
PostgreSQL の DB 全体(C:\SpaceTag\data\apgsql)
php.ini ファイル(C:\SpaceTag\server\php4\php.ini)
これらを zip 圧縮して、C:\STBackup\ の下に yyyyMMddHHmm のフォルダを作成し、その中に prefix + yyyyMMddHHmm.zip で保存。
prefix は "www" "pgsql" "php" の 3種類。

Photoshop を直接コントロールできるんだったらそれでもいいだろって気持ちも。
参照設定で "Adobe Photoshop 8.0 Object Library" を参照。
Dim ps  As Photoshop.Application
Dim src As Photoshop.Document

' JPEG 保存時のオプションを設定 '
Dim saveOption As New Photoshop.JPEGSaveOptions
With saveOption
    .EmbedColorProfile = True
    .FormatOptions = psStandardBaseline
    .Matte = psNoMatte
    .Quality = 8
End With

Set ps = New Photoshop.Application
Set src = ps.Open("source.jpg")

' オリジナル画像の複製を作成し、 '
' 解像度を 144dpi、バイキュービックで再サンプリングを行う。 '
Dim dest As Photoshop.Document
Set dest = src.Duplicate
dest.ResizeImage Resolution:=144, ResampleMethod:=Photoshop.PsResampleMethod.psBicubic

' 保存する '
dest.SaveAs "dest.jpg", saveOption
dest.Close
src.Close
ps.Quit

dotnetlogo2300dpi でスキャニングして品質を 8 に設定して JPEG 保存した画像ファイルがソース。
こいつを再度 Photoshop CS で開き、[イメージ]-[画像解像度] で解像度を 144pixel/inch、バイキュービック法で画像の再サンプル、てな処理をする。
すると [ピクセル数] の幅と高さも連動して小さくなる。300dpi を 144dpi にしたので 0.48倍。なので幅と高さも元のサイズの 0.48倍になってる。
最後にこいつを [ファイル]-[別名保存] で JPEG 保存する。オプションとしては [カラー] の "ICC プロファイル" にチェック。画像品質は "8(高)"、形式オプションは "ベースライン(標準)" にする。
んな感じの処理を C# で。

.NET ではプログレッシブ JPEG で保存できないっぽいってことは標準ベースラインで保存されてるって解釈しちゃってもいいのかな・・・ 続きを読む

dotnetlogo2.NET Framework 2.0 なんですが、JPEG 画像を保存するのにプログレッシブで保存しようにも情報が少なさすぎ・・・
とりあえず Bitmap オブジェクトの Save メソッドで使う EncoderParameters に EncoderValue.RenderProgressive を設定した EncoderParameter を突っ込んで使ってみたんだけど、GV で確認するとプログレッシブになってないっぽい。
MSDN ライブラリで EncoderValue 列挙体の RenderProgressive について調べてみると 「GDI+ バージョン 1.0 では使用されません。」 と。
で、Windows XP SP2 + .NET Framework 3.0(2.0) な環境の GDI+ ってのはバージョンいくつ?

MSDN サブスクライバに Office Professional 2007 が登場。
そこらへんをチロっとメモメモ。

今んところオイラの契約内容で公開されているのが
  • Office Professional 2007(日・英・独)
  • Office Groove 2007(日・英・独)
  • Office InfoPath 2007(日・英)
  • Office InterConnect 2007(日)
  • Office OneNote 2007(日・英・独)
  • Office Project Professional 2007(日・英)
  • Office Visio Professional 2007(日・英)
【Office 2007 ファイル形式を古いバージョンの Office で読み書きする方法】
Office 2000 / XP / 2003 で Office 2007 形式のファイルを読み書きできるようにするパッチが公開されてます。
■ Word/Excel/PowerPoint 2007 ファイル形式用 Microsoft Office 互換機能パック
http://www.microsoft.com/downloads/details.aspx?FamilyID=941B3470-3AE9-4AEE-8F43-C6BB74CD1466&displaylang=ja

Visio に関しては Visio 2007 と 2003 とでファイル形式が変わってないそうなので、互換性に問題ないみたい。
ちなみに Visio における最上位で、Visual Studio 2005 と一緒に使用する Visio for Enterprise Architects の 2007 版が登場するのかは不明。
----
【Office 2007 用の VSTO】
VSTO は使ったことないのでよくわからんのですが、開発環境用(Visual Studio 2005 用のテンプレート?)と実行環境用のランタイムがあるんですかね。
ちなみに今回出た開発用テンプレートと実行用ランタイムでは Office 2003 と Office 2007 に対応しているそうです。
■ Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System : (英語)
http://www.microsoft.com/downloads/details.aspx?FamilyID=5e86cab3-6fd6-4955-b979-e1676db6b3cb&DisplayLang=en
これは英語版っぽいんですが、あとで日本語版も出るんでしょうか。

■ Microsoft Visual Studio 2005 Tools for office Second Edition Runtime (VSTO 2005 SE) : (日本語)
http://www.microsoft.com/downloads/details.aspx?FamilyID=f5539a90-dc41-4792-8ef8-f4de62ff1e81&DisplayLang=ja
----
【Windows PowerShell 1.0 日本語版】
こっちもリリースされてますね。
■ Windows Server 2003 SP1 および Windows XP SP2 用の Windows PowerShell 1.0 ローカライズ版インストール パッケージ
http://support.microsoft.com/default.aspx/kb/926140/ja
長い名前のページです。cmd.exe に代わる次世代シェルだもの。勉強しなくちゃ、ですね。

dotnetlogo2.NET Framework 2.0 廃止予定の API 一覧
代替などにより廃止される運命のメンバや型です。

dotnetlogo2アプリケーションのインストーラを作成するにあたり、インストーラが実際に何をどんなふうに確認して動作を決定するか、を紹介してます。
及川さんとこのブログ
KB「スレッドがローカル管理者アカウントのユーザー コンテキストで実行されているかどうか確認する方法」
Pre-installation checks performed by .NET Framework 2.0 setup

これも読んでおこう。
http://www.atmarkit.co.jp/farc/rensai/redge39/redge39.html

これも後で読んでおこうっと。
http://www.atmarkit.co.jp/fwin2k/tutor/gpolicy01/gpolicy01_01.html

なにやら面白そうな @IT の記事。後で読んでおきましょうかね。
http://www.atmarkit.co.jp/fdb/rensai/drk01/drk01_1.html

「SQL Server 2005 自習書シリーズ 開発編」
とりあえず自習。
http://www.microsoft.com/japan/msdn/sqlserver/selfstudy/

dotnetlogo2きっとどこかで役に立つと思うのでメモっとくわ。

@IT の記事
http://www.atmarkit.co.jp/fdotnet/dotnettips/361aspzipfile/aspzipfile.html


J# のライブラリを使うらしい。
てか VB.NET C# J# って同じライブラリ、同じ機能を提供してくれないん?

@IT の IT エンジニア向け記事。
http://jibun.atmarkit.co.jp/lskill01/rensai/kokugo02/kokugo01.html
しかし一般のビジネスマンが読むにしても為になる内容。
日本語って難しい。

@IT の記事
SQL Server 2005 の特集として今回は SQL CLR について書いてるっぽい。
http://www.atmarkit.co.jp/fdb/rensai/sqlsreview01/sqlsreview01_1.html
あとで読んどこっと。

dotnetlogo2
@IT の記事「枯れた新しいUI革命「Ajax」をASP.NETで活用する」
とりあえずメモ

dotnetlogo2
米国 MSDN の記事。
http://msdn.microsoft.com/netframework/default.aspx?pull=/library/en-us/dnnetdep/html/deploynetfx1-1withad.asp
ちと英語の長い記事なのと(ても殆どが手順だけど)、うちまだ NT ドメインなんでメモ程度。
# でも連休前には Windows Server 2003 の混合 Active Directory になるんよ。x

dotnetlogo2
あとで読んでおこう。
http://www.atmarkit.co.jp/fdotnet/entlib/entlib03/entlib03_01.html

dotnetlogo2@ITの記事
http://www.atmarkit.co.jp/fdotnet/dotnetwork/index/

基本的なことだけど確実にお勉強。

dotnetlogo2マイクロソフト推進のオープンソース ライブラリ Enterprise Library についてのポインタ。

@IT での解説ページ
http://www.atmarkit.co.jp/fdotnet/entlib/index/


本家ページ(英語)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/entlib.asp


日本語情報
http://enterpriselibrary.jp/

ちと古いチュートリアル。多分 VB 6.0 だと思う。まだ読んでない。
Chapter 5 とか 6 とかでは VB で COM オブジェクトを作成してビジネスロジックを実装するみたい。
http://www.itmedia.co.jp/help/howto/win/win2000/0007special/complus_vb/

@IT の連載(全28回)
http://www.atmarkit.co.jp/fdb/index/index-db.html#sqlpractice
SQL の基礎、ユーザー管理、ストアドプロシージャ、ユーザー定義関数、トランザクションまで、8時間あれば全部行けます。

dotnetlogo2ini ファイル読み書きだとさ。メモ。
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/INIfile.aspx

dotnetlogo2@IT の記事。
とりあえずメモ。
http://www.atmarkit.co.jp/fdotnet/winexp/winexp03/winexp03_01.html
http://www.atmarkit.co.jp/fdotnet/winexp/winexp04/winexp04_01.html

法人が顧客からの支払いを銀行引き落としで受け取りたい場合、全銀フォーマットなる形式のデータを作成して銀行に渡す必要があるらしい。
FD での直接持ち込みか、データ送信など。
専用のソフトがいろいろあるらしい。

全銀フォーマットについて
全国銀行協会が発行している「全銀協パソコン用標準通信プロトコル -適用業務およびレコードフォーマット」という出版物(2,000円)に掲載されているらしい。
http://www.zenginkyo.or.jp/pub/hanbai/pub0413.html
固定長テキストらしいのだが、基本的にレコードごとに改行が入るらしい。

自前でツールを作成できるか
フォーマットが分かれば何とかなると思う。
予想だが「金融機関コード」「支店コード」「口座種類」「口座番号」「名義」「引き落とし金額」などは必須と思われる。

既存のツールは?
シェアウェアもしくは事業者向けのパッケージ ソフトなど。フリーは見つけてない。てか既に自前で作成するつもりでメモしてるし。

全銀フォーマット
なんとかならんもんかね。
足銀の担当者からもらえるかな。
http://www.akj.co.jp/aug/qa/ans0001-0050/0830.html
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=one;no=4496;id=access
上記によると
[レコード区分]カラム1     桁数1  「2」
[金融コード] カラム2〜5   桁数4  「9900」
[金融名]   カラム6〜20  桁数15 「コウセイショウチョキンキョク」(左づめ、残りスペース)
[貯金記号]  カラム21〜23 桁数3  「034」 数字3桁
[予備]    カラム24〜38 桁数15  スペース
[口座表示]  カラム39〜40 桁数2   任意数字
[種別表示]  カラム41〜42 桁数2   任意数字
[予備]    カラム43    桁数1   スペース
[貯金番号]  カラム44〜50 桁数7   1234567 数字7桁
[氏名]    カラム51〜80 桁数30  カタカナ表示(左づめ、残りスペース)
[請求額]   カラム81〜90 桁数10  右詰、残り「0」
[照会]    カラム91    桁数1   「1」固定
[顧客]    カラム92〜111桁数20  任意数字
[振替コード] カラム112   桁数1   
[優先年月]  カラム113〜116桁数4  年2桁、月2桁
[優先コード] カラム117〜118桁数2  00〜99の数字
[補助]    カラム119〜120桁数2  任意数字

金融機関コード
http://homepage3.nifty.com/number/


とりあえず
http://www.google.co.jp/search?hl=ja&c2coff=1&rls=GGLD%2CGGLD%3A2004-06%2CGGLD%3Aja&as_qdr=all&q=+%E5%85%A8%E9%8A%80%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88+OR+%E5%85%A8%E9%8A%80%E5%8D%94%E3%83%95%E3%82%A9%E3%83%BC%E3%83%9E%E3%83%83%E3%83%88&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=

dotnetlogo2【メモ】
Reflector for .NET とか
http://www.aisto.com/roeder/dotnet/

@IT の記事。中さんが執筆。
http://www.atmarkit.co.jp/fdotnet/special/sqlclr01/sqlclr01_01.html

メモ
http://www.mainichi-msn.co.jp/shakai/wadai/news/20050307k0000e040019000c.html
http://www.fine-club.com/health/pickup/108.html
http://www.co-op.or.jp/jccu/news/syoku/syo_021121_02.htm
今にはじまった話題じゃないけれど、ポテトチップスやフライドポテトだけ? てかそんなのを毎日食べる人って・・・
炭水化物を高温調理することが原因というのであれば、お米を圧力釜で炊くのも危なそうだ。

おいら的研究結果によると、ポテトチップスを1ヶ月に1袋程度食べる、ごく一般的な摂取量の人でも100歳まで生きる確立が低いってことはわかってます、エェ。

dotnetlogo2【メモ】MSDN からの情報

管理者特権なしで Visual Studio .NET を使ってソフトウェアを開発する
http://www.microsoft.com/japan/msdn/library/ja/jpdv_vstechart/htm/tchDevelopingSoftwareInVisualStudioNETWithNon-AdministrativePrivileges.asp

Visual Basic .NET および Visual C# .NET プログラマのためのセキュリティ上の注意事項
http://www.microsoft.com/japan/msdn/library/ja/jpdv_vstechart/htm/vbtchSecurityConcernsForVisualBasicNETProgrammers.asp

【メモ】
@IT の記事
あとで読もっと。
http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp09/entwebapp09_01.html

dotnetlogo2【メモ】
MSDN US の記事
http://msdn.microsoft.com/msdnmag/issues/05/03/CuttingEdge/
[UP][DOWN] ボタンで項目の順番を入れ替えるやつ

【メモ】
MSDN Japan の記事
製品アイデアを見つける
http://www.microsoft.com/japan/msdn/columns/software/software12142004.asp

【メモ】
MSDN Japan の記事 他
http://www.microsoft.com/japan/msdn/sqlserver/sql2000/sqlbackend.asp
http://www.microsoft.com/japan/business/offerings/lob/scenario/default.mspx
記事の内容の重要性というのは非常によくわかる。SQL Serve や MSDE 未経験の Access 開発者としてみればとても貴重な記事。
しかも次期 SQL Serve 2005 に対する MSDE 的な役割を持つ SQL Server 2005 Express Edition と次期 Access の距離は更に縮まるだろうし、次期 Access と .NET Framework の距離も縮まるかもしれない。
だがしかし。
なんで記事で取り上げ散る Access のバージョンが 2002 なのか、と。

dotnetlogo2検索結果の表示で結果 1,000件強を一度に表示させるなんて無理ありすぎ。
DB の設計、問い合わせと結果返却の方法、表示方法を練り直す必要あり。
ASP .Net のページで DataGrid を使うと簡単にページング処理を行うことができるけれど、実は問題あり。
簡単実現とのトレードオフ。実は毎回全件検索して、その中から n件を取り出してるにすぎない。DB 側の労力は同じ。まぁ Web サーバはその分楽してるけどね。
やっぱりきちんと DB だけでページング処理できるように何とかしたいところ。

【MSDN の情報】
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbwlkwalkthroughdisplayingdatainlistboxesonwebformspage.asp


【メモ】
自動採番フィールドを持つ一時テーブルを作成して検索結果のキー列だけをドーンと入れ、あとは開始行番号とページサイズから行を抜き取り、キーを元に他の列の情報を元のテーブルから取り出す、って方法。(リンク先アーティクルのコメント部分も含めて)
http://blogs.sqlpassj.org/matu_tak/archive/2004/05/18/2337.aspx

dotnetlogo2

あとで読むんでメモ
http://www.itmedia.co.jp/enterprise/articles/0501/24/news009.html

メモ
http://www.acrobat-learning.com/

ちょいメモ

ALTER Procedure stdHoge
(
 @KW datetime,
)
AS
SELECT dbo.tblテスト.f日付
FROM dbo.tblテスト
WHERE dbo.tblテスト.f日付 = isnull(@KW, dbo.tblテスト.f日付)

RETURN

dotnetlogo2.NET で開発できる SDK が Google から出たようです。
そんな @IT の記事

寝起きなのでアイデアが浮かばない・・・
記事中では、通常ならコマンドプロンプトに打っていたコマンドを Deskbar に打って、その結果をブラウザに表示するプラグインを作ってた。

結果を一覧のような感じで表示するものが適してるってわけじゃないだろうから、結局は何でもありなんだろうな。あとで考えよ。

dotnetlogo2【概要】
メモです。
まだ実践してませんが、必要に迫られてます。

【背景】
タイトルのまま。
1つの開発案件を2人で作業します。

【案件内容】
現在は Lotus Notes で開発された「みんなでつっついてデータを更新する系」のアプリを Web で行えるようにリプレースしたいが、いろんな理由から ASP.NET と SQL Server 2000 でのシステムに変更したい、と。
ただし、「どうせだったら」ということで、「PDF にしたいろんな文書ファイルもみんなに見てもらいたい」という機能を追加したい。

【切り分け】
機能で分けると、DB のプログラミングは別として、Web アプリの部分は従来のリプレース版である「更新系」の機能と、今回追加される「文書公開系」の機能に分けられる。
リリースタイミングで分けるとすれば、「更新系」を先にやっつけて、「文書公開系」を後からリリースすることも考えられる。ただし全体の工期は変えずにやらなくちゃならないけど。

【問題点】
未熟な知識で考えると、
機能で切り分けた場合、Visual Studio .net で Web アプリのプロジェクトを作成すると、「更新系」がhttp://server/WebApp1/ になり、「文書公開系」が http://server/WebApp2/ というようにサイトが分かれてしまう。
これらのディレクトリとは別に、「入り口」となるディレクトリに各プロジェクトへのリンクが張ってある html ファイルを用意する、ということも考えられる。
http://server/StartApp/→[各機能のサイトへ]
ホントにそれでいいのか?
そんなやりかたが Microsoft の推奨方法なのか? と。
また、DBにアクセスする部分で共通する部分が多ければ、両プロジェクトで使う DB アクセスの部分を、別に作成したクラスファイルで配布するという手もあるが、あんまりスマートじゃない。
それならば DB アクセスの部分は Web サービスで別立てするという手もある。これはまた別の問題になるのかなぁ・・・

リリース時期で切り分けた場合、これも2つのプロジェクトとして考えられるし、1つのプロジェクトとすることも考えられるが、いずれの場合も同時期に2人の開発者が1つのプロジェクトで共同作業をすることになる。

【情報】
そこで「Google 神」に聞いてみたところ有用な情報としては、やはりマイクロソフトが出している情報に集約されるようだ、と。

Microsoftのサポート情報
[HOWTO] チーム開発用に複数のプロジェクトから ASP.NET アプリケーションを作成する方法
MSDNでの情報
Visual Studio .NET と Visual SourceSafe を使用したチーム開発

【心配事】
どちらの情報も Visual SourceSafe のようなソース管理ツールの使用が推奨されている。
Visual Studio .NET 2003 に付属している VSS は VSS 6.0d となっており、単独製品の Visual SourceSafe 6.0 では 2003/1/23 に発表された SP6(VSS 6.0c)ではなくて、2004/3/30 に発表された SP6(VSS 6.0d)を適用する必要がある。
ややこしい。

また、VSS は共有サーバにサーバインストールしてソース管理用のDBを置いておく必要がある。
ウチの場合チーム専用の安定稼動させているサーバがないので、ファイルサーバや場合によってはドメインコントローラのサーバに入れることになってしまう・・・
となると、案件ごとやら何やかんやでシステムを入れ替えることがある「テストサーバ」以外に「チーム用の安定サーバ」ってのが必要になるなぁ・・・

それと根本的な事なんだけど、Visual Studio .NET 2003 のソースファイルでは UTF-8 の XML 形式で記述されているものが多いのだけれど、Visual Studio .NET 2003 に付属している Visual SourceSafe 6.0d も相変わらず Shift-JIS のみの対応なので UTF-8 物はバイナリで管理するように設定するような情報もある。
ここら辺の情報はもう少し整理したいところ。

【結論】
どの方法で行うかは担当者に任せます。
結論が出たらメモします。

メモというか独り言
Windows 95, 98, NT 4.0 には WMI が入ってない。
Microsoft のここからダウンロードできる。

どーせだったら .NET でやりなさい、と言われそう。
だが、当の NT 4.0 Server 上で動いているイントラの ASP ページ上に表示させたいので VBScript ってことになる。
これが一番楽な方法。

たたき台のサンプル
strComputer = "ServerName"
Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.ExecQuery _
("select * from Win32_NTLogEvent" & _
 "where LogFile = 'Application' and " & _
 "TimeGenerated >= '20040915'")

For Each wbemObject In wbemObjectSet
    WScript.Echo "ログ ファイル:" & wbemObject.LogFile
    WScript.Echo "レコード番号: " & wbemObject.RecordNumber
    WScript.Echo "タイプ:" & wbemObject.Type
    WScript.Echo "生成時刻:" & wbemObject.TimeGenerated
    WScript.Echo "ソース:" & wbemObject.SourceName
    WScript.Echo "カテゴリ:" & wbemObject.Category
    WScript.Echo "カテゴリ文字列:" & wbemObject.CategoryString
    WScript.Echo "イベント:" & wbemObject.EventCode
    WScript.Echo "ユーザー:" & wbemObject.User
    WScript.Echo "コンピュータ:" & wbemObject.ComputerName
    WScript.Echo "メッセージ:" & wbemObject.Message
Next

Enterprise Manager でストアドプロシージャを作成中、間違って「テンプレートとして保存」を行っちゃうと、次回以降新規のストアドプロシージャを作成するたびに色々と面倒なわけです。

で、UsersGr の ML にて教えていただいた方法が BLOG になってました。

メモってことで

↑このページのトップヘ