前陣子看到許多朋友轉載這篇關於如何使用C# 快速建立物件實體的文章
前陣子看到許多朋友轉載這篇關於如何使用C# 快速建立物件實體的文章
C# 並不是唯一一個提供語法糖的程式語言,但卻是少數敢持續在新版本中加進數量堪稱大量語法糖的語言,單以語法糖這點來說,C# 算是發揮得相當極致。
憑藉著Node.JS豐富的資源,傳統Desktop Application能做的事,Electron幾乎都做得到,前提是你能找到適用的套件,但總有些時候,能找到的套件雖然能達到你要的目的,但卻附帶一些不想要的後果,例如複雜的使用架構,或是效能不符需求,相依性過大等等,這時Electron Edge這類可以橋接.NET Library的機制就很有用。
Proxy Pattern是Design Patterns中常用的一種設計模式,目的大致是隔離使用端及目標物件,降低使用端及目標物件的相依性,進而提升應用程式的可變性,也就是延展性。常見的Proxy應用大致如下圖。
delegate是C#的關鍵保留字,用來宣告可裝載函式的型別
隨著Windows Azure Platform的發展,其支援的平台及語言也越來越多,行動裝置自然也是重點之一,從去年開始,Windows Azure Toolkit for Windows Phone率先推出,
緊接著for iOS與Android版本也釋出了。10個月後的今天,這些Windows Azure Toolkits隨著Windows Azure Platform的發展逐步演進
OK,一個全新的東西有何歷史可言?事實上,Windows Metadata本身並非是一個全新的東西,她最早的雛形
出現在.NET Framework 3.5 SP1,當初是為了Client Profile的目的而發明。
從2000年C#誕生以來,至今已經過了11年多了,C#的版本號也來到了4.0,在筆者所接觸的語言中,C#算是一個相當具有活力的程式語言,設計者Anders Hejlsberg的大膽且創新的特質充分的反映在這個語言上,
其每次的改版都會出現許多大膽的嘗試,目的是為了讓程式設計師能更快速、簡潔的運用C#來完成一些過去看來很複雜的動作,當然!所謂的大膽及創新的嘗試,通常也會引起正反兩面的意見。
本文列出一些C#中可以減少程式設計師撰寫程式碼數量的特色(語法、指令),其中有些是大家已經耳熟能詳的
Flow Engine,也就是我們常聽到的【流程引擎】,主要用途用於以特定順序執行一系列的工作,就概念上而言,Flow Engine非常簡單,只是依據特定順序來執行一系列工作而已
在ASP.NET 4.0中,有一個很有趣的特色:Pre Application Start Method,原本在ASP.NET中,當應用程式起始時首先被呼叫的是Global.asax中的Application_Start函式,新增的Pre Application Start Method機制
則稍微改變了這個流程,當某個Assembly標示了PreApplicationStar Method Attribute後,ASP.NET會在應用程式起始時呼叫指定的函式,這個動作發生在Global.asax中的Application_Start之前
切出Data Layout,通常是一個資料庫應用程式最初、也是最重要的部分,或許有些初學者對此感到困惑,是的!你可以用SqlDataSource做出客戶資料的編修畫面,
但一旦牽扯到商業邏輯,SqlDataSource絕對不會是選項,硬要使用的話會成為負擔。
想像一下,當設計訂單編修畫面時,你可以使用SqlDataSource來呈現訂單表頭及表身的編輯動作,但儲存前後庫存的控管就一定得回到ADO.NET處理,這時商業
邏輯便會呈現出與UI混雜的窘境,整個應用程式也會變得難以維護。
前一篇中,我們設計了GridViewHandler及FormViewHandler,讓商業邏輯可以由主程式中抽離,放置於外部來動態選擇要載入那些商業邏輯,就該例而言,這個設計除了將原本該
置於Data Layout的商業邏輯與UI扯上關聯外,其實並無其它設計較為不當之處,而將商業邏輯與UI扯上關聯這點,其實也是為了讓範例更加簡單易懂而特意設計的,要將這種設計
移置Data Layout裡也很簡單。
前篇文章所提及,目前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在使用非同步呼叫等相關函式時,將更加的簡便,
更加地趨近於同步呼叫模式。
多數的O/R Mapping Framework都有個共同的行為模式,在刪除資料或是修改資料前,必須隱式的下達一個Query,由資料庫取得即將要更新的資料列,
然後轉成物件後再更新。
這個行為模式,多半也會成為設計師考慮是否使用O/R Mapping Framework的考量之一,因為多一個Query,就代表著效能會因此降低
關聯式資料庫(RDBMS),轉眼間已經陪伴了我們30幾年,也證明了它是近30年來最佳的資料儲存策略,但隨著雲端技術的來臨,這個老朋友卻遲遲未跟上腳步
Microsoft於日前釋出了Windows Azure Tools 1.2.......
在CPU進入多核心時代後,原本只限應用於高階多CPU電腦的平行運算技術,也因為多核心的平價化而逐漸浮現在家用電腦應用,什麼是平行運算呢?說穿了其實很簡單,就是依據CPU所內含的核心數,建立對應數量的執行緒,此時CPU的效能會發揮到極致,以2核心CPU為例,
圖18中有三個角色,Task Factory負責建立Task物件,Task Scheduler則負責Task的排程事宜。讀者們會覺得很奇怪,至今為止,我們建立Task的方式都是直接以new方式建立,其中並未見到Task Factory的蹤影呀?是的!這是因為Task類別的建構子預設會使用系統所產生的Task Factory物件,所以不需要設計師特別的傳入Task Factory或是明確的使用Task Factory來建立Task,以下是Task類別的模擬碼。
Task Library除了支援Planed/Un plan Exit時的例外處理,及Local Queue、Working Stealing機制外,還有一項很有趣的機制,那就是Continue With機制,這個機制允許設計師在一個執行緒結束後,緊接著安排另一個執行緒來執行指定的delegate,以較簡單、白話的說,就是執行緒的流程控管機制。