原创 案例分析:面向對象得失論

緣起 最近一段時間,在博客園關於面向對象的討論比較熱烈,你來我往的,好不熱鬧。不完全歸納一下,大約有以下幾種意見比較受歡迎: A.        面向對象需要組織、團隊支持,需要一種環境; B.        面向對象比面向過程編程要複雜,

原创 以非泛型方式調用泛型方法(三)

結論:以下是測試代碼: using System;using System.Collections.Generic;using System.Reflection;using System.Text;namespace GenericMet

原创 也說 ASP.NET MVC的 Script 管理

WebForm下的ScriptManager在ASP.NET MVC下自然是不能使用的。於是很多人開始困惑如何管理頁面上可能發生衝突的腳本。CodePlex上還有一個項目專門做這件事情,當然也有人簡單地通過HtmlHelper來解決。如果你

原创 MSDN,微軟怎麼會這樣啊?

天查閱MSDN,關於ADO.NET Entity Framework的繼承,發現一個問題讓人惱火。一個是“通過每種類型一個表繼承以定義模型”,另一個是“通過每個層次結構一個表繼承以定義模型”。它們提供的數據庫腳本居然完全一樣?!這還不算。我

原创 在ASP.NET應用程序中捕捉身份驗證狀態的變化

前年我寫過一篇隨筆抱怨Microsoft在ASP.NET架構中Session_End事件上處理,說來慚愧,其實當年我對ASP.NET運行時的複雜性理解不足。實話說,捕捉通過身份驗證和註銷身份驗證對我來說,意義重大。例如: 在登錄前先檢

原创 IT風雲錄(開篇詞):我們從David Cutler學到什麼?

David Cutler何許人也?Google一把你就明白了。2008年獲得了美國國家科技和創新獎章,這個獎大概相當於我們國家一年一度的國家科技獎吧,無論如何這是一種不平常的榮耀。儘管他的故事還沒有真正成爲過去,畢竟到現在爲止,他仍然擔任着

原创 ASP.NET MVC的RAD之路(一)

嗨。或許我有極重的RAD情結,當我第一次弄明白ASP.NET MVC架構之後,我忽然發現,RAD有了希望。大多數情況下,當你的Model不幸被修改了,不得不去修改View。而從Model到View的映射還不得不讓人來處理,也就是設計時的處理

原创 ASP.NET MVC + ADO.NET EF 項目實戰(三):引入jQuery

   jQuery是一個重要的客戶端框架,ASP.NET MVC默認的項目模板中就帶了這架。掌握這個框架對於更好地編寫ASP.NET MVC應用是非常重要的。事實上,網上有很多文章講述如何在ASP.NET MVC項目中使用jQuery。例如

原创 用asp.net mvc寫一個後臺文件上傳

因爲要在一個asp.net mvc應用程序中用到一個富文本編輯器,需要後臺上傳文件或圖片,所以動手寫了一個。我也曾經想通過Ajax來實現,看來確實有一定的難度。 參考了以下文檔: A.實現一個Ajax模式的文件上傳有多難? B.ASP.N

原创 閒話時間調度算法

最近一直在忙於做一個分佈式的作業調度器。與通常的作業調度器不同,整個系統中沒有調度中心的,所有入網的服務器都通過公共的協議協商工作。N年前的一個同事目前在一家很有前途的公司發展,前些日子開發了一套用於本公司應用產品的公共平臺,其中也包括一個

原创 ORM漫談

還是以前那句話,我不喜歡ORM這個詞,但是更多的時候又不得不用。看到園友寫的“ ORM是進化還是倒退?”的文章,禁不住想說上幾句。其實進化(或者進步?)或者倒退(或者退化?)是沒有一個清晰標準的,追求這個進步或者倒退實在也沒有什麼意義。但是

原创 以非泛型方式調用泛型方法(一)

通過泛型方法定義具有特定類型意義的方法是常用的手段。但在某些特定情況下,例如在一些通用的框架中,直到運行時才能確定泛型類型參數,就必須通過非泛型方式來調用泛型方法。假定有這樣一個方法: public static void Add<T>(T

原创 我的友情鏈接

51CTO博客開發

原创 體驗ADO.NET Entity Framework的繼承

ADO.NET Entity Framework(以下簡稱ADO.NET EF)有一個非常可信的運行時。之所以不敢在項目中廣泛使用是因爲其糟糕的設計時。這個DSL設計時糟糕在哪裏呢?其一,只能是先設計好數據庫後設計實體模型;其二,如果你修改

原创 POCO真那麼重要麼?

不斷聽timiil向我介紹Entity Framework 4.0的誘人之處。當然,他知道我最需要的是穩定且實用的設計時和提供給我從模型到數據庫的設計體驗,這兩點是EF1.0不能滿足我的。之所以我特別在意這兩點,是爲了滿足我經常性修改模型的