Translate

lunes, 14 de junio de 2021

Introducción a Entity Framework Core 5 parte 3


Seguimos EF.

Cada solución de EF Core tendrá al menos una implementación de DbContext. ¿Qué es DbContext? DbContext es una clase base especializada que rastrea nuestras operaciones en memoria, lo que nos permite escribir y ejecutar consultas, rastrear cambios que podemos persistir en nuestra base de datos e interactuar con nuestro motor de base de datos de manera indirecta o directa en circunstancias excepcionales.

Para comenzar a usar EF Core 5, necesitamos definir una clase que se derive de DbContext y contenga nuestros modelos. Normalmente, nuestras clases se asignarán una a una con las tablas de nuestra base de datos, y las relaciones entre las tablas se definen mediante convenciones de navegación. Veremos cómo funciona esto a medida que vayamos definiendo nuestras clases.

Para esta teoría vamos a hacer un modelado simple, con Entity Framework nuestras clases no son obligadas a extender de una clase del framework o tener algo especial. 

En nuestro ejemplo vamos a definir clases que modelen la lógica de un blog. 

using System.Collections.Generic;

using Microsoft.EntityFrameworkCore;


namespace EFGetStarted

{

    public class BloggingContext : DbContext  {

        public DbSet<Blog> Blogs { get; set; }

        public DbSet<Post> Posts { get; set; }


        // The following configures EF to create a Sqlite database file as `C:\blogging.db`.

        // For Mac or Linux, change this to `/tmp/blogging.db` or any other absolute path.

        protected override void OnConfiguring(DbContextOptionsBuilder options)

            => options.UseSqlite(@"Data Source=C:\blogging.db");

    }


    public class Blog

    {

        public int BlogId { get; set; }

        public string Url { get; set; }


        public List<Post> Posts { get; } = new List<Post>();

    }


    public class Post

    {

        public int PostId { get; set; }

        public string Title { get; set; }

        public string Content { get; set; }


        public int BlogId { get; set; }

        public Blog Blog { get; set; }

    }

}

Los siguientes pasos utilizan migraciones para crear una base de datos.

> dotnet ef migrations add InitialCreate

> dotnet ef database update

El comando de migraciones crea una migración para crear el conjunto inicial de tablas para el modelo. El comando de actualización de la base de datos crea la base de datos y le aplica la nueva migración. 

Veamos un ejemplo de creación, lectura, update y delete: 


using System;

using System.Linq;


namespace EFGetStarted

{

    internal class Program

    {

        private static void Main()

        {

            using (var db = new BloggingContext())

            {

                // Note: This sample requires the database to be created before running.


                // Create

                Console.WriteLine("Inserting a new blog");

                db.Add(new Blog { Url = "http://blogs.msdn.com/adonet" });

                db.SaveChanges();


                // Read

                Console.WriteLine("Querying for a blog");

                var blog = db.Blogs

                    .OrderBy(b => b.BlogId)

                    .First();


                // Update

                Console.WriteLine("Updating the blog and adding a post");

                blog.Url = "https://devblogs.microsoft.com/dotnet";

                blog.Posts.Add(

                    new Post { Title = "Hello World", Content = "I wrote an app using EF Core!" });

                db.SaveChanges();


                // Delete

                Console.WriteLine("Delete the blog");

                db.Remove(blog);

                db.SaveChanges();

            }

        }

    }

}


Dejo link: https://docs.microsoft.com/en-us/ef/core/get-started/overview/first-app?tabs=netcore-cli

Introducción a Entity Framework Core 5 parte 2


Seguimos con EF. 

Para comenzar, debemos instalar la última versión de .NET 5 SDK. Técnicamente, EF Core 5 puede ejecutarse en .NET Core 3.1, pero vamos a utilizar .NET 5.

Comenzando con una nueva aplicación de consola, necesitaremos instalar los siguientes paquetes, asegurándonos de que todas las versiones sean 5.0.0:

  • Microsoft.EntityFrameworkCore
  • Microsoft.EntityFrameworkCore.Design
  • Microsoft.EntityFrameworkCore.Sqlite
Primero vamos a hacer un proyecto de consola: 

> dotnet new console

Para instalar dotnet-ef debemos hacer : 

> dotnet new tool-manifest

> dotnet tool install dotnet-ef

> dotnet add package Microsoft.EntityFrameworkCore --version 5.0.6

>dotnet add package Microsoft.EntityFrameworkCore.Design --version 5.0.6

>dotnet add package Microsoft.EntityFrameworkCore.Sqlite --version 5.0.6

En este caso estamos utilizando Sqlite, pero podemos utilizar: 

Cuando terminemos de configurar nuestro proyecto, podemos ejecutar el comando dotnet-ef, donde el unicornio EF nos saludará.

> dotnet ef

Dejo link: https://docs.microsoft.com/en-us/ef/core/get-started/overview/first-app?tabs=netcore-cli


martes, 8 de junio de 2021

Libro Gratuito : Solr in Action


solrinaction
$39.99 FREE!
Get your free eBook!
Solr in Action is a comprehensive guide to implementing scalable search using Apache Solr. This clearly written book walks you through well-documented examples ranging from basic keyword searching to scaling a system for billions of documents and queries. It will give you a deep understanding of how to implement core Solr capabilities.


 Dejo link: https://freecontent.manning.com/free-ebook-solr-in-action/?utm_source=facebook&utm_medium=organic&utm_campaign=newslettersignup_solr_5_31_21

Libro Gratuito : Geoprocessing with Python

 Quiero compartir este libro gratuito de manning sobre Geoprocessing with Python. 

Geoprocessing with Python

Don't miss out! Offer ends June 13, 2021. Only available 
to new Deal of the Day email subscribers.
Garrard-GWP-HI
$39.99 FREE!
Get your free eBook!
Geoprocessing with Python teaches you how to use the Python programming language, along with free and open source tools, to read, write, and process geospatial data. Through lots of hands-on examples, you’ll master core practices like handling multiple vector file formats, and editing geometries.

Dejo link : https://freecontent.manning.com/free-ebook-2021-24/?utm_source=facebook&utm_medium=organic&utm_campaign=newslettersignup_geoprocessing_6_7_21

lunes, 7 de junio de 2021

Introducción a Entity Framework Core 5


Entity Framework es un mapeador relacional de objetos (ORM), que ayuda a los desarrolladores a superar los desajustes de impedancia entre C # y el esquema de una instancia de base de datos.

Entity Framework ha recorrido un largo camino desde su inicio original. Concebida inicialmente como una herramienta centrada en el diseñador que depende en gran medida de la interfaz gráfica de usuario de Visual Studio y SQL Server, la filosofía actual de EF reconoce la necesidad de ser más amigable con ideas como control de fuente distribuido, servidores de compilación, múltiples motores de base de datos y sistemas operativos.

Entity Framework (EF) Core es una versión ligera, extensible, de código abierto y multiplataforma de la popular tecnología de acceso a datos de Entity Framework.

EF Core puede servir como un mapeador relacional de objetos (ORM), que:

  • Permite a los desarrolladores de .NET trabajar con una base de datos utilizando objetos .NET.
  • Elimina la necesidad de la mayor parte del código de acceso a datos que normalmente es necesario escribir.
  • EF Core admite muchos motores de base de datos; consulte Proveedores de bases de datos para obtener más detalles.

Con EF Core, el acceso a los datos se realiza mediante un modelo. Un modelo se compone de clases de entidad y un objeto de contexto que representa una sesión con la base de datos. El objeto de contexto permite consultar y guardar datos. 

EF admite los siguientes enfoques de desarrollo de modelos:
  • Genere un modelo a partir de una base de datos existente.
  • Codifique manualmente un modelo para que coincida con la base de datos.
  • Una vez que se crea un modelo, use EF Migrations para crear una base de datos a partir del modelo. Las migraciones permiten evolucionar la base de datos a medida que cambia el modelo.

Si bien EF Core es bueno para abstraer muchos detalles de programación, existen algunas mejores prácticas aplicables a cualquier ORM que ayudan a evitar errores comunes en las aplicaciones de producción:

  • El conocimiento de nivel intermedio o superior del servidor de base de datos subyacente es esencial para diseñar, depurar, perfilar y migrar datos en aplicaciones de producción de alto rendimiento. Por ejemplo, conocimiento de claves primarias y externas, restricciones, índices, normalización, declaraciones DML y DDL, tipos de datos, creación de perfiles, etc.
  • Pruebas funcionales y de integración: es importante replicar el entorno de producción lo más fielmente posible para:
    • Encontrar problemas en la aplicación que solo aparecen cuando se usa una versión o edición específica del servidor de base de datos.
    • Detectar los cambios importantes al actualizar EF Core y otras dependencias. Por ejemplo, agregar o actualizar marcos como ASP.NET Core, OData o AutoMapper. Estas dependencias pueden afectar EF Core de formas inesperadas.
    • Prueba de rendimiento y estrés con cargas representativas. El uso ingenuo de algunas funciones no se adapta bien. Por ejemplo, múltiples colecciones Incluye, uso intensivo de carga diferida, consultas condicionales en columnas no indexadas, actualizaciones masivas e inserciones con valores generados por la tienda, falta de manejo de simultaneidad, modelos grandes, política de caché inadecuada.
    • Revisión de seguridad: por ejemplo, manejo de cadenas de conexión y otros secretos, permisos de base de datos para operaciones sin implementación, validación de entrada para SQL sin procesar, cifrado para datos confidenciales.
    • Asegurarse de que el registro y los diagnósticos sean suficientes y utilizables. Por ejemplo, la configuración de registro adecuada, las etiquetas de consulta y Application Insights.
    • Encontrar error de recuperación. Prepare contingencias para escenarios de fallas comunes, como reversión de versiones, servidores de reserva, escalado horizontal y equilibrio de carga, mitigación de DoS y copias de seguridad de datos.
    • Despliegue y migración de aplicaciones. Planifique cómo se aplicarán las migraciones durante la implementación; hacerlo al inicio de la aplicación puede sufrir problemas de concurrencia y requiere permisos más altos de los necesarios para el funcionamiento normal. Utilice la preparación para facilitar la recuperación de errores fatales durante la migración. Para obtener más información, consulte Aplicación de migraciones.
    • Tests detalladas de las migraciones generadas. Las migraciones deben probarse a fondo antes de aplicarse a los datos de producción. La forma del esquema y los tipos de columna no se pueden cambiar fácilmente una vez que las tablas contienen datos de producción. Por ejemplo, en SQL Server, nvarchar (max) y decimal (18, 2) rara vez son los mejores tipos para columnas asignadas a propiedades de cadena y decimal, pero esos son los valores predeterminados que utiliza EF porque no tiene conocimiento de su guión.

Dejo link: https://docs.microsoft.com/en-us/ef/core/

Libro Gratuito: Java for Passionate Developers




Quiero recomendar el libro Java for Passionate Developers, el cual puede ser descargado de forma gratuita de este link: 

https://marcus-biel.com/

viernes, 4 de junio de 2021

Libro gratuito : Application Delivery & Load Balancing in Microsoft Azure

 Me llego este mail de un libro gratuito y lo comparto: 

 
 

This practical report describes Microsoft Azure’s load balancing options and explains how NGINX can contribute to a comprehensive solution. Derek DeJonghe & Arlan Nugara take you through the steps necessary to design a solution for your application infrastructure in Microsoft Azure.

In this eBook you will learn:

  • What load balancing is and why it’s important, exploring the traffic manager and application gateway in Microsoft Azure
  • How the load‑balancing options in Microsoft Azure compare with NGINX Open Source and NGINX Plus
  • How to use NGINX solutions on Azure to create an ideal end-to-end application platform
  • About security choices including NGINX App Protect and NGINX Controller
 
 
 
Contact us
nginx-inquiries@nginx.com
1-800-915-9122
© 2021 F5, Inc. ⋅ 795 Folsom Street, San Francisco, CA 94107
Manage your subscription preferences.

Libros Gratuitos de Web Code Geeks

 

Get schooled by Web Code Geeks

Download IT Guides!

 

How to Become a Web Developer

A more comprehensive list of tasks to which web development commonly refers, may include web engineering, web design, web content development, client liaison, client-side/server-side...

 
 

JavaScript Interview Questions

JavaScript developers are in high demand in the IT world. If this is the role that best expresses your knowledge and professionalism, you have a lot of opportunities to change the company...

 
 

Amazon Elastic Beanstalk Tutorial

AWS Elastic Beanstalk is an orchestration service offered from Amazon Web Services for deploying infrastructure which orchestrates various AWS services, including EC2, S3, Simple...

 
 

Amazon DynamoDB Tutorial

Amazon DynamoDB is a fully managed proprietary NoSQL database service that is offered by Amazon.com as part of the Amazon Web Services portfolio...

 

miércoles, 2 de junio de 2021

[Ebook] Kubernetes to Cloud Native: Jumpstart your journey developing on GKE

 La gente de Google Cloud me envio el siguiente email y se los quiero compartir : 

martes, 1 de junio de 2021

String en C#


La clase string es sumamente importante dado que los usuarios se comunican por medio de texto. String es un objeto de tipo Cadena cuyo valor es texto. Internamente, el texto se almacena como una colección secuencial de solo lectura de objetos Char. No hay ningún carácter de terminación nula al final de una cadena C#; por lo tanto, una cadena C# puede contener cualquier número de caracteres nulos incrustados ('\ 0'). La propiedad Length de una cadena representa el número de objetos Char que contiene, no el número de caracteres Unicode. 

En C #, la palabra clave string es un alias de String. Por lo tanto, string y String son equivalentes, y puede usar la convención de nomenclatura que prefiera. La clase String proporciona muchos métodos para crear, manipular y comparar cadenas de forma segura. Además, el lenguaje C# sobrecarga algunos operadores para simplificar las operaciones comunes de cadenas. 

Puede declarar e inicializar cadenas de varias formas, como se muestra en el siguiente ejemplo:



Los strings son inmutables: no se pueden cambiar una vez creados. Todos los métodos de cadena y los operadores de C# que parecen modificar una cadena en realidad devuelven los resultados en un nuevo objeto de cadena. En el siguiente ejemplo, cuando el contenido de s1 y s2 se concatenan para formar una sola cadena, las dos cadenas originales no se modifican. El operador += crea una nueva cadena que contiene los contenidos combinados. Ese nuevo objeto se asigna a la variable s1, y el objeto original que se asignó a s1 se libera para la recolección de basura porque ninguna otra variable tiene una referencia a él.

Debido a que una "modificación" de cadena es en realidad una nueva creación de cadena, se debe tener cuidado al crear referencias a cadenas. Si crea una referencia a una cadena y luego "modifica" la cadena original, la referencia seguirá apuntando al objeto original en lugar del nuevo objeto que se creó cuando se modificó la cadena. El siguiente código ilustra este comportamiento:



Se debe utilizar el carácter "\" cuando tengamos que usar caracteres especiales, como se muestra en el siguiente ejemplo:


Utilice cadenas textuales para mayor comodidad y mejor legibilidad cuando el texto de la cadena contiene caracteres de barra invertida, por ejemplo, en las rutas de archivo. Dado que las cadenas textuales conservan los caracteres de nueva línea como parte del texto de la cadena, se pueden utilizar para inicializar cadenas de varias líneas. Utilice comillas dobles para insertar una comilla dentro de una cadena literal. El siguiente ejemplo muestra algunos usos comunes de cadenas textuales:


Dejo link: https://docs.microsoft.com/en-us/dotnet/api/system.string?view=net-5.0