sábado, 19 de septiembre de 2020

Arquitectura en N-Capas

1.Capa presentacion: Encargada de interactuar con el usuario.

Representa a los formularios que se implementaran en el proyecto. La cantidad de formularios lo determina el desarrollador.

2.Capa de Negocio: Es la encargada de negociar los procesos entre la capa de presentacion y la capa de datos. Es la capa que recibe las peticiones del usuario y una vez tenga la respuesta lo envía a la capa de presentacion.

EntidadCN:Contiene la llamada a todos los metodos implementados en la clase EntidadDAO(Capa de datos).

3.Capa de Datos: Es la encargada de conectarse al servidor de datos e implementar metodos que permiten obtener toda la informacion solicitada por el usuario.

Conexion:  Contiene un metodo para conectarse a la base de datos.

EntidadDAO:Contiene la implementacion de todos los metodos que permiten realizar el listado y mantenimiento de registros de una determinada entidad.

4.Capa Entidad: Se encarga de contener todos aquellos objetos (clases) que representan al negocio, y esta es la única que puede ser instanciada en las 3 capas anteriores.

Contiene los atributos y los metodos get y set de la clase, a la cual se realizara el mantenimiento o consulta.




Patrón Value Object o VO (Anteriormente conocidas como DTO Data Transfer Object)
Consiste en tener clases con sus atributos y metodos get y set y que representan a cada una de las tablas de la BD. De esta manera podremos transportar un objeto con todos estos valores por medio de los métodos set y get de cada atributo.
Este patrón nos facilita para el transporte de la información, evitando que se envíen gran cantidad de parámetros a un método cuando queremos hacer un registro o actualización.

Data Access Object o DAO
Permite separar la lógica de negocio de la lógica para acceder a los datos, de tal forma que el DAO encapsula toda la lógica de acceso de datos al resto de la aplicación. Si cambiamos nuestra base de datos simplemente modificamos nuestra capa DAO
el DAO nos va a permitir obtener información de la base de datos, proporcionará los métodos necesarios para insertar, actualizar, borrar y consultar la información.


jueves, 30 de julio de 2020

Patron Diseño MVC


Patrón de Diseño MVC
-------------------------------
La arquitectura MVC se encarga de dividir nuestro proyecto en tres partes:
Modelo: Se encarga de trabajar con la base de datos, permite manejar la lógica del negocio y la gestión de la BD CRUD
Vista: Se encarga de interactuar con el usuario, recolecta información del usuario a través de una interfaz, diseñada para recolectar datos.
Controlador: Se encarga de controlar todos los procesos para obtener los resultados, y entregándolos a la vista para que pueda mostrarlos.

Funcionamiento:
1. El usuario interactúa con la vista de alguna forma, realizando una acción.
2. La Vista envía una notificación al controlador.
4. El Controlador recibe la notificación de la acción realizada por el usuario y solicita los datos al modelo.
5. El Modelo toma los datos que vienen desde la Vista lo procesa y envía los datos al controlador
6. El Controlador envía los datos a la vista.
7. La Vista entrega y muestra los datos al usuario.

viernes, 19 de junio de 2020

Programacion Orientado a Objetos

Programación Orientado a Objetos
===================================
Objeto: Un objeto es una unidad dentro de un programa informático que tiene atributos y métodos. Los objetos se crean a partir de clases.
Clase: Es una plantilla o molde que contiene métodos y atributos del objeto, y que a partir de esa plantilla se pueden crear varios objetos.
Abstracción: La abstracción es un proceso en el cual se va a definir las características específicas de un objeto, la descripción de los métodos y atributos que va a tener el objeto y representarlo dentro de una clase.
Encapsulamiento: Se encarga de proteger la información de manipulaciones no autorizadas.
Polimorfismo: Es la capacidad de definir varios métodos o funciones utilizando el mismo nombre pero definiendo diferentes procedimientos. 
El polimorfismo es cuando cada objeto pueda realizar la misma orden pero que cada uno responda de diferentes formas.
El polimorfismo se refiere en sobreescribir un metodo de la clase "padre" y que pueda tener un comportamiento de diferentes formas.
Se refiere a que Un objeto de la clase padre me guarde un objeto de la clase hija.
Se refiere a que un objeto de la clase padre pueda ser referenciado con cualquier instancia, no solo de su misma clase sino también la de sus clases hijas, de esta manera tenemos las muchas formas que puede tomar un objeto
Herencia: Es cuando se hereda los atributos y métodos de una clase padre a una clase hija para ahorrar código. Sirve para reutilizar códigos de programación.

Clase Static: Si una clase lo definimos como static todos los miembros de esa clase deben tener el modificador static, No se puede crear ninguna instancia de una clase static.
Para acceder a los miembros de una clase static se utiliza la misma clase seguido del metodo o atributo a utilizar. ejem: ClaseEstatica.atributo="hola mundo";

Atributo Static: El atributo estatico es compartido por todos los objetos de la misma clase.
Todos los objetos que se creen de una clase se va compartir el mismo valor de un campo static para todos los objetos

Metodo Static: Si el metodo es static los atributos y metodos deben ser staticos para ser usados, y no se puede crear objetos, para acceder a los metodos se debe utilizar unicamente el nombre de la clase y el operador punto seguido del metodo.

Se pueden utilizar o llamar desde cualquier parte del programa sin necesidad de crearle un objeto. 

Sobreescritura de metodos: Permite cambiar el comportamiento de un metodo. Se hace sobre la herencia/polimorfismo.

Atributos: Representan las características de la clase.
Constructor: Se encarga de inicializar los atributos del objeto.

Getter: Obtener el valor de un atributo.
Setter: Asignar un valor a un atributo.

Metodo ToString: Permite mostrar el estado de un objeto, este metodo se utiliza para mostrar los datos de mis atributos.

@Override: Es una anotación para indicar que se esta sobrescribiendo el método de la clase padre.

instanceof: Este operador nos va a permitir verificar si un objeto es de una determinada instancia.

Clase Abstracta: Es aquella de la que no se puede instanciar objetos.
Las clases abstractas pueden poseer atributos, métodos, constructores, etc.
Una clase abstracta puede contener métodos no-abstractos pero al menos uno de los métodos debe ser declarado abstracto.
Se utiliza cuando no tienes comportamiento a definir y quieres que las clases hijas sean las encargadas de agregar la funcionalidad a los métodos abstractos.

Interface: Una interfaz en Java es una colección de métodos abstractos y propiedades constantes. 
No se pueden instanciar. No podemos crear objetos a partir de una Interface.
No contiene constructores.
Si contiene atributos todos deben ser public static final
Una interface puede heredar de varias interfaces. Con las interfaces se permite la herencia múltiple.
Una clase puede implementar varias interfaces.

Clase FinalCuando la clase esta definida como Final no se puede heredar de dicha clase.


domingo, 12 de abril de 2020

Servidor Linux Comandos

Consultar la versión de centOS instalada: 
$> rpm --query centos-release
$> cat /etc/redhat-release


Ver datos de la CPU en linux
$> cat /proc/cpuinfo
$> lscpu
$> lshw -c processor

Ver espacio en el disco
$> df -h

Verificar el tamaño del directorio
$> du -hs *



IPTABLES
---------------
$> iptables -t filter -L INPUT --line-numbers -n

martes, 3 de marzo de 2020

Dar permisos a archivos de windows



Dar permisos a archivos de windows

Ir a la pestaña Seguridad y al boton Opciones Avanzadas




Ir a la pestaña Propietario



Ir al botón Editar




Luego Ir al botón Otros usuarios o grupos, agregamos el usuario(Todos) y aceptamos


   

Habilitamos Reemplazar propietario en subcontenedores y objetos y aceptamos todo y salimos.



Ingresamos nuevamente a la pestaña de Seguridad y al boton Opciones Avanzadas.




Ir al boton Cambiar permisos




Hacemos Click en el boton Agregar y Seleccionamos el usuario




  
Permitir control Total al usuario seleccionado(Todos) y aceptamos



Finalmente seleccionamos el usuario, dejamos marcado las 2 opciones y aplicamos lo cambios.


martes, 4 de febrero de 2020

CREACION DE BASE DE DATOS SQL SERVER

CREACION DE BASE DE DATOS DE UNA BIBLIOTECA
===============================================





USE MASTER
GO

CREATE DATABASE bdPrueba
ON PRIMARY
(NAME =  'bdPrueba', FILENAME = 'E:\BD\bdPrueba.mdf', SIZE = 10MB, MAXSIZE = Unlimited, FILEGROWTH = 2MB)
LOG ON
(NAME = 'bdPrueba_log', FILENAME ='E:\BD\bdPrueba_log.ldf', SIZE = 10MB, MAXSIZE = 30MB, FILEGROWTH = 10%)
 GO

 USE bdPrueba
 GO

CREATE TABLE Lector(
IdLector int identity(1,1) not null,
ApellidoLector varchar(80) not null,
NombreLector varchar(80) not null,
TelefonoLector varchar(30) not null,
CONSTRAINT PK_IdLector Primary key (IdLector)
 )
GO

CREATE TABLE Prestamo(
NroPrestamo int identity(1,1) not null,
CantLibrosPrestados int not null,
FechaPrestamo datetime not null,
IdLector int not null,
CONSTRAINT PK_Prestamo PRIMARY KEY(NroPrestamo),
CONSTRAINT FK_IdLector FOREIGN KEY (IdLector) REFERENCES Lector(IdLector)
)

CREATE TABLE Autor(
IdAutor int identity(1,1) not null,
ApellidoAutor varchar(60) not null,
NombresAutor varchar (60) not null,
PaisAutor varchar(30) not null
CONSTRAINT PK_IdAutor PRIMARY KEY (IdAutor)
)

CREATE TABLE Editorial(
IdEditorial int identity not null,
NombreEditorial varchar(80) not null
CONSTRAINT PK_IdEditorial PRIMARY KEY (IdEditorial)
)

CREATE TABLE Libro(
IdLibro int identity not null,
PrecioRef money null,
Titulo varchar(80) not null,
IdEditorial int not null,
CONSTRAINT PK_Idlibro PRIMARY KEY (IdLibro),
CONSTRAINT FK_IdEditorial FOREIGN KEY (IdEditorial) REFERENCES Editorial(IdEditorial)
)

CREATE TABLE Libro_Autor(
IdLibro int not null,
IdAutor int not null,
Capitulos int not null,
CONSTRAINT PK_Libro_Autor PRIMARY KEY (IdLibro,IdAutor),
CONSTRAINT FK_IdLibro FOREIGN KEY (IdLibro) REFERENCES Libro(IdLibro),
CONSTRAINT FK_IdAutor FOREIGN KEY (IdAutor) references Autor(IdAutor)
)
go

sp_helpconstraint Libro_Autor

CREATE TABLE Detalle_Prestamo(
IdLibro int not null,
NroPrestamo int not null,
NroCopia int not null,
CONSTRAINT PK_IdLibro_NroPrestamo PRIMARY KEY (IdLibro,NroPrestamo),
CONSTRAINT FK_IdLibro_DetallePrestamo FOREIGN KEY (IdLibro) REFERENCES Libro(IdLibro),
CONSTRAINT FK_NroPrestamo FOREIGN KEY (NroPrestamo) REFERENCES Prestamo(NroPrestamo)
)
GO

-- Añadir Campo a tabla lector
ALter table Lector
ADD DNI char(8) not null,
Direccion varchar(80) not null
GO

-- Añadir Constraint UNIQUE a tabla Lector
ALTER TABLE Lector
ADD CONSTRAINT UNQ_DNI
UNIQUE (DNI)
GO

SP_HELPCONSTRAINT Lector
GO

martes, 28 de enero de 2020

Descargar Google Chrome Y Firefox Offline

Descargar FIREFOX Offline
========================
Para 64 bit  --> https://download.mozilla.org/?product=firefox-72.0.2-SSL&os=win64&lang=es-ES
Para 32 bit --> https://download.mozilla.org/?product=firefox-72.0.2-SSL&os=win&lang=es-ES
Elegir Idioma y S.O --> https://www.mozilla.org/es-ES/firefox/all/?q=Spanish%20(Spain),%20Espa%C3%B1ol%20(de%20Espa%C3%B1a)#product-desktop-release

Descargar GOOGLE CHROME offline
=================================
Para 64 Bit --> http://www.google.com/chrome/eula.html?standalone=1 
Para 32 bit --> https://dl.google.com/tag/s/appguid%3D%7B8A69D345-D564-463C-AFF1-A69D9E530F96%7D%26iid%3D%7B126B12CB-92A4-59CC-C453-BB8C2CD640F9%7D%26lang%3Des%26browser%3D4%26usagestats%3D0%26appname%3DGoogle%2520Chrome%26needsadmin%3Dprefers%26ap%3Dstable-arch_x86-statsdef_1%26installdataindex%3Ddefaultbrowser/chrome/install/ChromeStandaloneSetup.exe

Actualizar TailwindCSS a la version 4 en Laravel

Actualizar TailwindCSS a la version 4 en Laravel npx @tailwindcss/upgrade En el archivo vite.config.ts Agregar el plugin de tailwindcss impo...