SlideShare una empresa de Scribd logo
1 de 60
Descargar para leer sin conexión
http://www.doctrine-project.org/
jueves, 26 de septiembre de 13
¿Qué es Doctrine?
jueves, 26 de septiembre de 13
¿Qué es Doctrine?
•DBAL (Database abstraction layer)
•ORM (Object Relational Mapper)
jueves, 26 de septiembre de 13
¿Qué significa DBAL?
jueves, 26 de septiembre de 13
Database Abstraction
Layer
jueves, 26 de septiembre de 13
DBAL
“Powerful database abstraction layer with many features for
database schema introspection, schema management and
PDO abstraction”
jueves, 26 de septiembre de 13
DBAL
<?php
use DoctrineDBALConfiguration;
use DoctrineDBALDriverManager;
$config = new Configuration();
//..
$connectionParams = array(
    'dbname' => 'mydb',
    'user' => 'user',
    'password' => 'secret',
    'host' => 'localhost',
    'driver' => 'pdo_mysql',
);
$conn = DriverManager::getConnection($connectionParams, $config);
Crear conexión
jueves, 26 de septiembre de 13
DBAL
<?php
// ...
$conn = DriverManager::getConnection($connectionParams, $config);
$stmt = $conn->query('SELECT * FROM users');
while ($row = $stmt->fetch()) {
    echo $row['name'], PHP_EOL;
}
Ejecutar consulta
jueves, 26 de septiembre de 13
DBAL
<?php
// ...
$conn = DriverManager::getConnection($connectionParams, $config);
$stmt = $conn->prepare('SELECT * FROM users WHERE name = ? AND age = ?');
$stmt->bindValue(1, $name);
$stmt->bindValue(2, $age);
$stmt->execute();
Ejecutar consulta con parámetros
jueves, 26 de septiembre de 13
DBAL
<?php
// ...
$conn = DriverManager::getConnection($connectionParams, $config);
$stmt = $conn->prepare('SELECT * FROM users WHERE id = :id');
$stmt->bindValue(':id', $id);
$stmt->execute();
Ejecutar consulta con parámetros con nombre
jueves, 26 de septiembre de 13
DBAL
<?php
// ...
$conn = DriverManager::getConnection($connectionParams, $config);
$stmt = $conn->prepare('SELECT * FROM users WHERE created > :created');
$stmt->bindValue(':created', $created, 'datetime');
$stmt->execute();
Ejecutar consulta con parámetros indicando typo de dato
jueves, 26 de septiembre de 13
¿Qué es un ORM?
jueves, 26 de septiembre de 13
Object-Relational
Mapping
jueves, 26 de septiembre de 13
"Es una técnica de programación para convertir datos
entre el sistema de tipos utilizado en un lenguaje de
programación orientado a objetos y la utilización de
una base de datos relacional, utilizando un motor de
persistencia. En la práctica esto crea una base de
datos orientada a objetos virtual, sobre la base de
datos relacional."
http://es.wikipedia.org/wiki/Mapeo_objeto-relacional
jueves, 26 de septiembre de 13
ORM
• Transforma datos de la DB a objetos PHP
jueves, 26 de septiembre de 13
ORM
• Transforma datos de la DB a objetos PHP
• Y de PHP a la DB
jueves, 26 de septiembre de 13
ORM
• Transforma datos de la DB a objetos PHP
• Y de PHP a la DB
• Transforma las relaciones entre dos tablas
jueves, 26 de septiembre de 13
ORM
• Transforma datos de la DB a objetos PHP
• Y de PHP a la DB
• Transforma las relaciones entre dos tablas
• Simplifica la transformación entre tipos de
datos
jueves, 26 de septiembre de 13
ORM
• Transforma datos de la DB a objetos PHP
• Y de PHP a la DB
• Transforma las relaciones entre dos tablas
• Simplifica la transformación entre tipos de
datos
• Data Mapper
jueves, 26 de septiembre de 13
ORM
¿Qué nos soluciona?
jueves, 26 de septiembre de 13
ORM
¿Qué nos soluciona?
• Podemos utilizar orientación a objetos
jueves, 26 de septiembre de 13
ORM
¿Qué nos soluciona?
• Podemos utilizar orientación a objetos
• Evita tener SQL en todos lados
jueves, 26 de septiembre de 13
ORM
¿Qué nos soluciona?
• Podemos utilizar orientación a objetos
• Evita tener SQL en todos lados
• Simplifica el entendimiento del código
jueves, 26 de septiembre de 13
ORM
¿Qué nos soluciona?
• Podemos utilizar orientación a objetos
• Evita tener SQL en todos lados
• Simplifica el entendimiento del código
• Facilita el proceso de migración
jueves, 26 de septiembre de 13
ORM
¿Qué nos soluciona?
• Podemos utilizar orientación a objetos
• Evita tener SQL en todos lados
• Simplifica el entendimiento del código
• Facilita el proceso de migración
• SQL Injection
jueves, 26 de septiembre de 13
ORM
¿Problemas?
jueves, 26 de septiembre de 13
ORM
¿Problemas?
• Agrega overhead
• Puede ejecutar SQL no óptimo(si no se
utiliza adecuadamente)
• No siempre es la mejor solución
jueves, 26 de septiembre de 13
ORM
EntityManager
jueves, 26 de septiembre de 13
ORM
EntityManager
• Responsable de gestionar la persistencia y
obtención de entidades
jueves, 26 de septiembre de 13
ORM
EntityManager
• Responsable de gestionar la persistencia y
obtención de entidades
• Uno por conexión
jueves, 26 de septiembre de 13
ORM
EntityManager
• Responsable de gestionar la persistencia y
obtención de entidades
• Uno por conexión
• Utiliza el patrón UnitOfWork para optimizar
la gestión de muchas entidades
jueves, 26 de septiembre de 13
ORM
EntityManager
<?php
use DoctrineORMEntityManager;
use DoctrineORMToolsSetup;
$paths = array("/path/to/entity-files");
$isDevMode = false;
// Configuracion para entidades que utilizan annotations
$config = Setup::createAnnotationMetadataConfiguration($paths, $isD
evMode);
// Obtengo el EntityManager
$entityManager = EntityManager::create($connection, $config);
jueves, 26 de septiembre de 13
ORM
EntityManager
<?php
// ...
// Parametros de conexión
$connectionParams = array(
    'dbname' => 'mydb',
    'user' => 'user',
    'password' => 'secret',
    'host' => 'localhost',
    'driver' => 'pdo_mysql',
);
// Obtengo el EntityManager
$entityManager = EntityManager::create($connectionParams, $config);
jueves, 26 de septiembre de 13
ORM
Entity Manager
// Indica al EntityManager que se
// debe persistir la entidad en la db
$entityManager->persist($entity);
persist()
jueves, 26 de septiembre de 13
ORM
Entity Manager
// Escribe los cambios en la base de datos
$entityManager->flush();
flush()
jueves, 26 de septiembre de 13
ORM
Entidades
jueves, 26 de septiembre de 13
ORM
Entidades
• Objetos PHP
jueves, 26 de septiembre de 13
ORM
Entidades
• Objetos PHP
• Representan a una tabla en la BD
jueves, 26 de septiembre de 13
ORM
Entidades
• Objetos PHP
• Representan a una tabla en la BD
• Una instancia representa a una fila en la tabla
jueves, 26 de septiembre de 13
ORM
Entidades
• Objetos PHP
• Representan a una tabla en la BD
• Una instancia representa a una fila en la tabla
• Se pueden heredar
jueves, 26 de septiembre de 13
ORM
Entidades
<?php
class User
{
private $id;
private $name;
public function getId()
{
return $this->id;
}
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
}
$a = new User();
$a->setName("Ismael");
jueves, 26 de septiembre de 13
ORM
Entidades
<?php
/** @Entity */
class User
{
    /**
     * @Id
     * @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @Column(type="string")
     */
    private $name;
}
jueves, 26 de septiembre de 13
ORM
Entidades
$user = new User();
$user->setName("Ismael");
$entityManager->persist($user);
$entityManager->flush();
echo $user->getId();
1.Instanciación
2.Hidratación
3.Persistencia
4.Escritura
jueves, 26 de septiembre de 13
ORM
Relaciones entre entidades
jueves, 26 de septiembre de 13
ORM
Relaciones entre entidades
•OneToOne
•OneToMany
•ManyToOne
•ManyToMany
jueves, 26 de septiembre de 13
ORM
Relaciones entre entidades
<?php
/** @Entity */
class User
{
    /**
     * @Id
     * @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @Column(type="string")
     */
    private $name;
    /**
     * @OneToMany(
* targetEntity="PhoneNumber", 
* mappedBy="user",
* cascade={“persist”, “remove”}
* )
     */  
    private $phoneNumbers;
}
<?php
/** @Entity */
class PhoneNumber
{
    /**
     * @Id
     * @Column(type="integer")
     * @GeneratedValue(strategy="AUTO")
     */
    private $id;
    /**
     * @Column(type="string")
     */
    private $phone;
    /**
     * @ManyToOne(
* targetEntity="User", 
* inversedBy="phoneNumbers"
* )
     */  
    private $user;
}
jueves, 26 de septiembre de 13
ORM
Relaciones entre entidades
// Crea una instancia de PhoneNumber
$phoneNumber = new PhoneNumber();
$phoneNumber->setPhone("555-1234");
$user = new User();
$user->setName("Ismael");
// Asocia el phone number al usuario
$user->addPhoneNumber($phoneNumber);
// Guarda ambas entidades
$entityManager->persist($user);
$entityManager->flush();
foreach ($user->getPhoneNumbers() as $phoneNumber) {
    echo $phoneNumber->getPhone(), PHP_EOL;
}
jueves, 26 de septiembre de 13
ORM
Repositorios
jueves, 26 de septiembre de 13
ORM
Repositorios
• Nos da acceso a los datos
jueves, 26 de septiembre de 13
ORM
Repositorios
• Nos da acceso a los datos
• Independiente de como se persisten los
datos
jueves, 26 de septiembre de 13
ORM
Repositorios
• Nos da acceso a los datos
• Independiente de como se persisten los
datos
• Existe uno por entidad
jueves, 26 de septiembre de 13
ORM
Repositorios
• Nos da acceso a los datos
• Independiente de como se persisten los
datos
• Existe uno por entidad
• Puedo crear mis propios repositorios
jueves, 26 de septiembre de 13
ORM
Repositorios
<?php
interface ObjectRepository
{
    public function find($id);
    public function findAll();
    public function findBy(array $criteria, array $orderBy = null, 
$limit = null, $offset = null);
    public function findOneBy(array $criteria);
}
jueves, 26 de septiembre de 13
ORM
Repositorios
<?php
// Retorna el repositorio para la entidad NamespaceUser
$repository = $entityManager->getRepository('NamespaceUser');
// Obtengo el objeto con ID = 1
$user = $repository->find(1);
echo $user->getName();
find()
jueves, 26 de septiembre de 13
ORM
Repositorios
<?php
// Retorna el repositorio para la entitdad NamespaceUser
$repository = $entityManager->getRepository('NamespaceUser');
// Obtengo un array de objetos User
$user = $repository->findAll();
foreach ($users as $user) {
    echo $user->getName();
}
findAll()
jueves, 26 de septiembre de 13
ORM
Repositorios
<?php
// Retorna el repositorio para la entitdad NamespaceUser
$repository = $entityManager->getRepository('NamespaceUser');
// Obtengo un array de objetos User donde status = enabled
$user = $repository->findBy(array('status' => 'enabled'));
foreach ($users as $user) {
    echo $user->getName();
}
findBy()
jueves, 26 de septiembre de 13
ORM
Repositorios
<?php
// Retorna el repositorio para la entitdad NamespaceUser
$repository = $entityManager->getRepository('NamespaceUser');
// Obtengo el primer objeto User donde status = enabled
$user = $repository->findOneBy(array('status' => 'enabled'));
echo $user->getName();
findOneBy()
jueves, 26 de septiembre de 13
Resumen
DBAL
Capa de abstracción para la interacción con
nuestra bases de datos
ORM
Herramienta que nos permite traducir objetos
PHP en registros de la base de datos y viceversa
jueves, 26 de septiembre de 13
¿Preguntas?
jueves, 26 de septiembre de 13
¡Gracias!
jueves, 26 de septiembre de 13

Más contenido relacionado

Similar a Doctrine

Documentacion postgresql
Documentacion postgresqlDocumentacion postgresql
Documentacion postgresqlCesar Martinez
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaDavid J. Brenes
 
Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2Ronny López
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Asier Marqués
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryJavier P.
 
Introducción a RubyOnRails
Introducción a RubyOnRailsIntroducción a RubyOnRails
Introducción a RubyOnRailsPablo Marrero
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4cognos_uie
 
Oracle Database 11g vs 12c
Oracle Database 11g vs 12cOracle Database 11g vs 12c
Oracle Database 11g vs 12cDeiby Gómez
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007JuancaPompilla
 
Cursores , procedimientos almacenados en oracle y sql server
Cursores , procedimientos almacenados en oracle y sql serverCursores , procedimientos almacenados en oracle y sql server
Cursores , procedimientos almacenados en oracle y sql serverHome
 
Taller Redis
Taller RedisTaller Redis
Taller Redisbetabeers
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryJavier P.
 
Gustavo php
Gustavo phpGustavo php
Gustavo phpGustavo
 
Programacion de bases de datos en OOoBasic
Programacion de bases de datos en OOoBasicProgramacion de bases de datos en OOoBasic
Programacion de bases de datos en OOoBasicAlexandro Colorado
 

Similar a Doctrine (20)

Documentacion postgresql
Documentacion postgresqlDocumentacion postgresql
Documentacion postgresql
 
Cloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de PersistenciaCloud Computing: las nuevas Capas de Persistencia
Cloud Computing: las nuevas Capas de Persistencia
 
Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2Integrando Redis en aplicaciones Symfony2
Integrando Redis en aplicaciones Symfony2
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
Administracion de base de datos
Administracion de base de datosAdministracion de base de datos
Administracion de base de datos
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
PHP's FIG and PSRs
PHP's FIG and PSRsPHP's FIG and PSRs
PHP's FIG and PSRs
 
Introducción a RubyOnRails
Introducción a RubyOnRailsIntroducción a RubyOnRails
Introducción a RubyOnRails
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
Oracle Database 11g vs 12c
Oracle Database 11g vs 12cOracle Database 11g vs 12c
Oracle Database 11g vs 12c
 
9.laravel
9.laravel9.laravel
9.laravel
 
Mysql adodb pdf_php
Mysql adodb pdf_phpMysql adodb pdf_php
Mysql adodb pdf_php
 
Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007Presentacion Ruby on Rails CTIC-Cusco2007
Presentacion Ruby on Rails CTIC-Cusco2007
 
Cursores , procedimientos almacenados en oracle y sql server
Cursores , procedimientos almacenados en oracle y sql serverCursores , procedimientos almacenados en oracle y sql server
Cursores , procedimientos almacenados en oracle y sql server
 
Taller Redis
Taller RedisTaller Redis
Taller Redis
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
Postgresql expo
Postgresql expoPostgresql expo
Postgresql expo
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Gustavo php
Gustavo phpGustavo php
Gustavo php
 
Programacion de bases de datos en OOoBasic
Programacion de bases de datos en OOoBasicProgramacion de bases de datos en OOoBasic
Programacion de bases de datos en OOoBasic
 

Más de Ismael Ambrosi

Más de Ismael Ambrosi (6)

Assetic PHPmvd
Assetic PHPmvdAssetic PHPmvd
Assetic PHPmvd
 
Introducción a testing en php
Introducción a testing en phpIntroducción a testing en php
Introducción a testing en php
 
Symfony forms
Symfony formsSymfony forms
Symfony forms
 
Empezando con Twig
Empezando con TwigEmpezando con Twig
Empezando con Twig
 
Introducción a composer
Introducción a composerIntroducción a composer
Introducción a composer
 
Introducción a Symfony
Introducción a SymfonyIntroducción a Symfony
Introducción a Symfony
 

Último

Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfKarinaCambero3
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerenciacubillannoly
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024anasofiarodriguezcru
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptxHugoGutierrez99
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888ElianaValencia28
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaYeimys Ch
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalEmanuelCastro64
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdfBetianaJuarez1
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docxobandopaula444
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfFernandoOblitasVivan
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfJoseAlejandroPerezBa
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointValerioIvanDePazLoja
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxCarolina Bujaico
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)JuanStevenTrujilloCh
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1ivanapaterninar
 
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.radatoro1
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nóminacuellosameidy
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfcristianrb0324
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskbydaniela5
 

Último (20)

Herramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdfHerramientas que posibilitan la información y la investigación.pdf
Herramientas que posibilitan la información y la investigación.pdf
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
Slideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan GerenciaSlideshare y Scribd - Noli Cubillan Gerencia
Slideshare y Scribd - Noli Cubillan Gerencia
 
Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024Trabajo de tecnología primer periodo 2024
Trabajo de tecnología primer periodo 2024
 
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
#Tare10ProgramacionWeb2024aaaaaaaaaaaa.pptx
 
TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888TECNOLOGIA 11-4.8888888888888888888888888
TECNOLOGIA 11-4.8888888888888888888888888
 
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guiaORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
ORIENTACIONES DE INFORMÁTICA-2024.pdf-guia
 
Trabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamentalTrabajo de tecnología liceo departamental
Trabajo de tecnología liceo departamental
 
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
_Planificacion Anual NTICX 2024.SEC.21.4.1.docx.pdf
 
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docxTALLER DE ANALISIS SOLUCION  PART 2 (1)-1.docx
TALLER DE ANALISIS SOLUCION PART 2 (1)-1.docx
 
certificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdfcertificado de oracle academy cetrificado.pdf
certificado de oracle academy cetrificado.pdf
 
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdfTENDENCIAS DE IA Inteligencia artificial generativa.pdf
TENDENCIAS DE IA Inteligencia artificial generativa.pdf
 
Trabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power PointTrabajando con Formasy Smart art en power Point
Trabajando con Formasy Smart art en power Point
 
Clasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptxClasificación de Conjuntos de Datos Desequilibrados.pptx
Clasificación de Conjuntos de Datos Desequilibrados.pptx
 
Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)Análisis de los artefactos (nintendo NES)
Análisis de los artefactos (nintendo NES)
 
Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1Guía de Registro slideshare paso a paso 1
Guía de Registro slideshare paso a paso 1
 
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
TinkerCAD y figuras en 3D. Uso del programa TinkerCAD para crear fuguras.
 
Nomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de NóminaNomisam: Base de Datos para Gestión de Nómina
Nomisam: Base de Datos para Gestión de Nómina
 
La electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdfLa electricidad y la electronica.10-7.pdf
La electricidad y la electronica.10-7.pdf
 
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjskTrabajo de Tecnología .pdfywhwhejsjsjsjsjsk
Trabajo de Tecnología .pdfywhwhejsjsjsjsjsk
 

Doctrine