sábado, 18 de febrero de 2017

Conectando los datos con la aplicación



Introducción
  • Vamos a ver como hacemos para guardar toda la información que consideramos importante para que sea persistente una vez que apaguemos nuestro sistema y podamos usarla cuando lo prendamos nuevamente.
  • Para ello, vamos a utilizar dos técnicas principales: ODBC y LINQ.
  • Ambas fueron desarrolladas por Microsoft, pero son muy distintas entre sí, siendo de naturaleza bastante distinta. ODBC es un estándar abierto y es la manera de base de conectarse a las bases de datos, mientras que LINQ es una herramienta de nueva generación que permite utilizar el servidor de base de datos de manera mas sencilla y con un lenguaje mas natural.
ODBC
  • La primera manera de conectarse a nuestro servidor de BD y manipular información que veremos se llama ODBC. El objetivo de ODBC es que podamos acceder a cualquier dato desde cualquier sistema, sin importar qué sistema de gestión de bases de datos almacene los datos(en nuestro caso, MS SQL Server Express).
  • El propósito de ODBC es traducir las consultas de la aplicación en comandos que el Gestor de BD entienda. Para que esto funcione tenemos que hacer que tanto la aplicación como el Gestor sean compatibles con ODBC. Esto significa que nuestro sistema tiene que tener instrucciones específicas ODBC y el Gestor debe ser capaz de responder a ellos.
  • Una de las maneras de hacer esto, es con un software manejador, o driver, en el cliente, que se ocupe de la comunicación con la base de datos. El driver interpreta las conexiones y llamadas SQL y las traduce.
  • El ODBC .NET Data Provideres un componente adicional al Kit de desarrollo de .NET (SDK). Nos permite el acceso a controladores ODBC nativos, y aunque se supone que al ser una tecnología estándar nos permite utilizar drivers para diversos tipos de base de datos, el sitio de descargas de Microsoft nos indica que sólo se ha probado con los controladores de Microsoft SQL ODBC, Microsoft Oracle ODBC y Microsoft Jet ODBC.
  • ODBC está compuesto por un driver y un administrador de controladores. El driver es específico para el producto de un proveedor de base de datos. Por ejemplo, Oracle proporciona un controlador (o driver) para trabajar con un sistema de Oracle. El administrador de controladores se utiliza para instalar los archivos necesarios y configurar fuentes de datos para ser utilizados en aplicaciones. En los sistemas basados en Windows, el Administrador de orígenes de datos ODBC se utiliza para crear y mantener conexiones ODBC.
Instalando ODBC
  • Para instalar ODBC lo primero que debemos hacer es descargarlo desde:
  • Y también es requerido el Microsoft Data Access Components desde: 
http://msdn2.microsoft.com/en-us/data/aa937695.aspx
  • Luego de instalar ambos componentes seguiremos los siguiente pasos:
1.Iniciemos Microsoft Visual Studio NET.
2.Creamos un proyecto nuevo de Visual C# Windows Application. Form1 se agrega al proyecto de manera predeterminada.
3.En el menú Proyecto, hagan clic en Agregar referencia.
4.En la solapa .NET, hagan clic Microsoft.Data.ODBC.dll. Después de que Microsoft.Data.ODBC.dllaparece en la lista de componentes seleccionados, hagan clic en Aceptar.
5.Cambien a la vista Código y agreguen el siguiente código inmediatamente después de las otras instrucciones using:

usingSystem.Data;
usingMicrosoft.Data.Odbc;

6.Agreguemos un control Buttona Form1 y etiquetemos este control SQL Server.
7.Ahora agregamos el siguiente código al botón SQL Server

{
OdbcConnectioncn;
OdbcCommandcmd;
stringMyString;
MyString="Select* fromCustomers";
cn= new OdbcConnection("Driver={SQL Server};Server=mySQLServer;UID=sa;
PWD=myPassword;Database=Northwind;");
cmd=new OdbcCommand(MyString,cn);
cn.Open();
MessageBox.Show("Connected");
cn.Close();
}

8.Modifiquemos las cadenas OdbcConnectionsegún corresponda para su entorno

Elementos de ODBC
  • Algunos de los elementos que vamos a poder usar cuando instalemos el controlador ODBC son:
    • OdbcConnection: Se usa para conectarnos a una fuente de datos ODBC. El nombre asignado a la fuente de datos ODBC, durante su configuración, se utiliza para acceder a ella.
    • OdbcCommand: Se usa para ejecutar un comando SQL en una conexión.
    • OdbcDataReader: nos permite recorrer los resultados de una consulta.
    • OdbcParameter: Se utiliza para enlazar un parámetro a un comando.
    • OdbcDataAdapter: Se utiliza para llenar un objeto DataSetdesde una fuente de datos ODBC.
    • OdbcCommandBuilder: Crea default Insert, Updatey Deletepara un adaptador de datos ODBC.
Ejemplo de ODBC
  • Ahora les vamos a mostrar otro ejemplo, creando un proyecto vacío en C#. El siguiente ejemplo usa algunos de los elementos que mencionamos. Utiliza una fuente de datos ODBC previamente establecida (llamada Test). El nombre de DSN (nombre de fuente de datos) se utiliza en la cadena de conexión, junto con la identificación de usuario y contraseña para acceder a la base de datos. Una sentencia SQL básica se utiliza para recuperar todas las filas de una tabla Clientes con los valores de las columnas que se muestran. Finalmente, se cierra la conexión y todos los demás elementos. El código C # siguiente:
usingSystem;
usingMicrosoft.Data.Odbc;
namespaceBuilderODBC{
classTestClass{
staticvoidMain(string[] args) {
stringconnectionString= "DSN=Test;UID=Chester;Pwd=Tester;";
stringsql= "SELECT CustomerID, ContactName, ContactTitleFROM Customers";
OdbcConnectionconn= new OdbcConnection(connectionString);
conn.Open();
OdbcCommandcomm= new OdbcCommand(sql, conn);
OdbcDataReaderdr= comm.ExecuteReader();
while(dr.Read()) {
Console.WriteLine(dr.GetValue(0).ToString());
Console.WriteLine(dr.GetValue(1).ToString());
Console.WriteLine(dr.GetValue(2).ToString());
}
conn.Close();
dr.Close();
comm.Dispose();
conn.Dispose();
} } }

LINQ
  • En 2008, Microsoft presentó dentro de Visual Studio LINQ, que extiende el lenguaje de programación añadiendo las expresiones de consulta, que son semejantes a las sentencias SQL, y se pueden utilizar para extraer de forma sencilla datos de arrays, clases enumerables, documentos XML, bases de datos relacionales, y fuentes de datos de terceros.
  • Todas las operaciones de consulta LINQ se componen de tres acciones distintas:
    • Obtener la fuente de datos.
    • Crear la consulta.
    • Ejecutar la consulta.
Ejemplo de LINQ
  • Podemos ver en este código un ejemplo de LINQ para consultar un arrayde datos, pero de igual manera se puede hacer esto directamente en un servidor de base de datos:
classIntroToLINQ
{
staticvoidMain()
{
// 1. Fuente de datos.
int[] numbers= new int[7] { 0, 1, 2, 3, 4, 5, 6 };
// 2.Creacion de la consulta
// numQueryisanIEnumerable
varnumQuery=
fromnumin numbers
where(num% 2) == 0
selectnum;
// 3.Ejecutar la consulta
foreach(intnumin numQuery)
{
Console.Write("{0,1} ", num);
}
}
}

LINQ toSQL
  • Nosotros lo que queremos es usar como fuente de datos una base, y para ello debemos utilizar lo que se llama LINQ toSQL.
  • En LINQ toSQL, el modelo de datos de una base de datos relacional se asigna a un modelo de objetos expresado en el lenguaje de programación que estamos usando. Cuando la aplicación se ejecuta, LINQ toSQL traduce en SQL las consultas que escribimos en el modelo de objetos y los envía a la base de datos para su ejecución. Cuando la base de datos devuelve los resultados, LINQ toSQL los traduce de nuevo a los objetos que nuestro sistema puede trabajar en nuestro propio lenguaje de programación.
  • Con LINQ toSQL, primero entonces debemos crear un mapeo objeto-relacional (o sea, algo que le diga a nuestro sistema la relación que hay entre los elementos de mi sistema y los datos de la base), ya sea manualmente o utilizando el Diseñador relacional de objetos (O/R Designer). Escribimos las consultas en los objetos, y en tiempo de ejecución LINQ toSQL se encarga de la comunicación con la base de datos. En el ejemplo siguiente, los clientes representan una tabla específica en la base de datos, y el tipo del resultado de la consulta, IQueryable<T>, deriva de IEnumerable.
Northwnddb= new Northwnd(@"c:\northwnd.mdf");
// Queryforcustomersin London.
IQueryable custQuery=
fromcustin db.Customers
wherecust.City== "London"
selectcust;

Otros conceptos: stress
  • Las pruebas de estrés son una forma de prueba deliberadamente intensa utilizada para determinar la estabilidad de un sistema. Se trata de probar nuestra aplicación más allá de la capacidad normal, a menudo a un punto donde debería romperse, con el fin de observar los resultados. Las razones pueden incluir:
    • para determinar los puntos de ruptura o límites de uso seguro
    • si se están cumpliendo las especificaciones que nos pidió el cliente (ej: que soporte 10 millones de usuarios)
    • para determinar modos de fallo (¿cómo es exactamente cuando el sistema falla)
    • para poner a prueba el funcionamiento estable de una parte o del sistema fuera de uso estándar
Stress
  • Las pruebas de estrés, en general, deberían poner el hardware bajo niveles exagerados de estrés con el fin de garantizar la estabilidad cuando se utiliza en un entorno normal. Estos pueden incluir los extremos de carga de trabajo, uso de memoria, carga térmica (calor), la velocidad de reloj, o tensiones. La memoria y la CPU son dos componentes que son comúnmente probados de esta manera.
  • Las pruebas de estrés de software tiene como objetivo probar la estabilidad tratando de forzar un sistema al fracaso; tiene como objetivo medir y evaluar el máximo rendimiento posible en una tarea o función determinada.
  • En particular, los objetivos de este tipo de pruebas pueden consistir en garantizar que el software no se cuelga en condiciones de insuficiencia de recursos computacionales (como la memoria o espacio en disco ), alta concurrencia inusual, o ataques de denegación de servicio.
Otros conceptos: seguridad
  • Tenemos que entender que la seguridad informática es el área de la informática que se enfoca en la protección de la infraestructura computacional y todo lo relacionado con ella y, especialmente, la información contenida. Para esto existen estándares, métodos, reglas, herramientas y leyes para minimizar los posibles riesgos a la infraestructura o a la información. La seguridad en un ambiente de red es la habilidad de identificar y eliminar vulnerabilidades, o sea, los puntos a través de los cuales pueden entrar en nuestro sistema o nuestra infraestructura.
Causas de fallas de seguridad
  • Usuarios: En algunos casos sus acciones causan problemas de seguridad, si bien en la mayoría de los casos es porque tienen permisos sobredimensionados, no se les han restringido acciones innecesarias, etc.
  • Programas maliciosos: programas destinados a perjudicar o a hacer un uso ilícito de los recursos del sistema. Es instalado (por inatención o maldad) en nuestra computadora, abriendo una puerta a intrusos o bien modificando los datos. Estos programas pueden ser un virus informático, un gusano, un troyano, una bomba lógica, un programa espía o spyware, en general conocidos como malware.
  • Errores de programación: La mayoría de los errores de programación que se pueden considerar como una amenaza informática es por su condición de poder ser usados como exploitspor los crackers, aunque se dan casos donde el mal desarrollo es una amenaza.
  • Intrusos: persona que consigue acceder a los datos o programas a los cuales no están autorizados (crackers, defacers, hackers, script kiddieo script boy, viruxers, etc.).
  • Personal técnico interno: Los motivos que se encuentran entre los habituales son: disputas internas, problemas laborales, despidos, fines lucrativos, espionaje, etc.
Buenas prácticas de seguridad
  • En caso de querer tomar medidas, las mismas pueden tener distinta naturaleza:
    • Desarrollo de sistemas usando estándares de codificación para evitar errores
    • Manejar contraseñas difíciles de averiguar (mas de 8 caracteres, con letras, números y símbolos)
    • Manejar bien los permisos que les damos a los usuarios
    • Realizar copias de seguridad continuas de nuestros datos y programas
    • Mantener nuestros servidores con todas las actualizaciones de seguridad al día
    • Instalar antivirus
  • Si mantenemos estas buenas prácticas, nos aseguraremos de tener un sistema seguro y estable que funcione correctamente durante mucho tiempo.


Espero haber ayudado en algo. Hasta la próxima oportunidad!











  

No hay comentarios:

Publicar un comentario

       

Etiquetas

Academy (23) Accediendo a datos con ADO .NET (31) Acceso a la red (30) Algoritmo (34) Algoritmos en JAVA (2) Ampliación de clases (2) APRENDA A PROGRAMAR COMO SI ESTUVIERA EN PRIMERO - Autores : IKER AGUINAGA (3) APRENDA A PROGRAMAR COMO SI ESTUVIERA EN PRIMERO - Autores : IKER AGUINAGA (10) Aprendiendo a desarrollar en Windows 8 (5) Aprendiendo UML en 24 Horas (Autor : Joseph Schmuller ) (30) Arquitectura (29) Arquitectura del Computador (3) Arquitectura del Computador - Historia de la informática (1) Asignación de direcciones IP (23) Aspectos fundamentales de bases de datos (5) Auditoría de la dirección (2) Auditoría de Sistemas (3) Auditoría Informática - Un enfoque práctico - Mario G . Piattini y Emilio del Peso (7) Avanzado (23) Base de Datos (67) Básico (23) Bios (29) Business Productivity Online Suite - BPOS (3) Capa de Red (22) Capa de Transporte (16) Capítulo 1 - Documentos HTML5 (6) Capítulo 10. API Web Storage (2) Capítulo 11. API IndexedDB (4) Capítulo 12. API File (1) Capítulo 2. Estilos CSS y modelos de caja (7) Capítulo 3. Propiedades CSS3 (4) Capítulo 4. Javascript (6) Capítulo 5. Video y audio (6) Capítulo 6. Formularios y API Forms (8) Capítulo 7. API Canvas (5) Capítulo 8. API Drag and Drop (2) Capítulo 9. API Geolocation (2) CCNA1 v5.0 (228) CCNA1 v6.0 (23) CCNA2 v5.0 (26) CCNA3 v5.0 (25) CCNA4 v5.0 (23) CD-ROM (3) Chapter 1 How does Xamarin.Forms fit in? (7) Chapter 2 Anatomy of an app (5) Cisco (330) Cloud Computing (3) CNNA v5.0 Routing & Switching (249) CNNA v6.0 Routing & Switching (2) Codigo (2) Computadora (32) Configuración (29) Configuración de un sistema operativo de red (21) Control (29) Creación de tipos de datos y tablas (3) Creación y Administración de bases de datos (3) Creando la Interface de la Aplicación Windows (50) Creating Mobile Apps with Xamarin.Forms (13) Cuenta (29) Curso (32) Curso Aprendiendo a Programar (25) Datos (3) Desarrollando en Windows 8 - AVANZADO (2) Desarrollando en Windows 8 - BÁSICO (3) Desarrollando en Windows 8 - INTERMEDIO (2) Desarrollo (2) Desarrollo .Net (21) Desarrollo avanzado de Windows Store Apps usando C# (1) Desarrollo basado en conceptos de Ingeniería de Software para Visual Studio (2) DESARROLLO DE APLICACIONES WINDOWS CON MICROSOFT .NET (37) DESARROLLO DE APLICACIONES WINDOWS CON MICROSOFT .NET (Autor: Luis Dueñas Huaroto) (29) Desarrollo en Microsoft Visual Studio (44) Desarrollo en Microsoft Visual Studio - AVANZADO (15) Desarrollo en Microsoft Visual Studio - BÁSICO (14) Desarrollo en Microsoft Visual Studio - INTERMEDIO (18) Desarrollo en Windows Phone 8 (13) Diagnostico (4) Diagrama (3) Diagramas de actividades (2) Diagramas de colaboraciones (2) Diagramas de secuencias (2) Digital (2) Diplomado (2) Disco (29) Disco Duro (4) Diseño de aplicaciones de Windows 8 en HTML 5 (7) Dispositivos Electrónicos (11) Doctorado (2) Ejemplos (3) Ejemplos de algoritmos (27) El camino hacia el CSS3 (3) El diseño web flexible (6) El elemento de diseño Canvas (3) El enfoque de los sistemas (3) El flujo de un programa (2) El gran libro de HTML5 - CSS3 y Javascript - Autor: Juan Diego Gauchat (55) El principio de organicidad (7) Electrónica (2) Elementos de un sistema (5) Empresas (2) Entrada y salida (4) Entropía y neguentropía (7) Estrategia (2) Estructura de un programa Java (12) Estructuras de almacenamiento (10) Estructuras de control (6) Estructuras de las tablas en SQL Server (2) Estructuras fundamentales de los datos (2) Ethernet (21) Evolución y Familias de los Microprocesadores (15) Exámen (23) Exploración de la red (23) Extensión de clases (4) Facebook (4) Familia Intel (15) Forefront (8) Función (3) Funciones de una red (12) Funciones de una red informática (1) Fundamentos de C# para absolutos principiantes (17) Fundamentos de programación en Java (50) Generaciones de la computadora (5) Gestión (3) Gestión de riesgos - Auditoría de Sistemas (1) GONZALO MARTÍNEZ (1) Grupos Facebook (1) Harvard (29) Historia de las computadoras (11) HTML5 y CSS3 - Autor: Christophe Aubry (99) HTML5 y CSS3 aplicadal texto (7) HTML5 y CSS3 para los formularios (15) Imágenes (2) Implementación de Windows 7 (11) Información (31) Informática (29) Ingeniería (4) Instalar (29) Inteligencia (2) Inteligencia de Negocios con SQL Server (3) Intermedio (23) Internet (29) Internet Explorer 9 (3) Introducción a ASP.NET 5 (8) Introducción a Java (7) Introducción a jQuery (8) Introducción a la Auditoría de Sistemas (2) Introducción a la teoría general de sistemas (Oscar Johansen Bertoglio) (39) Introducción a Networking (2) Introducción a Window Forms (5) Introducción al acceso a datos con ADO .NET (9) Investigación de Operaciones (12) Java (52) Jump Start de consultas en las bases de datos de Microsoft SQL Server 2012 (8) La definición de un Sistema (6) La evolución del HTML y del CSS (3) La nueva sintaxis HTML5 (12) LA QUINTA DISCIPLINA en la práctica (Autor : Peter Senge) (28) Las animaciones en CSS3 (5) Las transformaciones CSS3 (11) Las transiciones con CSS3 (8) Licenciamiento Microsoft (3) Local Area Network (LAN) - Red de Area Local (2) Lógico (2) Los elementos de la estructura en html5 (9) Los elementos multimedia: audio y vídeo (2) Los estilos de caja en CSS3 (13) Los nuevos selectores de CSS3 (6) Maestría (2) Mantenimiento de Mouse y Teclado (2) Manual de Microsoft SQL Server - Full Transact SQL (68) Manual de soporte técnico para escuelas sobre windows 7 (42) Marco Teorico de Investigación de Operaciones (6) Medios de Almacenamiento (11) Medios de Networking (2) Mejorando la Interface de las Aplicaciones Windows (26) Memoria Tipos y Clases (5) Método (2) Metodología (1) Microsoft (324) Microsoft Lync 2010 (7) Microsoft Silverlight 4.0 (2) Microsoft Virtual Academy (356) Modelo (2) Modelo OSI y TCP-IP (2) Modelos con poco grado de dificultad de Programación Lineal - Investigación de Operaciones (13) Modelos con razonable grado de dificultad de Programación Lineal - Investigación de Operaciones (10) Modelos de desafio de Programación Lineal - Investigación de Operaciones (5) Modelos difíciles de Programación Lineal - Investigación de Operaciones (5) Modelos Fáciles de Programación Lineal - Investigación de Operaciones (13) Modelos lineales con solver (3) Modulo (23) Movimiento (2) Mozilla (29) MS SQL Server (77) MS Virtualization para Profesionales VMware - Gestión (3) MS Virtualization para Profesionales VMware- Plataforma (4) MVA (263) Negocio (2) Nivel Avanzado Desarrollo .Net (6) Nivel Básico Desarrollo .Net (11) Nivel Intermedio Desarrollo .Net (8) Normas técnicas peruanas y su evolución - Auditoría de Sistemas (1) Nube Privada - Avanzado (6) Nube Privada - Básico (6) Nube Privada - Intermedio (6) Office 365 (3) Optimización de Escritorio (10) Optimización de Escritorio - Avanzado (4) Optimización de Escritorio - Básico (3) Optimización de Escritorio - Intermedio (3) ORACLE 10g - ADMINISTRACIÓN Y ANÁLISIS (3) Oracle 10g y el Grid Computing (3) Organización aleatoria y secuencial (1) Partes principales de la Mainboard (12) Perceptron (2) Perfil (2) Periféricos de Entrada / Salida (15) Pesi (2) PHP y MySQL - Manual de aprendizaje para crear un sitio web - Autor : Olivier ROLLET (79) Plan (2) Plataforma (29) PMBOK (24) PMBOK - Guía de los fundamentos para la dirección de proyectos (24) PMBOK - INFLUENCIA DE LA ORGANIZACIÓN Y CICLO DE VIDA DEL PROYECTO (6) PMBOK - Introducción (11) PMBOK - PROCESOS DE LA DIRECCIÓN DE PROYECTOS (5) Prevención - Herramientas e Instrumentos de Medida (9) Principios básicos de enrutamiento y switching (202) Proceso (2) Proceso de auditoría de sistemas informáticos (2) Programación en Android - Auor : Salvador Gómez Oliver (46) Programación paso a paso de C# - Autor : Nacho Cabanes (16) Protocolos y comunicaciones de red (17) Proyecto (2) Qué es un sistema (4) Red de Área Local Inalámbrica (WLAN) (4) Redes (30) Redes inalámbricas - WIRELESS - Conocimiento general (15) Redes neuronales (2) Redes y Comunicaciones (45) Reparación de Fuentes - UPS - Estabilizadores (10) Reparación de Impresoras (9) Reparación de Monitores (16) Router (29) Seguridad en la Nube (3) Seminario (23) Server (24) Sharepoint 2010 - Nivel Básico (6) Sharepoint 2010 - Niveles Avanzados (18) Sharepoint 2010 - Niveles Avanzados - Básico (8) Sharepoint 2010 - Niveles Avanzados - Intermedio (9) Sinergia y recursividad (4) Sistema (33) Sistema de Cableado Estructurado (9) Software (30) SOLUCIÓN GRÁFICA DE MODELOS DE PROGRAMACIÓN LINEALES - INVOPE (8) Soporte a Infraestructura (3) SQL (38) SQL Azure - Introducción (3) Subsistemas de control (4) Tablas (4) Tarjeta Principal del Sistema (10) Tarjetas de Interfaces (7) Tecnología (31) Tecnologías LAN (1) TEORÍA GENERAL DE SISTEMAS (1) Tic (2) Tipo (2) TML5 y CSS3 - Autor: Christophe Aubry (12) Trabajando con el Formulario (7) Un diseño HTML5/CSS3: dConstruct 2011 (3) Un diseño HTML5/CSS3: FlipThru (2) Un diseño HTML5/CSS3: The Cat Template (2) Usando Controles Windows Forms (12) Usando Herramientas de Datos de Visual Studio (6) Ventas (2) Virtualización Hyper - V Nivel Básico (5) Virtualización Hyper - V Nivel Intermedio (5) What’s New in Windows 8.1 Security (4) Window (29) Windows 7 Segunda Fase - AVANZADO (4) Windows 7 Segunda Fase - BÁSICO (6) Windows 7 Segunda Fase - INTERMEDIO (4) Windows 8 - Vista Previa (4) Windows 8.1 To Go (2) Windows Azure (3) Windows Phone 7 (2) Windows Server 2008 R2 (3) Windows Server 2012 - Gestión y Automatización (3) Windows Server 2012 R2 Essentials (7) Windows Server 2012: Almacenamiento (5) Windows Server 2012: Identidad y Acceso (4) Windows Server 2012: Revisión Técnica (7) Xamarin (1)

Páginas vistas en total según Google