我的第一支 .Net 程式 - 實作 Windows Form 繼承

在上一個VB6的案子(WMS,Warehouse Management System)完成後也一年的時間了
在這中間 .Net Framework 升級到 2.0 版, Visual Studio .Net 也改變行銷名稱
以 Visual Studio 2005 的姿態出現
參加了幾場 Seminar以及將過去所涉略的一些 .Net 的觀念整理之後
決定開始投入 .Net 的懷抱, 並不是因為 .Net 比 Java 好 (.Net 底層不時有 java 的影子)
而是開發速度與規模上的考量

微軟在開發工具上的用心, 確實不是其他廠商可以比得上的
這一次拿Windows Form 的繼承實作來作為第一支入門程式的練習
在沒有書籍以及沒有概念(是對 Visual Studio 工具沒概念)的情況下
靠著 Help 的指引, 一步一步將這個Case給建構起來

緣起:

之前在 VB6 的時代, 常常會撰寫一些排程的程式去執行一些 Backend 的作業
(當然你也可以用 OS 的 Schedule 來排程)
每次需要新的作業時都是將程式目錄 Copy 一遍再逐一去改命名
雖然自己已經有一些開發的 Pattern(ini 檔, log 檔, Error 發送 email 通知開發者),
開發速度上也很快, 但是如果我要讓所有的程式都增加一個新的功能
這樣我得為每一個專案加入這個功能, 為數眾多時這可是頗耗時間的
以前開發 Delphi (3.0) 時, 就已經有 Form 繼承的作法了,
程式模組可以重複使用, 那為什麼同性質的 Form 不可以呢
基於這樣的需求, 所以決定第一支程式以 Windows Form 繼承實作做為開端

思考:

1.哪些功能該擺在 BaseForm 上? Inheritance consideration
2.如何擴充已有的功能? Overrides
3.如何讓同一功能具備多樣性? Overloads
4.應用程式設定檔
5.應用程式記錄檔
6.Exception Notification(通知錯誤訊息 & 出錯行號)

本次練習沒有很高深的理論架構, 只是運用物件導向中很基本的 繼承 多型等技巧
.Net Framework 已經將 4,5,6 的功能內建在開發架構當中
只要開啟應用程式設定, 即可很輕易的達成以前 ini 檔所要完成的事情
(設定檔是 xml 格式, 可以很方便擴充與修改)
內建的 Application log 機制則具備有多樣的選擇, 你可以很容易的將程式執行的過程
所產生的訊息紀錄到 log 檔 Application Event 或 XML 檔案等
(在 app.config 中設定)

但是 Exception Notification 的部份只能透過自己撰寫的方式來達成
需 Import System.Net.Mail.SmtpClient & System.Net.Mail.MailMessage
這部份或許微軟應該把他考慮進來, 也透過設定的方式來達成

程式撰寫的方式就不另贅述了, 動手查 Help 吧

http://jamesjantw.googlepages.com/TimerBaseFormLibrary.rar

張貼留言