ILOG Views for .NET技術介紹

來源:互聯網
上載者:User
   一、 Gantt for .NET介紹

  甘特圖(Gantt)是作業排序中最常用的一種工具,最早由Henry L. Gantt於1917年提出。這種方法基於作業排序的目的,是將任務與時間聯絡起來的表現形式之一。有兩種基本形式的甘特圖:任務進度圖和資源調度圖。通常工業應用,如製造廠、運輸業以及工程管理,均可以依靠甘特圖的直觀顯示,進行組織運營來提高工作效率。

  對於作業排序類似的問題,ILOG Gantt for .NET與同類產品相比,是一個非常理想的解決工具。它為幾乎所有的顯示元素提供了個人化的圖形顯示,全面的使用者互動介面,實現了對底層大型資料對象的串連和管理,可以讓.NET開發人員迅速地建立直觀的、互動甘特圖表。

  1.ILOG Gantt for .NET提供的眾多的功能:

  · 面向任務的圖表(任務進度圖Gantt Chart)

  任務進度圖表示項目中的各階段工作的開始時間、計劃完成時間以及現在的進度。可以用來瞭解任務安排的情況以及任務之間的約束關係,這種類型的圖表通常可用於項目的計劃管理中。

  · 面向資源的圖表(資源調度圖Schedule Chart)

  資源調度圖表示項目中各階段使用資源的情況,顯示給定資源的任務和操作時間的安排情況。

  · 甘特樹形表(Gantt Table)

  以列表方式表示任務或者資源,列表中的項目可包含子任務和子資源。

  · 資源負載度(Load Chart)

  用於顯示一系列資源隨著時間使用的狀況,體現某一段時間內的資源負載度。

  · 日曆顯示(CalendarView)

  在日曆中顯示各個任務,是Gantt for .NET 2.0新增的功能,方便直觀地看到各個工作日下的任務。

  2.ILOG Gantt for .NET主要有以下特徵:

  具有各種構件,如任務進度圖(Gantt Chart)、資源調度圖(Schedule Chart)等。任務進度圖通常用在工程的管理項目中,每個任務與甘特圖中的一行關聯,顯示該任務的時間段;資源調度圖通常用在製造和運輸項目中,資源調度圖顯示工作流程中實施資源狀況。

  各大主要控制項又是由小的控制群組成,使用起來靈活方便,又易於擴充其功能。

  在VS.NET2003設計模式下的快速開發,每個構件都提供了控制項形式。安裝完ILOG Gantt for .NET2.0後,進入VS.NET,就能在工具列中看到Gantt所提供的部分控制項(Win Form和Web Form兩欄,後者用在ASP.NET中),如果預設不夠,還可以繼續添加Gantt所提供的其他控制項。

  Gantt for .NET是基於MVC結構的,它包含了一個抽象的資料模型和一些用於顯示資料模型中資料的組件。當修改資料模型中的資料來源時,顯示資料的組件就會體現出來;更改顯示資料的組件的內容,也能容易地更改資料模型中相應的資料。

  Gantt for .NET是基於MVC模型的,但是和以前介紹過的JViews Gantt不同的是,Gantt for .NET將MVC進行了變形,將View和Control捆綁起來,使得Gantt使用起來更加容易。另外,其資料模型是開放的、可擴充的。

  支援多種資料連線,使用XML或ADO.NET。

  在設計模式下,簡單設定屬性和樣式,就可以做大幅度的變化,滿足多種使用者需求。方便的樣式設定:在設計模式中選擇預定義好的AutoFormat,能夠選擇多種不同的樣式,也可以重新定製並產生自己的樣式。

  已定義好的整套的事件,如放大縮小、水平時間翻卷和垂直翻卷、點選移動等,可以滿足大部分使用需求,而不需要再寫任何代碼。

  由於在一個資料集中操作大量的資料,再同時顯示出來,會產生較大的延遲,因此對處理大資料集效能最佳化,Gantt提供了“按需匯入”的機制。Gantt只把當前需要的部分資料載入到記憶體中並顯示,這樣只處理資料的相關部分,執行起來就不會受影響,資料載入的時間也不會拖延。

  預先定義好的列印對話方塊與預覽列印對話方塊,使得列印也變得輕鬆快捷。

  二、 Gantt for .NET基本概念

  Gantt for .NET提供了一個抽象的資料模型,能夠用來適合許多情況的資料,只要這些是和時間進度有關的資料(通過XML或ADO.NET);同時,也可以對於特定的資料,自己進行擴充。以下介紹一些概念,主要是Gantt for .NET資料模型中的四個資料體,以及Gantt for .NET提供的其它一些功能術語。

  1.IGanttModel是Gantt for .NET中的資料模型,它包含了以下四個資料體:

  · Activities(任務)

  表示某一期間的任務,其期間(duration)由開始時間(start time),和結束時間(end time)來定義。如果起始和結束時間相同,它的持續期就為零。零持續期的任務稱為裡程碑(milestone)。任務又可分等級,這意味著有一個父任務,它能夠被分成許多子任務。一個子任務又可以是下一級任務的父任務,或它就是最底層的葉任務。

  · Resource(資源)

  是完成一個任務所用的方式。它可以是人力、裝置、廠房等等。如同任務一樣,資源也是可以分等級的,如果子資源是人,那麼父資源可能就是部門了,子資源是其中獨立的僱員。

  · Reservation(預留)

  當一個資源被分配給一個任務時,這個分配就稱為預留(Reservation),表示在某個時間段為完成一個任務而需要的資源。一個任務可以有多個預留的資源,一個資源也可以被多個任務預留。

  · Constraint(約束)

  表示兩個任務之間的一種條件,由帶箭頭的多點連線表示的。有以下四種約束情況:start to start, start to end,end to start, end to end。這很容易理解,就比如是一個行為必須要另一個行為的結束才能開始。

  2.The services(其它功能服務):

  Gantt for .NET 還為了提高開發效率,預定義了許多服務供設計開發時使用。

  · Styling (樣式):

  不論是在設計還是運行時,僅僅只要通過改變對話方塊進行設定,就能夠滿足終端使用者顯示時所需的風格,在JViews中,樣式是通過CSS來定義的,這在.NET中是不同的。

  · Print(列印):

  Gantt for .NET是基於.NET

  Framework的,因此,可以調用.NET架構的列印功能,同時也可以使用Gantt for .NET中定義好的預覽列印和列印對話方塊。便捷的設定,包含了列印所需的幾乎所有功能。

  · 可直接調用的修改任務與約束的對話方塊:

  使用預先定義好的用來修改任務與約束的對話方塊,並不需要很多的代碼,就能做到快速地修改顯示視圖中的資料,又由於Gantt for .NET中顯示與控制的捆綁,也就能馬上做到在預先定義好的對話方塊中所修改的資料儲存到資料模型中,提高了開發效率:

  · Clipboard and GanttModel UndoManager(剪貼簿與撤銷重做):

  Gantt for .NET帶來的剪貼簿與撤銷重做,可以在開發時對Gantt圖中的各種資料直接進行剪貼和撤消重做操作。

  (未完,下期將繼續介紹Gantt for .NET的一般架構和如何使用它進行設計開發。)郭健


  圖1 不同的風格樣式


  圖2 可直接調用的修改樣式的對話方塊


  圖3 可直接調用的修改任務的對話方塊

三、Gantt for .NET

  的一般架構

  ILOG Gantt for .NET是基於ILOG Views for .NET架構之上的這樣一個類庫:它對於顯示與時間相關的資訊,對於資源和任務的進程調度處理提供了強大支援的類庫。

  1. 基於MVC模式的變形,V-C的捆綁,與M的分離:

  上篇中已經介紹過, Gantt for .NET是基於MVC模式的一種變形,稱為Model-View Separation。在這種設計方式中,Model管理圖表組件的資料,是底層的資料模型;View與Control結合在一起,管理著Model中資料的圖形表示,在Gantt中這種設計模式可以清楚地區分資料模型和資料表示。

  Gantt for .NET最頂層的組件有三大類:任務進度圖——Gantt Chart(也即甘特圖)、資源調度圖——Schedule Chart、甘特資料模型(Gantt Data Model),它們之間的關係1所示。

  前兩大類負責控制與顯示,其大致的功能已經在上篇中闡述過,此處不再重複。

  2. 甘特資料模型(Gantt Data Model):

  · IGanttModel :資料模型裡最主要的介面。它表現為其它代表時間調度型資料的抽象介面的一個容器。該介面包括了建立各種資料實體的方法:activities, resources, constraints和reservations。當資料模型中的某部分被修改時,該介面就負責觸發相應的事件。

  · IActivity :代表了在時間進度上要執行的某個任務。分級顯示,任務可以包含子任務。至少有一個孩子的任務稱為父任務。相反的,只有父任務的任務稱為葉任務。每個任務都必須是能夠惟一識別的。

  · IActivityCollection:Activities的集合。

  · IResource :表示能夠被分配給一個任務使之完成的資源。同 IActivity 一樣,也是分級顯示,有父、子、葉資源之分,每個資源都必須能夠惟一識別。

  · IResourceCollection:Resources的集合。

  · IConstraint :表示任務之間的約束。

  · IConstraintCollection:Constraints的集合。

  · IReservation :表示資源到任務的分配關係,為任務而預留的資源。

  · IReservationCollection:Reservations的集合。

  圖2表示了Gantt Data Model的各個介面及介面之間的對應關係。

   任務進度圖——Gantt Chart(也即甘特圖)、資源調度圖——Schedule Chart及其他的控制項所顯示的圖表都是由介面IGanttModel定義的,這個介面定義了全部的資料模型。而IGanttModel中的各介面,又可以獨立於整個資料模型的其它部分單獨使用。例如,可以直接使用IGanttModel中的Activity,作為底層資料提供給介面上的GanttTable。這種方式提高了開發效率,同時又使得Gantt for .NET有了更大的使用空間。

  3. 資料來源的讀取

  資料模型IGanttModel對資料來源的讀取,有兩種方式:XML和ADO.NET。

  在Gantt for .NET中,並非直接讀取XML資料,而是通過另外的一種格式:SDXL。SDXL 是XML的一個應用,因此,可以很容易與其它基於XML的程式互動。與時間調度有關的資料被存入SDXL檔案,並且也可從中讀出儲存至Gantt Data Model。

  如果要使用的資料與時間調度有關,而且是和資料庫相連的,那麼程式總是要很依賴於系統資源。SDXL 能很好地協助區分這種資料,不需要與資料庫相連,就能在SDXL檔案中很輕易地使用與時間調度有關的資料。同時,當你使用ILOG Gantt for.NET時,你能夠更加高效地操作與時間調度有關的資料, 並且通過Gantt for .NET很快地將這些資料顯示出來。

  ADO.NET為分布式資料共用型應用程式提供了大量優秀的組件,Gantt for .NET又提供了一部分的類與ADO.NET整合起來,使得對於與時間調度有關的資料的訪問變得更加便捷。

  Gantt for .NET提供了甘特資料模型適配器(Gantt Model Adapter),與ADO.NET中的DataAdapter所起到的橋樑的功能類似,Gantt Model Adapter用來將DataSet中的資料裝載到Gantt Data Model中或將Gantt Data Model中的資料放入DataSet中。典型的Gantt Data Model與資料庫的操作如下:

  · 從資料庫讀出資料:

  用ADO.NET Data Adapter將資料庫中的內容讀入記憶體中的DataSet,再使用Gantt Model Adapter將DataSet中的資料裝載到Gantt Data Model中。

  · 修改Gantt data model:

  使用Gantt data model 所提供的API, 或者直接使用Gantt for .NET 所提供的資料控制功能,來修改Gantt data model。

  · 寫回資料庫:

  使用Gantt model adapter將Gantt data model中的資料裝入記憶體中的DataSet,再使用ADO.NET data adapter將DataSet中的資料更新相應的資料庫。(見圖3)

  四、使用Gantt for .NET開發

  1.運用Gantt Chart組件的執行個體:

  通過Gantt for .NET中Control與View的捆綁,就可以快速得到一個最簡單的應用程式。主要分以下三個步驟:

  (1)建立任務進度圖——Gantt Chart顯示控制資料,選擇SimpleGanttModel控制項作為應用程式的資料模型,選擇GanttModel XmlSerializer控制項作為SDXL檔案讀出資料的裝載器。

  (2)將提供甘特圖表顯示資料的模型設定為甘特資料模型(SimpleGanttModel)。

  (3)通過GanttModelXml Serializer將XML資料裝入甘特資料模型。

  在這個簡單的應用程式裡,使用了GanttDataModel串連資料來源,並通過IActivities介面提供給Gantt Chart顯示。由於Gantt Chart的面向任務的特性,只需要匯入部分資料,體現了“按需匯入”的機制,提高了運行效率。

  2. 運用Schedule Chart組件的執行個體:

  執行個體運用Schedule Chart(資源調度圖)查看資源利用的情況,同時,利用LoadChart同步顯示資源的負載度情況。主要分為以下五個步驟:

  (1)建立資源調度圖——Schedule Chart和甘特資料模型(SimpleGanttModel)。

  (2)將提供資源調度圖表顯示資料的模型設定為甘特資料模型(SimpleGantt Model)。

  (3)通過GanttModelXml Serializer將XML資料裝入甘特資料模型。

  (4)建立一個資源負載度表(Load Chart)。

  (5)將資源負載度表的位置、顯示時間段、顯示資源與Schedule Chart同步起來。

  上面的兩個例子雖然簡單,但是已經可以從中看到ILOG Gantt for .NET所具有的強大功能。通過簡單而高速的開發,就能完成形式規範、執行高效的應用程式,這就是ILOG Gantt for .NET。

  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.