Proxy Pattern是Design Patterns中常用的一種設計模式,目的大致是隔離使用端及目標物件,降低使用端及目標物件的相依性,進而提升應用程式的可變性,也就是延展性。常見的Proxy應用大致如下圖。
Dynamic Proxies in C#
- 39484
- 0
- .NET Framework
- 2020-01-19
Proxy Pattern是Design Patterns中常用的一種設計模式,目的大致是隔離使用端及目標物件,降低使用端及目標物件的相依性,進而提升應用程式的可變性,也就是延展性。常見的Proxy應用大致如下圖。
從2000年C#誕生以來,至今已經過了11年多了,C#的版本號也來到了4.0,在筆者所接觸的語言中,C#算是一個相當具有活力的程式語言,設計者Anders Hejlsberg的大膽且創新的特質充分的反映在這個語言上,
其每次的改版都會出現許多大膽的嘗試,目的是為了讓程式設計師能更快速、簡潔的運用C#來完成一些過去看來很複雜的動作,當然!所謂的大膽及創新的嘗試,通常也會引起正反兩面的意見。
本文列出一些C#中可以減少程式設計師撰寫程式碼數量的特色(語法、指令),其中有些是大家已經耳熟能詳的
Framework最迷人的一點就是,設計時即考量到了延展性的議題,所以一個良好的Framework,必然擁有可擴充的設計存在,本文的Flow Engine雖然簡單,但也具備了這個特色。
Flow Engine,也就是我們常聽到的【流程引擎】,主要用途用於以特定順序執行一系列的工作,就概念上而言,Flow Engine非常簡單,只是依據特定順序來執行一系列工作而已
切出Data Layout,通常是一個資料庫應用程式最初、也是最重要的部分,或許有些初學者對此感到困惑,是的!你可以用SqlDataSource做出客戶資料的編修畫面,
但一旦牽扯到商業邏輯,SqlDataSource絕對不會是選項,硬要使用的話會成為負擔。
想像一下,當設計訂單編修畫面時,你可以使用SqlDataSource來呈現訂單表頭及表身的編輯動作,但儲存前後庫存的控管就一定得回到ADO.NET處理,這時商業
邏輯便會呈現出與UI混雜的窘境,整個應用程式也會變得難以維護。
今日下午,我已將Web Browser(Ph) 1.1 Submit 上Marketplace,1.1版本在按鍵字體上加大許多,個人在實機測試上感覺還不錯(感謝點部落的Mozart,不然我還是得摸瞎^_^)。
1.1版本也支援了href=”tel:xx” 類的用法,因此可以在使用Google Maps查詢店家時直接點選連結撥出電話,另外在選字及過濾的效能也加強許多。
如果順利的話,各位有需要的朋友應該可以在這幾天下載到。
在多數的Mobile系統中,除了原生應用程式的開發平台外,都提供了另一種開發平台,那就是以HTML為主的Mobile Page App架構,在這種架構下,
開發者可以用HTML+JavaScript的方式來開發Mobile Application,像是以往的Windows Mobile 6/6.5、iPhone都支援這種開發方式。
前些日子,有關注我Blog的朋友應該都已經注意到,我發表了Web Browser (Ph) Application上架Marketplace的相關資訊,也分享了退件及通過審核的一些過程。
現在讓我將開發這個應用程式的經驗與大家分享。
如你所知,目前出貨的Windows Phone 7尚未支援中文輸入,所以不管是簡訊、聯絡人、郵件都無法輸入中文,因為缺乏了中文輸入法,必須等待微軟推出更新才能完全解決這些問題。
不過,很幸運的,現在的Marketplace上有廠商已經推出了相關的應用程式,可以緩解現在的窘境,我也開發了一款支援網頁中文輸入的軟體, 以下就讓我做一簡單介紹。
前篇文章所提及,目前Visual Studio Async CTP只能安裝在Visual Studio 2010英文版上,
原本想直接移除,但後來想起,Visual Studio 2010有個機制,允許我們將不同語言的版本裝在同一台電腦上,
所以當下放棄移除重灌的念頭,
在C# 4.0、VB.NET 2010時,C#的主要發明者Anders Hejisberg 宣布這兩個程式語言將進入Dynamic Programming的時代,以dynamic(C#)、Dim(VB.NET 2010)兩個宣告式開啟
了Dynamic Programming時代,從此之後,C#、VB.NET 2010在使用Automation(COM)及其他無法於編譯時期得知型別及成員函式為何時,能更加的簡單即快速來呼叫它們。
在PDC 10中,Anders再次宣告了另一個時代的來臨,C#及VB.NET將攜手進入Async Programming時代,在這個時代中,C#與VB.NET在使用非同步呼叫等相關函式時,將更加的簡便,
更加地趨近於同步呼叫模式。
我想,自從Tech-Days後,不管是程式設計師或是IT人員,對小光都已經不陌生,這個可愛的小女生也正是Silverlight 4技術的代言人,據說,
她還有個巒生妹妹叫月澤光的,不過傳說畢竟只是傳說。
隨著Silverlight的版本快速更迭,其對於資料庫開發的相關技術也日益成熟,就目前現況而論,若程式設計師要使用Silverlight 4來開發資料庫應用程式,至少有三種技術可以選擇,
分別是WCF Service、WCF Data Service、WCF RIA Serivce,其中的WCF Data Service及WCF RIA Service皆是架構於WCF Service之上,但如果設計師深入其中,會發現到我們
無時無刻都在與XAML奮戰,不能像在Windows Form中般,僅動動滑鼠即可完成資料繫結,一定得到XAML中鍵入要繫結的資料欄位,也因為如此,常常有學員提及,Microsoft似乎
在此走了回頭路。
Silverlight 4的OOB+Elevated Trust模式,可以讓我們直接呼叫COM物件,這讓我有了把TSF Helper搬到Silverlight 4
上執行的想法,首先把TSF Helper改寫回COM物件,並註冊到電腦中,這並不難。
從Silverlight 3開始,Silverlight Team即提供了Out Of Browser,簡稱為OOB的模式,在這個模式中,Silverlight應用程式可以完全脫離瀏覽器來執行,
此舉揭開了Client端應用程式的另一新頁。
在Silverlight 4中,Silverlight Team更加入了許多新功能,除了顯而易見的列印、音訊及視訊的支援外,在OOB模式中更加入了Elevated Trust支援,
在這個模式下的OOB,不僅可以脫離瀏覽器執行,更可在有限程度下取用原生系統資源
從網頁應用程式時代開始,程式設計師與版面設計師間如何分工,便是一個難解的習題,程式設計師的專長是寫程式,而版面設計師的專長是做出美美的網頁,
如許多人所預期,Silverlight 3的第一個測試版在今年MIX 09中現身,就架構而言,Silverlight 3其實就如同ASP.NET 2.0與3.5間的關係,僅是立基於原本的Silverlight 2上持續演化而已。
我想不用我贅言,相較於Silverlight 1.0的陽春,Silverlight 2.0提供了更完整的資料庫支援,其最主要的部份在於提供了WCF/HTTP的網路機制及客戶端的控件Binding技術,有了這兩個機制,我們可以透過WCF/HTTP網路機制連回Server端取得資料,然後以Binding技術將控件與資料結合在一起,設計出類似Windows Form/WPF UI介面的強大網頁資料庫應用程式
眾人翹首期盼,Microsoft新一代的Web Application開發平台:Silverlight 2.0終於進入了RTW階段(Release To Web),也就是發佈於網路上供大眾下載的正式版。我知道,多數開發者及使用者,對這個技術多半抱持著觀望的態度,畢竟Silverlight 1.0的經驗,讓許多開發者吃了不少苦頭,不支援中文、使用JavaScript、不支援文字輸入,諸多的限制讓Silverlight 1.0停滯在只能用來做動畫的階段,更糟的是,Microsoft所推出的專屬設計工具:Blend又一直處於穩定性、功能性不佳,製作Silverlight 1.0的應用程式對開發者及設計者來說,都不是件容易的事。常有朋友詢問筆者,在Flash的廣泛佔有率之下,使用一個缺乏強大工具,類似於Flash的Silverlight,究竟有何好處呢?
相信許多使用Beta 2撰寫的Silverlight 2.0應用程式在RC 推出後,
都發生了無法於RC上執行的問題,目前解決方法是,開發該程式的電腦上必須安裝RC,