2012年4月11日

[Mac] WinShortcutter 讓 Mac 悠遊 Windows 的網路芳鄰

WinShortcutter 這玩意兒太讚了,竟然沒有中文的介紹,實在可惜。
首先先前情提要一下,
自從我把 Notebook 換成 MBA 後,日常作業中,最讓我困擾的問題就是,
沒有辦法很自在的快速切換到別台 Windows 的共用資料夾,
雖然可以
在 finder 下按 Command + k ,然後輸入 smb://yourWinServer/sharedFolderName
但如果是在文件中看到的是長這樣的路徑
\\yourWinServer/sharedFolderName
那就要很辛苦的把 "\" 換成 "/" 如果很多層的話那心情就會很糟。
所以我一直在尋找解決方案,
終於皇天不負苦心人,讓我找到了 WinShortcutter 這個法寶,
安裝過程一般都沒什麼問題,安裝完成後,它會請你重新開機,
這時候別不信邪,因為服務要更新,所以請重新開機,
開完機後(其實安裝完後就可以看到這個改變了),
回到 finder 中就可以看到,原本 Mac 不認識的 *.lnk 的圖示變了,


雙擊後就會有神奇的效果出現 ... 是的 ... Mac 就學會了如何 follow the link。
當然,神奇的還不止這樣,
接下來要請你跟我這樣做(下面的動作請在重新開完機後做,不然會找不到服務),

首先,打開你的 Finder -> 服務 ->  服務偏好設定(如下圖)

在服務偏號設定 ->服務 裡面尋找
Copy Path to Clipboard 及 Open as Windows Link 並把他勾起來


接著就可以用 選取文字 -> 右鍵 的方式,在選單 -> 服務 -> Open as Windows Link

在 Finder 裡,則是可以 選取檔案或資料夾 -> 右鍵 -> 服務 -> Copy Path to Clipboard

複製出來的檔案路徑如果要把 "/" 變成 "\"  可以在

系統偏好設定 -> WinShortcutter 中,把 Use Backward Slashes 勾起來即可

*.lnk 也可以用快速查看,查看捷徑內容



是不是很方便呢!


WinShortcutter 網址:這裡

2012年4月2日

[.Net] Communication between the host page and the user control

紀錄一下,
我原本有一支 Web 程式,畫面像圖中上面那樣,
有幾個欄位、一個 Grid 、當 Grid 點選不同紀錄時,
下面的 Tab 內容就會依選中的資料,重新繫結資料內容。
這支程式暫且叫他 HostPage ,
他會 Implement 一個 IHost 的 Interface ,
Usercontrol 若要存取 HostPage 中的資料,一律透過 IHost 進行。
而每個 Tab 中的內容則是鑲入 Usercontrol ,
該 Usercontrol 會 Implement 一個叫 Itabcontent 的 Interface ,
HostPage 要操作 Usercontrol 時,也一律透過 Itabcontent 進行。

在開發的過程中 Tab 內容越來肥,導致整個頁面載入都明顯的變慢許多,
於是我們想把 Usercontrol 鑲到一個無縫的 iframe 中,讓他看起來像下圖下面那樣,
因為一開始的設計就透過 Interface 將 HostPage 與 Usercontrol 分開,
所以變成下面鑲入 iframe 的過程,沒有多大的困難,
原本的 Usercontrol 改成一支 Usercontrol_Relay , Relay 網頁中放一個 iFrame ,
Relay 則是當需要的時候把相關資訊 post 給 iframe 中的 AnotherHostpage ,
而 AnotherHostpage 則是把從 Relay 接收到的參數轉換成 IHost 定義的屬性,
並依參數決定要鑲入的 Usercontrol 是哪一個,讓原本的 Usercontrol 改放在 AnotherHostpage 中。
當然,Usercontrol_Relay 要 Implement Itabcontent
AnotherHostpage 也要 Implement IHost。


[.Net] 如何取得 GAC 中的 Dll

有時遇到 GAC 中 Dll 版本有問題的時候,
我們需要把 GAC 裡的 Dll 拿出來看看,
但我們沒辦法用檔案總管來幫我們完成這件事情,
下面提供幾個 Command Line 指令,
讓我們快速找到 Dll 在 GAC 中的位置。

如下圖,假設我們要找 GSS.Stirrup.NBase20

先用 cd 指令移到 assembly 目錄,這個目錄會在 windows 的安裝目錄中,
接下來用 dir 指令去尋找相關的檔案,
下面指令中 * 表示萬用字元, /s 表示遞迴尋找其下的子目錄,
| 比較特別,因為 /s 出來會有一堆目錄的資訊,這邊把尋找到的內容導向 find 指令,
讓 find 在 dir 出來的文字中找含有 %windir% 內容的行,
而 %windir% 則會被置換成系統環境參數中設定的 windows 目錄。
cd /d %windir%\assembly
dir GSS.Stirrup.NBase20* /s |find "%windir%"

如果已經知道要找的 Dll 完整檔名,可以用下面的指令
這個指令會搜尋目前所在目錄下所有子目錄中是否有存在(...)中指定的檔案,
若有則 echo 印出來
@for /r . %f in (GSS.Stirrup.NBase20.dll) Do @if exist "%f" echo %f


找到檔案後,當然就是把他 Copy 出來,至於 Copy 的指令應該不需要多加說明
copy [source] [destination]