第一章:企業級項目框架概述
前言:之前也看過大家在談架構,談分層,談模式。對一些問題,大家也各抒己見,確實不確。但是 不管怎樣,我們最終還是要在我們的項目中真正的去實現談論的這些方法,方法談了就要用,要實踐才有 價值。而且代碼是最沒有二義性的,所以,本系列將一步步的帶領大家開發一個正真的企業級項目。
其中融合了分層架構,設計模式以及很多OO的設計思想。而且大家也可以看到,我們不是"為了 模式而模式",而是一種自然過渡的思想。本系列文章不是為了別的,只是希望可以給大家帶來一點 點的幫助。
本系列的文章每一章采用下面的結構方式編寫:提出問題--設計方法--解決方案。
我們將會為一個公司的人力資源部門開發一個系統。這個系統可以批准,拒絕公司員工的請假的申請。而 且這個系統將采用 ASP.NET3.5來開發,語言是C#,數據庫是SQL SERVER2005.融合ASP.NET3.5中的很多特 性,語法方面的Linq,Lamda,WF,AJAX等。
而且整個解決方案設計的很靈活,便於我們以後根據我們的業務邏輯來擴展。本篇主要確定項目的一 些需求,並且介紹項目開發采用的架構。
提出問題
Sue是人力資源部門的首席執行官,平時她一直采用Word和Excel來管理公司員工的請假的請求。Sue很 快就發現了一個問題:很多的請假的請求都沒有被記錄下來,而且她也很難去跟蹤那些請求的處理過程和 結果。現在,Sue已經接到了一個批准:開發一個企業級的項目來代替原來使用的Word和Excel的管理辦法 。
最為整個項目的負責人,Sue任命Mary作為代表去和IT部門進行溝通,確定項目的需求。下面的會議可 以在每個項目開發之前都進行的。
Mary說:我的上司派我來參與項目的開發,但是我對計算機以及操作系統的知識卻是一無所知。我們 在很多年前就嘗試開發管理系統,但是最後還是沒有成功。首先讓我來介紹一下我們現在在做什麼。我們 一直在用Word來管理員工的請假的申明。如果一個員工要請假,那麼他就要填寫一份Word的申明表。但是 ,當我們在去年在把我們用來記錄員工申請的Excel交給經理的時候,問題就出來了:很多的申請表已經 被取消了,但是我們不知道;我們也不知道申請表是什麼時候交給經理的...
我說:這麼說,你想要一個自動處理請求的系統。我之前也用過Word和Excel來管理過,所以我知道一 點管理的過程,但是至於把申請表交給我的上次以後發生了什麼事情,我就不清楚了。你可以告訴我,之 後的申請表的處理流程嗎?
Mary說:如果員工想要申請假期,那麼他們首先就要去填寫一張表格,並 且打印出來,交給他們的上司去審核並且簽字。他們的上司簽字之後就把申請表交給HR,然後我就查看我 的手頭的Excel表格,看看那個要申請假期的員工是否可以申請他們想要的假期時間。然後我就在我的 Excel表格上減去他們申請假期的時間。如果員工申請假期的時間操作了2周,那麼我就會通知他們的上司 ,並且還要我們部門的首席執行官簽字。但是,這樣一來就出現了很多的問題,比如首席執行官很忙,他 忘記把員工申請假期的表格給我,這樣很多的記錄就出問題了。
我:那麼,你需要一個可以允許用戶 提交申請並且內置了工作流的系統,員工的上司,首席執行官可以用這個系統來批准或者拒絕請假的申請 。
Mary:是的,我想我們可以拒絕員工的申請,但是一般情況下,我們都是把申請表扔了。
我:你說 還有一個問題就是:當員工已經提交了請假申請,但是他們突然想取消申請,他們並沒有告訴你。所以你 需要你的員工可以通過這個系統來告訴你他們取消了申請嗎?如果這樣的話,我可以讓系統通過Email來 通知你請求取消了。我還可以通知你申請是否通過了上司的批准。
Mary:行啊,很不錯!這樣我就可 以在我的Excel表格中正確的記錄這些數據了。
我:你可以把你的Excel表格給我看看嗎?我可以這個 系統中生成Excel,並且導出。這樣的話,任何已經取消的請求等數據就可以記錄下來,而且你也不用手 動的維護Excel。