Time of Update: 2018-12-07
在.net中 程式啟動並執行時候的許可權一般等於運行這個程式的帳號的許可權例如asp.net一般是 network serviceconsole一般是目前使用者計劃任務中也可以指定用什麼帳號運行當前的程式asp.net中也可以在web.config中指定用什麼帳號運行當前程式本文介紹了如果在你知道使用者名稱,或者是使用者名稱和密碼的情況下 使用特定的帳號密碼執行特定的代碼,這樣你在運行時就可以切換當前程式的帳號和許可權以完成特定的目標 1.遠程操作不同的機器需要不同的許可權
Time of Update: 2018-12-07
上一篇文章介紹了在呼叫堆疊層級的儲存和讀取資料在大部分時候 我們使用的是同步方法 在呼叫堆疊和線程層級沒有差別, 1對1的有的時候我們想吧資料儲存線上程裡面就可以使用以下的代碼: string THREAD_DATASLOT = "data name"; LocalDataStoreSlot namedDataSlot = Thread.GetNamedDataSlot(THREAD_DATASLOT);if (namedDataSlot == null)
Time of Update: 2018-12-07
HTTP Header中Accept-Encoding 是瀏覽器發給伺服器,聲明瀏覽器支援的編碼類別型的常見的有 Accept-Encoding: compress, gzip //支援compress 和gzip類型 Accept-Encoding: //預設是identity Accept-Encoding: * //支援所有類型 Accept-
Time of Update: 2018-12-07
在做單元測試的時候HttpContext.Current是為null的而有些dll是和HttpContext綁定的(很大原因是...net大部分用於web項目)或者是試圖在windows form 或者console中使用這些dll就掛了...當然HttpContext.Current是可以賦值的...那麼最最簡單的方法就是直接new一個HttpContext給它啦HttpRequest request = new HttpRequest("", "http://localhost", "");
Time of Update: 2018-12-07
希望和大家分享和討論欄位的設計思想和原則,共同進步。 1.不要依賴欄位的初始化順序 class FieldDemo {private int id = 1;//通過某中方法擷取Id的值 private ClassF f1 = new ClassF(1);//不要在這裡依賴其他成員和執行順序public FieldDemo() {//在建構函式裡面設定依賴關係和執行順序 id = 1; f1 = new
Time of Update: 2018-12-07
關於HttpContext.Current可能挺多人都有疑問的他究竟是怎麼實現的呢為什麼每個不同的請求去訪問一個靜態成員Current 能得到不同的結果呢?很明顯的這個靜態對象和當前調用的Context有關其內部實作類別似於 CallContext.SetData() 和CallContext.GetData()通過SetData儲存的資料 是和當前方法的呼叫堆疊有關的,例如你在方法A中間SetData然後方法A中Call了方法B
Time of Update: 2018-12-07
【高效能web開發】將會是一個系列.從html,js,css等前端,到HTTP/TCP等網路傳輸環節.從Asp.net等應用伺服器語言到資料庫最佳化.從架構設計到第三方組件和解決方案的應用.之後大約還有4-5篇Blog和高效能web開發有關. 【高效能web開發】
Time of Update: 2018-12-07
已知我家門口的公交站有兩班公交車.其中一輛每隔M分鐘經過我家門口.另外一輛每隔N分鐘經過我家門口.我隨便等到一輛車都可以坐車去上班....那麼平均情況下 我要等多久 才能等到一輛車?? 應用情境是在做地圖尋路演算法的時候....要計算等車時間, (用於估計你要多久才能到達目的地). 一個很簡單的提示:如果只有一輛車M,平均時間是M/2,如果多了一輛車n...用的時間必然小於M/2.PS: 有很多朋友會認為答案是(M+N)/2 這明顯是不對的 因為我只要隨便等到一輛車就能上班了.PS: M*N/(
Time of Update: 2018-12-07
已知一個大小為M的數組 裡面放著M個整數現在要找出前n個最大的元素問: 最優的演算法,時間複雜度和空間複雜度 解法有很多,最好的不好找, 這裡隨便先舉幾個一般的: 1.先給M的數組做一次排序 那麼前n個元素就是結果, 假設用快速排序 那麼時間複雜度就是 M*logM 2.已知使用冒泡法找出最大的一個元素, 需要M次, 那麼找出N個,就需要M*N ,如果N很小這個演算法就很最佳化補充以下是個人覺得最好的演算法(快速排序的一部分)隨機在m中挑選一個值, 然後比m小的放在m左邊,
Time of Update: 2018-12-07
最最簡單的原型:假設某個類庫提供了一個方法 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->public class UserManager{public Output GetUser(Input input);{...}}Input Onput是兩個類, 分別代表了輸入輸出參數的格式 ,沒有實現可序列化Serializable,
Time of Update: 2018-12-07
基本1.在.NET中屬性的本質實現是方法雖然本質是方法,不過當作互斥變數來使用還是挺方便的,(如Hashtable.SyncRoot)2.屬性應該表現出相對靜態特徵在沒有其他代碼幹擾的時候,訪問一個屬性無論多少次 應該返回同樣的結果 (DateTime.Now就是一個錯誤的設計)3.屬性get方法一般不拋出異常 現在很多地方使用到了消極式載入的設計,所以某些時候還是會拋出異常的4.謹慎使用集合類型的屬性如直接返回List<T>
Time of Update: 2018-12-07
將同類的操作Wrap在同一個類型中,如以下代碼: /// <summary>/// really business operation./// </summary> [Serializable]public class ServiceWrapper1 : MarshalByRefObject {protected ServiceWrapper1() { }public virtual
Time of Update: 2018-12-07
接上篇 http://www.cnblogs.com/PurpleTide/archive/2010/12/21/1912299.html 7) $expand 包含屬性和關係 假設的WagerInformation擁有一個屬性 UserInformation User 表示使用者資訊, 另一個屬性 IEnumerable<CommonInformation> Commons 表示評論資訊 使用
Time of Update: 2018-12-07
某個項目需要使用很多內部其他Team的DLL 和第三方的DLL (大概百來個吧......這是什麼鬼啊...可怕的曆史,又不能改 這些dll都上生產環境了)如果直接用dll引用之後調用 會有很多很多的問題 1.程式的品質會下降到 這百來個dll中品質最差的一個 (萬一某些人在代碼裡面寫什麼lock(string) 啊什麼的....死啦死啦的) 2.很多dll需要特殊的配置
Time of Update: 2018-12-07
實現單例模式的時候經常要把建構函式標記為private 和protected以防止外部直接通過new操作符 構造一個新的執行個體眾所周知 private 和protected的主要區別就是 後者允許子類調用被標記為protected的方法另外一個常識: 使用new操作符構造一個子類的過程中 .net會先構造一個父類出來 ,如此遞迴 直到object對象那麼也就是說 標記為protected的時候 實際上還是可以通過繼承的方式間接的構造父類對象代碼如下: (new
Time of Update: 2018-12-07
今天有一個朋友告訴我他的程式發生了StackOverFlowException可是查來查去不知道為什麼,就一段遞迴代碼幾個人閱讀過似乎都沒有問題以下是簡化版的代碼 (真實的代碼複雜很多,不過大意如下) static void Test(int i) {if (i > 20000)//或者其他允出準則 {return; } Test(i + 1); }static void Main(
Time of Update: 2018-12-07
快速排序是實際編程應用中最常見的排序方式他有非常好的效能最差情況的時間複雜度為 O(N平方)平均情況的時間複雜度為 O(N logN) ,而且擁有一個非常小的係數並且空間複雜度也非常小 就是O(N)不過這個演算法也是比較難理解的...以下是一個使用最後一個元素作為pivot的快速演算法實現using System;using System.Collections.Generic;using System.Linq;using System.Text;using
Time of Update: 2018-12-07
以下是個人理解:Compute 主要指的是CPU密集型或者是其他計算密集型的操作I/O 這裡指的是操作檔案或者網路等適用的非同步情況父子依賴指的是 一個任務是不是依賴於其他任務的狀態而執行(例如A任務完成取消或者異常的時候 B任務執行)取消: 一個任務開始以後是否能夠被終止等待:能否block住當前線程以等待非同步作業的完成(是否有內建功能支援)逾時:能否對非同步任務設定逾時時間傳回值和異常:能否處理非同步任務的傳回值和異常(是否有內建功能支援) 非同步方式主要應用Emulate
Time of Update: 2018-12-07
現在的web開發用到javascript越來與多,其中jquery已經是事實上最流行的javascript library了經常我們會使用javascipt來操作 dom/html 例如 html="<a href='#'>test </a>";不過這樣的代碼難以維護和閱讀JQuery1.4.3 以及以上的版本已經支援了template engine的功能 (當然,還有很多第三方的實現,例如microsoft template engine,
Time of Update: 2018-12-07
lock是.net中最常用的鎖瞭解lock機制,參考型別,實值型別,字串和應用程式定義域的朋友可能對以下的內容都很熟悉了 1.先來看看推薦的lock代碼 class LockDemo {private static object asyncLock = new object();//使用static object作為互斥資源 public static void Test() {lock (asyncLock)//保證該方法是安全執行緒的