剛上網找到的,怕忘記,快記下來,
經過測試可以用,可以夾在C#程式裡用.
不用 remote dir 部份要改為
/customer/chixxxxxx/hjs/in
接近最下面有個內容 click here ,按下後就可以下載 source code .
引用至:
http://www.ondotnet.com/pub/a/dotnet/2004/05/10/ftpdotnet.htm
3/30/2009
Office SharePoint Server 2007 安裝注意事項
文章轉自http://einstand.spaces.live.com/blog/cns!A31A50C8EBA9EF7C!265.entry
經過多次的安裝失敗, 我稍為整理了一下我遇到的困難.
首先, MOSS 2007(Microsoft Office SharePoint Server 2007) 不能安裝在 Windows Server 2000 上, 安裝程式會說至少要 Server 2003 SP2 以上.
所以後來我就弄了一台新的電腦, 裝上 Windows Server 2008, 結果也是不能裝. 很離譜吧! 連安裝程式都不能 Run 直接就被 Windows Server 2008 擋掉了, 說什麼程式不相容.
因此, 只好乖乖的安裝 Windows Server 2003 SP2.
第一次裝 MOSS 2007 時, 沒看什麼書, 直接就執行安裝程, 也很順利地安裝完成. 但........裝完不能用.
查不出原因, 就好乖乖的買本書回來研究. 悅知文化出版的那一本寫的還不錯, 書厚圖也多, 就是貴了點.
總結一下心得: 一 首先 Server 2003 上要先裝上 Active Directory (這個有點難度, 因為太難在此不做說明. 換言之, 如果連 AD 都裝不起來的話, 就不必挑戰 MOSS 2007 了)
二 再安裝 IIS 和 .NET Framework 2.0 和 .NET Framework 3.0
安裝完 Server 2003 後, 會裝你裝上 .NET 1.0 和 .NET 2.0 至於 .NET 3.0 就要自行去下載後再安裝
三 將 .NET Framework 2.0 設為 IIS 的預設環境.
安裝完 Server 2003 後, IIS 會預設使用 .NET 1.0 而 MOSS 2007 是使用 .NET 2.0 因此在安裝 MOSS 前要先更改設定.
更改的方式很怪, 要在 "命令提示字元" 下, 用手輸入. 如下
cd \Windows\Microsoft.NET\Framework
cd v2.0.50727
aspnet_regiis -i
iisreset /noforce
上面的指令的大意就是切換到 .NET Framework 2.0 的目錄後, 再執行註冊程式, 然後再重新啟動 IIS
四 然後就執行安裝程式了
安裝程式共有十個步驟, 悅知那本書的作者是在第二個步驟發生錯誤, 而我是在第七個步驟發生錯誤.
不過, 那是安裝程式的 BUG, 不要怕, 重新開機, 再執行一次 "SharePoint 產品及技術設定精靈" 即可.
當然八字重的人可能一次就裝好, 命不好的人就多 Run 幾次吧!
五 我在裝完後, 執行 "SharePoint 3.0 管理中心" 時, 還發生一個奇怪的錯誤.
.NET 的錯誤訊息是說 C:\WINDOWS\Microsoft.NET\Framework\v.2.0.50272\Temporary ASP.NET Files 沒有寫入的權限
此時, 我就管不了那麼多了, 我就新增一個 "Everyone" 再給它 "完全控制" 就 OK 了.
當然, 這樣做是有風險的, 反正我的機器不對外開放, 不必管那麼多.
經過多次的安裝失敗, 我稍為整理了一下我遇到的困難.
首先, MOSS 2007(Microsoft Office SharePoint Server 2007) 不能安裝在 Windows Server 2000 上, 安裝程式會說至少要 Server 2003 SP2 以上.
所以後來我就弄了一台新的電腦, 裝上 Windows Server 2008, 結果也是不能裝. 很離譜吧! 連安裝程式都不能 Run 直接就被 Windows Server 2008 擋掉了, 說什麼程式不相容.
因此, 只好乖乖的安裝 Windows Server 2003 SP2.
第一次裝 MOSS 2007 時, 沒看什麼書, 直接就執行安裝程, 也很順利地安裝完成. 但........裝完不能用.
查不出原因, 就好乖乖的買本書回來研究. 悅知文化出版的那一本寫的還不錯, 書厚圖也多, 就是貴了點.
總結一下心得: 一 首先 Server 2003 上要先裝上 Active Directory (這個有點難度, 因為太難在此不做說明. 換言之, 如果連 AD 都裝不起來的話, 就不必挑戰 MOSS 2007 了)
二 再安裝 IIS 和 .NET Framework 2.0 和 .NET Framework 3.0
安裝完 Server 2003 後, 會裝你裝上 .NET 1.0 和 .NET 2.0 至於 .NET 3.0 就要自行去下載後再安裝
三 將 .NET Framework 2.0 設為 IIS 的預設環境.
安裝完 Server 2003 後, IIS 會預設使用 .NET 1.0 而 MOSS 2007 是使用 .NET 2.0 因此在安裝 MOSS 前要先更改設定.
更改的方式很怪, 要在 "命令提示字元" 下, 用手輸入. 如下
cd \Windows\Microsoft.NET\Framework
cd v2.0.50727
aspnet_regiis -i
iisreset /noforce
上面的指令的大意就是切換到 .NET Framework 2.0 的目錄後, 再執行註冊程式, 然後再重新啟動 IIS
四 然後就執行安裝程式了
安裝程式共有十個步驟, 悅知那本書的作者是在第二個步驟發生錯誤, 而我是在第七個步驟發生錯誤.
不過, 那是安裝程式的 BUG, 不要怕, 重新開機, 再執行一次 "SharePoint 產品及技術設定精靈" 即可.
當然八字重的人可能一次就裝好, 命不好的人就多 Run 幾次吧!
五 我在裝完後, 執行 "SharePoint 3.0 管理中心" 時, 還發生一個奇怪的錯誤.
.NET 的錯誤訊息是說 C:\WINDOWS\Microsoft.NET\Framework\v.2.0.50272\Temporary ASP.NET Files 沒有寫入的權限
此時, 我就管不了那麼多了, 我就新增一個 "Everyone" 再給它 "完全控制" 就 OK 了.
當然, 這樣做是有風險的, 反正我的機器不對外開放, 不必管那麼多.
3/22/2009
結婚紅包行情價
結婚紅包行情價 轉載自http://www.myloving.com.tw/WedInfo_MoresPacket.asp
600元---一般訂婚習俗和結婚紅包袋是由600元開始起跳,但那是指非常不熟悉的禮金數。
1200元---就是一般辦公室朋友的[價位] ,三分熟交情;只包紅包 祝賀,不出席喜宴。
1600元---是可以一起吃飯逛街的朋友,另外;如果你還可以拿到 一盒新娘的喜餅,那就不好再少於這個數字。
2000~2600元---可以交換一些心事,倒些垃圾的朋友,平日相交已有些推心置腹的感覺。
3600元---親密的姐姐淘,兄弟情,如熟透的親密感。
6000元---親姐妹、親兄弟血濃於水,不容取代的手足情深,自然就從6000元以上起跳。
紅包的由來:
紅包袋---亦稱為紅封包,是將金錢放置紅色封套內做成的一種小禮物。結婚包紅包是中國傳統民俗,在各種喜慶場合如過年、小孩滿月及各式送金錢作禮物時都會使用。紅色在中國文化當中象徵著喜慶,紅包當中一般會放入有吉祥數字的金錢,例如有8字或以雙數結尾的數目,而且結婚紅包賀詞寫法也是有重要的象徵意義。
小叮嚀
如果女方是訂婚收禮金,而男方是結婚收禮金;或是訂結婚一起舉辦,男女雙方都在現場擺禮桌收禮金,所以;要包給她,最好跟她說一聲,如果男方那邊收走了,至少她看過禮金簿時,知道你有包紅包給她,日後;你結婚時她才有包紅包的參考值。
紅包討吉利,新郎倌可不要忘了準備紅包給幫忙的親友;諸如:前來開新郎車門的舅爺,及六名隨新郎前去迎娶新娘的親友,捧洗臉水的女方親友、媒婆禮等。金額多為600、1200及2000元等。
紅包賀詞寫法
紅包上可寫上結婚賀詞,但紅包左下方寫上自己的名字(例如:xxx賀)
百年琴瑟 花好月圓 天緣巧合 金石同心 白頭偕老 情聯碧合 宜爾室家 花開並蒂 情投意合 天作之合 相親相愛 永浴愛河 緣訂三生......更多結婚賀詞
600元---一般訂婚習俗和結婚紅包袋是由600元開始起跳,但那是指非常不熟悉的禮金數。
1200元---就是一般辦公室朋友的[價位] ,三分熟交情;只包紅包 祝賀,不出席喜宴。
1600元---是可以一起吃飯逛街的朋友,另外;如果你還可以拿到 一盒新娘的喜餅,那就不好再少於這個數字。
2000~2600元---可以交換一些心事,倒些垃圾的朋友,平日相交已有些推心置腹的感覺。
3600元---親密的姐姐淘,兄弟情,如熟透的親密感。
6000元---親姐妹、親兄弟血濃於水,不容取代的手足情深,自然就從6000元以上起跳。
紅包的由來:
紅包袋---亦稱為紅封包,是將金錢放置紅色封套內做成的一種小禮物。結婚包紅包是中國傳統民俗,在各種喜慶場合如過年、小孩滿月及各式送金錢作禮物時都會使用。紅色在中國文化當中象徵著喜慶,紅包當中一般會放入有吉祥數字的金錢,例如有8字或以雙數結尾的數目,而且結婚紅包賀詞寫法也是有重要的象徵意義。
小叮嚀
如果女方是訂婚收禮金,而男方是結婚收禮金;或是訂結婚一起舉辦,男女雙方都在現場擺禮桌收禮金,所以;要包給她,最好跟她說一聲,如果男方那邊收走了,至少她看過禮金簿時,知道你有包紅包給她,日後;你結婚時她才有包紅包的參考值。
紅包討吉利,新郎倌可不要忘了準備紅包給幫忙的親友;諸如:前來開新郎車門的舅爺,及六名隨新郎前去迎娶新娘的親友,捧洗臉水的女方親友、媒婆禮等。金額多為600、1200及2000元等。
紅包賀詞寫法
紅包上可寫上結婚賀詞,但紅包左下方寫上自己的名字(例如:xxx賀)
百年琴瑟 花好月圓 天緣巧合 金石同心 白頭偕老 情聯碧合 宜爾室家 花開並蒂 情投意合 天作之合 相親相愛 永浴愛河 緣訂三生......更多結婚賀詞
3/20/2009
[ C# ] 編碼命名規範
[轉貼http://www.purecs.net/thread/topic684_1.aspx]抨擊匈牙利命名法
匈牙利命名法是一種編程時的命名規範。命名規範是程序書寫規範中最重要也是最富爭議的地方,自古乃兵家必爭之地。命名規範有何用?四個字:名正言順。用二分法,
命名規範分為好的命名規範和壞的命名規範,()絡育Z|_%$J也就是說名正言順的命名規範和名不正言不順的命名規範。好的舞鞋是讓舞者感覺不到其存在的舞鞋,壞的舞鞋是讓舞者帶著鐐銬起舞。一個壞的命名規範具有的破壞力比一個好的命名規範具有的創造力要大得多。
本文要證明的是:匈牙利命名法是一個壞的命名規範。本文的作用範圍為靜態強類型編程語言。本文的分析範本為C語言和C++語言。下文中的匈法為匈牙利命名法的簡稱。
一 匈牙利命名法的成本
匈法的表現形式為給變量名附加上類型名前綴,例如:nFoo,szFoo,pFoo,cpFoo分別表示整型變量,字符串型變量,指針型變量和常指 針型變量。可以看出,匈法將變量的類型信息從單一地點(聲明變量處)複製到了多個地點(使用變量處),這是冗餘法。冗餘法的成本之一是要維護副本的一致 性。這個成本在編寫和維護代碼的過程中需要改變變量的類型時付出。冗餘法的成本之二是佔用了額外的空間。一個優秀的書寫者會自覺地遵從一個法則:代碼最小 組織單位的長度以30個自然行以下為宜,如果超過50行就應該重新組織。一個變量的書寫空間會給這一法則添加不必要的難度。
二 匈牙利命名法的收益
這裡要證明匈牙利命名法的收益是含糊的,無法預期的。
範本1:strcpy(pstrFoo,pcstrFoo2) Vs strcpy(foo,foo2)
匈法在這裡有什麼收益呢?我看不到。沒有一個程序員會承認自己不知道strcpy函數的參數類型吧。
範本2:unknown_function(nFoo) Vs unknown_function(foo)
匈法在這裡有什麼收益呢?我看不到。對於一個不知道確定類型的函數,t.-.-7`FxgV網管程 序員應該去查看該函數的文檔,這是一種成本。使用匈法的唯一好處是看代碼的人知道這個函數要求一個整型參數,這又有什麼用處呢?函數是一種接口,參數的類 型僅僅是接口中的一小部分。諸如函數的功能、出口信息、線程安全性、異常安全性、參數合法性等重要信息還是必須查閱文檔。
範本3:nFoo=nBar Vs foo=bar
匈法在這裡有什麼收益呢?我看不到。使用匈法的唯一好處是看代碼的人知道這裡發生了一個整型變量的複製動作,聽起來沒什麼問題,可以安心睡大覺了。如果他看到的是nFoo=szBar,可能會從美夢中驚醒。且慢,事情真的會是這樣嗎?我想首先被驚醒的應該是編譯器。另一方面,nFoo=nBar只是在語法上合法而已,看代碼的人真正關心的是語義的合法性,匈法對此毫無幫助。另一方面,一個優秀的書寫者會自覺地遵從一個法則:代碼最小組織單位中的臨時變量以一兩個為宜,
提T網件軟B'絡E$9
如果超過三個就應該重新組織。結合前述第一個法則,可以得出這樣的結論:易於理解的代碼本身就應該是易於理解的,這是代碼的內建高質量。好的命名規範對內建高質量的助益相當有限,而壞的命名規範對內建高質量的損害比人們想像的要大。
三 匈牙利命名法的實施
這裡要證明匈牙利命名法在C語言是難以實施的,在C++語言中是無法實施的。從邏輯上講,對匈法的收益做出否定的結論以後,再來論證匈法的可行性,是畫蛇添足。不過有鑑於小馬哥曾讓已射殺之敵死灰復燃,我還是再踏上一支腳為妙。
前面講過,匈法是類型系統的冗餘,所以實施匈法的關鍵是我們是否能夠精確地對類型系統進行複製。這取決於類型系統的複雜性。
先來看看C語言:
1.內置類型:int,char,float,double 複製為 n,ch,f,d?好像沒有什麼問題。不過誰來告訴我void應該怎麼表示?
2.組合類型:array,union,enum,struct 複製為 a,u,e,s?好像比較彆扭。
這裡的難點不是為主類型取名,而是為副類型取名。an表示整型數組?sfoo,sbar表示結構foo,結構bar?ausfoo表示聯合結構foo數組?累不累啊。
3.特殊類型:pointer。pointer在理論上應該是組合類型,供^_的C!]ZIcBuRT但是在C語言中可以認為是內置類型,因為C語言並沒有非常嚴格地區分不同的指針類型。下面開始表演:pausfoo表示聯合結構foo數組指針?ppp表示指針的指針的指針?
噩夢還沒有結束,再來看看類型系統更阿為豐富的C++語言:
1.class:如果說C語言中的struct還可以用stru搪塞過去的話,不要夢想用cls來搪塞C++中的class。嚴格地講,class 根本就並不是一個類型,而是創造類型的工具,在C++中,語言內置類型的數量和class創造的用戶自定義類型的數量相比完全可以忽略不計。 stdvectorFoo表示標準庫向量類型變量Foo?瘋狂的念頭。
2.命名空間:boostfilesystemiteratorFoo,表示boost空間filesystem子空間遍歷目錄類型變量Foo?程序員要崩潰了。
3.模板:你記得std::map<:string,std::string>類型的確切名字嗎?我是記不得了,好像超過255個字符,還是饒了我吧。
4. 模板參數:templateconst T& max(const T& a, const T& b, BinaryPredicate comp) 聰明的你,請用匈法為T命名。上帝在發笑。
5.類型修飾:static,extern,mutable,register,volatile,const,short,long,unsigned 噩夢加上修飾是什麼?還是噩夢。
你願意做鐐銬上的舞者嗎?
匈牙利命名法是一種編程時的命名規範。命名規範是程序書寫規範中最重要也是最富爭議的地方,自古乃兵家必爭之地。命名規範有何用?四個字:名正言順。用二分法,
命名規範分為好的命名規範和壞的命名規範,()絡育Z|_%$J也就是說名正言順的命名規範和名不正言不順的命名規範。好的舞鞋是讓舞者感覺不到其存在的舞鞋,壞的舞鞋是讓舞者帶著鐐銬起舞。一個壞的命名規範具有的破壞力比一個好的命名規範具有的創造力要大得多。
本文要證明的是:匈牙利命名法是一個壞的命名規範。本文的作用範圍為靜態強類型編程語言。本文的分析範本為C語言和C++語言。下文中的匈法為匈牙利命名法的簡稱。
一 匈牙利命名法的成本
匈法的表現形式為給變量名附加上類型名前綴,例如:nFoo,szFoo,pFoo,cpFoo分別表示整型變量,字符串型變量,指針型變量和常指 針型變量。可以看出,匈法將變量的類型信息從單一地點(聲明變量處)複製到了多個地點(使用變量處),這是冗餘法。冗餘法的成本之一是要維護副本的一致 性。這個成本在編寫和維護代碼的過程中需要改變變量的類型時付出。冗餘法的成本之二是佔用了額外的空間。一個優秀的書寫者會自覺地遵從一個法則:代碼最小 組織單位的長度以30個自然行以下為宜,如果超過50行就應該重新組織。一個變量的書寫空間會給這一法則添加不必要的難度。
二 匈牙利命名法的收益
這裡要證明匈牙利命名法的收益是含糊的,無法預期的。
範本1:strcpy(pstrFoo,pcstrFoo2) Vs strcpy(foo,foo2)
匈法在這裡有什麼收益呢?我看不到。沒有一個程序員會承認自己不知道strcpy函數的參數類型吧。
範本2:unknown_function(nFoo) Vs unknown_function(foo)
匈法在這裡有什麼收益呢?我看不到。對於一個不知道確定類型的函數,t.-.-7`FxgV網管程 序員應該去查看該函數的文檔,這是一種成本。使用匈法的唯一好處是看代碼的人知道這個函數要求一個整型參數,這又有什麼用處呢?函數是一種接口,參數的類 型僅僅是接口中的一小部分。諸如函數的功能、出口信息、線程安全性、異常安全性、參數合法性等重要信息還是必須查閱文檔。
範本3:nFoo=nBar Vs foo=bar
匈法在這裡有什麼收益呢?我看不到。使用匈法的唯一好處是看代碼的人知道這裡發生了一個整型變量的複製動作,聽起來沒什麼問題,可以安心睡大覺了。如果他看到的是nFoo=szBar,可能會從美夢中驚醒。且慢,事情真的會是這樣嗎?我想首先被驚醒的應該是編譯器。另一方面,nFoo=nBar只是在語法上合法而已,看代碼的人真正關心的是語義的合法性,匈法對此毫無幫助。另一方面,一個優秀的書寫者會自覺地遵從一個法則:代碼最小組織單位中的臨時變量以一兩個為宜,
提T網件軟B'絡E$9
如果超過三個就應該重新組織。結合前述第一個法則,可以得出這樣的結論:易於理解的代碼本身就應該是易於理解的,這是代碼的內建高質量。好的命名規範對內建高質量的助益相當有限,而壞的命名規範對內建高質量的損害比人們想像的要大。
三 匈牙利命名法的實施
這裡要證明匈牙利命名法在C語言是難以實施的,在C++語言中是無法實施的。從邏輯上講,對匈法的收益做出否定的結論以後,再來論證匈法的可行性,是畫蛇添足。不過有鑑於小馬哥曾讓已射殺之敵死灰復燃,我還是再踏上一支腳為妙。
前面講過,匈法是類型系統的冗餘,所以實施匈法的關鍵是我們是否能夠精確地對類型系統進行複製。這取決於類型系統的複雜性。
先來看看C語言:
1.內置類型:int,char,float,double 複製為 n,ch,f,d?好像沒有什麼問題。不過誰來告訴我void應該怎麼表示?
2.組合類型:array,union,enum,struct 複製為 a,u,e,s?好像比較彆扭。
這裡的難點不是為主類型取名,而是為副類型取名。an表示整型數組?sfoo,sbar表示結構foo,結構bar?ausfoo表示聯合結構foo數組?累不累啊。
3.特殊類型:pointer。pointer在理論上應該是組合類型,供^_的C!]ZIcBuRT但是在C語言中可以認為是內置類型,因為C語言並沒有非常嚴格地區分不同的指針類型。下面開始表演:pausfoo表示聯合結構foo數組指針?ppp表示指針的指針的指針?
噩夢還沒有結束,再來看看類型系統更阿為豐富的C++語言:
1.class:如果說C語言中的struct還可以用stru搪塞過去的話,不要夢想用cls來搪塞C++中的class。嚴格地講,class 根本就並不是一個類型,而是創造類型的工具,在C++中,語言內置類型的數量和class創造的用戶自定義類型的數量相比完全可以忽略不計。 stdvectorFoo表示標準庫向量類型變量Foo?瘋狂的念頭。
2.命名空間:boostfilesystemiteratorFoo,表示boost空間filesystem子空間遍歷目錄類型變量Foo?程序員要崩潰了。
3.模板:你記得std::map<:string,std::string>類型的確切名字嗎?我是記不得了,好像超過255個字符,還是饒了我吧。
4. 模板參數:template
5.類型修飾:static,extern,mutable,register,volatile,const,short,long,unsigned 噩夢加上修飾是什麼?還是噩夢。
你願意做鐐銬上的舞者嗎?
[問題解決]LC.exe以返回碼-1結束
許可證編譯器 (Lc.exe) 已退出,代碼 -1 可能的原因是:在你的專案中引用了第三方元件,並且這個第三方元件是個商業組件,他在元件的主使用類定義了LicenseProvider(typeof(LicFileLicenseProvider))這個Attribute。 VS2005在編譯時檢測到這個類的時候,會檢查到元件使用的是LicFileLicenseProvider這個屬性,表示有元件使用的是把許可的輔助資訊保存在license.licx文件中,這個文件保存在vs2005中解決方案資源管理器中的Properties文件夾內。 這個檔的內容實際上是個引用,他保存著你使用的第三方元件主使用類的名稱空間+類名+檔案名+文化+PublicKeyToken資訊,這個檔是自動生成的。如果這個資訊與你使用的元件dll中的實際內容不匹配,則lc.exe就會出現這個錯誤資訊。這個資訊出現的原因是你在專案中使用了商業元件的測試版,而在發佈的時候使用的是哪個商業組件的破解版。大部分的商業組件經過破解的時候,強名稱簽名就會消失,所以破解的元件與原來的測試版元件的引用資訊是完全不同的。故每次編譯的時候,vs2005自動調用語言編譯器之前會調用lc(許可編譯器),就會出現-1錯誤。解決方法就是把Properties檔下的license.licx給刪除,然後打開設計頁面,重新編譯就ok了。,如果還出現這個問題的話,必須將你的破解版的哪個元件使用lidism給翻譯成il語言,然後用ilasm重新編譯成dll,在編譯的時候加入 /key=[你的強名稱檔].snk 參數,自己加入強名稱簽名,然後使用vs2005重新編譯,就可以成功了。
1.關閉 VS2005 。
2.到專案的所在目錄刪除 license.licx 檔案。
3.開啟 VS2005 。
4.執行重建該專案,此時在「方案總管」會出現 license.licx 驚嘆號, 對 license.licx 按滑鼠右鍵,選擇刪除,再重建該專案就 OK 了。
1.關閉 VS2005 。
2.到專案的所在目錄刪除 license.licx 檔案。
3.開啟 VS2005 。
4.執行重建該專案,此時在「方案總管」會出現 license.licx 驚嘆號, 對 license.licx 按滑鼠右鍵,選擇刪除,再重建該專案就 OK 了。
訂閱:
文章 (Atom)