2013年11月25日

NAnt


NAntスクリプトによるビルド効率化TIPS
http://codezine.jp/article/corner/88
NAntを活用して開発時の作業を自動化する
http://codezine.jp/article/detail/354
C#でのテスト(2) nantによるビルドの自動化
http://bleis-tift.hatenablog.com/entry/20080806/1217954261
NAntのカスタムタスクで便利コマンドを作れる環境を作る
http://piro-suke.hatenablog.com/entry/20110704/1309709699
NAntを.NET 3.5に対応させる
http://d.hatena.ne.jp/coma2n/20071122/1195738506
NAntに独自のタスクを組み込む
http://d.hatena.ne.jp/snaka72/20100808/1281290646
NAntを使ってデイリービルド環境を構築する
http://architect360.apricot-jp.com/800tips/nant.html
.NET アプリケーションを Visual Studio から Eclipse にマイグレートする
Emonic プラグインと NAnt によって Eclipse に .NET と C# の機能を追加する
http://www.ibm.com/developerworks/jp/opensource/library/os-eclipse-migratenetvs/
C# で .sln ファイルをビルドするのに nant を使用できますか?
http://ja.softuses.com/37205
ビルドの自動化ファイルを作成する NAnt で VB.Net をどのように
http://ja.softuses.com/1498
NAntを使って簡単ビルド生活
http://hidden.vis.ne.jp/blog/?p=204
NAntでビルド
http://rararahp.blog69.fc2.com/blog-entry-19.html
C-sharp build specification (ビルドスペック) の作成
http://www.klocwork.com/products/documentation/current-ja/C-sharp_build_specification_%28%E3%83%93%E3%83%AB%E3%83%89%E3%82%B9%E3%83%9A%E3%83%83%E3%82%AF%29_%E3%81%AE%E4%BD%9C%E6%88%90
NAnt 0.85
http://data.expressweb.jp/2006/10/nant-0-85/
NAntを試す
http://blog.livedoor.jp/gutskun/archives/cat_10003552.html
オープンソースの.NETツールを使って洗練されたビルド環境を作る
http://japan.internet.com/developer/20060404/25.html
posted by rururu at 06:17| Comment(0) | TrackBack(0) | C#

.NETでZIP圧縮/解凍


ついに解禁!.NET で ZIP 制御
http://blogs.msdn.com/b/japan_platform_sdkwindows_sdk_support_team_blog/archive/2012/03/27/net-zip.aspx
.NET Framework 3.0以降でZIPを扱う方法
http://cocky.exblog.jp/17274129/
.NET クラスライブラリ探訪-062 (System.IO.Compression.ZipFile (1), .NET 4.5から追加, ZIPファイルの圧縮/解凍)
http://d.hatena.ne.jp/gsf_zero1/20120823/p1
ファイルを圧縮して抽出する
http://msdn.microsoft.com/ja-jp/library/ms404280%28v=vs.110%29.aspx
Visual Basic .NET編:ファイルのZIP圧縮方法
http://infotec.roof-balcony.com/vbnet/zip/
フォルダをZIPファイル圧縮/解凍するサンプル(VB.NET)
http://homepage2.nifty.com/nonnon/SoftSample/VB.NET/SampleJZip.html
J#のライブラリを使ってZIP圧縮、展開(解凍)、リスト表示を行う
http://dobon.net/vb/dotnet/links/createzipfile.html
#ziplib(SharpZipLib)を使ってZIP圧縮、展開(解凍)、リスト表示などを行う
http://dobon.net/vb/dotnet/links/sharpziplib.html
.NETアプリケーションから7-Zipの圧縮/解凍機能を使用する
http://www.infoq.com/jp/news/2008/07/7-Zip-from-.NET
posted by rururu at 01:22| Comment(0) | TrackBack(0) | C#

VBScript/DOSの課題(昔作ったやつ)


■課題
・batファイル側の処理
・batファイルの先頭と後ろで、処理開始と処理終了後メッセージをログと画面に出力
(日付と時間も)
・ログは「C:\temp\kadai.log」に出力。最初は上書き。以降は追記で出力する。
・batファイルからVBScriptファイルを呼び出す。
VBScriptの標準出力と標準エラー出力をログファイルに追記(呼び出し時に指定)。
・VBScriptファイル呼出し後に%ERRORLEVELE%を参照し、0以外の場合は、
処理が異常終了したことをログに出力。0の場合は正常終了したことをログに出力。

■ソース(datetime.bat)
@echo off
set DATE_TMP=%DATE:/=%
set TIME_TMP=%TIME: =0%
set YYYY=%DATE_TMP:~0,4%
set YY=%DATE_TMP:~2,2%
set MM=%DATE_TMP:~4,2%
set DD=%DATE_TMP:~6,2%
set HH=%TIME_TMP:~0,2%
set MI=%TIME_TMP:~3,2%
set SS=%TIME_TMP:~6,2%
set SSS=%TIME_TMP:~9,2%
set DATETIME=%YYYY%%MM%%DD%%HH%%MI%%SS%%SSS%
set TIME_TMP=
set DATE_TMP=

■ソース(kadai.bat)
@echo off

rem 初期設定
set LOG_OUTPUT=C:\temp\kadai.log
set EXEC_VBS_FILE=C:\temp\kadai.vbs
set EXTRACT_FILE=C:\temp\kadai.zip
set DATETIME_BAT=C:\temp\datetime.bat
set START_MSG=***** ファイル解凍処理:開始 *****
set NORMAL_END_MSG=***** ファイル解凍処理:正常終了 *****
set ABNORMAL_END_MSG=***** ファイル解凍処理:異常終了 *****
set NORMAL_RETURNCODE=0
set ABNORMAL_RETURNCODE=-1

rem 処理開始メッセージ
call %DATETIME_BAT%
echo %START_MSG% %DATE% %TIME%
echo %START_MSG% %DATE% %TIME% > %LOG_OUTPUT%

rem 標準出力と標準エラー出力を両方ともログファイルに出力
rem タイトルロゴを出さない(//nologo)
cscript %EXEC_VBS_FILE% %EXTRACT_FILE% //nologo >> %LOG_OUTPUT% 2>&1

rem 戻り値のチェック
set RC=%ERRORLEVEL%
if %ERRORLEVEL%==%ABNORMAL_RETURNCODE% goto ERROR_END

rem 正常終了処理
call %DATETIME_BAT%
echo %NORMAL_END_MSG% %DATE% %TIME%
echo %NORMAL_END_MSG% %DATE% %TIME% >> %LOG_OUTPUT%
pause
exit /b NORMAL_RETURNCODE

rem 異常終了処理
:ERROR_END
call %DATETIME_BAT%
echo %ABNORMAL_END_MSG%(%RC%) %DATE% %TIME%
echo %ABNORMAL_END_MSG%(%RC%) %DATE% %TIME% >> %LOG_OUTPUT%
pause
exit /b %ERRORLEVEL%

・VBScriptの処理
・引数は「解凍するzipファイル(パス名+ファイル名)」
・引数が1つではない場合は、処理終了。戻り値「-1」。WScript.Echoでエラーメッセージを
標準出力に出力する。
・引数が空文字(LenとTrimを使用)の場合は、処理終了。戻り値「-1」。WScript.Echoで
エラーメッセージを標準出力に出力する。
・引数のファイルが存在しない場合は、処理終了。戻り値「-1」。WScript.Echoでエラーメッ
セージを標準出力に出力する。
 ・フォルダ(C:\Temp\sample)が無い場合は作成する。
 ・フォルダ(C:\Temp\sample)がある場合は、フォルダ内のファイル/フォルダを削除する。
・引数のzipファイルをC:\Temp\sampleに解凍する。
・戻り値「0」で処理を終了。

■ソース(kadai.vbs)
Option Explicit

'―――――――――――――――――――――――――――――――――――――――――
'■定数
'―――――――――――――――――――――――――――――――――――――――――

Const START_MSG = "===== ファイル解凍処理(VBScript):開始 ====="
Const END_MSG = "===== ファイル解凍処理(VBScript):終了 ====="
Const NORMAL_END = 0
Const ABNORMAL_END = -1
Const ERROR_MSG_001 = "引数の数が正しくありません。"
Const ERROR_MSG_002 = "引数が指定されていません。"
Const ERROR_MSG_003 = "引数で指定されたファイルが存在しません。"
Const OUTPUT_PATH = "C:\temp\sample\"

'―――――――――――――――――――――――――――――――――――――――――
'■変数
'―――――――――――――――――――――――――――――――――――――――――

Dim strZipFile
Dim objFso
Dim objParam
Set objParam = WScript.Arguments

'―――――――――――――――――――――――――――――――――――――――――
'■開始メッセージ出力
'―――――――――――――――――――――――――――――――――――――――――

WScript.Echo START_MSG

'―――――――――――――――――――――――――――――――――――――――――
'■引数チェック
'―――――――――――――――――――――――――――――――――――――――――

'引数が1つではない場合、戻り値「-1」でスクリプト終了。
'WScript.Echoでエラーメッセージを出力

If objParam.Count <> 1 Then
WScript.Echo ERROR_MSG_001
WScript.Echo END_MSG
WScript.Quit ERROR_END
End If

'引数が空文字の場合、WScript.Echoでエラーメッセージを出力
'戻り値「-1」でスクリプト終了。

strZipFile = objParam(0)
If Len(Trim(strZipFile)) = 0 Then
WScript.Echo ERROR_MSG_002
WScript.Echo END_MSG
WScript.Quit ERROR_END
End If

'引数のファイルが存在しない場合は、WScript.Echoでエラーメッセージを出力
'戻り値「-1」でスクリプト終了。

Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
If objFso.FileExists(strZipFile) = False Then
Set objFso = Nothing
WScript.Echo ERROR_MSG_003
WScript.Echo END_MSG
WScript.Quit ERROR_END
End If
'オブジェクトの破棄
Set objFso = Nothing

'―――――――――――――――――――――――――――――――――――――――――
'■C:\temp\sampleフォルダは、無ければ作成
' 引数のzipファイルをC:\temp\sampleに解凍
'―――――――――――――――――――――――――――――――――――――――――

Call Extract(strZipFile, OUTPUT_PATH)

'―――――――――――――――――――――――――――――――――――――――――
'■終了メッセージ出力
' スクリプト終了。終了コード:0
'―――――――――――――――――――――――――――――――――――――――――

WScript.Echo END_MSG
WScript.Quit NORMAL_END

'―――――――――――――――――――――――――――――――――――――――――
'関数名:Extract・・・Zipファイル解凍処理
'引数 :ZipFile ・・・Zipファイル名(フルパス)
' :ExtractTo・・・Zipファイル解凍先フォルダ名(末尾に「\」)
'―――――――――――――――――――――――――――――――――――――――――

Sub Extract(ZipFile, ExtractTo)

Const FOF_SILENT = &H04 '進捗ダイアログを表示しない。
Const FOF_RENAMEONCOLLISION = &H08 'ファイルやフォルダ名が重複するときは「コピー 〜 」のようなファイル名にリネームする。
Const FOF_NOCONFIRMATION = &H10 '上書き確認ダイアログを表示しない([すべて上書き]と同じ)。
Const FOF_ALLOWUNDO = &H40 '操作の取り消し([編集]-[元に戻す]や{ctrl}+{z})を有効にする。
Const FOF_FILESONLY = &H80 'ワイルドカードが指定された場合のみ実行する。
Const FOF_SIMPLEPROGRESS = &H100 '進捗ダイアログは表示するがファイル名は表示しない。
Const FOF_NOCONFIRMMKDIR = &H200 'フォルダ作成確認ダイアログを表示しない(自動で作成)。
Const FOF_NOERRORUI = &H400 'コピーや移動ができなかった場合の実行時エラーを発生させない。
'ただし、対象のファイルを飛ばして処理を続けるわけではないことに注意。
Const FOF_NORECURSION = &H1000 'サブフォルダ内のファイルはコピーしない(ただし、フォルダは作成される)。

Dim objFso
Dim objShell
Dim FilesInZip
Dim objFolder

'解凍先フォルダが無い場合は作成
'解凍先フォルダがある場合は、フォルダ内のファイル/フォルダを削除
Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
If objFso.FolderExists(ExtractTo) = True Then
Call DeleteFolder(ExtractTo)
Else
objFso.CreateFolder ExtractTo
End If

'Zipファイルを解凍して、全てのファイルを解凍先フォルダにコピー
Set objShell = WScript.CreateObject("Shell.Application")
Set FilesInZip = objShell.NameSpace(ZipFile).items
Set objFolder = objShell.NameSpace(ExtractTo)
If (Not objFolder Is Nothing) Then
objFolder.CopyHere FilesInZip, FOF_NOCONFIRMATION + FOF_SILENT
End If

'オブジェクトの破棄
Set objFso = Nothing
Set objFolder = Nothing
Set FilesInZip = Nothing
Set objShell = Nothing

End Sub

'―――――――――――――――――――――――――――――――――――――――――
'関数名:DeleteFolder・・・指定フォルダ内のファイル/フォルダ削除処理
'引数 :strFolder ・・・フォルダ名(フルパス)
'―――――――――――――――――――――――――――――――――――――――――

Sub DeleteFolder(strFolder)

Dim objFso
Dim objFolder
Dim file
Dim subfolder

Set objFso = WScript.CreateObject("Scripting.FileSystemObject")
Set objFolder = objFso.GetFolder(strFolder)

'ファイルを列挙
For Each file In objFolder.Files

'ファイル削除(読み取り専用も削除)
file.Delete true

Next

'サブフォルダを列挙
For Each subfolder In objFolder.SubFolders

'サブフォルダの中身を削除(再帰処理)
Call DeleteFolder(strFolder & "\" & subfolder.Name)

'フォルダ内のファイルとフォルダがなくなったらフォルダを削除(読み取り専用も削除)
If subfolder.Files.Count = 0 And subfolder.SubFolders.Count = 0 Then
subfolder.Delete true
End If

Next

End Sub
posted by rururu at 01:06| Comment(0) | TrackBack(0) | VBScript

ランキングを取得するSQL


ランキングを取得するSQL
http://d.hatena.ne.jp/psappho/20111104/1320410987
順位を取得する
http://blogs.yahoo.co.jp/dk521123/29806532.html
ランキングを取得する SQL
http://www.greenwich.co.jp/blog-archives/p/370
[PostgreSQL][SQL]ウィンドウ関数を使ってランキングを出す
http://www3441ui.sakura.ne.jp/wordpress/?p=413
OLAP(分析)関数について -- OLAP(分析)関数はSELECT句で並び替え
http://d.hatena.ne.jp/Sikushima/20111211/1323597465
RANK (Transact-SQL)
http://technet.microsoft.com/ja-jp/library/ms176102.aspx
順位付け関数 (Transact-SQL)
http://technet.microsoft.com/ja-jp/library/ms189798.aspx
極めよう! 分析関数によるSQL高速化計画 (2/3)
http://www.atmarkit.co.jp/ait/articles/0509/27/news125_2.html
[SQL Server] 順位付け関数
http://memo.itsysgroup.com/?p=362
[T-SQL] 順位付け関数を使用する
http://handcraft.blogsite.org/Memo/Article/Archives/126
ランキングを取得するSQL
http://blog.syuhari.jp/archives/64
SQL RANK() over PARTITION on joined tables
http://stackoverflow.com/questions/13962950/sql-rank-over-partition-on-joined-tables
SQLでちゃんとしたランキングを作る【2/3】
http://torhamzedd.halteria.com/2011/02/sql23.html
posted by rururu at 00:59| Comment(0) | TrackBack(0) | SQL

フォルダ内の全ファイル名


VBScriptでフォルダ内の全ファイル名取得
http://okwave.jp/qa/q1561188.html
3.2 フォルダの中を探る
http://www.happy2-island.com/vbs/cafe02/capter00302.shtml
ファイルを取得する
http://www.happy2-island.com/vbs/cafe02/capter00212.shtml
ファイル数を取得する
http://www.happy2-island.com/vbs/cafe02/capter01401.shtml
【WSH】指定したフォルダのファイル一覧を取得する
http://dragon-ark.com/archives/115
ディレクトリ内のファイル一覧を取得する方法・Filesコレクション
http://win.just4fun.biz/WSH/%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E5%86%85%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%A8%E3%83%95%E3%82%A9%E3%83%AB%E3%83%80%E4%B8%80%E8%A6%A7%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%83%BBFiles,%20Folders.html
フォルダ内のファイルリストを一発で出力だぜぃ
http://prolography.org/other/2010/08/04/416/
【VBS】指定したフォルダに保管されているファイルを取得する
http://blog.livedoor.jp/akf0/archives/51369357.html
ファイル一覧取得 サブディレクトリも検索する
http://d.hatena.ne.jp/john-frank/20070509/1178641222
posted by rururu at 00:54| Comment(0) | TrackBack(0) | VBScript

2013年11月19日

ロギングライブラリ NLog


NLog
http://nlog-project.org/
ロギングライブラリ「NLog」で簡単ログ出力
http://news.mynavi.jp/articles/2010/03/19/nlog/
NLog
http://itkaeru.blogspot.jp/2012/09/c-nlog.html
NLogでスタックトレースをテキストのログへ出力するNLog.configの設定例
http://opcdiary.net/?p=27047
log4net, LoggingAB, NLogを比較してみた
http://kurusugawa.jp/2008/03/22/log4net-loggingab-nlog%E3%82%92%E6%AF%94%E8%BC%83%E3%81%97%E3%81%A6%E3%81%BF%E3%81%9F/
ロギングライブラリ NLog を使ってみる
http://awoni.net/blog/2013/06/1081#.UopKMuKP-mE
NLog - config ファイルで variable を使って変数を定義する
http://ichiroku11.hatenablog.jp/entry/2013/07/06/003930
ASP.NET MVC loggingは、NLogがベスト
http://vs.smartnet.expressweb.jp/asp-net-mvc-logging%E3%81%AF%E3%80%81nlog%E3%81%8C%E3%83%99%E3%82%B9%E3%83%88/
NLogで例外とスタックトレースをログに採取する
http://d.hatena.ne.jp/Kazzz/20111105/p1
.NET Compact Frameworkのログ その2 NLogミリ秒表示
http://www.jurabi.jp/blog/2010/03/989
VB2008でのNLog設定(Web.ConfigからConnectionString取得)
http://gakkisdiary.blogspot.jp/2010/08/vb2008nlogwebconfigconnectionstring.html
posted by rururu at 02:20| Comment(0) | TrackBack(0) | C#

2013年11月17日

.NET Reflector


.NET Framework用の逆コンパイラ。$35?。昔、使ったことある気がする。

.NET Reflector VSPro(英語版)
\ 20,160(税込)
http://www.componentsource.co.jp/products/red-gate-reflector/index.html
.NET Reflector 7
http://data.expressweb.jp/2011/02/dotnet-reflector-7/
既にコンパイルされたアセンブリをデバッグできる.NET Reflector
http://www.infoq.com/jp/news/2012/08/precompiled-net-reflector
[Reflector]最後の無償版(.NET Reflector 6.8)リリース
http://happyskiing.blog89.fc2.com/blog-entry-5.html
.NET Reflectorの使用方法
http://www.crystal-creation.com/software/technical-information/programming/c-sharp/tool/net-reflector/
Reflector for .NET の逆コンパイルでアセンブリのソースを見る
http://sonic64.com/2005-10-11.html
.NET Reflector v7は有料だけどv6.8は無料で使い続けられるようにするよ
http://d.hatena.ne.jp/matarillo/20110430/p1
.NETアプリケーションをデコンパイル「Reflector for .NET」
http://www.moongift.jp/2007/10/feflector_for_net/
【VB.NET】逆コンパイラ(Reflector for .NET)
http://blog.livedoor.jp/akf0/archives/51235799.html
逆コンパイルソフト「Reflector for .NET」
http://kurukurupapa.hatenablog.com/entry/20100907/1283860859
.Net Reflectorってしってました〜〜〜?・・・当たり前じゃ!ヾ(▼ヘ▼;)
http://ameblo.jp/komasu/entry-10369892451.html
.NET Reflector
http://www.polidog.jp/2009/11/19/net-reflector/
.NET Reflectorが商用化
http://salvw.miscnotes.com/index.php/archives/1509
posted by rururu at 17:39| Comment(0) | TrackBack(0) | C#

FxCop(コーディング規約に従っているか分析するツール)


FxCopは、.NETのプログラミング内容が適切かチェックするMicrosoftのツールです。
基本的にMicrosoftが提供する「クラス ライブラリ開発のデザインガイドライン」に
基づいてアセンブリを分析します。

.NET 用の静的分析ツール、Matt Berseth のブログ
http://msdn.microsoft.com/ja-jp/magazine/dd263071.aspx
【C#】【VB】【フリーツール】FxCop(コーディング規約に従っているか分析するツール)
http://blogs.yahoo.co.jp/dk521123/21228111.html
FxCop(.NETのプログラミングチェック)
http://blog.nextscape.net/index.php/research/dotnetenv/fxcop
FxCop と StyleCop
http://blogs.wankuma.com/jitta/archive/2012/03/18/260357.aspx
FxCopとカスタムルールを使って.NETコードの品質を監視する
http://japan.internet.com/developer/20061025/26.html
posted by rururu at 16:55| Comment(0) | TrackBack(0) | C#

2013年11月15日

モック・ライブラリ「Moq(モッキュ)」


.Net Framework3.5以降用の
モック・ライブラリ「Moq(モッキュ)」。
テストのためのダミーオブジェクト。

Moq & Fakes Framework を使った実践的ユニットテスト - BuildInsider
http://www.slideshare.net/uesaka/build-insider-moqfakes
[記事紹介] マイコミジャーナル 〜 【ハウツー】 Moq を活用して .NET でモックを使ったテストを行う
http://www.tdd-net.jp/2009/07/moq-net-a744.html
Moqを活用して.NETでモックを使ったテストを行う
http://news.mynavi.jp/articles/2009/06/15/moq/index.html
【C#】【Mock】Moq(モッキュ) 〜文法編〜
http://blogs.yahoo.co.jp/dk521123/21216313.html
【C#】【Mock】Moq(モッキュ) 〜設定編〜
http://blogs.yahoo.co.jp/dk521123/21212662.html
Moq.dllを使ってみた
http://d.hatena.ne.jp/waritohutsu/20090907/1252344523
連載:ASP.NET MVC入門【バージョン3対応】
最終回 テスト自動化でアプリケーションの品質向上
http://www.atmarkit.co.jp/fdotnet/aspnetmvc3/aspnetmvc3_09/aspnetmvc3_09_02.html
俺も Moq.dll を使ってみる
http://shiba-yan.hatenablog.jp/entry/20100418/1271572117
moq
http://blog.masakura.jp/node/73
Moq
http://devadjust.exblog.jp/8403886/
モックフレームワーク
http://wiki.clockahead.com/index.php?cmd=read&page=Coding%2F.NET%2F%A5%E2%A5%C3%A5%AF%A5%D5%A5%EC%A1%BC%A5%E0%A5%EF%A1%BC%A5%AF
モックとスタブの違い
http://www.sansan.com/blog/geeks/2012/120122.html
ちょっとレアな プログラミング Tips
http://codeone.jp/Demo/Tips.aspx
ASP.NETアプリケーションにおけるSessionを使った単体テストについて
http://simosan.minibird.jp/wordpress/windows/asp-netアプリケーションにおけるsessionを使った単体テス/
posted by rururu at 02:09| Comment(0) | TrackBack(0) | C#