使用過很多公司的報表試用版本,個人覺得潤乾報表 是一個非常靈活的產品,雖然目前的設計器還只能適用於開發人員:)在試用潤乾報表過程中,認真揣摩她的核心概念,發現自己也可以實現一個類似的報表引擎,所以自己也使用Delphi實現了一個顯示報表的核心部分的報表引擎(還未添加填報功能),可以看看我以前寫的《交叉表的報表設計》樣本實現報表引擎需要使用用到以下兩個個核心技術和概念:數學運算式引擎報表擴充模型準備重新實現一個.Net下的報表引擎,可以基於它之上進行表單設計、查詢表單、報表、處理資料分析就像以上說
上篇敏捷開發之 4句敏捷宣言中講了敏捷開發的價值觀, 從這些價值觀中可以引出下面的12條原則,它們是敏捷實踐區別於重型過程的特徵所在。在Agile Software Development - Principles,Patterns,and Practices(中文書名: 敏捷式軟體開發 (Agile Software
本節說一下資料的預先載入。這節的內容與SQL沒什麼關係。主要說的是在 GIX4項目 中,我們是如何設計符合需求的預先載入類庫的。內容如下:什麼是預先載入,為什麼要用它? 我們所需要的API 一個簡單的例子 什麼是預先載入? 預先載入其實就是在真正開始使用資料之前,先非同步把資料載入好,等到需要使用時,就可以直接使用之前載入好的資料。這時,由於資料已經載入完成,而不用等待漫長的載入過程,所以程式的速度得到一個明顯的提升。 那麼,什麼時候需要使用它呢?我覺得,主要是這種情況:
文章目錄 主要組成圖主要類圖其它 在上篇WPF -.Net
前篇說到了使用非同步線程來實現資料的預先載入,以提高系統效能。 這樣的操作一般是在用戶端執行,用以減少使用者的等待時間。用戶端發送多次非同步請求,到達服務端後,如果服務端不支援多執行緒操作,線性處理各個請求,必然導致用戶端的非同步請求變得沒有意義。
前面已經把原理都講了一遍,這篇主要是給出一個應用的執行個體。該執行個體取自GIX4,比較複雜。領域模型: 領域模型間的關係,如下: 右邊模型鏈的具體關係在《第二篇》中已經描述過,不再贅述。本次重點在於紅線框住部分:Project:表示一個建設項目;ProjectPBS:一個項目下包含的很多PBS;PBSPropertyValue:一個PBS我們可以為它設定多個值,每一個值對應一個PBSType(模板)中已定義的屬性,值的範圍也是只能在屬性中已定義的可選值中進行選擇。對應的UI如下:
問題描述 今天測試人員提了一個易用性的BUG,主要是說系統目前使用的樹型控制項不支援自動擴張列的寬度。其實客戶那邊已經對這個問題提了多次,不過由於對WPF只是入門級,所以一直都沒改。這兩天項目比較閑,就花了些時間把這個問題改了。原問題如下: 圖1 問題描述 背景 樹型控制項在GIX4系統中已經被大量使用。這個控制項是一年前其它同事在網上搜尋到,再引入的。
在sprint周期最後,需要進行一次評審會議,讓團隊向產品負責人和利益相關者展示已完成的功能。sprint審核的大部分實踐用於團隊成員展示功能、回答利益相關者對展示的疑問並記錄所期望的更改。評審會議可以吸引相關利益者的關注,讓其他人瞭解團隊在做些什麼,並得到重要反饋。做示範也會迫使Team Dev真正完成一些工作。 小組準備好工作站和裝置等等,用以展示產品的新功能團隊準備sprint審核實踐不應超過1小時
文章目錄 組合(Composition)彙總(Aggregation)分配(Assignment)實現(Realization) 在架構語言ArchiMate - 語言結構(Language Structure)中對語言結構進行了介紹,最後列出下面的ArchiMate架構圖:業務、應用和技術三個層次(Layer),對象、行為和主體三個方面(Aspect),在架構語言ArchiMate -業務層(Business
在sprint期間,每天都會通過站立例會來進行溝通,以下我將把會議主要內容羅列一下。(以下會議內容來自於Scrum Checklists)會議內容 目標 團隊成員間工作進度的溝通和協調會議準備邀請與會者:團隊所有成員、Scrum Master、產品負責人(可選)、相關人員(可選)在 Sprint Backlog 上的所有任務都是可以增刪修改,可重排序的任務的狀態可設為todo、doing、done(可以再加一個test表示需要驗證) 會議進程(15
文章目錄 節點(Node)裝置(Device)基礎設施介面(Infrastructure Interface)網路(Network)通訊路徑(Communication Path)基礎設施服務(Infrastructure Service)系統軟體(System Software)Artifact 在架構語言ArchiMate - 語言結構(Language
文章目錄 抽象概念的學習總是反覆的過程架構定義種類繁多架構的定義我的理解 有一陣子聽到大家都在講“平台”,但是不知道具體什麼是平台,經過很多思考後才有了自己的一些較為清晰的認識,見《軟體觀點 - 平台分類:系統平台、開發平台和開放平台》。除了“平台”這個詞曾經讓我很迷惑之外,還有一個很重要的詞至今還讓我迷惑,那就是“架構”。抽象概念的學習總是反覆的過程 學習就是一個反覆的過程(不知道-知道-不知道…),對架構的理解也是。以前知識很少,
在sprint第一天召開sprint計劃會議,這個會議分為兩部分,計劃會議1由PO、SM和Team參加,主要是從產品backlog中挑選出需要放到當前sprint下的既定產品backlog,然後由SM、Team參加計劃會議2,把既定產品backlog的故事拆分成任務進行估算,PO也可以一起參加這個部分來瞭解具體的開發細節。以下我將把會議主要內容羅列一下。(以下會議內容來自於Scrum Checklists)會議內容 sprint計劃會議1產品負責人和團隊一起,在先前評估的成果基礎上,定出
文章目錄 應用組件(Application Component)應用協作組件(Application Collaboration)應用介面(Application Interface)資料對象(Data Object)應用功能(Application Function)應用互動(Application Interaction)應用服務(Application Service) 在架構語言ArchiMate -
軟體=商業+架構+過程+組織,前一陣子談論的Scrum更多包含的是過程和組織,這篇主要關注的是架構。作了開發多年,期間也參考了業界一些著名的軟體廠商的產品,現在已經開始實現一個適合資訊系統的平台,本篇將從總體上介紹一下OpenExpressApp是什麼。OpenExpressApp沒有創新性的技術,它更多的是將現有技術和產品中有價值的部分引入到一起。在講解現在OpenExpressApp的情況前,我先羅列一些開發的選擇,這些就如同敏捷的價值觀一樣,決定了我開發這個架構的總體思路和方向。從單項目開
InfoQ網站對Scrum的建立人JeffSutherland進行了訪談,談到了什麼是真正的Scrum。看了一下,覺得不錯,可以概括為以下幾點: 是否採取了反覆式開發法的方式?迭代式的、增量式的開發已經成為所有敏捷過程的基礎元素,如果沒有採用反覆式開發法,那麼甚至都不能稱為敏捷的軟體開發過程。是否有固定的迭代周期?迭代是否以某個特定的時間開始並以某個固定的時間結束?迭代周期必須少於6周迭代結束的時候,你們有可以工作的軟體嗎?
文章目錄 傳統開發方法軟體工程到業務工程與以前開發方法比較Mendix Model-driven Platform Suite技術原則Mendix Business Modeller: a unified modelling space模型編輯器Mendix Business Server開發方法
文章目錄 元模型層級核心概念協作與互動(Collaboration and Interaction)關係(Relationships)The ArchiMate Framework 在ArchiMate -
Scrum中Sprint計劃會議是最重要的事件,第二重要的事件就是回顧會議,因為這是團隊做改進的最佳時機。如果沒有回顧,就會發現團隊在重犯相同的錯誤。在sprint的評審會議後,團隊需要進行一次回顧會議,以下我將把會議主要內容羅列一下。(以下會議內容來自於Scrum Checklists和scrum-and-xp)會議內容 目標 通過總結以往的實踐經驗來提高團隊生產力。會議準備邀請與會者: Scrum
敏捷原理其實不複雜 敏捷開發之 4句敏捷宣言 敏捷開發之 12條敏捷原則,但實踐起來比較難。Scrum作為敏捷方法中的一個重視主流,它的流程簡單,但是想真正實踐好確很複雜。什麼是Scrum?(來源:Scrum Alliance Scrum聯盟)Scrum是一個迭代性、增量性的流程,適用於任何的產品開發以及工作管理。