基於AspNet Core2.0(測試版) 開發框架,包含簡單的個人博客Demo


大家好,最近離職了,利用閑暇時間就搗鼓了一個基於AspNet Core開發框架,分享出來希望能給AspNet Core學者帶來一些幫助,同時也能跟大家一起學習。當然了,由於我的個人技術及經驗的有限,框架還是有很多Bug或不足之處,希望各位大神或園友指出,我會繼續完善的,可以通過這些方式聯系到我qq891022171、郵箱:lishuyiba@126.com

 

以下僅代表個人觀點,與本人所在公司無關。

 

使用到的技術:AspNet Core 2.0 + EF +Auofac+ SqlServer2012 + Bootstrap + Layer + ace admin

 

 

根據的理解,目前我知道有三種比較好依賴注入管理的方式

1、  第一種、定義依賴注入接口,只要實現了該接口的都自動注入到IOC容器。

2、  第二種、定義特定的后綴,只要符合該特定后綴都自動注入到IOC容器。

3、  第三種、定義特性類,查找標識有該特性的類並注入到IOC容器。

 

我的項目使用了第一種,基本思路如下

程序啟動時查找bin下所有的DLL並利用反射查找實現了IDependencyAutofacRegistrar接口的類注入到容器,實現解耦。

 

說明:

1、由於目前Core 2.0屬於預覽版,啟動web項目時不能打開網頁,可能跟版本有關,等正式版發布后,我再重新發布看看。。。。

 

2、想要VS2017能編譯通過,要修改環境變量,添加MSBuildSdksPath,並設置 Core2.0 SDK的路徑,下面是我本機的配置。。。 Core2.0 SDK下載地址:https://download.microsoft.com/download/3/7/F/37F1CA21-E5EE-4309-9714-E914703ED05A/dotnet-dev-win-x64.2.0.0-preview1-005977.exe

 

 

 

######################下面先來看看效果圖吧###################

說明:下面這些效果圖我是用Core 1.0 開發的,還有很多API沒有加入。本次分享的項目是用Core2.0開發的,主要是因為Core2.0加入了好多以前.Net4.6API(查詢APIhttps://docs.microsoft.com/en-us/dotnet/api/system.reflection.assembly?view=netcore-2.0),用起來比較方便,但是網站頁面不打開,數據是正常返回的,可能是預覽版的問題(前面有提過),感興趣需要頁面的朋友可以 艾特 問我要。

 

data 數據返回:

 

 

 

 

先來看看前台效果圖,只是簡單的把輸出顯示出來,效果很丑,別笑哦因為沒時間找好看的模板~~~

 

 

再來看看后台效果圖,主題選用: ace admin,列表顯示用Bootstrap ,彈出層用Layer

 

 

 

 

 

 項目的大體結構

 

 

 

lsyi. Web------------ web項目。

lsyi.Core ------------------框架的核心都封裝在這。

lsyi.Data  ----------------數據訪問

lsyi. Autofac --------------------Autofac IOC容器

lsyi. Ninject ---------Ninject IOC容器

lsyi. Models --------------項目模型

lsyi. Services --------------服務

 

###############好了,下面給大家介紹框架封裝的東西###################

 

首頁

 

后台登錄

 

 

后台首頁

 

添加文章頁面

 

 

 

由於時間原因,框架的介紹后面有空我再詳細補上~~

 

 

項目地址在這里,很多同學反饋說沒有界面,今天上傳了一個新的。 

############################################################

新:https://github.com/lishuyiba/Sys.Framework (有界面)

CREATE DATABASE [Robot]
GO
USE [Robot]
GO
/****** Object:  Table [dbo].[T_Robot_Log]    Script Date: 2017/12/12 17:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_Robot_Log](
    [F_Id] [int] IDENTITY(1,1) NOT NULL,
    [F_LogType] [int] NULL,
    [F_LogConent] [nvarchar](max) NULL,
    [F_CreateTime] [datetime] NULL,
PRIMARY KEY CLUSTERED 
(
    [F_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] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object:  Table [dbo].[T_Robot_Meal]    Script Date: 2017/12/12 17:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_Robot_Meal](
    [F_Id] [int] IDENTITY(1,1) NOT NULL,
    [F_MealName] [nvarchar](200) NULL,
    [F_MealCode] [nvarchar](200) NULL,
    [F_Status] [int] NULL,
    [F_CreateTime] [datetime] NULL,
 CONSTRAINT [PK__T_Robot___2C6EC723E6ED0CFD] PRIMARY KEY CLUSTERED 
(
    [F_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
/****** Object:  Table [dbo].[T_Robot_Role]    Script Date: 2017/12/12 17:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_Robot_Role](
    [F_Id] [int] IDENTITY(1,1) NOT NULL,
    [F_RoleName] [nvarchar](40) NULL,
    [F_CreateTime] [datetime] NULL,
PRIMARY KEY CLUSTERED 
(
    [F_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
/****** Object:  Table [dbo].[T_Robot_Status]    Script Date: 2017/12/12 17:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_Robot_Status](
    [F_Id] [int] IDENTITY(1,1) NOT NULL,
    [F_Type] [int] NULL,
    [F_Status] [int] NULL,
PRIMARY KEY CLUSTERED 
(
    [F_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
/****** Object:  Table [dbo].[T_Robot_Task]    Script Date: 2017/12/12 17:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_Robot_Task](
    [F_Id] [int] IDENTITY(1,1) NOT NULL,
    [F_TaskName] [nvarchar](300) NULL,
    [F_TaskParam] [nvarchar](max) NULL,
    [F_CronExpressionString] [nvarchar](200) NULL,
    [F_AssemblyName] [nvarchar](150) NULL,
    [F_ClassName] [nvarchar](150) NULL,
    [F_Status] [int] NULL,
    [F_IsDelete] [int] NULL,
    [F_CreatedTime] [datetime] NULL,
    [F_ModifyTime] [datetime] NULL,
    [F_RecentRunTime] [datetime] NULL,
    [F_NextFireTime] [datetime] NULL,
    [F_CronRemark] [nvarchar](300) NULL,
    [F_Remark] [nvarchar](1000) NULL,
PRIMARY KEY CLUSTERED 
(
    [F_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] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object:  Table [dbo].[T_Robot_Transition]    Script Date: 2017/12/12 17:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_Robot_Transition](
    [F_Id] [int] IDENTITY(1,1) NOT NULL,
    [F_BusinessCode] [nvarchar](200) NULL,
    [F_NetOrder] [nvarchar](200) NULL,
    [F_AccessNumber] [nvarchar](200) NULL,
    [F_Status] [int] NULL,
    [F_CreateTime] [datetime] NULL,
    [F_Remark] [nvarchar](500) NULL,
 CONSTRAINT [PK__T_Robot___2C6EC72325890140] PRIMARY KEY CLUSTERED 
(
    [F_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
/****** Object:  Table [dbo].[T_Robot_User]    Script Date: 2017/12/12 17:23:28 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[T_Robot_User](
    [F_Id] [int] IDENTITY(1,1) NOT NULL,
    [F_RoleId] [int] NULL,
    [F_Account] [nvarchar](40) NULL,
    [F_Password] [nvarchar](40) NULL,
    [F_CreateTime] [datetime] NULL,
    [F_IsDelete] [int] NULL,
 CONSTRAINT [PK__T_Robot___2C6EC72332F0437C] PRIMARY KEY CLUSTERED 
(
    [F_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
數據庫腳本

############################################################

舊:https://github.com/lishuyiba/lsyiFramework (無界面)

USE [dbCore]
GO
/****** Object:  Table [dbo].[Article]    Script Date: 2018/1/6 23:16:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Article](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [AuthorId] [int] NOT NULL,
    [CategoryId] [int] NOT NULL,
    [Content] [nvarchar](max) NULL,
    [CreateTime] [datetime2](7) NOT NULL,
    [DelFlag] [int] NOT NULL,
    [LastEditTime] [datetime2](7) NOT NULL,
    [Status] [int] NOT NULL,
    [Title] [nvarchar](max) NULL,
    [ViewCount] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object:  Table [dbo].[Category]    Script Date: 2018/1/6 23:16:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Category](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object:  Table [dbo].[Role]    Script Date: 2018/1/6 23:16:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Role](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object:  Table [dbo].[SystemLog]    Script Date: 2018/1/6 23:16:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[SystemLog](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Date] [datetime2](7) NOT NULL,
    [Operate] [nvarchar](max) NULL,
    [UserName] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object:  Table [dbo].[Tag]    Script Date: 2018/1/6 23:16:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Tag](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](max) NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO
/****** Object:  Table [dbo].[Users]    Script Date: 2018/1/6 23:16:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Users](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Account] [nvarchar](max) NULL,
    [Password] [nvarchar](max) NULL,
    [CreateTime] [datetime2](7) NOT NULL,
    [LastEditTime] [datetime2](7) NOT NULL,
    [DelFlag] [int] NOT NULL,
    [RoleID] [int] NOT NULL,
    [Status] [int] NOT NULL,
 CONSTRAINT [PK_T_CMS_CONTENTTAG] 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] TEXTIMAGE_ON [PRIMARY]

GO
數據庫腳本

############################################################

參考資料:

http://www.cnblogs.com/flyfish2012/p/3779810.html

http://docs.autofac.org/en/latest/integration/webapi.html

http://www.cnblogs.com/gamehiboy/p/5176618.html

https://docs.microsoft.com/en-us/ef/core/index

http://docs.autofac.org/en/latest/integration/webapi.html

 

 

 

 


免責聲明!

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



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