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


為什么要開源?

有句:“贈人玫瑰,手有余香。”,在園子里學習有些一時間了,得到了很多人的幫助,我自已練習做了一套基於Winform的管理類小軟件《小菜用戶權限管理軟件》,只當學習用,今天匯總一下開源分享給大家。

我這個框架集成了好幾個有用的框架:WeifenLuo.WinFormsUI.Docking.dll布局組件,分頁組件,皮膚套件等,我在整體色調等方面做了些優化,讓整個系統看起來比較協調。

當然,還有很多不足的,畢竟這是練習嘛~~如投入商業使用還是有很多限制的。

現在開始描述一下這個系統的具體情況,給有興趣的朋友研究帶來便利。

軟件整體架構

軟件分為四個模塊:用戶管理,部門管理,角色管理,功能管理。平台主要是基於Winform,.Net FrameWork 4.0,支持SQL Server,Oracle,MySql,只要在配置文件中切換就可以。

操作數據層集成了NHibernate框架組件:XiaoCai.ORM.dll,軟件框架集成多功能組件XiaoCai.WinformUI.dll:涉及的有用功能有分頁控件,多文檔界面布局(像Visual Studio一樣的布局效果喔),仿Outlook的OutLookBar導航,界面啟動時的閃屏效果增強用戶體驗,系統托盤效果。

整體架構,如下圖:

image

 

項目結構

  • 引入類庫

image

  • 代碼結構

  • image

軟件模塊介紹

用戶登錄模塊:

image

用戶登錄成功后閃屏效果:

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人來說,浪費時間等於浪費金錢,生命啊,在此抱歉。

現在添加上生成表的數據庫腳本。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM