cli缺憾之一:公共體系結構定義
hierarchical structure
是一種應用極其廣泛的資料結構
(樹結構
),其意義完全可以和
collection
結構相提並論。可是
.net framework
的cli
提供了collection
卻沒有提供
hierarchy
。絕大部分情況下,你可以通過其它方式
(例如配合集合再定義一些介面
)來實現,但是不能否認這些實現都很受侷限,並且存在一些明顯不合理的依賴。我在實現業務邏輯的時候,想通過某種方式通知表現層通過
hierarchy
的方式來處理。而表現層是通過乙個實現
hierarchical structure
的公共控制項實現的
(這樣的情況在
.net
下非常普遍
),沒有理由要依賴我特定的業務層。
我所期望的
hierarchy
服務至少應該提供兩個介面和乙個基類:
之所以我覺得這個服務應該由
cli提供,很簡單的理由,這些結構應用非常普遍,完全應該是一種公共的、基本的依賴。
我設計的
hierarchy
服務在kanas.hierarchizations
命名空間,除了以上介面和基類外,還提供了乙個服務類和兩個將普通型別包裝成
hierarchical
結構的介面。
應用場景:選單,視覺化的樹檢視,目錄體系、組織結構、財務科目、詞典類,等等等等。
cli缺憾之二:視覺化框架
.net
提供的propertygrid
是visual studio.net
設計時支援的基礎,為此,
microsoft
為.net
的propertygrid
提供了極其強大的擴充套件能力。
componentmodel
命名空間下的很多態別及屬性都提供了對編輯器、設計器、型別轉換器的支援。不過很顯然地,其中存在一些設計漏洞,例如沒有提供足夠的抽象,直接導致了某些不必要的侷限。其後果一是所有提供設計時支援的
attribute
都幾乎只能應用於
propertygrid
,讓執行時型別揹負設計時支援的包袱顯然有種職責不清的嫌疑;其後果二是
propertygrid
只提供了下拉和彈出兩種模式的型別編輯,當然目前是夠用的,但不能保證任何時候都夠用。
現如今我就遇到這個問題。
typeconverterattribute
和typeeditorattribute
這兩個屬性就必須進行
web架構的擴充套件而不是完全依賴
windowsforms
。直觀的感覺是,設計時特徵依賴執行時特徵是合理的,相反則不合理。當然,設計時
attribute
在執行時沒有任何意義,也不會給執行時帶來額外的效能問題。可是,為什麼不能將設計時
attribute
設計成更好的模型?例如可以設計成侵入式或者附加式。
我設計的物件設計時服務在
kanas.objectscope
命名空間,採用的是附加式策略。當需要在執行時使用類似設計時服務的功能時便可以更靈活地使用。這個服務是基於乙個
xml的
schema
,將物件的探查或展示方案部署到相應的配置檔案中,執行時根據這些配置獲得設計時支援。與
componentmodel
的設計思想一樣,這一套服務應該包括公共定義(契約
)、配置提供器(服務
)、物件展示及編輯(消費
)三部分。
定義部分包括乙個
xsd(
設計成component
以備設計時使用
)、三個不同配置方案的實現
(分別實現對
xml配置檔案、
xml配置資源和全域性配置檔案節三種配置方式
)。物件的展示是表現層的事情,本套服務不需要實現。不過在本套服務中,通過配置的資料轉換器介面實現了從物件集合到資料集的自動轉換,分別是
kanas.common
命名空間中的
typebounddatatable
和listdatatable
。兩者的區別是:前者不依賴
scope
方案,單純實現
icollection
到datatable
的轉換;後者是前者的派生,可以通過
scope
方案影響
datatable
的生成。
當然,這個方案也存在很大的侷限,甚至顯得非常粗糙。不過就其擺脫消費依賴來說還是有意義的。當然,眼下只實現了對
property
的配置,缺乏對實現對
invocation
及event hook
的擴充套件,也缺乏對更詳細的視覺化屬性(例如
componentmodel
中的categoryattribute)
的定義。
這就是這個簡陋的
schema
:這個實現,如果需要原始碼請來信索取。
細節決定成敗,態度決定一切
背景 前天也就是周五5點30 9點自己在家看 c 從入門到精通 這邊書,9點10分的時候去機房跟周四值班的童鞋進行交 剛一到機房就聽到有些同學說公尺老師早上8點的時候,去每乙個屋子關心了一下大家學習的環境,並且拍照記錄了一下我們每一位同學的學習環境,拍了好多張 當時自己心想著,嗯,應該要有什麼事情發...
讀書心得一 細節決定成敗 基礎決定命運
最近一直在讀一本書 做人做事做到位 東方出版社出版,李偉譯。是韓老大推薦我看的一本書。對我起了很大的幫助。今天就把在讀書的時候一些心得和大家分享一下。在書的前言中說,無論什麼事情,基礎都很重要。如果掌握不了基礎,本應該成長的人也成長不起來。在體育或者遊戲乃至工作中,基礎和規則一樣重要。在就這一段話發...
態度決定一切,細節決定成敗 12 21總結
又到了一周寫部落格的時候,這一周毫無收穫,在小組的學習效率非常低,越到了要努力的時候,自己卻越加的懶散,這個臭毛病必須得改。後端第一次考核也結束了,這次考核完成的非常不好,由於某些原因,自己並沒有將全部心思放在考核上,匆匆完成了考核的專案,但並沒有針對專案中存在的問題去進行修改,而是去做了別的事情。...