Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

Nombre: Ruben Ancco Peralta

Código: 120879

- REALIZAR UN RESUMEN DE LA DEEP WEB

La Deep Web o en español como Internet Profunda. Se refiere a sitios con fines delictivos o
contenido ilegal, y a sitios "comerciales" donde los usuarios pueden adquirir bienes o servicios
ilícitos. En otras palabras, la red profunda abarca todo lo que hay bajo la superficie y sigue
siendo accesible con el software adecuado, incluida la red oscura. También hay un tercer
término, "Internet oscuro" ("Dark Internet"), que hace referencia a sitios y bases de datos que
no están disponibles a través de conexiones públicas de Internet, incluso si se utiliza Tor. A
menudo, las empresas o los investigadores utilizan sitios de Internet oscuro para mantener en
privado la información confidencial.

- REALIZAR UNA LISTA DE ORMs (MÍNIMO 4) ELEGIR UNO DE ELLOS Y DESCRIBIR COMO
FUNCIONA Y MOSTRAR UN EJEMPLO E INCLUIRLO NO ES NECESARIO IMPLEMENTARLO
PUEDEN USAR UNO QUE YA ESTE EN LA WEB Y EXPLICARLO.

• Microsoft Entity Framework 6.0: Microsoft Entity Framework se publicó por


primera vez en 2008, como parte de .NET Framework 3.5 SP1 y Visual Studio
2008 SP1. A partir de la versión 4.1, se ha distribuido como paquete NuGet
independiente convirtiéndose en uno de los más populares en NuGet.org. Sólo
para plataforma Windows. Muy estable. Open Source. Proporciona servicios
avanzados de modelado y seguimiento de estados de entidades, persistencia
automática de cambios, caching, gestión de transacciones, etc.
• Microsoft Entity Framework Core 2.0: Nueva implementación de Entity
Framework en versión Core. Más ligera, extensible y multiplataforma
(Windows, Linux, Mac). Ofrece un rendimiento más potente en comparación
con la versión desarrollada específicamente para .Net Framework. En continua
evolución. Open Source. Puede ejecutarse sobre .Net Framework 4.6.1, .Net
Core 2.0 o posteriores.
• Microsoft Entity Framework Core 2.1: Versión más reciente de Entity
Framework Core lanzada a finales de mayo de 2018. Incluye mejoras
funcionales y de rendimiento, así como correcciones sobre la versión anterior.
No obstante, no toda la funcionalidad de Entity Framework 6.0 ha sido migrada
todavía a esta última versión de Entity Framework Core.
• NHibernate: Conversión de Hibernate en Java para lenguaje C# compatible con
plataforma .Net. Estable. Open Source.
• Dapper: Micro-ORM que proporciona métodos de extensión a las clases de .Net
Framework para mapear resultados y persistir datos, previa inyección de código
SQL personalizado. No nos libera pues de la implementación de nuestro código
SQL, actuando como simple mapeador, pero a cambio ofrece un buen
rendimiento. Es un ORM creado y usado en producción por el conocido portal
web Stack Overflow.
• Java => Hibernate, iBatis, Ebean, etc..
• .NET=> Entity Framework, nHibernate, etc..
• PHP=> Doctrine, Propel, ROcks, Torpor, etc..
Entity Framework

Entity Framework (EF) es un asignador relacional de objetos (ORM) que permite a los
desarrolladores de .NET trabajar con datos relacionales utilizando objetos específicos
del dominio. Elimina la necesidad de la mayoría del código de acceso a datos que los
desarrolladores generalmente necesitan escribir.

Entity Framework le permite crear un modelo escribiendo código o utilizando cuadros


y líneas en el Diseñador EF. Ambos enfoques se pueden utilizar para apuntar a una
base de datos existente o crear una nueva base de datos.

Entity Framework es el ORM principal que Microsoft proporciona para .NET


Framework y la tecnología de acceso a datos recomendada por Microsoft.

-Modelo en base de datos

Lo primero que necesitamos como prerequisito es tener una base de datos, en mi caso
una en SQL Server con la siguiente estructura:

-Creando nuestro Modelo conceptual

Lo primero es abrir la mejor IDE del mundo, nuestro Visual Studio 2010 . Archivo,
nuevo, proyecto y seleccionamos un proyecto del tipo aplicación de Consola. Ahora
bien, algo que se debe tener en cuenta antes de seguir, es que un modelo de Entity
Framework es n elemento y NO un tipo de proyecto, por esto el siguiente paso sera
agregar un nuevo elemento a nuestro proyecto de Consola, Click derecho, agregar,
nuevo elemento, en la categoría Data seleccionamos el tipo ADO.NET Entity Data
Model:
Al pulsar Add, nos saldrá un asistente de conexión. En la primera se nos da la opción de
crear un modelo conceptual a partir de un modelo de base de datos, y la otra crear un
modelo vacío que luego podremos enviar a una base de datos, esto es lo que se conoce
como Model First [no lo cubriremos en esta entrada]. la técnica que usaremos en esta
entrada se conoce como Database First.
En esta ventana especificamos la conexión a la base de datos donde estará nuestro
modelo físico, en mi caso quedaría así:

Pulsamos “ok” y terminamos de configurar la creación del EDMX.


Como vemos, el wizard ya nos ha proporcionado un nombre para el Entity connection y
ademas no pregunta si deseamos incluir el Usuario y la contraseña de la conexión la
cadena de conexión, podríamos (por seguridad) dejarla por separado en el mismo
archivo de configuración ENCRIPTADA, pero en este caso a manera de ejemplo le
diremos que si incluya esta información y pulsaremos siguiente.

El Siguiente y ultimo paso es seleccionar que elementos de nuestro modelo físico


deseamos traer a nuestro modelo conceptual, se nos dan las opciones de Pluralizar o
singularizar estos elementos, por lo general los trabajo de modo Singular desde que
están en la base de datos. Otra opción que nos da es de incluir las llaves foráneas en
nuestro modelo y dar un nombre al espacio de nombres del modelo:
Una vez pulsamos “finish” veremos una característica muy buena de Visual Studio
2010, el Entity Model Designer con las entidades que se han creado a partir de el
modelo físico que teníamos en la base de datos. y ademas de este, Visual Studio 2010
integra otra fascinante herramienta que nos facilita el trabajo en proyectos con muchas
entidades, el Model Browser, se vera algo como:

– Explorando nuestro Modelo Conceptual

Antes de continuar seria bueno fijarnos en ciertas cosillas, la primera que podemos notar
es que Entity Framework nos ha agregado automáticamente un archivo de
configuración y en su interior nos ha agregado un Connection String con una forma
muy peculiar, algo como:

add name="EFDemoEntities" connectionString="metadata=res://*/Model1.cs


dl|res://*/Model1.ssdl|res://*/Model1.msl;provider=System.Data.SqlClie
nt;provider connection string="data source=.;
initial catalog=EFDemo;user id=sa;password=****;multipleactiveresultse
ts=True;App=EntityFramework"" providerName="System.Data.EntityClient"

Si nos fijamos detenidamente vemos que en esta se define varios atributos, el primero y
muy importante es el de metadata quien es el que define de que se compondrá nuestro
edmx, por supuesto de los tres archivos XML de los que hablamos en el post anterior
(CSDL, SSDL y MSL), El siguiente atributo es el proveedor especifico con el que
realizamos esta conexión (en mi caso es el SQLClient), el Servidor donde se encuentra
la BD, la BD, el usuario y contraseña, la propiedad multipleactiveresultsets que nos
indica si se pueden asociar varios conjuntos de resultados activos a la conexión
asociada. y por ultimo tenemos el providerName que como ya habíamos dicho en el
post anterior el provider de Entity Framework se llama EntityClient. Otro aspecto
importante a resaltar es que se ha agregado una referencia al ensamblado
System.Data.Entity.

– Consumiendo nuestro Modelo Conceptual:

Ahora que tenemos un poco mas claro el porque de los estragos que ha causado nuestro
modelo en la apariencia de la solución, podemos empezar a picar código.

En el método main de nuestra app agregaremos una sentencia using (porque es auto-
administrable ,etc, etc) y dentro de este creamos una instancia de nuestro modelo, así:

class Program
{
static void Main(string[] args)
{
using (EFDemoEntities context = new EFDemoEntities())
{

}
}
}

-Agregando datos con Entity Framework:

Como dije en el primer post de esta serie, Entity Framework nos ahorra el tener que
mapear a mano nuestras entidades a entidades de dominio, y expone automáticamente
muchos métodos que ayudan a las operaciones CRUD.

Para agregar un elemento a la entidad Pais, debemos crear un objeto de este tipo,
agregarlo al contexto y guardar los cambios, así:

class Program
{
static void Main(string[] args)
{
using (EFDemoEntities context = new EFDemoEntities())
{
context.Pais.AddObject(new Pais{Nombre = "Colombia"});
context.SaveChanges();
}
}
}

Entity Framework detecta si un campo es Autonumerico, es por esto que NO es


necesario setearle un valor numérico a la propiedad Id.

Ahora bien si quisiéramos agregar un objeto HIJO es decir, una ciudad, podemos usar
las propiedades de navegación que nos da Entity Framework cuando detecta llaves
foráneas, así que seria cuestión de definir un valor a esta propiedad, así:
class Program
{
static void Main(string[] args)
{
using (EFDemoEntities context = new EFDemoEntities())
{
Pais pais = new Pais { Nombre = "Bolivia" };
Ciudad ciudad = new Ciudad{Nombre = "La Paz"};
pais.Ciudad.Add(ciudad);
context.Pais.AddObject(pais);
context.SaveChanges();
}
}
}

-Eliminando datos con Entity Framework:

Para eliminar un dato con Entity Framework, es necesario primero recuperarlo y luego
si eliminarlo, algo así:

class Program
{
static void Main(string[] args)
{
using (EFDemoEntities context = new EFDemoEntities())
{
Pais pais = (from p in context.Pais
where p.Nombre == "Colombia"
select p).FirstOrDefault();
context.Pais.DeleteObject(pais);
context.SaveChanges();
}
}
}

En el escenario anterior, eliminamos un objeto “padre” que no tenia “hijos”, es un


escenario sencillo pero nos sirve para entender y/o conocer la sintaxis de Linq por
ejemplo y nos sirve para notar ademas, que siempre que se realice un cambio, si se
desea ver reflejado en base de datos es necesario acudir al método SaveChanges().

Un escenario como el del segundo objeto que agregamos, que tiene un hijo (País –
Ciudad) se requiere eliminar todos sus hijos y luego si finalmente el Padre, de lo
contrario obtendremos una excepción. Otra alternativa, es habilitar la eliminación en
cascada, se puede hacer directamente sobe la relación de las tablas en la base de datos o
evaluar lo que en esta liga se propone.

– Editando datos con Entity Framework:

Para editar un elemento, se sigue un procedimiento similar al que seguimos para


eliminarlo, lo recuperamos, modificamos la propiedad que deseamos y SIN
AGREGARLO al contexto, guardamos los cambios, así:

static void Main(string[] args)


{
using (EFDemoEntities context = new EFDemoEntities ())
{
Pais pais = (from p in context.Pais
where p.Nombre == "Colombia"
select p).FirstOrDefault();
pais.Nombre = "ColombiaEditada";
context.SaveChanges();
}
}

Espero les sea de utilidad esta serie de post de Entity Framework.

También podría gustarte