EF新書再下一城,博客來分類第 5 名

雖然我不清楚,為什麼我們的新書《Entity Framework 與 LINQ 開發實戰》在博客來會被分類在「網際網路/企業網路」這個類別中,不過管它的,反正這個分類的書一大堆,而我們的書闖進了前五名了 :)

[點圖可放大]

同時,我們在電腦類的新書中,也繼續挺進第 9 名了。

這陣子一直有讀者詢問這本書的內容,而為了讓大家更清楚,也期許 .NET 開發人員能夠透過這本書,快速入門 LINQ 與 EF ,這兩天,我將會進一步公佈書的細節目錄,相信這完成這本書的閱讀,絕對抵得上花數千甚至上萬的課程,從 LINQ 是什麼,LINQ 的發展脈絡、應用,一直到 Entity Framework 的上手,一次協助讀者打通筋脈,快速速入新世代的 .NET 開發平台。XD

我們挺進博客來電腦類新書前十名了

這值得我們紀念一下,《Entity Framework 與 LINQ 開發實戰》一書正式開賣一週之後,我們挺進博客來電腦類新書的前十名了…



Entity Framework 與 LINQ 技術的導入,對於整個 .NET 平台的影響,不亞於當年的ADO.NET,而 LINQ 經過兩年多以來的蘊釀,也漸漸被廣為使用在各種資料來源的資料搜尋運算。而這本新書會是協助大家進入 EF &LINQ 世界的最佳工具書。

儘管網路提供了更深更廣的資訊,不過,要能有系統的快速消化 EF & LINQ ,這本書是絕對可以滿足所需的學習需求。

以上,是很呆的廣告文,不過句句肺腑,無論如何,一起努力吧 XD

《Entity Framework 與 LINQ 開發實戰》新書排名持續推進

再一次的,我們的新書《Entity Framework 與 LINQ 開發實戰》,排名持續穩建的推進中,目前已經來到博客來的電腦新書榜的第 12 名。
[點圖可放大]

儘管 Entity Framework 還是很新的技術,不過在在其它平台的開發人員,對類似的技術應該不陌生,而微軟整合 LINQ 並致力於將其推廣至整個 .NET 平台,而事實上它也是一門相當出色的技術,相較於 ADO.NET+SQL 的傳統開發方式,有其它很大的優勢。也因此對於 這本書,我們很期望能透過它有效的引領讀者快速的跨入 EF 的世界。

也期盼這本書能獲得更多讀者的支持,繼續挺進,謝謝大家。XD

很抱歉 ! 這一次,沒有贈書了…

對於期待《Entity Framework 與 LINQ 開發實戰》贈書的讀者,我們很抱歉,沒有贈書了。

至於原因,這裏很難也不好說明,需要這本書的讀者,這一次只能請您花錢買,真的抱歉了。

目前,這本新書在市場上的銷售,有了一些還不錯的開始,至少它在銷售上的能見度是有的,這讓我們欣慰,不過距離催生下一本 Entity Framework 進階書的目標,還……很遠,我們還是需要大家的支持,儘管目前工作室的重心,已經不在此類書籍的開發上面,不過,對於 Entity Framework ,我有想要完成套書出版的想法。

1. 《Entity Framework 與 LINQ 開發實戰》
2. 《Entity Framework 專業級商業開發》- 暫訂

第 1 本書是目前已經出版的,目標在於建立所需的基礎,協助傳統「關聯式資料庫/SQL」開發人員,轉向使用 LINQ/Entity Framework 的組合來發展資料庫系統。

第 2 本書則是針對具備 Entity Framework 與 LINQ 基礎的開發人員,進一步討論 Entity Framework 、WCF 與分層設計,以及自訂資料物件等相關進階議題。

希望我們的書,對讀者在 Entity Framework 這門技術的學習有足夠的幫助。

Entity Framework 新書預購 - 進入博客來預售排行榜

電腦書算是書籍市場裏面的小眾分類,通常很難在博客來的各種類型的排行中出現蹤跡,特別是程式語言類的,很高興的是,這一次 Entity Framework 與 LINQ 一書的預購活動,有了一個好的開始,我們擠進了前 20 名,而這是完全沒有分類的排行結果。
[點圖可放大]

當然,我們不會天真的以為這本書會有什麼驚人的銷量,不過多少給了我們一些鼓勵,在出版這條路勇敢的走下去。

書籍的銷量一直在減少,不過並非數位化的結果,而是人們愈來愈不看書了。

事實上,PDF 的文件呈現技術早已成熟了,在 PC 上看書的解析度問題已經小到不是那麼令人在意了,NB 的輕薄化也令書籍的行動化這件事不再是問題,紙本書能夠被取代的部份早已被取代了,所以我們看不到新的百科全書出版、也不再看到人手一本字典,甚至早年的 Java 經典-「Java in a Nutshell」,最具特色的 API 索引部份早已不見紙本書中了。除此之外,數位裝置一直還是難以取代紙本書,包含作註解、快速翻頁,甚至多文本參照,除了這些物理性的限制,更重要的也是最關鍵的,紙本書內容侷限完整性,正是書籍的數位化轉換根本無法複製的經驗,數位裝置在沒有革命性突破之前,我們還是將持續看到一本本的紙本書被印刷出來(未完待續…)

Access 資料庫系統實務 - 新書預告

2010 下半年開始了

我們正在著手開發 Access 資料庫系統的相關書籍


Access 是相當成熟的資料庫系統套裝軟體,被廣泛的使用於各種小型資料庫的開發場合

當然,對於資料庫的教學而言,Access 更是相當的方便,對於建立資料庫的概念相當有用

我們將花費很長的時間來製作這本新書

希望提供有心進入資料庫應用程式開發領域的初學者

一本優秀的教材

Entity Framework 與關聯式資料庫 SQL

Entity Framework 讓我們可以直接透過 LINQ 或是 Entity SQL 進行資料物件搜尋,然後為開發人員建立所需的 SQL ,如果想要看真正送進去資料庫的 SQL ,可以透過呼叫 ObjectQuery 物件的 ToTraceString 方法來取得 。

考慮以下的程式碼:

KTBOOKSEntities ke = new KTBOOKSEntities();
var v = from b in ke.Books
 where b.BookPrice <>700
ObjectQuery objv = ((ObjectQuery)v);
msg+="\n\n SQL ... \n"+objv.ToTraceString();


以下是輸出的 SQL 字串,msg 變數的內容:

SELECT
[Extent1].[BookID] AS [BookID],
[Extent1].[BookTitle] AS [BookTitle],
[Extent1].[BookISBN] AS [BookISBN],
[Extent1].[BookPrice] AS [BookPrice],
[Extent1].[BookAuthor] AS [BookAuthor],
[Extent1].[BookCategoryID] AS [BookCategoryID]
FROM [dbo].[Book] AS [Extent1]
WHERE [Extent1].[BookPrice] <> 700

ASP.NET 與 Entity Framework - EntityDataSource 控制項

網際網路的發展日益成熟,以網頁為視覺化介面的 Web 程式應用益見普遍,而 ASP.NET 的EntityDataSource 控制項可以讓我們快速的建立以 Entity Frmaework 為基礎的資料操作頁面。

ASP.NET 簡化了 Entity Framework 在 Web 應用程式的設計工作,EntityDataSource 控制項支援資料模型的存取操作,來看看如何使用這個控制項協助相關功能的開發作業。 以下是一連串的步驟,由於只需要設定,因此不會有任何程式碼。

首先建立需要的 edmx 檔案,如下圖:


拉一個 GridView 到畫面上作測試用,按一下「新資料來源」,開啟「資料來源組態精靈」:


在「資料來源組態精靈」畫面當中,選擇 Entity ,於畫面下方的「指定資料來源」欄位裏面,輸入「BookEntityDataSource」,按一下「確定」按鈕繼續接下來的設定。



接下來是「設定資料來源」的畫面,由於我們稍早已經完成實體資料模型的設定,因此於其中的「具名連接」選單將其展開,有一項「BOOKSEntities」,直接選取即可。

接下來是設定資料的選取範圍,由於只設定了一個 Book 型別,因此直接將選單展開選取即可,將下方的三個核取方塊勾選,啟用編輯功能,按一下「完成」,即可建立所需的資料繫結功能。


回到原來畫面,出現以下的設定:

相信有ASP.NET使用經驗的讀者,對這個畫面應該不會陌生,其中左下方的 EntityDataSource 控制項,功能與一般的 GridView 無異。現在,我們可以來看看這個網頁了,於瀏覽器執行其內容,可以看到以下的畫面:

Silverlight 的資料繫結物件 - Binding

在你開始建立繫結之前,首先必須確認資料來源,它可以是個包含資料的單一物件,或是物件集合,我們將逐一來看相關的設定,這裏先從最簡單的繫結物件Binding開始,它用來定義連結目標元素以及資料來源之間所需的繫結設定。

最單純的繫結,是將一個特定的值,繫結至控制項的某個特定的屬性,最典型的例如 TextBox 的 Text 屬性,要完成這種繫結,只要建立 Binding 類別的物件實體,然後指定其相關的資料來源屬性與繫結模式即可,我們透過一個範例作說明。底下是這個範例的執行內容,其中的 TextBlock 將指定的字串,透過繫結顯示出來。


這個範例示範最簡單的資料繫結設定,來看看它的實作步驟。

步驟 1.
建立一個Silverlight專案,於其中配置一個 TextBlock 控制項,設定其名稱為 BindTextBlock 。

步驟 2.
切換至後置程式碼檔案,於其中UserControl的載入事件中,輸入底下的程式碼:


using System.Windows.Data;

private void UserControl_Loaded(object sender, RoutedEventArgs e)
{
 string bindingString = "康廷數位 - Silverlight 2.0 教學";
 Binding myBinding = new Binding("");
 myBinding.Mode = BindingMode.OneTime;
 myBinding.Source = bindingString;
 BindTextBlock.SetBinding(TextBlock.TextProperty, myBinding);
}


這段程式碼運用 Binding 物件完成資料繫結的功能設定,由於 Binding 類別位於 System.Windows.Data命名空間,因此要讓這段程式碼正常運作,還必須先引用此命名空間。

接下來建立一個 Binding 物件,分別指定其 Mode 以及 Source 屬性。

Mode 屬性是一個 BindingMode 型態列舉值,代表前述的繫結模式,可能的值為 OneTime、OneWay以 及TwoWay 。 Source 代表所要繫結的資料物件,這裏將一個字串物件bindingString指定給它。

最後,引用畫面上 TextBlock 控制項 BindTextBlock 的 SetBinding 方法完成資料的繫結設定,其中第一個參數為所要繫結的控制項屬性,第二個參數則是上述設定的 Binding 物件,如此一來, myBinding 會將其 Source 屬性的內容,繫結至 BindTextBlock ,並且以指定的 OneTime 為繫結模式。

SetBinding 是一種方法,以下為此方法的定義:

public BindingExpressionBase SetBinding(
 DependencyProperty dp,
 Binding binding
)


dp為控制項所要設定的FrameworkElement依存屬性,binding則是預先設計好的Binding物件。

Silverlight 與 HTML 網頁的互動

*** Silverlight 技術養成顧問系列- HTML/JavaScript 篇 ***
Silverlight 本身透過外掛的型式嵌入網頁中,但是在 HTML網 頁中, Sivlerlihgt 並非一座孤島,若是你己經習慣透過 DOM 與 JavaScript 來處理網頁 UI 元素, Silverlight 同樣提供了與 HTML 互動的相關支援,讓你可以直接從 Silverlight 撰寫後置程式碼與 HTML 元素進行溝通,而這個支援是雙向的,意謂著你也可以直接於網頁寫下 JavaScript ,操作 Silverlight 元素。

如果你已經有現成的 HTML 網頁,想要整合 Silverligth 技術,並且讓它與網頁網頁進行溝通,這些功能可以讓你輕易的達到與 HTML 網頁互動的目的,甚至操作其中的網頁元素。

相較於ASPNET, Silverlight 是一種非常純粹的客戶端技術,它與HTML網頁同樣均位於客戶端的環境底下執行,因此它與網頁的互動要比 ASP.NET 來得容易,而提供相關功能的類別,均封裝於System.Windows.Browser 命名空間。

System.Windows.Browser 命名空間提供了兩個用來存取以及維護DOM的類別,HtmlPage 與 HtmlDocument ,前者允許 Silverlight 能夠執行瀏覽器的DOM存取操作,後者用來表示瀏覽器中的 HTML文件。舉凡存取HTML元素物件(例如 input ),指派事件,甚至觸發網頁的 Submit 事件,都可以透過HtmlDocument 類別所提供的方法,取得所需的HTML元素以執行特定的作業,它是存取維護DOM最主要的功能類別。 HtmlDocument 並沒有建構式,我們透過 HtmlPage的HtmlDocument 屬性取得此物件,它是一個唯讀靜態成員,定義如下:

 public static HtmlDocument Document { get; }

以下的程式碼取得可用的 HtmlDocument 物件,如此一來便能夠執行各種DOM相關的維護作業。

 HtmlDocument htmldoc = HtmlPage.Document;

HtmlPage 包含數個可用的屬性,分別用來取得具備與瀏覽器網頁互動的功能類別,這些屬性成員列舉說明如下:
  • BrowserInformation:用來取得瀏覽器的一般資訊,例如名稱、版本以及作業系統等等。
  • Document:取得瀏覽器文件物件。
  • IsEnabled:取得值,指出 HTML 橋接功能的其餘公用介面區是否已啟用。
  • Plugin:取得Silverlight控制項元素的參照。
  • Window:取得瀏覽器視窗物件。

這些屬性相當有用,它們回傳特定的功能物件,無論瀏覽器的一般資訊或是複雜的DOM文件存取,都可以進一步的經由這些物件進行存取。

下一次,我們來看一些簡單的範例。:)

《Entity Framework 與 LINQ 開發實戰》

作者| 呂高旭
出版日期| 2010-07-19
色彩| 黑白
頁數| 480 頁
定價|NT$ 590
書號| SKNP00019
ISBN-13| 978-986-6348-54-9

|本書特色

專為需要入門LINQ並進一步熟悉Entity Framework的開發人員所設計。由於Entity Framework是透過LINQ來進行資料模型的存取,為了協助開發人員擁有駕馭Entity Framework的能力,本書以系統化的解說方式,從LINQ基礎開始,逐一檢視Entity Framework的各項技術細節。

Entity Framework 與 LINQ 開發實戰 - 序

一般來說,「序」通常是一本書最後完成的部份,值此《Entity Framework 與 LINQ 開發實戰》一書出版前夕,將「序」貼上來分享吧。

2008年三月,筆者出版了討論 LINQ 技術的專書-「LINQ 最佳實務講座」,這本書從 C# 泛型開始,徹底剖析 LINQ 技術的發展脈絡,同時也針對 LINQ to SQL 等應用進行了完整的討論,時值 LINQ 技術隨著 .NET 3.5 釋出不久之際,此書的出版為正體中文的開發人員,提供了市面上唯一一本內容經過系統化整理,適合學習的 LINQ 教學專書。

兩年半的時間過去了,LINQ 從只有少數人瞭解甚至被誤解為 SQL 的取代技術,發展到被實際運用在應用程式的開發環境,隨著 .NET 平台進展至 4.0 , 同時伴隨著 Entity Framework 的發表,筆者重新修訂「LINQ 最佳實務講座」這本書的內容,並且帶著 Entity Framework 的討論內容回來了,而最後的成果便是你即將閱讀的這本「Entity Framework 與 LINQ 開發實戰」新書。

在「LINQ 最佳實務講座」一書的序文開始時這樣描述 LINQ :將資料查詢技術提升至更高的層次。至於本書所要討論的另外一個主題 Entity Framework ,則是建構應用程式資料模型的革命,徹底改變開發人員發展資料庫應用程式的方式。

從傳統的關聯式資料庫存取,到最新的 Silverlight RIA 應用程式開發,.NET 平台的開發人員即將面對 Entity Framework 成為資料運算平台標準的趨勢,而本書的主要目標在於協助讀者徹底熟悉 LINQ ,同時引領讀者快速進入 Entity Framework 的世界,具備運用 Entity Framework 的基礎能力。

康廷數位-呂高旭
2010/07

當然,EF 是一個龐大的主題,一本入門書是沒有辦法介紹完整的,我們只能在儘可能的情形下,提供最有幫助的內容給讀者,非常希望未來我們還能夠有機會在進階的 EF 專書上見面,期待大家的支持。:)

Silverlight 的資料繫結

*** Silverlight 技術養成顧問系列- 資料處理篇 ***
所謂的資料繫結,是將一個指定的資料來源物件,連結至某個特定的視覺化UI元素(通常是一個控制項),除了資料的呈現,資料繫結最重要的目的,在於進一步讓提供應用程式的使用者透過繫結與底層的資料來源作互動。

一個繫結行為的發生,包含了繫結的目標元素以及繫結的資料來源物件,資料來源包含了所要操作的資料內容,根據使用者的操作,這些資料會在目標元素與來源物件之間流動以達到資料操作的目的。

資料繫結不是將資料來源與控制項連結這麼簡單,它還牽涉資料的異動以及這些行為如何反應且更新至底層的資料來源。為了應付各種繫結型態的需求,特別是資料的更新方式,有三種繫結的模式可供選擇,列舉如下:

  • OneTime:當繫結被建立時,將資料來源的資料內容更新至繫結目標。
  • OneWay:當繫結被建立時或是任何時候資料被更新時,將資料來源的資料內容更新至繫結目標。
  • TwoWay:繫結的目標或是資料來源只要發生任何變更,均會更新兩者資料內容。

良好的繫結設定,可以讓你的 Silverlight 應用程式自動維護資料的更新異動,因此瞭解上述的原理還有如何完成相關實作非常重要。

Silverlight 的 I/O 系統

*** Silverlight 技術養成顧問系列- I/O 篇 ***
I/O 是所有程式語言最重要且最基礎的功能,在程式開發技術的發展史中, Java 結合物件導向設計與串流觀念,更是將 I/O 功能的設計推展至近乎完美的境界,後起之秀 .NET 亦不遑多讓(有興趣者請參考 「.NET 網路與 I/O 技術手冊」一書)。

Silverlight 承襲了.NET 平台,它的 I/O 功能均由.NET Framework 的 IO 命名空間裏面的類別所提供,如果你已經是一個有經驗的 .NET 開發人員,對於這一部份應該相當熟悉, Silverlight 的 System.IO 命名空間內容與 .NET 平台幾乎是相同的,只是它比較陽春,同時有一些安全上的限制。

Silverlight本身是一種Client端應用程式的發展平台,它透過網路下載至客戶端的電腦端的瀏覽器上面執行,這導致了非常嚴重的安全性問題,例如:開發人員可以藉由I/O系統的功能,撰寫惡意程式,於使用者操作Silverlight應用程式的過程中,破壞使用者電腦的檔案系統。

為了兼顧安全上的問題,當我們討論 Silverlight 的 I/O 系統時,讀者會發現它有諸多的限制,例如無法直接執行讀取、異動或是刪除檔案目錄架構等相關動作,無論如何,這是與 .NET Framework 的 I/O 系統最大的差異,除此之外,它的類別內容、提供的功能以及運作原理,甚至類別名稱均是相同的,因此有經驗的開發人員對於這一部份應該很容易進入狀況。

基本的 I/O 作業主要包含兩種類型:分別是「檔案目錄架構的存取操作」以及「資料來源的讀寫作業」。前者針對檔案總管的組成項目(包含檔案與目錄),進行操作,例如新增、刪除、修改以及複製、移動等等。另外,資料來源的讀寫則是將資料寫入檔案、或是從檔案讀取資料內容。

不同於傳統的 .NET 平台,在 Silverlight ,目錄檔案作業的相關功能由另外一個稱為隔離儲存的機制所提供,相關的類別位於System.IO.IsolatedStorage 命名空間,針對一些檔案的存取功能,同時搭配 System.IO 命空間才能提供完整的存取效果,後續的文章,我們將陸續討論相關的細節。

Symbian 版 Silverlight

Symbian 版本的 Silverlight 釋出了,在行動裝置平台,除了 Windows Phone ,現在我們可以藉由 Silverlight 開發於 NOKIA 這款作業系統執行的手機應用程式了。當然,談到手機,首先想到的除了 iPhone 便是 Android 了,iPhone 因為封閉的特性,要看到其專屬的版本可能不容易,至於 Android ,因為是開放的系統,在未來應該不難見到有其專屬的版本。

以目前來看,Silverlight 確實有機會成為微軟真正跨平台的完美技術,當然,身為一名開發人員樂於見到這種狀況,只要不排斥微軟技術,學一種就能通吃在投資報酬率上是絕對划算的。隨著 Silverlight 4 正體中文工具釋出的日期逼近,我們正準備迎接一場全新的 Silverlight 技術學習盛宴。XD

EntityFramework 與 LINQ 新書封面

新書 7/19 上市,封面最終版已經定稿,貼上來分享一下(點圖可放大)。

應用開始發酵的 Silverlight

我們在 2007/09 出版 「Silverlight:ASP.NET與AJAX開發實務 」時,曾經特別強調 Silverlight 的未來將是在應用程式的開發,而非僅僅 Flash 之類的向量動畫或是影音串流應用。將近三年過去了,進展到 4.0 版的 Silverlight 已經蛻變成為完整的 RIA 開發平台,微軟不斷擴充其可能性,甚至允許直接存取 COM ,並且同時成為 Windows Phone 7 平台的開發技術之一。

除了如 Flash 般不受瀏覽器平台的限制之外,Silverlight 同時橫跨 Web、視窗以及行動同平台的時代已經來臨了。Silverlight 技術的應用不斷出現,而這些應用不是教學的 sample ,它們均是真正上線的系統,從最近的總統府網站,到 Facebook 的應用,均可見到 Silverlight 的蹤跡,銀行的改版系統也可以看到 Silverlight 的需求,當然,微軟自己本身的網站,例如 Windows Phone 之類的就不用多說了。

Silverlight 4 的開發設計工具還沒有釋出,不過這個月應該可以看到了,未來我們將不定時的分享這門技術的使用與學習經驗。

Visual Studio 2010 書系 悄悄登場 - 試賣了


請多多支持鼓勵,這是悅知最新的 Visual Studio 2010 書系(點圖可放大看清楚一點),將於 7/15 出版,現在買比較便宜,左邊算來第二本「Entity Framework 與 LINQ」是小弟的著作,學會 LINQ 與 EF 入門必備,別本沒買沒關係,這本必敗。XD

閒談 Silverlight 與 HTML 5 :標準的定義與程式化能力

儘管是公認的網路標準,然而 HTML 5 的發展目前面臨一些障礙,從源頭的規格製訂者 W3C 與 WHATWG 之間的分岐、瀏覽器的支援程度、到分裂的影音編碼標準,至於瀏覽器的版本就不用考慮了。開發人員想要利用 HTML 5 撰寫一次就能跑遍所有瀏覽器平台的程式碼,即便在未來,可想而知是百分之百不可能的任務,在這種情形下,除了技術名稱之外,所謂的標準是否還算的上標準 ?

我們需要標準,如此一來可以避免為了相容問題而必須撰寫各種版本的程式碼,增加開發與維護的成本,很諷刺的是,Silverlight 與 Flash 這一類由獨立廠商推出,被視為封閉的非標準技術卻可以讓開發人員達到這種目標。

開發人員在考慮採用某項技術時,除了標準之外,生產力是另外一項最重要的評量指標,不僅僅是採用的語言,還有技術開發平台本身所支援的程式化能力。在這一方面,我們很難想像 HTML 5 如何趕上 Silverlight 與 Flash 這一類的技術。

即便 HTML 5 已經可以支援視訊,你還是不可能在短期內看到 Google 將 YouTube 的 Flash 換掉,因為有太多程式化功能是 HTML 5 無法作到的(例如普遍的網頁內嵌功能),特別是強調使用者體驗的時代,貿然換掉 Flash 的成功設計無異自殺。應用程式的開發,不是單純的支援特定的功能標籤這件事而已。


HTML 5 一項很重要的優勢在於不需要外掛,不過話說回來,誰在乎外掛?使用者在乎的是產品,不是安裝
(續…)

網誌存檔