
Si quieres aprender a programar con ASP.NET Core, puedes consultar tres videos que publique en YouTube, sobre un sistema para administrar archivos en línea que desarrolle. En este artículo puedes descargar el código fuente y copiar la estructura de la base de datos para realizar pruebas.
Los videos los puedes ver en estos links
- Programación de un Sistema para Administrar Archivos con ASP.NET Core
- Programación de un Sistema para Administrar Archivos con ASP.NET Core (2da parte)
- Programación de un Sistema para Administrar Archivos con ASP.NET Core (3ra parte)
Puedes descargar el código fuente en el siguiente botón:
El sistema para administrara archivos esta desarrollado con la siguiente tecnología, lenguaje de programación y librerías.
- ASP.NET Core
- .NET 6.0
- JavaScript
- jQuery
- SQL Server
- CSS
- HTML5
Las funcionalidades que se desarrollaron son las siguientes
- Login. Permite autenticarte en el sistema, utiliza cookies para la autenticación.
- Folder. En esta opción el usuario puede crear o modificar folders.
- Archivos. En esta opción el usuario puede cargar archivos, ver los detalles o eliminarlos.
- Usuarios. En esta opción el usuario puede crear más usuarios que administren los archivos en el sistema.
- A continuación, te comparto el script de la base de datos para que lo copies y crees la base en SQL Server para que realices las pruebas.
USE [master]
GO
/****** Object: Database [ManagerFiles] Script Date: 26/10/2022 02:22:45 p. m. ******/
CREATE DATABASE [ManagerFiles]
GO
USE [ManagerFiles]
GO
/****** Object: Table [dbo].[Archivos] Script Date: 26/10/2022 02:22:47 p. m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Archivos](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Archivo] [varchar](150) NOT NULL,
[Nombre] [varchar](250) NOT NULL,
[FolderId] [int] NOT NULL,
[FechaCreacion] [datetime] NOT NULL,
[FechaModificacion] [datetime] NOT NULL,
[Activo] [bit] NOT NULL,
[UsuarioId] [int] NOT NULL,
[Extension] [varchar](50) NOT NULL,
CONSTRAINT [PK_Archivos] 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
/****** Object: Table [dbo].[Bitacoras] Script Date: 26/10/2022 02:22:47 p. m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Bitacoras](
[Id] [int] IDENTITY(1,1) NOT NULL,
[FolderId] [int] NOT NULL,
[ArchivoId] [int] NULL,
[Fecha] [datetime] NOT NULL,
[UsuarioId] [int] NOT NULL,
[Eliminar] [bit] NOT NULL,
[Movimiento] [varchar](150) NOT NULL,
CONSTRAINT [PK_Bitacoras] 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
/****** Object: Table [dbo].[Folders] Script Date: 26/10/2022 02:22:47 p. m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Folders](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Folder] [varchar](150) NOT NULL,
[PathFolder] [varchar](1250) NOT NULL,
[Nombre] [varchar](250) NOT NULL,
[FechaCreacion] [datetime] NOT NULL,
[FechaModificacion] [datetime] NOT NULL,
[Activo] [bit] NOT NULL,
[UsuarioId] [int] NOT NULL,
[FolderPadreId] [int] NULL,
CONSTRAINT [PK_Folders] 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
/****** Object: Table [dbo].[Usuarios] Script Date: 26/10/2022 02:22:47 p. m. ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Usuarios](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Usuario] [varchar](150) NOT NULL,
[Contrasena] [varchar](150) NOT NULL,
[Nombre] [varchar](80) NOT NULL,
[Apellidos] [varchar](150) NOT NULL,
[Activo] [bit] NOT NULL,
[FechaCreacion] [datetime] NOT NULL,
[UsuarioIdPadre] [int] NULL,
CONSTRAINT [PK_Usuarios] 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
ALTER TABLE [dbo].[Archivos] WITH CHECK ADD CONSTRAINT [FK_Archivos_Folders] FOREIGN KEY([FolderId])
REFERENCES [dbo].[Folders] ([Id])
GO
ALTER TABLE [dbo].[Archivos] CHECK CONSTRAINT [FK_Archivos_Folders]
GO
ALTER TABLE [dbo].[Archivos] WITH CHECK ADD CONSTRAINT [FK_Archivos_Usuarios] FOREIGN KEY([UsuarioId])
REFERENCES [dbo].[Usuarios] ([Id])
GO
ALTER TABLE [dbo].[Archivos] CHECK CONSTRAINT [FK_Archivos_Usuarios]
GO
ALTER TABLE [dbo].[Bitacoras] WITH CHECK ADD CONSTRAINT [FK_Bitacoras_Archivos] FOREIGN KEY([ArchivoId])
REFERENCES [dbo].[Archivos] ([Id])
GO
ALTER TABLE [dbo].[Bitacoras] CHECK CONSTRAINT [FK_Bitacoras_Archivos]
GO
ALTER TABLE [dbo].[Bitacoras] WITH CHECK ADD CONSTRAINT [FK_Bitacoras_Folders] FOREIGN KEY([FolderId])
REFERENCES [dbo].[Folders] ([Id])
GO
ALTER TABLE [dbo].[Bitacoras] CHECK CONSTRAINT [FK_Bitacoras_Folders]
GO
ALTER TABLE [dbo].[Bitacoras] WITH CHECK ADD CONSTRAINT [FK_Bitacoras_Usuarios] FOREIGN KEY([UsuarioId])
REFERENCES [dbo].[Usuarios] ([Id])
GO
ALTER TABLE [dbo].[Bitacoras] CHECK CONSTRAINT [FK_Bitacoras_Usuarios]
GO
ALTER TABLE [dbo].[Folders] WITH CHECK ADD CONSTRAINT [FK_Folders_Usuarios] FOREIGN KEY([UsuarioId])
REFERENCES [dbo].[Usuarios] ([Id])
GO
ALTER TABLE [dbo].[Folders] CHECK CONSTRAINT [FK_Folders_Usuarios]
GO
USE [master]
GO
ALTER DATABASE [ManagerFiles] SET READ_WRITE
GO
USE [ManagerFiles]
GO
SET IDENTITY_INSERT [dbo].[Usuarios] ON
GO
//contraseña es jose04
INSERT [dbo].[Usuarios] ([Id], [Usuario], [Contrasena], [Nombre], [Apellidos], [Activo], [FechaCreacion], [UsuarioIdPadre]) VALUES (1, N'info@estradawebgroup.com', N'10000.zlLD9C/NRNWUP94SQZ5rbg==.gdgp81aaEMEpvtTFfRF4hGsY+0SguPvEA3Yn3OtQ9/U=', N'Soporte', N'Tics', 1, CAST(N'2022-10-21T00:00:00.000' AS DateTime), NULL)
GO
SET IDENTITY_INSERT [dbo].[Usuarios] OFF
GO
SET IDENTITY_INSERT [dbo].[Folders] ON
GO
INSERT [dbo].[Folders] ([Id], [Folder], [PathFolder], [Nombre], [FechaCreacion], [FechaModificacion], [Activo], [UsuarioId], [FolderPadreId]) VALUES (2, N'', N'uploads', N'Principal', CAST(N'2022-10-21T14:13:12.413' AS DateTime), CAST(N'2022-10-21T14:13:12.413' AS DateTime), 1, 1, NULL)
GO
SET IDENTITY_INSERT [dbo].[Folders] OFF
GO