有句:「贈人玫瑰,手有餘香。」,在園子裏學習有些一時間了,獲得了不少人的幫助,我自已練習作了一套基於Winform的管理類小軟件《小菜用戶權限管理軟件》,只當學習用,今天彙總一下開源分享給你們。數據庫
我這個框架集成了好幾個有用的框架:WeifenLuo.WinFormsUI.Docking.dll佈局組件,分頁組件,皮膚套件等,我在總體色調等方面作了些優化,讓整個系統看起來比較協調。架構
固然,還有不少不足的,畢竟這是練習嘛~~如投入商業使用仍是有不少限制的。app
如今開始描述一下這個系統的具體狀況,給有興趣的朋友研究帶來便利。框架
軟件分爲四個模塊:用戶管理,部門管理,角色管理,功能管理。平臺主要是基於Winform,.Net FrameWork 4.0,支持SQL Server,Oracle,MySql,只要在配置文件中切換就能夠。佈局
操做數據層集成了NHibernate框架組件:XiaoCai.ORM.dll,軟件框架集成多功能組件XiaoCai.WinformUI.dll:涉及的有用功能有分頁控件,多文檔界面佈局(像Visual Studio同樣的佈局效果喔),仿Outlook的OutLookBar導航,界面啓動時的閃屏效果加強用戶體驗,系統托盤效果。學習
總體架構,以下圖:優化
用戶登陸模塊:3d
用戶登陸成功後閃屏效果:code
主界面總體效果:
用戶管理模塊界面:
<?xml version="1.0"?> <configuration> <appSettings> <add key="FMS.Web.Services.INIService" value="http://localhost/OAServices/INIService.asmx"/> <!-- Database with WebService --> <add key="FMS.Remote" value="N"/> <add key="FMS.GlobalSessionFactory" value="XiaoCai.Auth.DAL.Global.SQLServerSessionFactory,XiaoCai.Auth.DAL.Global"/> <!--<add key="FMS.GlobalSessionFactory" value="XiaoCai.Auth.DAL.Global.MySQLSessionFactory,XiaoCai.Auth.DAL.Global" />--> <!--<add key="FMS.GlobalSessionFactory" value="XiaoCai.Auth.DAL.Global.OracleSessionFactory,XiaoCai.Auth.DAL.Global" />--> <!-- Database without WebService --> <add key="FMS.Database.MySQLConn" value="server=localhost;user id=root;password=12345;database=SecurityDB;character set=utf8"/> <add key="FMS.Database.SqlServerConn" value="Data Source=localhost,1433;Network Library=DBMSSOCN;Initial Catalog=SecurityDB;User ID=root;Password=12345;"/> <add key="FMS.Database.OracleServerConn" value="User Id=AGANQIN;Password=12345;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))(CONNECT_DATA=(SID=SecurityDB)(SERVER=DEDICATED)));"/> </appSettings> <startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; namespace XiaoCai.SecurityManager { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Auth.App.Core.AppCore.Startup();//程序序動時,加這麼一句 Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new LoginForm()); } } }
USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_DEPT] Script Date: 2013/10/21 10:51:55 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_DEPT]( [ID] [int] IDENTITY(1,1) NOT NULL, [NAME] [nvarchar](50) NOT NULL, [NOTE] [nvarchar](500) NULL, [CREATETIME] [datetime] NOT NULL, CONSTRAINT [PK_T_AUTH_DEPT] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_DEPT_ROLE] Script Date: 2013/10/21 11:08:00 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_DEPT_ROLE]( [DEPT_ID] [int] NOT NULL, [ROLE_ID] [int] NOT NULL, CONSTRAINT [PK_T_AUTH_DEPT_ROLE] PRIMARY KEY CLUSTERED ( [DEPT_ID] ASC, [ROLE_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_DEPT_USER] Script Date: 2013/10/21 11:08:12 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_DEPT_USER]( [DEPT_ID] [int] NOT NULL, [USER_ID] [int] NOT NULL, CONSTRAINT [PK_T_AUTH_DEPT_USER] PRIMARY KEY CLUSTERED ( [DEPT_ID] ASC, [USER_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_FUNCTION] Script Date: 2013/10/21 11:08:23 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_FUNCTION]( [ID] [int] IDENTITY(1,1) NOT NULL, [NAME] [nvarchar](50) NULL, [DESCRIPTION] [nvarchar](500) NULL, [PARENTFUNC_ID] [int] NULL, [CONTROL_ID] [nvarchar](255) NULL, [VERSION] [nvarchar](20) NULL, [ISEXPIRE] [int] NULL, [DIRECTORYNAME] [nvarchar](200) NULL, [SYSTEM_TYPE_ID] [nvarchar](255) NULL, [CREATETIME] [datetime] NOT NULL, CONSTRAINT [PK_T_AUTH_FUNCTION] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_FUNCTION_ROLE] Script Date: 2013/10/21 11:08:40 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_FUNCTION_ROLE]( [FUNCTION_ID] [int] NOT NULL, [ROLE_ID] [int] NOT NULL, CONSTRAINT [PK_T_AUTH_FUNCTION_ROLE] PRIMARY KEY CLUSTERED ( [FUNCTION_ID] ASC, [ROLE_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_FUNCTION_USER] Script Date: 2013/10/21 11:08:53 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_FUNCTION_USER]( [FUNCTION_ID] [int] NOT NULL, [USER_ID] [int] NOT NULL, CONSTRAINT [PK_T_AUTH_FUNCTION_USER] PRIMARY KEY CLUSTERED ( [FUNCTION_ID] ASC, [USER_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_ROLE] Script Date: 2013/10/21 11:09:06 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_ROLE]( [ID] [int] IDENTITY(1,1) NOT NULL, [NAME] [nvarchar](200) NOT NULL, [NOTE] [nvarchar](500) NULL, [CREATETIME] [datetime] NOT NULL, CONSTRAINT [PK_T_AUTH_ROLE] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_USER] Script Date: 2013/10/21 11:09:17 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_USER]( [ID] [int] IDENTITY(1,1) NOT NULL, [USERID] [nvarchar](255) NOT NULL, [PASSWORD] [nvarchar](255) NOT NULL, [NAME] [nvarchar](255) NOT NULL, [IDENTITYCARD] [nvarchar](255) NULL, [OFFICEPTELHONE] [nvarchar](255) NULL, [MOBILEPHONE] [nvarchar](255) NULL, [EMAIL] [nvarchar](255) NULL, [ADDRESS] [nvarchar](255) NULL, [POSITION] [nvarchar](255) NULL, [ISEXPIRE] [int] NULL, [CREATETIME] [datetime] NOT NULL, CONSTRAINT [PK_T_AUTH_USER] PRIMARY KEY CLUSTERED ( [ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO USE [SecurityDB] GO /****** Object: Table [dbo].[T_AUTH_USER_ROLE] Script Date: 2013/10/21 11:09:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[T_AUTH_USER_ROLE]( [USER_ID] [int] NOT NULL, [ROLE_ID] [int] NOT NULL, CONSTRAINT [PK_T_AUTH_USER_ROLE] PRIMARY KEY CLUSTERED ( [USER_ID] ASC, [ROLE_ID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO
小菜用戶權限管理軟件主源碼:XiaoCai.SecurityManager.rar
涉及相關和核心類庫:XiaoCai.Commlib.rar
把XiaoCai.Commlib.rar解壓縮引入XiaoCai.SecurityManger項目中便可。
儘管有不少不如意,但在開源分享過程當中能學到一點東西,但願也對你有所幫助,謝謝!
可能我導出數據腳本有問題,形成不少想研究的朋友數據庫不成功,浪費你們時間,對IT人來講,浪費時間等於浪費金錢,生命啊,在此抱歉。
如今添加上生成表的數據庫腳本。