sábado, 24 de septiembre de 2022

SQL INNER JOIN

 

SQL INNER JOIN



Presentar una lista de productos, mostrando:
  Codigo del producto, 
  Nombre del producto, 
  Descripcion, el precio, el Stock. 
  Categoria del producto El codigo, el nombre y la descripcion.

SELECT
   p.idProduct,
   p.name,
   p.description,
   p.price,
   p.stock
   c.idCategory,
   c.name,
   c.description,
FROM Category c
INNER JOIN Product p 
ON c.idCategory = p.idCategory
GO



-------------------------------------------------------------------------------
ALTER TABLE Category
ADD CONSTRAINT UQ_Category_name
UNIQUE (name)
GO

ALTER TABLE Category 
ADD CONSTRAINT DF_Category_enabled 
DEFAULT 1 FOR enabled
go

ALTER TABLE Product
ADD CONSTRAINT UQ_Product_name
UNIQUE (name)
go

ALTER TABLE Product 
ADD CONSTRAINT DF_Product_enabled 
DEFAULT 1 FOR enabled
go


viernes, 23 de septiembre de 2022

Ejercicios LINQ

Ejercicios LINQ

1. Se tiene un array de numeros:
      int[] numeros = {21,56,18,100,12};


Filtrar solo aquellos que son menores a 90

Solución:

int[] numeros = { 21, 56, 18, 100, 12 };

var consulta = from n in numeros
                        where n < 90
                        select n;

foreach (var numero in consulta)
{
Console.WriteLine(numero);
}


2. Se tiene un array de numeros:
       int[] numeros = {11,15,17,19,14,18};

Filtrar solo aquellos que son mayores a 12 pero menores a 17

Solución:

int[] numeros = { 11, 15, 17, 19, 14, 18 };

var consulta = from n in numeros
                       where n > 12 && n < 17
                       select n;

foreach (var numero in consulta)
{
Console.WriteLine(numero);
}

3. Dado el siguiente arreglo:
      string[] colors = { "green", "brown", "blue", "red" };

a) Obtener todos los elementos que contengan la letra "r".
c) Obtener la cantidad de elementos que empiezan con la letra "r"
b) Ordenar de forma descendente

Solución:

a)
string[] colors = { "green", "brown", "blue", "red" };

var consulta = from c in colors
                         where c.Contains("r")
                         select c;

foreach (var color in consulta)
{
Console.WriteLine(color);
}

b)
string[] colors = { "green", "brown", "blue", "red" };

            var consulta = from c in colors
                                     where c.StartsWith("r")
                                     select c;
            Console.WriteLine(consulta.Count());

c)
string[] colors = { "green", "brown", "blue", "red" };

var consulta = from c in colors
                       orderby c descending
                       select c;

foreach (var color in consulta)
{
Console.WriteLine(color);
}

4. Se tiene el siguiente array de números , 
        int[] numeros = { 17, 14, 24, 27, 30, 29 };

a) Mostrar aquellos que son menores a 28 y ordenarlos ascendentemente.
b) Dado el resultado de la pregunta anterior, Obtener el numero de elementos
c) Dado el resultado de la pregunta anterior, Obtener el valor maximo
d) Dado el resultado de la pregunta anterior, Obtener el promedio

Solución:
a)
            int[] numeros = { 17, 14, 24, 27, 30, 29 };

            var consulta = from n in numeros
                                     where n < 28
                                     orderby n
                                     select n;

            foreach (var numero in consulta)
            {
                Console.WriteLine(numero);
            }
b)   Console.WriteLine(consulta.Count());
c)    Console.WriteLine(consulta.Max());
d)    Console.WriteLine(consulta.Average());


5. Se tiene una lista de objetos de tipo Alumno, crear la clase Alumno con las siguientes propiedades: Nombre completo y Notas.
              List<Alumno> alumnos = new List<Alumno>
               {
                new Alumno{NombreCompleto="Felipe Melo", Notas=new List<int>{14,10,20,14,9} },
                new Alumno{NombreCompleto="Gerardo Martino", Notas=new List<int>{20,3,5,6,7}},
                new Alumno{NombreCompleto="Luis perez", Notas=new List<int>{14,10,20,14,9}},
                new Alumno{NombreCompleto="Javier Mendoza", Notas=new List<int>{11,6,1,8,13}},
               };

a) Obtener de la lista de alumnos el nombre completo y la primera nota.

Solución:
a)
            List<Alumno> alumnos = new List<Alumno>
            {
                new Alumno{NombreCompleto="Felipe Melo", Notas=new List<int>{14,10,20,14,9} },
                new Alumno{NombreCompleto="Gerardo Martino", Notas=new List<int>{20,3,5,6,7}},
                new Alumno{NombreCompleto="Luis perez", Notas=new List<int>{14,10,20,14,9}},
                new Alumno{NombreCompleto="Javier Mendoza", Notas=new List<int>{11,6,1,8,13}},
            };

            var consulta = from a in alumnos
                           select a.NombreCompleto + a.Notas[0];

            foreach (var alumno in consulta)
                Console.WriteLine(alumno);
        
6. Se tiene una lista lista de objetos de tipo Student, crear la clase Student con las siguientes propiedades: First, Last, id.
           List<Student> students = new List<Student>
            {
            new Student {First="Svetlana", Last="Ferguson", Id=111},
            new Student {First="Claire", Last="Stewart", Id=112},
            new Student {First="Sven", Last="Cameron", Id=113},
            new Student {First="Cesar", Last="Garcia", Id=114},
            new Student {First="Debra", Last="Hamilton", Id=115}
            };
a)  Crear una consulta LinQ e imprimir con el siguiente formato : Mi nombre es .... y mi apellido es ....... ,
   ordenar de forma ascendente por el campos last.

Solución:
a)
            List<Student> students = new List<Student>
            {
            new Student {First="Svetlana", Last="Ferguson", Id=111},
            new Student {First="Claire", Last="Stewart", Id=112},
            new Student {First="Sven", Last="Cameron", Id=113},
            new Student {First="Cesar", Last="Garcia", Id=114},
            new Student {First="Debra", Last="Hamilton", Id=115}
            };

            var consulta = from s in students
                           orderby s.Last ascending
                           select "Mi nombres es " + s.First + " Mi apellido es " + s.Last;

            foreach (var student in consulta)
                Console.WriteLine(student);

jueves, 22 de septiembre de 2022

Habilitar pestañas para el Explorador de archivos en Windows 11 compilación 22621.521


Habilitar pestañas para el Explorador de archivos en Windows 11 compilación 22621.521
=================================================================

Descargar ViveTool V0.3.1
https://github.com/thebookisclosed/ViVe/releases

Descomprimir carpeta y copiar los archivos en C:\Windows\System32
y ejecutar cmd como administrador
$> cd C:\FOLDER\PATH\ViveTool-v0.3.1

Ejecutar los siguientes comandos:
$> vivetool /enable /id:37634385
$> vivetool /enable /id:39145991
$> vivetool /enable /id:36354489

Finalmente Reinicie el equipo

miércoles, 21 de septiembre de 2022

Ejercicios Arreglos y Colecciones C#


Ejercicios Colecciones y Arreglos C#
-----------------------------------------------
1. Crear un programa que permita registrar la cantidad de estudiantes de un colegio. 
Por cada estudiante se ingresará sus nombres completos y 3 notas (nota 1, nota 2 y nota 3). calcular e imprimir lo siguiente:
El promedio de notas de cada alumno
Número de alumnos aprobados y reprobados.
Porcentaje de alumnos aprobados y reprobados.
Número de alumnos cuyo promedio es mayor o igual a 18.

Solucion:
static void Main(string[] args)
        {
            Console.Write("Ingrese la cantidad de alumnos: ");
            int cantidad = Convert.ToInt32(Console.ReadLine());

            string[] nombres = new string[cantidad];
            int[] notas1 = new int[cantidad];
            int[] notas2 = new int[cantidad];
            int[] notas3 = new int[cantidad];
            int[] sumaTotal = new int[cantidad];
            double[] promedio = new double[cantidad];
            int nAprobados = 0;
            int nReprobados = 0;
            int nPromedioMayor = 0;

            for (int i = 0; i < cantidad; i++)
            {
                Console.Write("Ingrese nombre: ");
                nombres[i] = Console.ReadLine();

                Console.Write("Ingrese nota 1: ");
                notas1[i] = Convert.ToInt32(Console.ReadLine());

                Console.Write("Ingrese nota 2: ");
                notas2[i] = Convert.ToInt32(Console.ReadLine());

                Console.Write("Ingrese nota 3: ");
                notas3[i] = Convert.ToInt32(Console.ReadLine());

                sumaTotal[i] = notas1[i] + notas2[i] + notas3[i];
            }


            for (int i = 0; i < cantidad; i++)
            {
                Console.WriteLine(nombres[i]);
                Console.WriteLine(notas1[i]);
                Console.WriteLine(notas2[i]);
                Console.WriteLine(notas3[i]);

                promedio[i] = sumaTotal[i] / 3;
                Console.WriteLine(promedio[i]);

                if (promedio[i] > 10)
                {
                    nAprobados++;
                }
                else
                {
                    nReprobados++;
                }

                if (promedio[i] >= 18)
                {
                    nPromedioMayor++;
                }
            }

            double porcA = (nAprobados * 100) / cantidad;
            double porcR = (nReprobados * 100) / cantidad;

            Console.WriteLine(nAprobados);
            Console.WriteLine(nReprobados);
            Console.WriteLine(nPromedioMayor);
            Console.WriteLine(porcA + "%");
            Console.WriteLine(porcR + "%");
        }

2. Construir un programa que registre los usuarios y permita hacer las siguientes acciones;
     Agregue Código de usuario, Nombres, Apellidos y Numero de cuenta 
     Elimine un usuario por Código o Número de cuenta.
     Modifique un usuario por Nombres y Apellidos
     Busque un usuario por Código o por la Cuenta de usuario
     Liste todos los usuarios.

Solución:
public class Program
    {
        static int indice = 0;
        static datosUsuario[] arrUsuarios = new datosUsuario[200];
        static void Main(string[] args)
        {
int opcion = 0;
            do
            {
                Console.WriteLine("\n----- Menu -----");
                Console.WriteLine("[1] INSERTAR");
                Console.WriteLine("[2] BUSCAR");
                Console.WriteLine("[3] ACTUALIZAR");
                Console.WriteLine("[4] ELIMINAR");
                Console.WriteLine("[5] LISTAR");
                Console.WriteLine("[6] SALIR");

                Console.Write("Ingresar una opcion: ");
                opcion = Convert.ToInt32(Console.ReadLine());

                switch (opcion)
                {
                    case 1:
                        insertar();
                        break;
                    case 2:
                        buscar();
                        break;
                    case 3:
                        actualizar();
                        break;
                    case 4:
                        eliminar();
                        break;
                    case 5:
                        listar();
                        break;
                    case 6:
                        break;
                }
            } while (opcion != 6);

        }

        private static void Insertar()
        {
            Console.Write("\nIngrese la cantidad de usuarios a registrar: ");
            int cantidad = Convert.ToInt32(Console.ReadLine());

            for (int i = 0; i < cantidad; i++)
            {
                Console.WriteLine("\nUSUARIO " + (i + 1));
                Console.Write("Ingrese Codigo de usuario: ");
                arrUsuarios[indice].codigo = Console.ReadLine().Trim();

                Console.Write("Ingrese Nombres: ");
                arrUsuarios[indice].nombres = Console.ReadLine().Trim();

                Console.Write("Ingrese Apellidos: ");
                arrUsuarios[indice].apellidos = Console.ReadLine().Trim();

                Console.Write("Ingrese Numero de cuenta: ");
                arrUsuarios[indice].nroCuenta = Console.ReadLine().Trim();
                indice++;
            }
        }


        private static void Buscar()
        {
            Console.Write("Ingrese el codigo de usuario o el numero de la cuenta a buscar: ");
            string c = Console.ReadLine().Trim().ToUpper();

            for (int i = 0; i < indice; i++)
            {
                if (arrUsuarios[i].codigo.ToUpper().Equals(c) || arrUsuarios[i].nroCuenta.ToUpper().Equals(c))
                {
                    Console.WriteLine(arrUsuarios[i].codigo.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nombres.ToUpper());
                    Console.WriteLine(arrUsuarios[i].apellidos.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nroCuenta.ToUpper());
                    return;
                }
            }
            Console.WriteLine("No se encontró");
        }

  
        private static void Actualizar()
        {
            Console.Write("Ingrese el codigo de usuario o el numero de la cuenta para la modificacion: ");
            string c = Console.ReadLine().Trim().ToUpper();

            for (int i = 0; i < indice; i++)
            {
                if (arrUsuarios[i].codigo.ToUpper().Equals(c) || arrUsuarios[i].nroCuenta.ToUpper().Equals(c))
                {
                    Console.Write("Ingrese el nuevo nombre a modificar: ");
                    string nuevoNombres = Console.ReadLine().Trim().ToUpper();

                    Console.Write("Ingrese el nuevo apellido a modificar: ");
                    string nuevoApellidos = Console.ReadLine().Trim().ToUpper();

                    arrUsuarios[i].nombres = nuevoNombres;
                    arrUsuarios[i].apellidos = nuevoApellidos;

                    Console.WriteLine(arrUsuarios[i].codigo.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nombres.ToUpper());
                    Console.WriteLine(arrUsuarios[i].apellidos.ToUpper());
                    Console.WriteLine(arrUsuarios[i].nroCuenta.ToUpper());
                    return;
                }
            }
            Console.WriteLine("No se encontró");
        }

        private static void Eliminar()
        {
            int pos = -1;
            Console.Write("Ingrese el codigo de usuario o el numero de la cuenta para la eliminacion: ");
            string c = Console.ReadLine().Trim().ToUpper();

            for (int i = 0; i < indice; i++)
            {
                if (arrUsuarios[i].codigo.ToUpper().Equals(c) || arrUsuarios[i].nroCuenta.ToUpper().Equals(c))
                {
                    pos = i;
                    break;
                }
            }

            if (pos != -1)
            {
                for (int j = pos; j < indice - 1; j++)
                {
                    arrUsuarios[j] = arrUsuarios[j + 1];
                }
                Console.WriteLine("Se elimino correctamente");
                indice--;
            }
            else
            {
                Console.WriteLine("No se encontró");
            }
        }

        private static void Listar()
        {
            for (int i = 0; i < indice; i++)
            {
                Console.WriteLine("\nCODIGO USUARIO:\t\t" + arrUsuarios[i].codigo.ToUpper());
                Console.WriteLine("NOMBRES:\t\t" + arrUsuarios[i].nombres.ToUpper());
                Console.WriteLine("APELLIDOS:\t\t" + arrUsuarios[i].apellidos.ToUpper());
                Console.WriteLine("NUMERO DE CUENTA:\t" + arrUsuarios[i].nroCuenta.ToUpper());
            }
        }

        //Estructura de Datos 
        public struct datosUsuario
        {
            public string codigo;
            public string nombres;
            public string apellidos;
            public string nroCuenta;
        }
    }


3. Construir un programa que registre los alumnos y permita hacer las siguientes acciones;
     Agregue un alumno por apellido 
     Elimine un alumno por apellido
     Modifique un alumno por apellido
     Ordene los alumnos por apellido y los liste
     Busque un alumno por apellido y muestre su posicion

Solucion:
static void Main(string[] args)
        {
            List<string> apellidos = new List<string>();
            int opcion = 0;
            string apellido = "";
            int indice = 0;

            do
            {
                Console.WriteLine("[1] AGREGAR");
                Console.WriteLine("[2] ELIMINAR");
                Console.WriteLine("[3] BUSCAR");
                Console.WriteLine("[4] MODIFICAR");
                Console.WriteLine("[5] ORDENAR");
                Console.WriteLine("[6] MOSTRAR");
                Console.WriteLine("[7] SALIR");

                Console.Write("Ingresar opcion: ");
                opcion = Convert.ToInt32(Console.ReadLine());

                switch (opcion)
                {
                    case 1:
                        Console.WriteLine("Ingrese el apellido");
                        apellido = Console.ReadLine();
                        apellidos.Add(apellido);
                        break;
                    case 2:
                        Console.WriteLine("Ingrese el apellido a eliminar");
                        apellido = Console.ReadLine();
                        indice = apellidos.IndexOf(apellido);
                        if (indice != -1)
                        {
                            apellidos.RemoveAt(indice);
                            Console.WriteLine("Se elimino correctamente");
                        }
                        else
                        {
                            Console.WriteLine("No se encontro");
                        }
                        break;
                    case 3:
                        Console.WriteLine("Ingrese el apellido a buscar");
                        apellido = Console.ReadLine();
                        indice = apellidos.IndexOf(apellido);
                        if (indice != -1)
                        {
                            Console.WriteLine("Se encuentra en la posicion: " + indice);
                        }
                        else
                        {
                            Console.WriteLine("No se encontro");
                        }
                        break;
                    case 4:
                        Console.WriteLine("Ingrese el apellido a modificar");
                        apellido = Console.ReadLine();
                        indice = apellidos.IndexOf(apellido);
                        if (indice != -1)
                        {
                            Console.Write("Ingrese el nuevo apellido: ");
                            apellido = Console.ReadLine();
                            apellidos.RemoveAt(indice);
                            apellidos.Insert(indice, apellido);
                        }
                        else
                        {
                            Console.WriteLine("No se encontro");
                        }
                        break;
                    case 5:
                        Console.Write("Ordenar en orden ascendente o descendente ");
                        string orden = Console.ReadLine();
                        if (orden.ToUpper().Equals("ASCENDENTE"))
                        {
                            apellidos.Sort();
                        }
                        else
                        {
                            apellidos.Reverse();
                        }
                        break;
                    case 6:
                        foreach (var ap in apellidos)
                        {
                            Console.WriteLine(ap);
                        }
                        break;
                    case 7:
                        break;
                }
            } while (opcion != 7);
        }

4. Debe realizar un programa que permita crear una Agenda de Contactos, donde
se pueda almacenar la siguiente información:
El Nombre y Apellidos del Contacto.
Teléfono móvil
Dirección de correo electrónico

El programa debe realizar las siguientes acciones:
[1] Insertar nuevo contacto
[2] Buscar contacto
[3] Modificar datos
[4] Eliminar contacto
[5] Listar Contactos
[6] Salir


Solución:

public class Contacto
    {
        public string Nombre { get; set; }
        public string Apellidos { get; set; }
        public string Telefono { get; set; }
        public string Email { get; set; }

        public Contacto(string nombre, string apellidos, string telefono, string email)
        {
            Nombre = nombre;
            Apellidos = apellidos;
            Telefono = telefono;
            Email = email;
        }
    }


public class Agenda
    {
        List<Contacto> contacts;

        public Agenda()
        {
            contacts = new List<Contacto>();
        }

        public void Agregar(Contacto c)
        {
            contacts.Add(c);
        }

        public void Eliminar(Contacto c)
        {
            contacts.Remove(c);
        }

        public Contacto Buscar(string nombre)
        {
            foreach (Contacto contact in contacts)
            {
                if (contact.Nombre.ToUpper().Equals(nombre.ToUpper()))
                {
                    return contact;
                }
            }
            return null;
        }

        public void Listar()
        {
            foreach (Contacto contact in contacts)
            {
                Console.WriteLine(contact.Nombre);
                Console.WriteLine(contact.Apellidos);
                Console.WriteLine(contact.Telefono);
                Console.WriteLine(contact.Email);
            }
        }
    }


internal class Program
    {
        static void Main(string[] args)
        {
            int opcion = 0;
            string nombre, apellidos, celular, email;
            Agenda a = new Agenda();

            do
            {
                Console.WriteLine("Menu Agenda");
                Console.WriteLine("[1] Insertar nuevo contacto");
                Console.WriteLine("[2] Buscar contacto");
                Console.WriteLine("[3] Modificar datos");
                Console.WriteLine("[4] Eliminar contacto");
                Console.WriteLine("[5] Listar Contactos");
                Console.WriteLine("[6] Salir");

                Console.Write("Ingrese opcion <1-6>: ");
                opcion = Convert.ToInt32(Console.ReadLine());
                switch (opcion)
                {
                    case 1:
                        Console.Write("Ingrese el nombre de contacto: ");
                        nombre = Console.ReadLine();
                        Console.Write("Ingrese los apellidos de contacto: ");
                        apellidos = Console.ReadLine();
                        Console.Write("Ingrese el numero de celular: ");
                        celular = Console.ReadLine();
                        Console.Write("Ingrese el correo: ");
                        email = Console.ReadLine();

                        Contacto c = new Contacto(nombre, apellidos, celular, email);
                        a.Agregar(c);
                        break;
                    case 2:
                        Console.Write("Ingrese el contacto a buscar: ");
                        nombre = Console.ReadLine();
                        Contacto x = a.Buscar(nombre);
                        if (x != null)
                        {
                            Console.WriteLine(x.Nombre);
                            Console.WriteLine(x.Apellidos);
                            Console.WriteLine(x.Telefono);
                            Console.WriteLine(x.Email);
                        }
                        else
                        {
                            Console.WriteLine("No existe el nombre de contacto");
                        }
                        break;
                    case 3:
                        Console.Write("Ingrese el contacto a modificar: ");
                        nombre = Console.ReadLine();
                        Contacto z = a.Buscar(nombre);
                        if (z != null)
                        {
                            Console.Write("Ingrese el nuevo nombre: ");
                            string name = Console.ReadLine();
                            z.Nombre = name;
                            Console.Write("Ingrese el nuevo apellido: ");
                            string ap = Console.ReadLine();
                            z.Apellidos = ap;
                            Console.Write("Ingrese el nuevo numero de celular: ");
                            string cel = Console.ReadLine();
                            z.Telefono = cel;
                            Console.Write("Ingrese el nuevo correo: ");
                            string correo = Console.ReadLine();
                            z.Email = correo;
                        }
                        else
                        {
                            Console.WriteLine("No existe el nombre de contacto");
                        }
                        break;
                    case 4:
                        Console.Write("Ingrese el contacto a eliminar: ");
                        nombre = Console.ReadLine();
                        Contacto y = a.Buscar(nombre);
                        if (y != null)
                        {
                            a.Eliminar(y);
                            Console.WriteLine("Eliminado");
                        }
                        else
                        {
                            Console.WriteLine("No existe el nombre de contacto");
                        }
                        break;
                    case 5:
                        a.Listar();
                        break;
                    case 6:
                        break;
                }
            } while (opcion != 6);
        }
    }








martes, 30 de agosto de 2022

CONFIGURAR LAS VARIABLES DE ENTORNO JAVA


CONFIGURAR LAS VARIABLES DE ENTORNO JAVA
============================================

CONFIGURAR LA VARIABLE JAVA_HOME
JAVA_HOME, es una variable de entorno del sistema que informa al sistema operativo sobre la ruta donde se encuentra instalado Java. Seguiremos la siguiente secuencia de pasos para configurar esta variable:

Buscamos Editar las variables de entorno del sistema -> Variables de entorno -> Nueva (Variables del sistema)

Escribiremos en las cajas de texto lo siguiente:
Nombre de variable : JAVA_HOME
Valor de variable : C:\Program Files\Java\jdk11.0.16_8




CONFIGURAR LA VARIABLE PATH
PATH es una variable de entorno del sistema que informa al sistema operativo sobre la ruta de distintos directorios esenciales para el funcionamiento del ordenador. Vamos a añadir al contenido de la variable PATH el lugar donde se encuentran los ficheros ejecutables de Java necesarios para su ejecución, como el compilador (javac.exe) y el intérprete (java.exe). Seguiremos la siguiente secuencia de pasos para configurar esta variable.

Buscamos Editar las variables de entorno del sistema -> Variables de entorno -> Seleccionamos Path (Variables del sistema) -> Editar -> Nuevo

Escribiremos lo siguiente: 
%JAVA_HOME%\bin




-------------------------------------------------------------------------
Configuración para tener diferentes versiones de Java


El JAVA_HOME debe apuntar a un JDK de la siguiente manera.








viernes, 5 de agosto de 2022

AGREGAR NET FRAMEWORK 4.5 en VISUAL STUDIO 2022

AGREGAR NET FRAMEWORK 4.5 en VISUAL STUDIO 2022
====================================================
Descargar
https://www.nuget.org/packages/microsoft.netframework.referenceassemblies.net45

Modificar el nombre del archivo microsoft.netframework.referenceassemblies.net45.nupkg
por microsoft.netframework.referenceassemblies.net45.zip

Copiar todos los archivos de build\.NETFramework\v4.5\ a esta ruta
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5

Atajos de Teclado Visual Studio 2022


Atajos de Teclado Visual Studio 2022
============================
Formatear Codigo: Ctrl + K + D
Comentar/Descomentar : Ctrl + K + C / CTRL + K + U
Duplicar linea : Ctrl + D
Mover linea : Alt + ↓
Eliminar linea: Ctrl + L ó Shift + Supr
Iniciar nueva linea: Ctrl + Enter
Copiar linea actual: Ctrl + C
Agregar nuevo item: Ctrl + Shift + A -> N
Multinea: Alt + Shift + ↓ ó Ctrl + alt + Click
Reemplazar: Ctrl + H
Select All matching: Alt + Shift + ´
Select Next matching: Alt + Shift +  .
Remove Last matching: Alt + Shift + ,

Formatear código al guardar
Tools -> Options 
             Text Editor -> Code Cleanup -> Activar Run code Cleanup

Extensiones
- ReSharper
- Rainbow Braces
- Toggle Comment
- Add New File
- CodeMaid


Atajos de ReSharper
Rename: CTRL + R +R
Create File: Alt + Ctrl + Insert
Comentario de bloque: Ctrl  + Shift + 7
Comentario Linea:  Ctrl + Alt + 7
Generate Code:  Alt + Insert

Toggle Comment
Tools -> Options->Environment -> Keyboard:
Edit.ToggleLineComment ----------> Ctrl + 7
Edit.ToggleBlockComment --------> Ctrl + Shift + 7
Edit.InsertCaretsatAllMatching --> Ctrl + Shift + Alt + J
Edit.InsertNextMatchingCaret ---> Alt + J
Edit.RemoveLastCaret -------------> Shift + Alt + J
Edit.FormatDocument -------------> Ctrl + Alt + L
Edit.RemoveAndSort   -------------> Ctrl + Alt + o
View.Output                  -------------> Alt + o

Rainbow Braces
Tools -> Options->Environment -> Fonts and Colors:
Rainbow Brace level 1   255, 215, 0
Rainbow Brace level 2   206, 112, 190
Rainbow Brace level 3   140, 220, 240
Rainbow Brace level 4   255, 215, 0

Add New File
Shift +F2

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...