Time of Update: 2018-12-07
學習ASP.NET有大約一個月了,一直都是半生不熟的,因為之前的很長時間都是在做java開發,沒有時間靜下來心來學習,加上ASP.NET的架構也很複雜,一時間也是看的昏頭轉向的,所以只能看到一點記錄一點,慢慢積累,慢慢總結吧。 Action向View傳遞資料很簡單,方式也很多,最直接的就是我們向View傳遞Model,這本身就是MVC的意義所在。如果是顯示一些訊息,像是錯誤資訊,可以使用ViewData:public ActionResult Index(){
Time of Update: 2018-12-07
剛踏進編程的大門,就已經知道兩道菜鳥很難逾越的大門:演算法和設計模式。演算法得看是哪個領域,用於解決什麼樣的問題,越是複雜的問題,演算法自然就會越複雜。至於設計模式,道理很淺顯,因為它們是編程領域中智慧和經驗的結晶,而程式員的天性就是想要更加簡單的解決問題。可惜的是,這種經驗並不是菜鳥一開始就能學習到的,就像是RPG遊戲中的神級裝備,角色本身也必須具有一定的等級和能力才能使用。但所有大的東西都是從小的方面積累起來,多思考,多嘗試,練怪練多了,等級自然就會上去了。
Time of Update: 2018-12-07
策略模式並沒有表面上那麼高深,相反,它的實現意圖非常淺顯,就是我們程式員實在不想在判斷一大堆條件後寫一些基本上都差不多的代碼(即演算法的變體,明明是同一種演算法,只是因為輸入不一樣就要重複一次),煩!沒錯,就是這種感覺,催生這種模式。我相信,當初設計這種模式的傢伙一定是忍無可忍了。 為講解策略模式,我特意準備一個活用策略模式的介面類---Collections.sort這個方法中的comparator。
Time of Update: 2018-12-07
前言 自己在部落格園也遊歷了一年左右,對部落格園中博友們發的博文每天也是多多少少也看了不少,自己也從中獲益不少。因為自己現在是在做.net網站的,所以對網站也是多多宜善。也看到許多大神們自己的開源網站、開源架構,當然了其中有太多都沒看懂,自己幾斤幾兩自己也很清楚。有時候也經常寫幾個簡單的小demo,但是做整個網站,還真是沒有過。這幾天自己也一直在想,要自己也做一個網站,肯定能從中獲得更多的樂趣和知識。先不說自己做什麼樣的網站,自己這兩天花了一點時間,在想自己網站的一個簡單的架構吧。因為自己懂得
Time of Update: 2018-12-07
OptimalVision網路視頻監控系統OptimalVision(OV)網路視頻監控系統(Video Surveillance System),是一套基於.NET、C#、WCF、WPF等技術構建的IP網路視頻監控系統。設計與實現該系統的初衷是希望在家用電腦中部署該系統,串連本地或區域網路裝置,通過瀏覽器或手機用戶端瀏覽寶寶即時視頻,也就是俗稱的“寶寶線上”或“家庭看護”。但由於業餘時間總是有限,完成系統中的服務、配置、採集、傳輸和案頭GUI部分後,繼續完成後續移動用戶端的動力與興趣明顯減弱,
Time of Update: 2018-12-07
什麼是靜態單例模式?靜態單例模式(Static Singleton Pattern)是我在實踐中總結的模式,主要解決的問題是在預Crowdsourced Security Testing道某依賴項為單例應用時,通過靜態緩衝該依賴項來提供訪問。當然,解決該問題的辦法有很多,這隻是其中一個。實現細節 /// <summary> /// 靜態單例 /// </summary> /// <typeparam
Time of Update: 2018-12-07
什麼是Flyweight模式?享元模式(Flyweight Pattern)是一種軟體開發中的設計模式,其主要解決的問題是通過類對象的共用,來避免大量建立擁有相同內容的對象的開銷。可以簡單理解用空間換取時間。舉例說明一般的設計模式解釋中都會用到如下兩種情境來解釋Flyweight Pattern:GUI文書處理軟體中每個文字都是對象,緩衝這些對象公用。字串駐留技術(String Interning)。具體實現 /// <summary> /// 享元模式Flyweight的實現
Time of Update: 2018-12-07
這學期Web程式設計的課程設計是班級網站,使用的是ASP.NET,所以我決定使用ASP.NET MVC來完成這個題目。 先是完成了一個小小的東西--註冊介面: 要做到這樣的頁面其實非常簡單,只要一個fieldset就行,關鍵是警告訊息也就是驗證這裡。 MVC為資料註解提供了很多便利,要做到上面的效果,只要在model中相關的屬性欄位添加資料註解就行: public class User {
Time of Update: 2018-12-07
對於一個屬性或者方法調用的傳回值,可以使用函數來返回結果。這允許我們在替代執行個體中嵌入更加複雜的邏輯。儘管通常來說這不是一個好的做法,但在某些情況下確實很有用。 1 public interface ICalculator 2 { 3 int Add(int a, int b); 4 string Mode { get; set; } 5 } 6 7 [TestMethod] 8 public void
Time of Update: 2018-12-07
PerThreadLifetimeManager的問題使用Unity內建的PerThreadLifetimeManager生存期模型時,其基於ThreadStatic的TLS(Thread Local Storage)設計,也就是說對於每個託管的ManagedThreadId,其會緩衝已產生的對象執行個體。由於CLR維護了託管線程池,使用過的線程並不會立即銷毀,在需要的時候會繼續複用。在類似ASP.NET PerCall或WCF
Time of Update: 2018-12-07
在做註冊介面的時候,出現了兩個錯誤,讓我糾結得想死,幸好最後都解決了,只能怪自己對MVC的Membership瞭解得不深,尤其是有關Web.Config的配置問題。問題一:Membership.IsValid返回為false 這個問題一開始讓我很無語,因為在之前也有做過註冊介面,但並不會出現這樣的問題,代碼如下:[HttpPost] public ActionResult Register(RegisterModel model) {
Time of Update: 2018-12-07
需求描述按鈕的狀態需要根據多個資料來源的內容作出不同的組合判斷每個資料來源的判斷規則可定製註:以下功能感覺只是簡單粗暴的實現,如果您瞭解更優雅的解決方案,煩請告訴我下,感謝先!按鈕XAML 1 <Button Name="btnOK" 2 Grid.Column="2" 3 HorizontalAlignment="Left" 4
Time of Update: 2018-12-07
問:一個.NET程式在運行時到底啟動了多少個線程?答:至少3個。啟動CLR並運行Main方法的主線程調試器協助線程Finalizer線程 class Program { static void Main(string[] args) { Console.WriteLine("Main thread: {0}", Thread.CurrentThread.ManagedThreadId); Console.ReadKey(); } }通常,
Time of Update: 2018-12-07
在沒有TPL(Task Parallel Library)之前,使用ThreadPool處理多線程事務及等待,可能類似如下代碼: 1 class Program 2 { 3 [ThreadStatic] 4 static int PerThreadValue; 5 6 static void Main(string[] args) 7 { 8 Console.WriteLine("Main thread: {0}", 9
Time of Update: 2018-12-07
使用說明:首先修改meetrice.sublime-settings中的配置 1.shift+f9 快速發布選中的內容2.在彈出的對話方塊架填寫"標題"3.在彈出的對話方塊中填寫"tag"發布成功! 百度網盤下載 import osimport threadingfrom xmlrpc.client import ServerProxy, Errorimport html.parserfrom itertools import groupbyfrom operator import
Time of Update: 2018-12-07
通過使用參數匹配器,可以配置將不同的組合參數傳遞至方法調用。在參數匹配器一節將更為詳細的介紹這一功能。下面的樣本介紹了一般用法: 1 public interface ICalculator 2 { 3 int Add(int a, int b); 4 string Mode { get; set; } 5 } 6 7 [TestMethod] 8 public void
Time of Update: 2018-12-07
建立一個替代執行個體的基本文法:var substitute = Substitute.For<ISomeInterface>();這就是通常情況下你建立一個類型的替代執行個體的方法。一般來說,這個類型是一個介面,但是在一些特殊情況下,也可以對類進行替代。警告:類的替代可能會有一些不太好的副作用。NSubstitute
Time of Update: 2018-12-07
優秀來自好的習慣。怎樣成為優秀的開發人員?圖靈公司最近熱銷的《高效程式員的45個習慣》一書給出了很好的解答,非常值得一讀。這本書的英文原版榮獲了有軟體奧斯卡之稱的Jolt生產效率大獎,在Amazon上也是好評如潮。第一作者Venkat Subramaniam博士是Agile Developer公司創始人,敏捷開發方面的權威人士,精通各種開發技術。第二作者Andy Hunt更是大名鼎鼎的人物,是敏捷宣言的創始人,著名圖書出版公司Pragmatic Programmers的創始人。他有兩本書大家應該
Time of Update: 2018-12-07
通過使用 ReturnsForAnyArgs() 方法,可以設定當一個方法被調用後,無論參數是什麼,都返回指定的值。 1 public interface ICalculator 2 { 3 int Add(int a, int b); 4 string Mode { get; set; } 5 } 6 7 [TestMethod] 8 public void
Time of Update: 2018-12-07
NSubstitute入門最簡單的入門方式就是建立一個測試專案,並將 NSubstitute 引用到其中。可以通過 NuGet 或 OpenWrap 來擷取 NSubstitute 包。也可以直接下載 NSubstitute 檔案,然後將 NSubstitute.dll 引用到項目中。然後就可以建立一個新的測試 Fixture(可以選擇使用你最喜歡的UT測試架構,本文涉及的樣本中我們使用MSTest),開始思考從哪裡入手。首先,添加 using NSubstitute; 到當前的C#代碼檔案中,