Time of Update: 2018-12-07
最近被字元編碼問題搞的很頭疼,很多編碼方式可謂“耳熟不能詳”,GB2312、ANSI、UTF-8、Unicode…。於是靜下心來,好好學習一番。參考資料:http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.htmlhttp://www.regexlab.com/zh/encoding.htm 字元與編碼的發展 系統內碼說明階段一ASCII電腦剛開始只支援英語,其它語言不能夠在電腦上儲存和顯示。ASCII碼一共規定了128
Time of Update: 2018-12-07
MVC是一種表現模式它的三種角色如下:#Model:用於儲存資料的組件#View:根據Model資料進行內容展示的組件#Controller:接受並處理使用者指令(操作Model),選擇一個View並輸出內容 MVC與三層架構根本沒有可比性,MVC是表現模式,而三層架構是架構模式,你可以在三層架構中使用MVC。看著這幅圖順便說一句,一個好的架構,層與層之間是單向調用的,不過一個完全是單向調用的系統幾乎是不可能出現的。
Time of Update: 2018-12-07
回顧在上一篇中,我們從一個空Package開始建立了一個語言服務的基本架構,並且借用ManagedMyC的Scanner和Parser。這篇中,我們將完成一個簡單的Scanner,先看下: 可以看到在這個語言服務中,大寫字母被著色成紅色,小寫字母是紫色,數字是藍色,其他字元時黑色的。接下來我們就來實現這個功能。 lexer.lex首先修改lexer.lex。刪除原有的代碼,加入如下代碼: %using Babel;%using Babel.Parser;%namespace
Time of Update: 2018-12-07
1.ASP.NET MVC使用URL進行驅動,URL中比較關鍵的規則名有Controller和Action。2.在Application_Start時添加URL規則,規則的順序非常重要。3.物理檔案與URL規則衝突時,調整RouteExistingFiles屬性可以避免。4.使用URL Routing Debugger可以快速檢驗一個URL是否被規則採納。5.配置規則時,關鍵的元素有 URL(例如:{controller}/{action}/{id}) Defaults 預設值
Time of Update: 2018-12-07
round函數文法Math.round(x);round函數參數x --
Time of Update: 2018-12-07
文章目錄 宿主包語言服務類語言核心 準備工作我打算在這篇中介紹一個完整的例子:ManagedMyC,這個例子包含在SDK中,在調試前請先安裝SDK。在Microsoft Visual Studio 2008 SDK的Samples中,找到這個例子,然後在Visual
Time of Update: 2018-12-07
前言當我們熟悉了如何構建起自己的語言服務之後,剩下的問題就是真正的完成掃描和解析,任何一個優秀的語言服務都少不了優秀的掃描程式和解析程式。編寫掃描程式和解析程式有很多種方式,我想Lex和Yacc是比較常用的,否則微軟也不會去實現一個基於C#的Lex和Yacc(我指的是MPLEX 和
Time of Update: 2018-12-07
觸發器分兩種:AFTER觸發器和INSTEAD OF觸發器。觸發器主要針對Insert、Update、Delete等操作進行觸發。INSTEAD OF觸發器可以實現更新VIEW的操作,我看過這方面的例子,一個VIEW中包含多個Table,一般是不能直接更新的,使用了INSTEAD OF觸發器就可以完成這樣的操作。更新操作是先進行Delete再進行Insert,這樣會產生兩個暫存資料表DELETED和INSERTED。扔出錯誤資訊給客戶可以使用RAISERROR
Time of Update: 2018-12-07
最近在公司做新系統,建好模型,發現有一堆枚舉要編寫。為了避免自己造輪子,網上去搜枚舉產生器,居然沒有......反而找到一堆實體產生器,於是只能自己寫了。寫了一個耦合較高的程式...1. 伺服器名寫入程式碼2. 預設表第一個欄位為枚舉值3. 預設表欄位“Name”為枚舉名4.
Time of Update: 2018-12-07
前言本文旨在深入詳解MPPG,掌握它對於編寫parser是必須的。本文的行文思路是根據SDK額外文檔MPPG.pdf中的內容,可以在如下路徑下找到該文檔:C:\Program Files\Microsoft Visual Studio 2008 SDK\VisualStudioIntegration\ExtraDocumentation。本文適合那些對parser.y一知半解的讀者閱讀。 概述MPPG(Managed Package Parser
Time of Update: 2018-12-07
本周公司技術講座輪到我了,準備說說現在流行的jQuery,下面是概要提綱,關鍵是看custom.js,已上傳源碼,程式中“//##”是分段用的,大家可以根據每一段取消注釋,然後找到相應的id或class名查看效果。jQuery真的很好,有些效果甚至讓我尖叫。而各種外掛程式能實現你喜歡的效果,這種方式為jQuery的流行奠定了基礎,就像那個crocs鞋子似的。jQuery還有一個優點是達到了將行為與結構分開的目的。 內容概要:1. 安裝2. Hello jQuery3. Find
Time of Update: 2018-12-07
今天在修改SSIS包時,遇到一個很莫名的情況:將SQL語句 UPDATE [dbo].[Employee] SET DateOfChange = CASE WHEN (? = ?) THEN ? ELSE GETDATE() END WHERE [SerialNumber] = ? 填入OLE DB Command 組件中,運行後一直報錯“[OLE DB Command [2015]] Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB
Time of Update: 2018-12-07
本文開始總結.NET下的多種多線程機制,不斷更新中,往各位補充。Invoke機制最近在實驗一個webservice時候,想到了要用非同步機制,於是好好研究了一下多線程和Invoke機制,這裡寫點小小的心得,如有不妥,請各位指教。我們往往會遇到這樣的需求:有一個十分耗時間的工作(比如一個WebSerive的請求),我們不希望它阻塞現有的UI線程(因為這樣會導致介面假死),而是希望它在另外一個線程裡面執行,並在執行完畢之後將結果“通知”UI線程。這個需求需要通過Invoke和委託機制實現。 參考資料
Time of Update: 2018-12-07
在公司內部有很多基礎架構或者基礎組件,甚至對於使用SOA架構的公司來說,會有大量的業務組件的契約程式集,對於這些架構或組件的引用管理有的人使用原始程式碼控制工具,但是NuGet相比原始程式碼控制工具更方便:1) 安裝和卸載:不需要手動添加和移除引用,不需要手動改寫設定檔甚至是一些初始化服務的代碼。版本升級也只需要執行一條命令。2) 打包:多檔案打包,支援依賴管理等,使用的人沒有繁瑣的配置。對於官方的包,可以在http://www.nuget.org/
Time of Update: 2018-12-07
最近一直在製作SSIS包,又遇到兩個問題,要怪就要怪到微軟的頭上。SSIS和MSSQL同是微軟的產品,當中的原則卻有細微差別,不一點一點調試,根本想不到問題會出在哪裡...1.系統函數DAY()在SSIS中使用時會出現多計算2天的情況,比如我的where條件陳述式如下:where iyear = 2011 and imonth = 3 and iday =
Time of Update: 2018-12-07
文章目錄 逐步開始運行調試 回顧在前面兩篇中,我們研究了ManagedMyC這個例子的代碼結構,瞭解了一個語言服務基本組成以及Managed
Time of Update: 2018-12-07
#讀書筆記# Encapsulate Collection(封裝群集)關鍵是分別建一個add和remove群集元素的函數,並將get封裝為readonly。否則,使用群集的用戶端偷偷改變了元素,群集擁有者卻一無所悉。C#中可用類ReadOnlyCollection或方法AsReadOnly()實現。http://stackoverflow.com/questions/1710902/unmodifiable-lists-in-c
Time of Update: 2018-12-07
Martin的《公司專屬應用程式架構模式》#讀後感#首先這本書是八九年前寫的,翻譯也跟現在流行的術語差異很大,比如field現在常翻譯成“欄位”,而書中翻譯成“域”,讓我鬱悶了很久,不明白這個“域”到底是什麼...所以,以後選書要多長一個心眼。不過,書還是很不錯的,雖然有點晦澀難懂,但讀完還是蠻開心的。 響應性不同於請求處理,它是系統響應請求的速度有多快。這個指標在許多系統裡非常重要,因為對於一些系統而言,如果其響應太慢,使用者將難以忍受——儘管其回應時間可能不慢。如果能夠在處理真正完成之
Time of Update: 2018-12-07
delicious(美味書籤)9月底改版以來,備受新頁面的困擾,沒有以前好用了,書籤也不正常了,迫使我必須進行改變。尋找解決方案不久後,我發現Firefox的書籤是可以在不同的機器上同步的,只要登入相同的帳號就可以,於是我將delicious上的書籤備份成html格式的檔案,準備匯入Firefox,問題就來了:Firefox不相容delicious的備份檔案。於是我寫了一套程式,將這個檔案改成Firefox認識的格式,代碼貼出來,與遇到相同問題的朋友一起共用,開發環境是vs2010。源碼下載:
Time of Update: 2018-12-07
Google搜到一篇blogspot上的文章,講關於User mode 和 Kernel mode,因為翻牆的緣故,特別將它轉載過來。原文連結:http://peachwaneversay.blogspot.com/2007/05/user-mode-vs-kernel-mode.html 這是一篇關於OS(作業系統)的筆記,在這裡我將用Linux kernel作例子,解釋OS中Kernel/User mode的概念,由於作者才疏學淺,若有闕漏以及謬誤,敬請指正,感謝。在