Time of Update: 2018-12-07
所謂動態代碼執行,和指令碼引擎有點類似。就是程式執行期從字串或者文字檔中讀取一段 C# 代碼,在記憶體中動態編譯成程式集,並建立相互關聯類型執行個體執行相關方法。具體的實現可參考下面的代碼。如需要產生組件檔,可參考《使用CodeDom產生程式集》。using System;using System.Reflection;using System.Globalization;using Microsoft.CSharp;using System.CodeDom;using
Time of Update: 2018-12-07
using System;using Microsoft.CSharp;using System.CodeDom.Compiler;using System.CodeDom;namespace Test.CUI{ class Program { static void Main() { // 建立編譯器對象 CSharpCodeProvider p = new CSharpCodeProvider(); ICodeCompiler cc =
Time of Update: 2018-12-07
.NET Framework 開發員指南 事件冒泡ASP.NET 頁架構提供一種稱為“事件冒泡”的技術,允許子控制項將事件沿其包容階層向上傳播。事件冒泡允許在控制項階層中更方便的位置引發事件,並且允許將事件處理常式附加到原始控制項以及公開冒泡的事件的控制項上。資料繫結控制項(Repeater、DataList 和 DataGrid)使用事件冒泡將子控制項(在項目模板內)引發的命令事件公開為頂級事件。雖然 .NET Framework 中的 ASP.NET
Time of Update: 2018-12-07
今天閑散沒有事情,就寫拉Database Backup和恢複預存程序(和大家交流一下) if exists(select * from sysobjectswhere name='pr_backup_db' and xtype='p')begindrop proc pr_backup_dbendgo/*備份資料庫*/create proc pr_backup_db@flag varchar(10) out,@backup_db_name varchar(128),@filename
Time of Update: 2018-12-07
在實際開發中,我們經常需要從資料庫中讀取資料並賦值給實體類的相應屬性。 比如: public Role[] GetRoles(int BlogID) { System.Collections.ArrayList al=new System.Collections.ArrayList(); IDataReader reader=DbProvider.Instance().GetRoles(BlogID);
Time of Update: 2018-12-07
重設識別欄位(identity)種子 講到 identity 欄位,似乎有兩個非常不同的陣營。有些開發人員,比如受人尊敬的 Joe Celko,相信 identity 列偽造真相,引入了無意義的資料到一個(依其陳述)否則就很緊湊的資料庫中。本文特別贊成第二個陣營(我本人屬於該陣營)。這個陣營認為,一個對象與同一個域中的另外一個對象幾乎一樣(例如一個籃子中的雞蛋)。我們相信這些對象應該被賦予一個無意義的主鍵(PK)。假設你依賴於 identity
Time of Update: 2018-12-07
對於IHttpHandlerFactory,IHttpHandler,xml, xslt 的介紹,網上有很多,我這裡不多介紹。這裡介紹一個基於IHttpHandlerFactory 應用的頁面引擎技術。 我的思路是當用戶端發出http請求時利用實現IHttpHandlerFactory介面的對象執行個體化實現IHttpHandler介面的頁面objExample.exml,在objExample.exml中調用其對應的objExample.xml,
Time of Update: 2018-12-07
客戶要求把所有的查詢做成分頁.要是每個頁面都是做煩死了.與是就想把DATAGRID單獨做成一個控制項.在各個 查詢頁面查出結束後,使用用出來的控制項顯示.思路很清昕,速度做完,調試,出錯,原來那個該死的分頁控制項還要再去執行一次查詢!這個公用控制項總不能一個一個去執行查詢頁中的查詢吧.想想不是可以做個通知嗎,於是加寫事件,調試成功. 代碼: private void Page_Load(object sender, System.EventArgs e) {
Time of Update: 2018-12-07
和一些前輩說的一樣,想學史玉柱的宣傳手段,卻又學不到,用一大堆槍手,本來廠家的開發精神記得肯定,結果用這麼多QS,只會慢慢遭來越來越多的厭惡。易博士的現在發現的槍手名單(主要在百戰論壇、掌間網、HIPDA上活動,不包括廠家ID):讀書郎 點點 EBOOK 魯平 點點點 ddadd(點點啊點點)(典型的正面型主力槍手,發表文章、駁斥文章用)snipe2008 三重虹 受害者(陷害別品牌專用)王丹(剛註冊的,使用的就是我的真名,因為我駁斥他們的卑鄙手段用來報複吧,用我的真名一天內在三大論壇同時註冊,
Time of Update: 2018-12-07
說實話,Nhibernate的學習之路還是不那麼平坦的一來是因為官方的DOCUMENT都不全面,下載回來的NHIBERNATE1.0.2版本的協助文檔,說實話,該講的都沒講二來官方連個STARTER KIT或者QUICK
Time of Update: 2018-12-07
在微軟IE 5.0版本的瀏覽器發布以前,網頁編程中面對的最大挑戰就是不能輕易地建立組件,以達到代碼重用和多頁面共用的目的。這個問題一直困擾著DHTML(動態 HEML)的網頁編程者。他們只能不斷地重複書寫HTML、CSS和javascript的代碼,以滿足多個頁面上的重複或相似的功能。自IE
Time of Update: 2018-12-07
前兩天發布的asp.net日期控制項 有個bug,就是:選取時間的時候,DropDownList這個控制項就看不到(感謝冷雨夜網友的提出的寶貴意見。)這裡進行了改進,同時發布了一個驗證碼控制項。下載這個驗證碼控制項的設計時支援有些問題,不知為什麼,希望得到網友的指點: [Designer(typeof(WebCheckCode.Designer))] [ToolboxData("<{0}:WebCheckCode runat=server></{0}:WebCheckCode&
Time of Update: 2018-12-07
通過網路相互連信的系統之間(如用戶端與服務端的通訊)要想正常互動,它們必須有“共同的語言”,這種語言就是訊息協議。遵守訊息協議的訊息才能被我們的系統所理解。 我們知道,訊息在網路上傳輸的是位元組流,而我們主流的物件導向系統中處理的卻是“對象”,如何將從網路上接收到的位元組流轉化為“對象”,又如何將“對象”轉化為位元組流以便通過網路傳遞給其他系統,這便是IContract介面定義的內容: 1
Time of Update: 2018-12-07
較之C++而言,.NET是一個更加“動態”的平台,其動態能力建立在反射機制之上,而反射的基礎是“中繼資料”。 上文已經提到過,如果一個架構要為我們的應用做更多的事情,那麼這個架構必須建立更多的標準,必須對架構自己要處理的訊息有更多的瞭解,所以,每個訊息都要是自描述的,也就是說每個訊息要包含它自己的“中繼資料”。那麼,“中繼資料”位於訊息的何處了?你一定想到了,對,是訊息頭(MessagHeader)。
Time of Update: 2018-12-07
寫了這麼多篇介紹ESFramework的文章才想起來還有一些很基礎的內容沒有介紹,前面介紹的一些組件、架構基本上是與協議無關的(比如無論是Tcp還是Udp甚至是Remoting、WebService都可以通用),然而到了應用的最底層,我們總需要選擇一種通訊協定,.net
Time of Update: 2018-12-07
上文講述的是AS中的基於串連池的訊息處理器,現在我們把焦點轉移到功能伺服器FS上來,看看FS上訊息指派的過程。當FS接收到到一個請求後,會從已載入的功能外掛程式列表中選擇一個合適的外掛程式來處理這個訊息,而每一個功能外掛程式就相當於一個訊息處理器。FS和AS的結構一致:
Time of Update: 2018-12-07
Time of Update: 2018-12-07
前面我們已經多次提到,每個AS都有一組FS為之服務(回顧),AS將接收到的功能請求通過Tcp串連池 或Remoting轉寄給某個FS處理。下面我們將深入討論AS和FS之間的通訊機制。 首先要解決第一個問題,AS如何知道每個為之服務的FS的地址?
Time of Update: 2018-12-07
前面的兩篇文章我們已經介紹了Tcp串連池和Tcp串連池管理器,並且引入了ITcpPool介面,這個介面可以將單個串連池和一組串連池統一起來,使它們有相同的外部使用方式。現在我們需要考慮的問題是,當訊息指派器指派一個接收到的請求時,如果這個請求需要被FS上的某個功能外掛程式處理,那麼訊息指派器是如何將這個訊息指派到對應的FS上去的?
Time of Update: 2018-12-07