Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

programacion web orientado a visual studio, Ejercicios de Programación Funcional

programacion web proyecto de pagina en .net visual studio comiunity facil de entender

Tipo: Ejercicios

2022/2023

Subido el 16/10/2023

jair-teodocio
jair-teodocio 🇲🇽

1 documento

1 / 17

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
ASP.NET Core Razor
Actualización: 13 de octubre de 2023
Como nota inicial, este proyecto también se realizará con la ideología Code First.
Al abrir Visual Studio, aparecerá la siguiente pantalla donde se debe elegir “Crear un proyecto”:
Elegiremos “Aplicación web ASP.NET Core
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Vista previa parcial del texto

¡Descarga programacion web orientado a visual studio y más Ejercicios en PDF de Programación Funcional solo en Docsity!

ASP.NET Core Razor

Actualización: 13 de octubre de 2023

Como nota inicial, este proyecto también se realizará con la ideología Code First.

Al abrir Visual Studio, aparecerá la siguiente pantalla donde se debe elegir “ Crear un proyecto ”:

Elegiremos “ Aplicación web ASP.NET Core ”

Esta aplicación se llamará “CoreRazor”

Crearemos una “Aplicación web” simple sin MVC aunque seguiremos muchas convenciones.

Cabe mencionar que no ocuparemos autenticación.

Entity Framework Core

Las aplicaciones .NET Core, como ya se mencionó anteriormente, no usan el framework .NET completo, solo módulos o

partes administradas por Nuget.

Para esta práctica se necesitan los siguientes módulos:

 Microsoft.EntityFrameworkCore

 Microsoft.EntityFrameworkCore.Abstractions

 Microsoft.EntityFrameworkCore.Relational

 Microsoft.EntityFrameworkCore.Desginer

 Microsoft.EntityFrameworkCore.SqlServer

 Microsoft.EntityFrameworkCore.Tools

En cada paquete les pedirá aceptar la licencia de módulos.

Comprobación: en la pestaña “Instalado”, deben aparecer las 3 librerías

Primeros pasos:

Las aplicaciones Code First, implican que la base de datos se creara en función del código y no al revés, por lo tanto

debemos iniciar con la creación de una cadena de conexión, para ello editaremos el archivo “ appsettings.json ” y como

se vio en la practica 16, se debe agregar una cadena de conexión.

En la practica 16 usamos la base de datos “tswcrud”; para no confundirnos usaremos ahora la bd “ tswrazor ” aunque

tengan la misma estructura. Para ello se deben agregar las líneas marcadas en la siguiente imagen.

Cabe mencionar que la cadena JSON llamada Conexión contiene los siguientes valores:

 Server : Nombre de su servidor SQL Server (CÁMBIENLO).

 Database : nombre de la base de datos, aunque no está creada la usaremos.

 User Id : usaremos a “sa”.

 Password : la contraseña de “sa”

 Trusted_Connection : para marcarla como confiable.

 MultipleActiveResultSets : múltiples conexiones simultaneas.

 Encrypt : necesario para la conexion

Modelos

Por best practices, se debe crear una carpeta llamada Models.

Sobre el proyecto, presionar clic derecho y en la opción Agregar , desplegar el submenú y seleccionar Nueva Carpeta.

Inmediatamente creara la nueva carpeta la cual deben renombrar como Models.

Dentro de esta carpeta se guardan los Modelos que usaremos.

Modelos: AlumnosModel

Esta clase se muestra a continuación:

[Index(nameof(NC), IsUnique = true, Name = "idx_NC")] [Index(nameof(Nombre), Name = "idx_Nombre")] public class AlumnosModel { public int ID { get; set; } [NotNull] [StringLength(9, ErrorMessage = "Maximo 9 caracteres")] [Required(ErrorMessage = "El NC es obligatorio")] [Display(Name = "Numero de control", Prompt = "00090000")] [RegularExpression(@"^([0-9]{8})$", ErrorMessage = "NC invalido")] [DisplayFormat(DataFormatString = "{0:D8}", ApplyFormatInEditMode = true, HtmlEncode = true, ConvertEmptyStringToNull = false)] public string? NC { get; set; } [NotNull] [ConcurrencyCheck] [StringLength(100, ErrorMessage = "Maximo 100 caracteres")] [Required(ErrorMessage = "El Nombre es obligatorio")] [Display(Name = "Nombre completo", Prompt = "Aqui tu nombre")] public string? Nombre { get; set; } [NotNull] [ConcurrencyCheck] [StringLength(12, ErrorMessage = "Maximo 12 caracteres")] [Required(ErrorMessage = "El Telefono es obligatorio")] [Display(Name = "Telefono control", Prompt = "XXX-XXX-XXXX")] [DataType(DataType.PhoneNumber, ErrorMessage = "Telefono invalido")] [RegularExpression(@"^(\d{3}-\d{3}-\d{4})$", ErrorMessage = "Formato de telefono invalido")] public string? Telefono { get; set; } [NotNull] [ConcurrencyCheck] [StringLength(50, ErrorMessage = "Maximo 50 caracteres")] [Required(ErrorMessage = "El Correo es obligatorio")] [Display(Name = "Email", Prompt = "usuario@correo.com")] [DataType(DataType.EmailAddress, ErrorMessage = "Correo invalido")] public string? Correo { get; set; } [NotNull] [Required(ErrorMessage = "Fecha obligatoria")] [Display(Name = "Fecha")] [DataType(DataType.Date)] public DateTime Fecha { get; set; } [NotNull] [ConcurrencyCheck] [Required(ErrorMessage = "Deuda obligatoria")] [DataType(DataType.Currency, ErrorMessage = "solo formato monetario")] [Column(TypeName = "Money")] [Display(Name = "Deuda")] [DefaultValue(0)] public float Deuda { get; set; } [ConcurrencyCheck] [Required(ErrorMessage = "Promedio obligatorio")] [DefaultValue(0)] [Range(0, 100, ErrorMessage = "promedio fuera de rango")] public float Promedio { get; set; } [Required(ErrorMessage = "Genero obligatorio")] public char Genero { get; set; } public int CarrerasID { get; set; } public CarrerasModel? Carrera { get; set; } [DefaultValue(true)] [Display(Name = "¿Inscrito?")] public bool Inscrito { get; set; } }

Este modelo servirá como para crear la base de datos a trabajar.

Cabe mencionar que cada atributo (Excepto Id) cuenta con anotaciones las cuales servirán para validar su formato y

composición.

El atributo id es necesario ya que se usará como llave primaria de forma automática.

Atributos de validación

Los atributos de validación permiten especificar reglas de validación para las propiedades del modelo.

Atributos integrados

Estos son algunos de los atributos de validación integrados:

 [CreditCard]: valida que la propiedad tiene un formato de tarjeta de crédito.

 [Compare]: valida que coinciden dos propiedades en un modelo.

 [EmailAddress]: valida que la propiedad tiene un formato de correo electrónico.

 [Phone]: valida que la propiedad tiene un formato de número de teléfono.

 [Range]: valida que el valor de la propiedad se encuentra dentro de un intervalo especificado.

 [RegularExpression]: valida que el valor de propiedad coincide con una expresión regular especificada.

Validaciones personalizadas parte 1

En esta primera parte, crearemos una validación desde una clase para después solo insertar la anotación. Para ello

debemos agregar un directorio llamado “ Validations ”

Dentro de ese directorio crearemos una nueva clase

Esta clase se llamará “PrimeraLetraMayuscula”

Y tendrá el siguiente código:

NOTA: 2023/10/11 Se agregaron más validaciones

Para implementarla, se debe agregar la anotación en la clase de modelo “AlumnosModel”

También se puede agregar en “CarrerasModel”

Contextos

Cada Modelo debe contar con un Contexto de Base de datos, Estos contextos no hay ninguna regla que defina su

ubicación, pero para esta práctica se debe crear una carpeta para los Contextos de base de datos llamada Data. (Repitan

el procedimiento de la creación de la carpeta Models ).

Sobre la carpeta Data , presionar clic derecho, seleccionar Agregar , y elegir Clase.

Esta clase se llamará “ AlumnosContext.cs ”

Esta clase se muestra a continuación:

Una instancia DbContext representa una combinación de una unidad de trabajo y un reposito de patterns los cuales pueden ser

usados para realizar querys a una tabla en la base de datos definida en alguna cadena de conexión ( get ), así mismo también se

pueden escribir datos y realizar cambios ( set ).

Esto desplegara una consola en la parte inferior del IDE:

En ella debemos ejecutar los comandos:

add-migration MigracionInicial

update-database

Nota: 2023/10/

Se agregaron datos iniciales a la migración:

En la misma consola de nuget se puede Crear una nueva migración llamada “Datos”

Dentro de la migración vacia generada se pueden crear los datos iniciales:

Esto creara una carpeta llamada Migrations , con algunos archivos, como se muestra en la siguiente imagen.

También en SQL Server creara lo siguiente: (Actualizar imagen)

Una base de datos llamada razor con una tabla llamada alumnos , la cual contiene los campos definidos en el modelo.

Entregar: Capturas (a pantalla completa) de la migración y la base de datos.