Módulo 5 Ventanas Modales y No Modales

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Conocer los tintos tipos de formularios que nosotros podemos utilizar si estamos utilizando aplicaciones WPF, sus diferencias y cómo implementarlas en nuestros proyectos.

Requerimientos:

  • Visual Studio 2017 o versión anterior.
  • Aplicación WPF
  • 3 ventanas una principal y dos adyacentes

Un formulario puede ser de dos tipos, modal y no modal

  • Una venta no modal debe cerrarse u ocultarse para que el usuario pueda continuar trabajando con el resto de la aplicación.
  • Los formularios modales permiten alternar el foco entre dos formularios sin necesidad de cerrar el formulario inicial. El usuario puede continuar trabajando en otro lugar, en cualquier aplicación, mientras se muestra el formulario.

Módulo 5 Ventanas Modales y No Modales

Implementando ventanas Modal

Para implementar una ventana Modal debemos llamar el siguiente formulario con el método ShowDialog, de la siguiente manera:

Form formn = new Form();

formn.ShowDialog();

El método Show Dialog tiene un argumento opcional, owner, que se puede utilizar para especificar una relación entre elemento primario y elemento secundario para un formulario.

Implementando ventanas No Modal

Para implementar una Ventana no modal debemos implementar el método Show.

Form formn = new Form();

formn.Show();

Diferencias entre utilizar ventanas Modal y No Modal

El código que sigue al método ShowDialog se ejecuta hasta que se cierra el cuadro de dialogo

El código que sigue al método Show se ejecuta inmediatamente después de que se muestra el formulario.

Ejemplo:

MainPage  Modal

Debemos agregar dos botones, uno para implementar una ventana modal y el otro para el estilo No Modal; Los botones deben contar con el evento Clic cada uno.

Evento Clic botón efecto Modal

insertarv modal = new insertarv();

modal.Owner = this;

Aplicaefecto(this); //aplicamos el efecto de difuminado a la ventana

modal.ShowDialog(); // implementamos la ventana Modal abriendo la nueva ventana.

bool? resultado = modal.DialogResult; // Verificamos si el usuario a cerrado una ventana que cuenta con el efecto modal para quitar el efecto de difuminado.

if(resultado != null)

{

if (resultado == false)

{

Quitarefecto(this);

}

}

Método Aplicaefecto

  public void Aplicaefecto(Window win)

{

var efecto = new System.Windows.Media.Effects.BlurEffect(); //aplicacimos el efecto difuminado

efecto.Radius = 5; //aplicamos un radio de 5 al efecto

win.Effect = efecto; //aplicamos el efecto a la ventana

}

Método Quitar Efecto

public void Quitarefecto(Window win)

{

win.Effect = null; //Quitamos el efecto de la ventana

}

Segunda Ventana (Estilo Modal)

Agregamos un botón el cuál al dar clic el usuario debe regresarnos a la ventana anterior y mandar instrucciones para quitar el efecto difuminado

Evento clic del botón atras

private void btnback_Click(object sender, RoutedEventArgs e)

{

DialogResult = false;

Close();

}

MainPage  Modal

Para mandar llamar otra Ventana utilizando el estilo No modal debemos realizer el llamado utilizando el .Show como se muestra a continuación.

private void btneditar_Click(object sender, RoutedEventArgs e)

{

editarv nomodal = new editarv();

nomodal.Show();

// Close();

}

Se recomienda utilizar el evento Close(); para llevar a usuario a una experiencia más limpia ya que en este efecto, todas las ventanas quedarán habilitadas para su uso lo que se vuelve tedioso si son varias ventanas abiertas.

Fuente del tutorial: MSDN

Curso completo: aquí

Anuncios

Módulo 4: Enlace de aplicaciones WPF con Azure

microsoft-azure-logo

Objetivo del curso : Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo general: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Generar de una manera fácil y sin fallas la cadena de conexión entre aplicaciones WPF y SQL Azure

Requerimientos:

  • Cuenta de Azure
  • SQL Server 2012 o posterior
  • Base de datos previamente creada en el video anterior

La sintaxis de la cadena de conexión es la siguiente:

Source=[servidor]; Initial Catalog = [Base de datos]; User ID=[Usuario]; Password=[Contraseña]

Para generar la cadena de conexión nos vamos a la sección app.config

<connectionStrings>

<clear/>

<add name=”conexion” connectionString=”Data Source=[CADENA]”/>

</connectionStrings>

Visual Studio en cualquiera de sus versiones nos permite generar de manera automática la cadena de conexión, para poder generarla nos vamos al menú Herramientas > conectar con la base de datos, nos abrirá la siguiente ventana. Ingresamos el nombre del servidor, cambiamos Autentificación de Windows por Autentificación de SQL Server para ingresar usuario y contraseña.

Azure y WPF img 3

Nos abrirá un panel de exploración de servidores, damos clic en la base de datos que hemos conectado y nos vamos al panel de propiedades, buscamos la propiedad que dice cadena de conexión, copiamos la cadena y la pegamos en connectionString 

Azure y WPF img 4

Conectando con la base de datos

Agregamos la librería System.configuration para mandar llamar la cadena de conexión

En la sección MainWindow.cs añadimos:

using System.Configuration;

using System.Data.SqlClient;

Para acceder a la cadena de conexión necesitamos el siguiente código.

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings[“conexion”].ConnectionString);

conn.Open(); //abrimos conexión

//———————- código ———————-

conn.Close(); // cerramos conexión

Curso completo

Módulo 3: Procedimientos Almacenados

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo general: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Conocer los procedimientos almacenados, cuántos tipos distintos hay y que ventajas nos ofrecen a la hora de utilizarlos.

Requerimientos:

  • Cuenta de Azure
  • SQL Server 2012 o posterior
  • Base de datos previamente creada en el video anterior
  • Tabla registroalumno creada en el video tutorial anterior

¿Qué son los procedimientos almacenados?

Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones, estos se asemejan a las construcciones de otros lenguajes de programación, porque pueden:

  • Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que realiza la llamada.
  • Contienen instrucciones de programación que realicen operaciones en la base de datos.
  • Devuelven un valor de estado a un programa que realiza una llamada para indicar si la operación se ha realizado correctamente o se han producido errores, y el motivo de estos.

Ventajas que estos nos ofrecen

  • Tráfico de red reducido entre el cliente y el servidor
  • Mayor seguridad
  • Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el código fuente.
  • Mantenimiento más sencillo
  • Rendimiento mejorado ya que se compila la primera vez que se ejecuta

Tipos de procedimientos almacenados

Definidos por el usuario: Se puede crear en una base de datos definida por el usuario o en todas las bases de datos del sistema excepto en la base de datos Resource .

Temporales: Los procedimientos temporales son iguales que los procedimientos permanentes salvo porque se almacenan en tempdb. Existen dos tipos locales y globales.

  • Locales su nombre inicia con # y solo son visibles en la conexión actual del usuario y se eliminan cuando se cierra la conexión.
  • Globales su nombre inicia con ## solo son visibles en la conexión actual del usuario y se eliminan cuando se cierra la conexión.

Sistema: Los procedimientos del sistema se incluyen con SQL Server. Están almacenados físicamente en la base de datos interna y oculta Resource y se muestran de forma lógica en el esquema sys de cada base de datos definida por el sistema y por el usuario.

Extendidos por el usuario: Estos procedimientos son DLL que una instancia de SQL Server puede cargar y ejecutar dinámicamente.

Declarando un procedimiento almacenado en nuestra tabla

Para definir un procedimiento almacenado utilizamos la siguiente sintaxis:

USE [BASE_DATOS]

GO

CREATE PROCEDURE [NOMBRE_PROCEDIMIENTO]

@CAMPO_RECIBE [TIPO_VARIABLE],

AS

BEGIN

[SENTENCIA(S) A EJECUTAR]

END

GO

Ejemplo:

Use tutorial2017

GO

create procedure registrousuariocurso

@nombre varchar(50),

@apellido1 varchar(50),

@apellido2 varchar(50),

@sexo char(1),

@edad int,

@peso float,

@estatura float

AS

BEGIN

insert into registroalumno (nombre,apellido1,apellido2,sexo,edad,peso,estatura) values (@nombre,@apellido1,@apellido2,@sexo,@edad,@peso,@estatura)

end

go

Llamando el procedimiento almacenado desde SQL Azure

Sintaxis:

DECLARE @VARIABLE [TIPO]

EXEC @VARIABLE = [DBO].[NOMBRE_PROCEDIMIENTO]

@VARIABLES = [VALOR]

SELECT [ESTATUS] = @VARIABLE

GO

Ejemplo

declare @respuesta int

exec @respuesta = [dbo].[registrousuariocurso]

@nombre = ‘Junaita’,

@apellido1=’Lopez’,

@apellido2=’Rodriguez’,

@sexo=’F’,

@edad=10,

@peso=40,

@estatura=50

select ‘estatus’ = @respuesta

go

 Curso completo

 

Módulo 2 Tablas y el ABC de información desde SQL Azure

microsoft-azure-logo

Objetivo del curso: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

Objetivo General: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo del tutorial: Crear tablas definidas por el usuario en SQL Azure e insertar, modificar y eliminar registros de la tabla recién creada.

Requerimientos:

  • Cuenta de Azure
  • SQL Server 2012 o posterior
  • Base de datos previamente creada en el video anterior

Crear una tabla en SQL Azure:

Para crear tablas en SQL Azure es muy similar que si la estuviéramos creando para SQL Server, sólo que en SQL Azure debemos declarar la llave primaria de tipo nonclustered, como se muestra a continuación.

create table registroalumno(

numcontrol int not null identity(1,10),

nombre varchar(50) not null,

apellido1 varchar(50) not null,

apellido2 varchar(50) not null,

sexo char(1) not null,

edad int not null,

peso float not null,

estatura float not null

PRIMARY KEY NONCLUSTERED (numcontrol)

);

ABC de información

Alta de registros

Para insertar registros es la misma estructura de SQL Server o MySQL Server.

Sintaxis:

INSERT INTO [NOMBRE_TABLA] ([CAMPO1],[CAMPO2]…) VALUES (‘A’,1…);

Nota: Sólo las cadenas de texto deben estar siempre entre comillas.

Ejemplo

insert into registroalumno (nombre,apellido1,apellido2,sexo,edad,peso,estatura) values (‘Claudia’,’Perez’,’Sanchez’,’F’,20,75,58);

Bajas de registros

Para eliminar los registros debemos utilizar la siguiente sintaxis:

DELETE [NOMBRE_TABLA] WHERE [CAMPO]=[VALOR];

Nota: Sólo las cadenas de texto deben estar siempre entre comillas.

Ejemplo

delete registroalumno where apellido1 = ‘Perez’;

Cambios en los registros

Para actualizar los registros se implementa la siguiente sentencia:

Sintaxis

UPDATE [NOMBRE_TABLA] SET [CAMPO] = [VALOR_ACTUALIZAR] WHERE [CAMPO]=[VALOR_A_CAMBIAR];

Ejemplo

update registroalumno set edad = 60 where nombre = ‘Julian’;

Curso completo

 

Curso básico SQL Azure y WPF

microsoft-azure-logo

Objetivo general: Desarrollar un sistema que permita llevar el seguimiento de peso y estatura de alumnos.

Objetivo específico: Ayudar a quienes deseen aprender a generar aplicaciones WPF con enlace a bases de datos en Azure de una manera en la que no sea requerido un conocimiento previo en el tema utilizando lenguaje coloquial para quienes inician recién en el mundo de la programación utilizando C# como lenguaje de programación y SQL Server.

[Parte 1] Trabajando con SQL Azure

  • Crear base de datos desde el portal de Azure vs SQL Server

youtube-android

  • Tablas y el ABC de información desde SQL Azure

wordpress20ness youtube-android

  • Procedimientos almacenados

wordpress20ness youtube-android

[Parte 2] WPF

  • Enlace de aplicaciones WPF con Azure [Tip]

wordpress20ness youtube-android

  • Ventanas Modales y No Modales

wordpress20ness youtube-android

  • Diseño de interfaces de usuario estilo Fluent Design

youtube-android

  • Insertar información en tablas SQL Azure

wordpress20nessyoutube-android

  • Buscar información de tablas SQL Azure

wordpress20nessyoutube-android

  • Actualizar información en tablas SQL Azure

wordpress20nessyoutube-android

  • Eliminar información en tablas SQL Azure

wordpress20nessyoutube-android

  • Mostrar información de tablas SQL Azure

wordpress20nessyoutube-android

  • Llamar Procedimientos almacenados en SQL Azure

wordpress20nessyoutube-android

  • Trabajando con filas de un datagrid

wordpress20nessyoutube-android

Utiliza servicios de almacenamiento de Azure en aplicaciones WPF desde 0

microsoft-azure-logo

Objetivos:

-Conectar aplicaciones WPF a servicios de almacenamiento Azure

-Inserta y consultar información de tablas utilizando C# y SQL

-Utilizar procedimientos almacenados para insertar información

Requerimientos:

  • Mínimo un procedimiento almacenado en una base de datos en SQL Server
  • Proyecto tipo WPF
  • 3 Textbox
  • 3 Textblock
  • 2 Botones
  • 1 DataGrid

Interfaz de usuario

Azure y WPF img 1

Conectando con Azure

  • Nos vamos a la sección App.config y agregamos el siguiente código:

    <connectionStrings>
<clear/>
<add name=”conexion” connectionString=”Data Source=….”/>
</connectionStrings>

 Nota: Visual Studio nos genera de manera automática la url de conexión a nuestra base de datos, para obtenerla debemos hacer el siguiente procedimiento:

  • Nos vamos al cuadro de herramientas > conectar la base de datos

Azure y WPF img 2

  • Ingresamos la información de la conexión, inicio de sesión y seleccionamos la base de datos con la que queremos trabajar.

Azure y WPF img 3

  • A continuación, si la conexión fue exitosa nos aparece un icono verde junto a nuestra base de datos que indica que tenemos acceso a esa base de datos. Damos clic en nuestra base de datos y nos vamos al panel de propiedades para copiar la cadena de conexión y la pegamos entre comillas del ConnectionString

Azure y WPF img 4

Insertar información

En el evento clic del botón guardar agregamos el siguiente código, el cuál será el que nos permite enlazar la aplicación con nuestra base de datos en Azure, utilizar el procedimiento almacenado “registrarusuarios” para insertar información en la tabla “registros”.

Azure y WPF img 5

Mostrar información

En el evento clic del botón consultar añadimos el siguiente código para realizar un enlace a nuestra base de datos, consultar información, convertir dicha información y mostrarla en el DataGrid.

Azure y WPF img 6

Vídeo tutorial 

Módulo 1.3: Procedimientos almacenados

microsoft-azure-logo

Un procedimiento almacenado de SQL Server es un grupo de una o varias instrucciones Transact-SQL o una referencia a un método de Common Runtime Language (CLR) de Microsoft .NET Framework. Los procedimientos se asemejan a las construcciones de otros lenguajes de programación, porque pueden:

  • Aceptar parámetros de entrada y devolver varios valores en forma de parámetros de salida al programa que realiza la llamada.
  • Contener instrucciones de programación que realicen operaciones en la base de datos. Entre otras, pueden contener llamadas a otros procedimientos.
  • Devolver un valor de estado a un programa que realiza una llamada para indicar si la operación se ha realizado correctamente o se han producido errores, y el motivo de estos.

Ventajas de usar procedimientos almacenados

Tráfico de red reducido entre el cliente y el servidor

  • Mayor seguridad:
  1. Al llamar a un procedimiento a través de la red, solo está visible la llamada que va a ejecutar el procedimiento.
  2. Los procedimientos pueden cifrarse, lo que ayuda a ofuscar el código fuente.
  • Reutilización del código
  • Mantenimiento más sencillo
  • Rendimiento mejorado

Tipos de procedimientos almacenados

Temporales

                Los procedimientos temporales son una forma de procedimientos definidos por el usuario. Los procedimientos temporales son iguales que los procedimientos permanentes salvo porque se almacenan en tempdb. Hay dos tipos de procedimientos temporales: locales y globales. Se diferencian entre sí por los nombres, la visibilidad y la disponibilidad.

Sistema

Los procedimientos del sistema se incluyen con SQL Server. Están almacenados físicamente en la base de datos interna y oculta Resource y se muestran de forma lógica en el esquema sys de cada base de datos definida por el sistema y por el usuario. Además, la base de datos msdb también contiene procedimientos almacenados del sistema en el esquema dbo que se usan para programar alertas y trabajos.

Fuente: MSDN

Estructura de los procedimientos almacenados:

USE [BDName]

GO

create procedure [nombre_procedimiento]

@campo tipocampo,

@campo2 tipocampo

AS

begin

INSERT INTO tablename(campo1,…,campo2)values(@campo1, … ,@campo2);

END

GO

En el caso de ejemplo y siguiendo con la table “persona” quedaría de la siguiente manera:

USE prueba5

go

create procedure insertarprueba

@nombre varchar(80),

@apat varchar(80),

@amat varchar(80)

AS

begin

INSERT INTO persona(nombre, apat, amat)values(@nombre, @apat, @amat);

END

GO

Ejecutar el procedimiento almacenado

SQL Server permite llamar los procedimientos almacenados por dos maneras distintas:

  • Llamar los procedimientos almacenados por código: Estructura:

DECLARE @return_value int

EXEC @return_value = [dbo].[procedure_name]

@campo1 = ‘contenido’,…

@campo2 = ‘contenido’

SELECT  ‘Return Value’ = @return_value

GO

  • Uno de las ventajas que tiene SQL Server permite llamar el procedimiento almacenado desde un Modo diseño:

azm3

Nos abre la siguiente ventana, en la cual ingresamos los datos que queremos ingresar al procedimiento almacenado. Da clic en Ok, para ejecutar el procedimiento almacenado.

azm32

El resultado del procedimiento almacenado es el siguiente:

DECLARE      @return_value int

EXEC   @return_value = [dbo].[insertarprueba]

@nombre = N’prueba1′,

@apat = N’prueba’,

@amat = N’prueba3′

SELECT ‘Return Value’ = @return_value

GO