小菜的系統框架界面設計-小菜用戶權限管理軟件開源大放送

爲何要開源?

有句:「贈人玫瑰,手有餘香。」,在園子裏學習有些一時間了,獲得了不少人的幫助,我自已練習作了一套基於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導航,界面啓動時的閃屏效果加強用戶體驗,系統托盤效果。學習

總體架構,以下圖:優化

image

 

項目結構

  • 引入類庫

image

  • 代碼結構spa

  • image

軟件模塊介紹

用戶登陸模塊:3d

image

用戶登陸成功後閃屏效果:code

image

主界面總體效果:

image

用戶管理模塊界面:

image

 

程序配置文件

<?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());
        }
    }
}

數據庫文件

  • 關於SQL Server,MySql,Oracle數據庫文件生成腳本,我放在XiaoCai.Database.rar
  • 導入注意事項:數據庫命名爲SecurityDB
  • SQL Server:

image

  • 主要有9張表:其中表T_AUTH_DEPT_ROLE,T_AUTH_DEPT_USER,T_AUTH_FUNCTION_ROLE,T_AUTH_FUNCTION_USER,T_AUTH_USER_ROLE相關ID都要設爲欄位聯合組件,其餘的表ID設爲惟一主鍵。
  • 在其餘數據庫中,Oracle,MySql中同理,但略有些不一樣。
  • 注:朋友反饋SQL Server腳本不全,上傳SQL Server數據庫文件
  • http://files.cnblogs.com/aganqin/SecurityDB.rar
  • http://files.cnblogs.com/aganqin/SecurityDBSQL.rar
  • 數據庫腳本:
  • 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

源碼

 

  儘管有不少不如意,但在開源分享過程當中能學到一點東西,但願也對你有所幫助,謝謝!

致歉

可能我導出數據腳本有問題,形成不少想研究的朋友數據庫不成功,浪費你們時間,對IT人來講,浪費時間等於浪費金錢,生命啊,在此抱歉。

如今添加上生成表的數據庫腳本。

相關文章
相關標籤/搜索