C7/ CRUD con Arquitectura Tradicional en Capas + POO+DDD+PEAA+Validaciones/ Nivel Avanzado 1/ VB-SQL
HTML-код
- Опубликовано: 7 фев 2025
- MENÚ DE NAVEGACIÓN
Capitulo Anterior (C6): Practica CRUD con Arquitectura Tradicional en Capas + POO+DDD+PEAA+Validaciones/ Nivel Avanzado 1/ C#-SQL
• C6/ CRUD con Arquitect...
TEMAS DEL VÍDEO ACTUAL(C7)
Crud Completo(Insertar,Actualizar, Eliminar y Leer datos) + Validaciones con VISUAL BASIC .NET
Capas de datos/Persistencia:
_Modelo de Datos/Entidad de Datos.
_Contratos/Interfaces de repositorios
_Repositorios
_Repositorio Maestro
_Repositorio de Entidades.
_Validar datos duplicados
Capa de Dominio/Negocio
_Modelo de dominio/Entidad de Dominio
_Modelo de Vistas
_Objetos de Valores
_Propiedades
_Validaciones de datos
_Reglas comerciales
_Estados de entidad
Capa de presentación
_Validación de datos
ENLACES
Descargar Base de Datos:
www.mediafire.c...
//OBTENER PROYECTO LOGIN + CRUD COMPLETO - NIVEL AVANZADO
rjcodeadvance....
Gracias por toda la explicación, me sirvió para irme por nuevas rutas. Se que esto es una pequeña practica pero quisiera ampliar mas la función d calculo de fecha, porque en la forma actual no te dice los meses exactos y te añade un año independientemente si solo tienes 1 mes mas:
1. Cambiar de integer a single la propiedad Age
2. Probar de esta forma el calculo:
Private Function Get_Edad(birthday As Date) As Single
Dim hoy = Date.Now
Dim m As Integer = DateDiff(DateInterval.Month, birthday, Today)
Dim y As Single = Fix(m / 12)
Dim m1 = (m - (y * 12)) / 100
Dim edad As Single = y + m1
Return edad
End Function
Gracias por el tiempo y la dedicación, muy buen tutorial
ME FUNCIONÓ CORRECTAMENTE, MUCHAS GRACIAS CRACK
Vaya, es uno de los mejores tutoriales que he visto. Temas complejos explicados de manera sencilla y todavia explicas las cosas simples. Ojala sacaras mas videos con respeto a estas metodologias de desarrollo por que es lo que ando buscado. Tienes cursos en Udemy?
gracias 👍, trataré de subir mas vídeos. No doy cursos en udemy. .
Saludos
Muchaa gracias, me dio muchas ideas para trabajar mis proyectos.
Awesome video, really so important and professional explanation
Muchísimas gracias por sus tutoriales. Tengo en mi mente una idea de cómo hacer un formulario para conectar la base de datos cuando instalo el software por primera vez para obtener la cadena de conexión y guardarlo en la configuración de la aplicación del archivo usando el mismo proyecto vb.net
Seria lo mas ideal :) 👍
Buenos días equipos RJ Advance, saludos. Mis gratas felicitaciones por este gran aporte en cuanto a conocimientos, tecnología, manejo de la información y construcción de proyectos informáticos de Base de Datos. Les informo que hice el proyecto y funciona correctamente, incluso lo repetí tomando en cuenta una información sobre materiales y funciona excelente. Sin embargo, tengo una duda, estoy tratando de ampliar el proyecto, en el sentido de agregar otras tablas, ponle 2 ó 3 tablas más, pero la duda que tengo es cómo insertar ó actualizar registros en las otras tablas, ya que hay campos que son Clave Foránea de la 1ra tabla. Es decir, el campo IdEmpleado de la 1ra tabla es Clave Foránea de la Tabla EntradaEmpleados, codificado como CodEmpleado. Mi pregunta es cómo hacer en Visual Basic.Net la nueva inserción en la 2da tabla si necesito el campo IdEmpleado, que es Primary key de la 1ra tabla. He realizado las pruebas a nivel de Sql server y los comandos funcionan bien porque tengo la información, la duda la tengo a nivel de Visual Basic.Net. Agradezco si me pueden recomendar alguna estrategia sobre eso. Saludos a todos, gracias mil por el aporte desde Venezuela.
VB... Gracias bro aun no lo veo todo pero se que estará bueno......
Muy buen vídeo, no hay muchos vídeos en español explicando estas cosas.
Pro tip: watch series on Flixzone. I've been using it for watching loads of movies lately.
@Erick Manuel yea, I've been watching on flixzone} for years myself :D
Maestro !!!!
Ola, muy buen material, siendo muy ordenado, es muy complejo seguir el ritmo cuando se trata de agregar otras funciones en esa arquitectura, tengo una problemática y consulta, el código usado para listar los datos en el DataGridView que debería cambiar para usarlo con un combo box?
Genial, muchas gracias.........
De nuevo gran video. una pregunta...y si en la parte que usas para listar todos los registros (selecttall) también la usaras para buscar ... como seria ??
Excelente video. No sé si es por alguna configuración del Visual Studio u otro motivo, pero al usar la opción "acciones rápidas y refactorizaciones/encapsular campos (y usar propiedad)" me genera los métodos con el nombre de la propiedad + 1, ejemplo: para Private nombre As String, me genera
Public Property Nombre1 As String
Get
Return nombre
End Get
Set(value As String)
nombre = value
End Set
End Property
¿Cómo puedo corregir esto?
muchas gracias...
Like, no hay mucho material de DDD en español, ojala y tuvieras tiempo de hablarnos un poco más.
saludos
Tengo un problema con la IDE de Visual Studio, tengo instalada la version community 2019, mi problema es que cuando quiero hacer la referencia del system.configuration; no me aparece en el cuadro de dialogo la opcion de Ensamblados, he buscado por todos lados y nada, ya desinstale el visual studio y sigue aun el mismo problema.
Tengo descargados todos tus vídeos y los uso como guía , pero quiero aprender más por mi cuenta. Algún canal de RUclips, libro, foro, grupo o lo que sea que recomiendes sobre patrones de software y arquitecturas . O mismo algún curso pago. Gracias
Hola Daniel, te recomendaría leer estos libros.
1.-Design patterns, Elements of Reusable Object- Oriented Software (GOF)
2.-Patterns of Enterprise Application Architecture (Martin Fowler)
3.-Domain-driven design-DDD (Eric Evans)
No creo que haya canales o grupos, pero puedes pasar por el foro statckOverFlow
Muchas gracias! Saludos
Buen Video, una consulta: cuando quiero mostrar datos de dos clases en una lista, de la base de datos con inner join, como lo muestro en el datagridview, por que lo que hice de acuerdo a la metodologia enseñada no me muestra mi datos en el datagridview, te muestro el metodo:
Public Function BuscarID() As List(Of ReduccionModel)
Dim listarReduccionDataModel = repositorio.BuscarID(IdReduccion)
Dim listarReduccionVerModel = New List(Of ReduccionModel)
For Each item As Reduccion In listarReduccionDataModel
listarReduccionVerModel.Add(New ReduccionModel With {
.IdReduccion = item.IdReduccion,
.NOperativo = item.NOperativo,
.Parcelas = item.Parcelas,
.Reduccion = item.Reduccion,
.IdPersona = item.IdPersona,
.IdOperacional = item.IdOperacional,
.IdGrupo = New GrupoModel With {.IdGrupo = item.IdGrupo.IdGrupo,
.Nombre = item.IdGrupo.Nombre}
})
Next
Return listarReduccionVerModel
End Function
Esto realizo en el formulario, para llamar a la lista, y no me muestra los datos de la tabla, que debo hacer, una sugerencia para que me muestre los datos:
Public Sub ListaReduccion()
Dim listarReduccion = reduccionData.listar
Dim row As DataGridViewRow = DataGridView1.CurrentRow
For Each item As ReduccionModel In listarReduccion
With row
.Cells(0).Value = item.IdReduccion
.Cells(1).Value = item.NOperativo
.Cells(2).Value = item.Parcelas
.Cells(3).Value = item.Reduccion
.Cells(4).Value = item.IdPersona
.Cells(5).Value = item.IdOperacional
.Cells(6).Value = item.IdGrupo.IdGrupo
End With
Next
End Sub
Me produce un error en la primera llamada de la .Cells(0).Value = item.IdReduccion
: Referencia a objeto no establecida como instancia de un objeto, nesecito su ayuda, ya estoy varios dias probando varias formas y no llego a nada. Espero tu pronta respuesta para continuar con mi proyecto. Gracias
Excelente video, solo que tengo un problema el datagridview en la segunda columna (char) solo me aparece una letra por que puede ser ?
cunado doy inicio a la aplicación marca este error en la cadena de conexión del repository System.NullReferenceException: 'Referencia a objeto no establecida como instancia de un objeto.'
Hola, una consulto: Los patrones de Entity y Contracts puede ser que también vayan en la capa de dominio? o No.
Buenas Tarde Amigo, muchas gracias por tus videos, he aprendido muchas cosas gracias a ti, bueno tengo una pregunta como se puede hacer para filtrar las fechas, por ejemplo quiero mostrar los empleados que cumplan años entre Julio y Agosto , oh cualquier otra fecha, gracias y espero que me puedas ayudar con esto
Hola en la clase EmployeeModel inicias una variable Repository como IEmployeeRepository, y en el constructor haces Repository = New EmployeeRepository?, a mi me tira una exepcion, o sea la misma variable contiene dos tipos de valores distintos. Me podrias explicar como resolverlo? Gracias
Estoy desarrollando este patron pero enlazado a acces (oledb) todo me ha resultado menos el insert ni update. podias ayudarme con un ejemplo de codigo? el error lo tengo en el repositorio de empleado al momento de insertar
Buen video pero tengo una duda:
Usar el "Asistente de configuración de orígenes de datos" tiene sus desventajas? cuales serian?
Hola como puedo convertir esto a un query, es decir para no usar un procedimineto almacenado:
public int remove(int id)
{
List parameters = new List();
parameters.Add(new SqlParameter("@id", id));
return ExecuteNonQuery("removeUser", parameters);
}
Disculpa, como puedo utilizar el metodo GetEmployees pasando valores y en lugar de un query "SelectAll" utilizar un stored procedure. Saludos
gracias, sabes me preguntaba si en un futuro, veremos mas que solo el CRUD, y mas logica de negocio
No estoy seguro, para tratar mas sobre la capa de dominio/Negocio, se requiere un proyecto de gran tamaño que realmente tenga muchas reglas comerciales, por lo que no será posible.
Saludos
@@RJCodeAdvance ok gracias por todo
Buen vídeo, muy explicativo. Tengo una duda, cuando cargo el datagrid de esa forma, no me permite hacer el ordenamiento por columnas ya que las listas no son de tipo IBindingList, hay alguna alternativa para eso?
usted podría mostrar un ejemplo de cómo implementar el método Get By Salary ()?
Buen Video, una consulta: cuando quiero mostrar datos de dos clases en una lista, de la base de datos con inner join, como lo muestro en el datagridview, por que lo que hice de acuerdo a la metodologia enseñada no me muestra mi datos en el datagridview, te muestro el metodo:
Public Function listar() As List(Of ReduccionModel)
Dim listarReduccionDataModel = repositorio.Listar
Dim listarReduccionVerModel = New List(Of ReduccionModel)
For Each item As Reduccion In listarReduccionDataModel
listarReduccionVerModel.Add(New ReduccionModel With {
.IdReduccion = item.IdReduccion,
.NOperativo = item.NOperativo,
.Parcelas = item.Parcelas,
.Reduccion = item.Reduccion,
.IdPersona = item.IdPersona,
.IdOperacional = item.IdOperacional,
.IdGrupo = New GrupoModel With {.IdGrupo = item.IdGrupo.IdGrupo,
.Nombre = item.IdGrupo.Nombre}
})
Next
Return listarReduccionVerModel
End FunctionEsto realizo en el formulario, para llamar a la lista, y no me muestra los datos de la tabla, que debo hacer, una sugerencia para que me muestre los datos:
Public Sub ListaReduccion()
Dim listarReduccion = reduccionData.listar
Dim row As DataGridViewRow = DataGridView1.CurrentRow
For Each item As ReduccionModel In listarReduccion
With row
.Cells(0).Value = item.IdReduccion
.Cells(1).Value = item.NOperativo
.Cells(2).Value = item.Parcelas
.Cells(3).Value = item.Reduccion
.Cells(4).Value = item.IdPersona
.Cells(5).Value = item.IdOperacional
.Cells(6).Value = item.IdGrupo.IdGrupo
End With
Next
End Sub
Me produce un error en la primera llamada de la .Cells(0).Value = item.IdReduccion : Referencia a objeto no establecida como instancia de un objeto, necesito su ayuda, ya estoy varios días probando varias formas y no llego a nada. Espero tu pronta respuesta para continuar con mi proyecto. Gracias
Hola,
Tengo una duda...Por qué realizas un bucle en la lista y en el datagridview?
No sería mas sencillo, colocar datagridview1.DataSource=reduccionData.listar , como se realiza en el video.
@@RJCodeAdvance gracias por la respuesta, pense que no ivan a responder.
te comento, que cuando realizo la llamada a la lista con el datagridview: datagridview1.DataSource=reduccionData.listar; no me muestra los datos de la clase GrupoModel cuaquiera que referencie (IdGrupo o Nombre que son campos de esa clase), me muestra en esa columna IdGrupo: Dominio.GrupoModel.
tambien lo realice por este metodo y me muestra el error: El índice estaba fuera de rango. Debe ser no negativo y menor que el tamaño de la colección. Como puedo mostrar los datos en el datagridview, una ayuda
Public Sub ListaReduccion()
Dim listarReduccion = reduccionData.listar
For i As Integer = 0 To listarReduccion.Count - 1
Me.DataGridView1.Rows(i).Cells(0).Value = listarReduccion.Item(i).IdReduccion
Me.DataGridView1.Rows(i).Cells(1).Value = listarReduccion.Item(i).NOperativo
Me.DataGridView1.Rows(i).Cells(2).Value = listarReduccion.Item(i).Parcelas
Me.DataGridView1.Rows(i).Cells(3).Value = listarReduccion.Item(i).Reduccion
Me.DataGridView1.Rows(i).Cells(4).Value = listarReduccion.Item(i).IdPersona
Me.DataGridView1.Rows(i).Cells(5).Value = listarReduccion.Item(i).IdOperacional
Me.DataGridView1.Rows(i).Cells(6).Value = listarReduccion.Item(i).IdGrupo.IdGrupo
Next
End Sub
algo de los dos metodos mencionados de llamar a los datos en el datagridview requiere modificar o hay otra forma, toda ayuda es factible para resolver este caso. Gracias
Si solo tienes el ID y Nombres en la clase GrupoModel, tienes que anular el metodo ToString() y devolver el nombre de GrupoModel para mostrar en el datagridview.
Public Overrides Function ToString() As String
Return positionName
End Function
Y normalmente colocar datagridview1.DataSource=reduccionData.listar.
Sin embargo, si en la clase GrupoModel tienes mas de 2 atributos que mostrar, tienes que crear los modelos de vista en capa de presentación con todos los campos de ambos entidades que deseas mostrar *en una sola clase*
Ver: ruclips.net/video/SGXR0pDCP38/видео.html
Hola, en la clase "DataValidation " me da un error cuando voy a inicializar context = New ValidationContext(instace), Me dice que faltan parámetros (serviceProvider as IServiceProvides, items as IDictionary). Me podrías orientar sobre ese error?
Estuve leyendo que estos parámetros son opcionales pero entonces ¿Por qué el error?
ayuda! como se usaría un procedimiento almacenado con joins dentro de este proyecto, como lo jalo desde la base de datos?
ya lo hice jaja excelentes videos
has una continuacion de este porfavor
Pregunta, como deberia hacer si en lugar de trabajar con parametros trabajo con Stored Procedures? Como quedaria el MasterRepository?
Hola Fernando, quedaría igual, solamente reemplaza los transact sql(select *from...) por procedimientos almacenados y cambia el tipo de sql comando.
cmd.CommandText = CommandType.StoredProcedure;
@@RJCodeAdvance Muchas gracias por tu respuesta
@@RJCodeAdvance "Protected Function ExecuteNonQuery(transactSql As String) As Integer"->en esta función solo se cambia transact sql , por StoredProcedure?
Estoy hice todo tal cual y solo me muestra un registro en el DataGridView los demas registros no me lo muestra
Ya encontré el error, Tenia el *Return ListEmployee* dentro del *For Each* y por eso no me estaba mostrando la lista completa
•|| Hasta el momento, no sé en qué circunstancias puedo usar la carpeta de ViewModels /: ¿Alguien una breve explicación? please uu'
Amigo una consulta. que sabes sobre formularios Ribbon. se que se hacen con "devexpress" pero existe una versión gratuita que funcione o existen otros métodos de realizarlos.
Hola Angel, según yo sepa, no hay versiones gratuitas de los paquetes de DevExpress, se puede hacer manualmente(las librerías de DevExpress son un conjunto de clases y interfaces), pero la codificación seria muy extensa. Sin embargo, hay un proyecto de Ribbon (de codigo abierto )creado por el programador José Menéndez Poo.
archive.codeplex.com/?p=ribbon
github.com/RibbonWinForms/RibbonWinForms
excelente aporte amigo, el link del codigo esta roto !
Bro, solo necesito instalar el VS con las 3 primeras opciones o no:(? saludos!
Hola, mmm ..a que te refieres con instalar las 3 primeras opciones?
@@RJCodeAdvance buenas, esque recien empiezo en el mundo de la programación y bueno la pregunta seria: a la hora de instalar el visual studio que opciones debo seleccionar para poder diseñar el login, la interfaz de usuario y para que pueda ser usado desde cualquier red externa (me refiero online) ya que en las ultimas versiones pide seleccionar que cosas deseas instalar y la verdad amigo esque no tengo ni idea, solo me centrare en esos tipos de proyectos.. saludos y muchas gracias! espero mas videos!
Si estas instalando VS 2017, y tienes pensado desarrollar aplicaciones de escritorio(windows forms - WPF)
selecciona solo : Desarrollo de escritorio de .NET
no entiendo esta forma de programar tuya
Hola, este tutorial es un ejemplo resumen básico demostrativo de los los libros PEAA y DDD.
Te recomiendo la teoría de la arquitectura en capas.
ruclips.net/video/SGXR0pDCP38/видео.html