精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解Winform假框架的設計應用

開發 后端
在這里我們將介紹Winform假框架的設計應用,希望本文能對大家了解SCSF有所幫助。

對于Winform假框架的設計很多人不太理解,但是對于SCSF(Smart Client Software Factory)相信大家不太陌生,本文將從Winform假框架的設計應用開始談起。

學習SCSF 有寫日子了,對該框架有一些了解,于是自己腦子發熱寫了個假SCSF雖然不成熟,但是是對自己學習的一個總結。

主要框架示意圖(解決方案):

主要框架示意圖

Winform假框架概念:

1.整個系統共用一個WorkItem(工作單元).

2.WorkItem中有 Service集合.

3.初始默認使用ShellForm.

WorkItem:

WorkItem 是自定義的靜態類,在程序啟動時加載默認設置,當前是代碼以后會使用XML配置。

WorkItem代碼:

  1. WorkItem  
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.Text;  
  5. using System.Windows.Forms;  
  6. using Bob.Library.UI;  
  7. using Bob.Library.Services;  
  8.  
  9. namespace Bob.Library.WorkItems  
  10. {  
  11.     public static class WorkItem  
  12.     {  
  13.         private static Shell _ShellForm;  
  14.         private static IServices _Services;  
  15.  
  16.         public static void InitWorkItem()  
  17.         {  
  18.             InitServices();  
  19.             InitShellForm();  
  20.         }  
  21.  
  22.  
  23.         public static Shell ShellForm  
  24.         {  
  25.             get 
  26.             {  
  27.                 if (_ShellForm == null)  
  28.                 {  
  29.                     InitShellForm();  
  30.                 }  
  31.                 return _ShellForm;  
  32.             }  
  33.         }  
  34.  
  35.         private static void InitShellForm()  
  36.         {  
  37.             _ShellForm = new Shell();  
  38.         }  
  39.  
  40.  
  41.         public static Bob.Library.Services.IServices Services  
  42.         {  
  43.             get 
  44.             {  
  45.                 if (_Services == null)  
  46.                 {  
  47.                     InitServices();  
  48.                 }  
  49.                 return _Services;  
  50.             }  
  51.         }  
  52.  
  53.         private static void InitServices()  
  54.         {  
  55.             _Services = new Services.Services();  
  56.         }  
  57.  
  58.     }  

WorkItem 中有一個 IServices 類型的屬性 Services,該屬性用于保存全局的Service,IService 有 AddService、GetServiceByKey、Clear 三個方法:實現 添加、獲取、清空Service操作。

代碼:

  1. IServices Services  
  2. //接口  
  3. using System;  
  4. using System.Collections.Generic;  
  5. using System.Text;  
  6.  
  7. namespace Bob.Library.Services  
  8. {  
  9.     public interface IServices  
  10.     {  
  11.         TService AddService(string key,TService service) where TService : class;  
  12.  
  13.         TService GetServiceByKey(string key) where TService : class;  
  14.  
  15.         void Clear();  
  16.     }  
  17. }  
  18.  
  19.  
  20.  
  21. //實現  
  22. using System;  
  23. using System.Collections.Generic;  
  24. using System.Text;  
  25.  
  26. namespace Bob.Library.Services  
  27. {  
  28.     public class Services :IServices  
  29.     {  
  30.         IDictionary _Services;  
  31.  
  32.         public Services()  
  33.         {  
  34.             InitServices();  
  35.         }  
  36.  
  37.         private void InitServices()  
  38.         {  
  39.             _Services = new Dictionary();  
  40.         }  
  41.       
  42.         IServices#region IServices   
  43.  
  44.         public TService  AddService(string key, TService service) where TService : class 
  45.         {  
  46.             _Services[key] = service;  
  47.             return _Services[key] as TService;  
  48.         }  
  49.  
  50.         public TService  GetServiceByKey(string key) where TService : class 
  51.         {  
  52.             object service = _Services[key];  
  53.             return service is TService ? service as TService : null;  
  54.         }  
  55.  
  56.         public void  Clear()  
  57.         {  
  58.             InitServices();  
  59.         }  
  60.  
  61.         #endregion  
  62.     }  

WorkItem 中還有一個 Shell 類型的ShellForm 屬性:該屬性是一個MDI窗口的實例,作為系統的父容器。

設計圖:

[[6263]]

代碼:

  1. Shell  
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.ComponentModel;  
  5. using System.Data;  
  6. using System.Drawing;  
  7. using System.Text;  
  8. using System.Windows.Forms;  
  9.  
  10. namespace Bob.Library.UI  
  11. {  
  12.     public partial class Shell : Form  
  13.     {  
  14.         public Shell()  
  15.         {  
  16.             InitializeComponent();  
  17.             _AppMenu.Text = AppMenuName;  
  18.             _ExitMenu.Text = ExitString;  
  19.         }  
  20.  
  21.         public string FormName  
  22.         {  
  23.             get 
  24.             {  
  25.                 return this.ParentForm.Text;  
  26.             }  
  27.             set 
  28.             {  
  29.                 this.ParentForm.Text = value;  
  30.             }  
  31.         }  
  32.  
  33.           
  34.         public void StatusUpdate(string message)  
  35.         {  
  36.             _ShellStatus.Text = message;  
  37.         }  
  38.  
  39.         private void _ExitAppMenu_Click(object sender, EventArgs e)  
  40.         {  
  41.             if (MessageBox.Show("Exit ?""Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)  
  42.             {  
  43.                 Environment.Exit(0);  
  44.             }  
  45.         }  
  46.  
  47.  
  48.         MenuItemString#region MenuItemString  
  49.         private string _AppName = "Application";  
  50.         private string _ExitName = "Exit";  
  51.         public string AppMenuName  
  52.         {  
  53.             get { return _AppName; }  
  54.             set   
  55.             {   
  56.                 _AppName = value;  
  57.                 _AppMenu.Text = _AppName;  
  58.             }  
  59.         }  
  60.  
  61.         public string ExitString  
  62.         {  
  63.             get { return _ExitName; }  
  64.             set 
  65.             {  
  66.                 _ExitName = value;  
  67.                 _ExitMenu.Text = _ExitName;  
  68.             }  
  69.         }  
  70.  
  71.         #endregion  
  72.  
  73.         public MenuStrip ShellMenu  
  74.         {  
  75.             get 
  76.             {  
  77.                 return _ShellMenu;  
  78.             }  
  79.         }  
  80.  
  81.     }  

Shell 中有一個菜單控件,一個狀態欄控件,將兩個控件作為屬性發布。初始加載了一個菜單項 _AppMenu ,將菜單項的Text屬性布.然后為_AppMenu 添加一個子菜單項ExitMenu 同時將他的Text屬性發布。為_ExitMenu 添加事件 _ExitAppMenu_Click;然后發布一個方法 StatusUpdate(string message) 在狀態欄顯示提示消息。

準備工作完成,開始項目開發:首先創建一個普通的Winform項目,將 Bob.Library 應用進來,在系統開始類Program.cs 中添加 WorkItem的加載 代碼如下:

  1. Program  
  2. using System;  
  3. using System.Collections.Generic;  
  4. using System.Linq;  
  5. using System.Windows.Forms;  
  6. using Bob.Library.WorkItems;  
  7. using ArchitectureDemo.Services;  
  8.  
  9. namespace ArchitectureDemo  
  10. {  
  11.     static class Program  
  12.     {  
  13.         [STAThread]  
  14.         static void Main()  
  15.         {  
  16.             Application.EnableVisualStyles();  
  17.  
  18.             Application.SetCompatibleTextRenderingDefault(false);  
  19.  
  20.             InitWorkItem();  
  21.  
  22.             Application.Run(WorkItem.ShellForm);  
  23.         }  
  24.  
  25.         private static void InitWorkItem()  
  26.         {  
  27.             WorkItem.InitWorkItem();  
  28.  
  29.             AddServices();  
  30.  
  31.             AddModules();  
  32.         }  
  33.  
  34.  
  35.  
  36.         private static void AddModules()  
  37.         {  
  38.             WorkItem.ShellForm.AppMenuName = "程序";  
  39.  
  40.             WorkItem.ShellForm.ExitString = "退出";  
  41.  
  42.             AddCustomModule();  
  43.         }  
  44.  
  45.         private static void AddCustomModule()  
  46.         {  
  47.             ToolStripMenuItem _btnCutomMenuItem = new ToolStripMenuItem("自定義模塊");  
  48.  
  49.             ToolStripItem _btnShowMyForm = new ToolStripButton("彈出");  
  50.  
  51.             _btnShowMyForm.Click += new EventHandler(ShowMyForm_Click);  
  52.  
  53.             _btnCutomMenuItem.DropDownItems.Add(_btnShowMyForm);  
  54.  
  55.             WorkItem.ShellForm.ShellMenu.Items.Add(_btnCutomMenuItem);  
  56.         }  
  57.  
  58.         private static void ShowMyForm_Click(object sender, EventArgs e)  
  59.         {  
  60.             MyForm mForm = new MyForm();  
  61.  
  62.             mForm.MdiParent = WorkItem.ShellForm;  
  63.  
  64.             mForm.Show();  
  65.         }  
  66.  
  67.         private static void AddServices()  
  68.         {  
  69.             IFormService service = WorkItem.Services.AddService("FormService"new FormService());  
  70.         }  
  71.     }  

首先:加載WorkItem添加InitWorkItem() 方法,將Bob.Library中的ShellForm 實例化。然后加載Service 和模塊 AddServices() 添加一個Key為FormService的IFormService 實例,該實例在MyForm中有用到。

  1. GetService  
  2.         private void btnGetGUID_Click(object sender, EventArgs e)  
  3.         {  
  4.             IFormService service = WorkItem.Services.GetServiceByKey("FormService");  
  5.             txtGUID.Text = service.GetGuidString();  
  6.         } 

AddModules() ,模擬的添加一個自定義模塊,AddCustomModule(),為該模塊添加獨享的菜單,為該模塊添加子菜單,
為子菜單綁定事件.

然后我們讓程序開始Run 我們的 Shell   Application.Run(WorkItem.ShellForm);

原文標題:Winform 應用 【假框架】

鏈接:http://www.cnblogs.com/duoluodaizi/archive/2009/10/12/1582000.html

【編輯推薦】

  1. 詳解TripleDES實現C# 加密操作
  2. 淺析C# WinForm控件開發前期準備
  3. 詳解C# WinForm自定義控件的使用和調試
  4. C# Attribute的概念與使用淺析
  5. C# AttributeUsage的使用淺析
責任編輯:彭凡 來源: 博客園
相關推薦

2023-07-03 07:39:43

Spring框架設計模式

2012-11-20 10:04:46

Winform開發

2010-06-11 14:55:20

2013-04-23 09:31:12

Winform開發框架

2010-06-13 09:15:16

WinForm窗體

2010-08-27 09:11:27

Python單元測試

2010-08-11 10:24:46

Flex開發

2011-05-03 09:45:25

噴墨打印機假故障

2009-11-30 08:38:35

WinForm

2023-01-12 08:00:00

SpringClou微服務框架

2010-08-10 17:13:58

Flex技術

2023-02-07 07:43:27

微服務應用框架

2017-02-27 09:36:01

AndroidMVVM架構

2010-03-16 14:50:49

Python web框

2012-08-21 11:26:17

Winform

2011-11-14 10:41:15

Winform數據管理模塊Items

2015-06-24 09:25:51

應用框架

2009-04-13 09:23:41

.NET 2.0Winform經驗

2024-10-24 17:13:55

WinformUI多線程

2012-12-11 10:15:02

Winform開發框架
點贊
收藏

51CTO技術棧公眾號

5566中文字幕| 第一区免费在线观看| 日产精品久久久久久久性色| 日本欧美加勒比视频| 久久精品人人爽| 在线xxxxx| 精品日韩视频| 一区二区不卡在线播放 | 18禁裸男晨勃露j毛免费观看| 午夜av免费观看| 激情综合色综合久久综合| 午夜精品一区二区三区av| 波多野结衣片子| 北条麻妃一区二区三区在线观看| 在线欧美一区二区| www成人免费| a天堂在线资源| 懂色av一区二区三区蜜臀| 国产精品对白刺激| 国产一级性生活| 久久要要av| 亚洲免费精彩视频| 精人妻一区二区三区| 久久av影院| 色综合天天综合网天天狠天天| 精品一区二区成人免费视频| 黄色大片在线免费观看| 丁香天五香天堂综合| 国产欧亚日韩视频| 无码人妻aⅴ一区二区三区有奶水 无码免费一区二区三区 | 国产jizz18女人高潮| 国产精品午夜av| 日韩视频永久免费| 在线能看的av网站| 日本综合久久| 日韩欧美在线视频免费观看| 国产男女免费视频| 伊人电影在线观看| 亚洲人成亚洲人成在线观看图片| 亚洲精美视频| 成人av一区| 国产视频一区在线观看| 久久国产精品 国产精品| xxxx国产精品| 国产精品一二三四| 亚洲bt欧美bt日本bt| 国产又粗又猛又黄又爽无遮挡| 久久精选视频| 欧美在线性视频| 久久夜色精品国产噜噜亚洲av| 伊人激情综合| 午夜精品一区二区三区av| 国产午夜福利一区二区| 国产精品啊啊啊| 久久久久久久国产精品| 精品午夜福利在线观看| 最新国产乱人伦偷精品免费网站| 欧美激情亚洲国产| 国产五月天婷婷| 夜久久久久久| 欧美最猛性xxxxx亚洲精品| 亚洲天堂一区在线观看| 久久这里只有| 日韩免费在线免费观看| 日本丰满少妇做爰爽爽| 免费观看日韩av| 成人日韩在线电影| 午夜精品久久久久久久91蜜桃| 成人av网站在线观看| 久久99精品久久久久久久青青日本 | 国产成人精品1024| 成人三级在线| 视频国产在线观看| 日本一区二区三区免费乱视频 | 欧美日本韩国一区| 中文字幕一区二区在线观看视频| 精品国产鲁一鲁****| 欧美精品一区二区三区高清aⅴ | 国产欧洲精品视频| 精品国产无码一区二区三区| 成人h动漫精品| 欧美日产一区二区三区在线观看| 国产高清视频在线播放| 亚洲视频一区二区在线| av女优在线播放| 三上悠亚国产精品一区二区三区| 欧美日韩中字一区| 人妻巨大乳一二三区| 免费看久久久| 日韩在线免费观看视频| 国产精品2020| 秋霞国产午夜精品免费视频| 99www免费人成精品| 亚洲区小说区图片区| 国产精品乱人伦| 男人天堂av片| 日本美女久久| 亚洲激情久久久| 国产白丝一区二区三区| 亚洲黄色一区| 国产日韩一区在线| 丝袜+亚洲+另类+欧美+变态| 亚洲免费观看高清完整版在线观看熊| 国模无码视频一区二区三区| 精品三级在线| 日韩av在线导航| 久艹在线观看视频| 国产日韩一区二区三区在线| 成人免费观看网址| 麻豆国产在线播放| 亚洲午夜一区二区三区| 九九热精品在线播放| 日韩欧美黄色| 欧美极品少妇xxxxⅹ喷水| 免费在线观看av的网站| 不卡的av电影在线观看| 看一级黄色录像| 香蕉视频亚洲一级| 亚洲成人激情在线观看| 99久久99久久精品国产| 日韩精品国产精品| 激情视频在线观看一区二区三区| 国产原厂视频在线观看| 在线亚洲精品福利网址导航| 国产精品一区二区入口九绯色| 中文字幕乱码亚洲无线精品一区| 国产精品福利在线观看| 日本黄色三级视频| 亚洲自拍另类综合| 午夜影院免费观看视频| 欧美激情理论| 国产精品永久免费视频| 青青草超碰在线| 偷窥少妇高潮呻吟av久久免费| 人妻巨大乳一二三区| 中文精品久久| 亚洲综合国产精品| 国产在线更新| 日韩一区二区三| 老熟妇高潮一区二区三区| 美女在线视频一区| 亚洲视频小说| 99视频这里有精品| 久久精品国产99国产精品澳门 | 国产又粗又硬又长又爽| 日韩成人精品在线观看| 日韩av电影免费在线观看| 欧美片第一页| 国产亚洲欧美日韩精品| 中文区中文字幕免费看| 中文一区一区三区高中清不卡| 免费大片在线观看| 精品不卡一区| 国产精品一区久久| 国产调教视频在线观看| 欧美大片国产精品| 久草视频精品在线| jlzzjlzz国产精品久久| 免费观看国产精品视频| 日韩精品免费一区二区夜夜嗨| 91精品国产免费久久久久久| 色综合888| 在线观看免费一区| 999精品久久久| 国产伦精品一区二区三区免费| 免费看污污视频| 超碰成人在线观看| 97av视频在线| h视频在线免费| 69堂成人精品免费视频| 毛片a片免费观看| 99国产精品99久久久久久| 免费在线观看毛片网站| 国产精品久久久久久麻豆一区软件| 亚洲japanese制服美女| 丁香花在线观看完整版电影| 日韩精品在线视频美女| 亚洲精品91天天久久人人| 亚洲欧美在线视频| 国产大尺度视频| 爽爽淫人综合网网站| 天天成人综合网| 久久精品国产亚洲5555| 国产成人精品久久亚洲高清不卡| 色视频在线免费观看| 亚洲аv电影天堂网| 日韩av免费播放| 亚洲一区视频在线| 黄色片在线观看免费| 国产精品一区二区x88av| 中文字幕无码精品亚洲35| 欧美日韩国产传媒| 国产精选在线观看91| av免费在线一区| 久久久亚洲影院| 午夜激情视频在线| 亚洲国内高清视频| 国产日韩欧美中文字幕| 欧美视频专区一二在线观看| 亚洲一级生活片| 久久中文娱乐网| 91大神免费观看| 日韩经典一区二区| 精品无码国产一区二区三区av| 成人av国产| 精品网站在线看| 亚洲精品a区| 国产精品男人爽免费视频1| 182在线视频观看| www.午夜精品| 国产成人天天5g影院在线观看| 欧美大片在线观看| 国产免费一区二区三区最新不卡| 日韩欧美在线中文字幕| 日韩欧美大片在线观看| 亚洲欧美激情插| 精品伦精品一区二区三区视频密桃| 成人av电影在线观看| 97免费公开视频| 免费成人av在线| 999香蕉视频| 亚洲经典自拍| 欧美一级免费播放| 欧美精品一级| 亚洲免费av网| 色狮一区二区三区四区视频| 欧美精品成人一区二区在线观看 | 成人免费视频一区二区| 日日干日日操日日射| 秋霞午夜鲁丝一区二区老狼| 日韩黄色片视频| 先锋影音久久久| 成年人午夜视频在线观看| 欧美日韩网址| 日本大片免费看| 国产一区亚洲| 欧美国产视频一区| 欧美性久久久| 国产精品久久久久9999爆乳| 欧美日韩网址| 欧美一区二区激情| 亚洲人成人一区二区三区| 国产av熟女一区二区三区| 欧美三级特黄| 97中文字幕在线| 亚洲福利精品| 97成人在线观看视频| 羞羞视频在线观看欧美| 国产97在线 | 亚洲| 美女视频一区免费观看| 手机看片福利盒子久久| 日韩av中文在线观看| av在线无限看| 麻豆精品蜜桃视频网站| av噜噜在线观看| 国产精品一级黄| 制服.丝袜.亚洲.中文.综合懂| 国产成人欧美日韩在线电影| 亚洲黄色小说在线观看| jiyouzz国产精品久久| 三级黄色片网站| 久久久三级国产网站| 亚洲综合第一区| 亚洲色图清纯唯美| 日本三级理论片| 色激情天天射综合网| 亚洲中文字幕一区二区| 日韩一级片在线观看| 天天干天天色天天| 一色桃子一区二区| 污污片在线免费视频| 97视频在线免费观看| 成人啊v在线| 亚洲va欧美va国产综合剧情| 嗯用力啊快一点好舒服小柔久久| 欧美激情专区| 综合精品久久| 中文字幕无码精品亚洲35| 蜜臀久久99精品久久久画质超高清| 亚洲欧美手机在线| av爱爱亚洲一区| 一二三四在线观看视频| 亚洲免费观看高清完整版在线观看 | 麻豆传媒在线免费| 久久久久久久久久国产| 自拍偷自拍亚洲精品被多人伦好爽 | 久久一区二区视频| 91狠狠综合久久久| 欧美日韩美女视频| 国产毛片毛片毛片毛片| 亚洲国产中文字幕久久网 | 性欧美视频videos6一9| 日本午夜精品久久久久| 久久久综合亚洲91久久98| 91欧美日韩| 久久久久久久久久久免费视频| 国产真实乱偷精品视频免| 白丝女仆被免费网站| 日韩理论在线观看| 国产伦精品一区二区三区视频网站| 9191成人精品久久| 欧美成熟毛茸茸| 欧美激情视频网址| 外国成人毛片| 奇米影视首页 狠狠色丁香婷婷久久综合| 综合视频在线| 91香蕉视频导航| 99久久精品免费| 校园春色 亚洲| 欧美人与z0zoxxxx视频| 久草视频视频在线播放| 性欧美xxxx视频在线观看| 国内不卡的一区二区三区中文字幕 | 2019中文字幕在线| 亚洲一区 二区| 一区二区视频国产| 日韩精品福利网| 噜噜噜在线视频| 亚洲一区在线观看免费观看电影高清| 一女二男一黄一片| 中文字幕国产亚洲2019| 欧美电影免费观看| 精品在线一区| 亚洲激情亚洲| 亚洲自拍偷拍精品| 一区二区三区在线高清| 国产精品一区二区av白丝下载 | 日韩免费电影一区二区三区| 亚洲小说欧美另类社区| 真实乱偷全部视频| 亚洲色图欧美激情| 亚洲视频一区二区三区四区| 亚洲视频网站在线观看| 亚洲精品福利电影| 九九九九九九精品| 国产欧美一区二区三区国产幕精品| 无码人妻丰满熟妇区毛片蜜桃精品| 国产精品高清亚洲| 一道本在线视频| 日韩在线小视频| 欧美大片网站| 中文字幕一区二区三区5566| 麻豆成人在线观看| 99精品中文字幕| 欧美精品久久久久久久久老牛影院| 最新97超碰在线| 国产精品稀缺呦系列在线| 日韩在线二区| 手机av在线网| 亚洲精品你懂的| 97在线视频人妻无码| 久久国产精品网站| 在线播放一区二区精品视频| 男女私大尺度视频| 久久香蕉国产线看观看99| 波多野结衣视频在线看| 色琪琪综合男人的天堂aⅴ视频| 日韩黄色在线| 污污污污污污www网站免费| 国产·精品毛片| 在线观看精品国产| 原创国产精品91| 精品国产一区二区三区性色av| 成年人深夜视频| 99国产欧美久久久精品| 日韩中文字幕高清| www.欧美免费| 中文字幕一区图| 人妻熟女一二三区夜夜爱| 中文字幕欧美日韩一区| 99国产精品一区二区三区| 久久男人的天堂| 精品国产一区二区三区久久久樱花| 天堂在线资源视频| 一卡二卡欧美日韩| 欧美日本韩国一区二区| 国产欧美一区二区三区久久 | 亚洲三级免费观看| 亚洲欧美强伦一区二区| 国产suv精品一区二区三区88区| 欧美韩日高清| 丰满少妇一区二区三区| 69久久夜色精品国产69蝌蚪网 | 国产有码一区二区| 国产精品第5页| 在线播放国产一区二区三区| 日韩三级网址| 国产精品99久久免费黑人人妻| 国产精品久久久久一区二区三区共| 亚洲产国偷v产偷v自拍涩爱| 欧美亚洲在线观看| 永久91嫩草亚洲精品人人| 黄色a一级视频| 91精品国产综合久久福利| 在线成人av观看| 国产精品av免费观看| 国产欧美精品一区二区色综合| 国 产 黄 色 大 片| 国产精品美乳在线观看| 亚洲福利精品|