Desarrollo y servicios web Luisa Fernanda Rincón Pérez 2016-1.

Slides:



Advertisements
Presentaciones similares
Las aplicaciones requieren datos persistentes
Advertisements

Introducción a Django Manuel Kaufmann Septiembre de 2009
Mónica Acosta Yeison Ceballos Carlos Rodallega
integridad referencial
Opciones bajo el comando Tools del menú principal
BASE DE DATOS Primeros pasos
Modelando aplicaciones
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:23 PRESENTACION: BASE DE DATOS ALUMNAS: Velazquez Corona Elsa Ponciano Antonio.
Tema: Técnicas Básicas Excel (III) Trucos, opciones y personalización de Excel Índice: 1 Vínculos absolutos y relativos, conectando datos de Excel con.
"java del lado del servidor" Servlet y JSP Java Server Pages.
Arquitectura de la Aplicación
El desafío de organizar la información
Características generales de un servicio Web.
Programación por capas: Capa de Clases
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
DE LAS CUENTAS DE USUARIO Y OPCIONES DE CARPETA
TECNOLOGÍA IDC Internet Database Connector Trinitario Gómez López.
CGI.   Cuando el World Wide Web inició su funcionamiento como lo conocemos, empezando a tomar popularidad aproximadamente en 1993, solo se podía apreciar.
Bases de Datos Relacionales
Ingeniero Anyelo Quintero
Java Server Faces.
TRINO ANDRADE G UNIVERSIDAD ECOTEC. PRESENTACIÓN DE OUTLOOK EXPRESS Microsoft Outlook Express es una herramienta necesaria que le permite administrar.
LISTAS DE CONTROL DE ACCESO (ACL)
File Ownerships and Permissions. Propiedades de Archivos regulares y Permisos.
InfoPath Ventajas y Uso.
Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar.
ASP.NET es una nueva y potente tecnología para escribir páginas web dinámica. Es una importante evolución respecto a las antiguas páginas ASP de Microsoft.
“Diseño de base de Datos Alquicira Jiménez Carolina 303
Especialista en Business Intelligence Integration Services SSIS Tareas de Flujo de Control (Parte I) Microsoft SQL Server 2008 R2 Suscribase a
PROTOCOLO H T T P.
Lenguajes de programación para la web Lenguaje html Lenguaje java script Es un lenguaje estático para el desarrollo de sitios web Ventajas: Sencillo que.
Publicación de bases de datos Access en la web
Paper 418/ May/June Task C – data maniputation - ACCESS Lo primero que hay que hacer el IMPORTAR el archivo SCA6MOB.CSV que nos bajamos de Internet.
introducción al lenguaje
NOMBRES:OLIVARES ALFARO JOSE L. BONETTI ARON GRUPO:308.
INTEGRANTES OSIRIS KATHERINE SANDOVAL LOPEZ ELKIN LEONARDO VILLAMIZAR BARAJAS JORGE MENDEZ JONATHAN BOTELLO.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
COLEGIO DE BACHILLERES PLANTEL 13 XOCHIMILCO-TEPEPAN MATERIA:TIC EQUIPO:21 PRESENTACION: BASE DE DATOS ALUMNAS: Adán Millán Sánchez.
Nombre: Josselyn Peña Curso: 1° “D”. Este manual de introducción a Wordpress ha sido elaborado con la intención de ofrecer la información necesaria para.
Ruby on Rails. ¿Qué es Ruby? Ruby es un lenguaje de programación totalmente o rientado a objetos multiplataforma(le nguaje interpretado y de scripts),
C OLEGIO DE B ACHILLERES N O.13 X OCHIMILCO, T EPEPAN C ARRASCO G ARCÍA L ORENA T ORRES H EREDIA C ARLA P ALMIRA G RUPO : 308 M ATUTINO E QUIPO : 12.
EQUIPO:#3 GRUPO:304 NOMBRES: Lizbeth Nava Barón y Erick Ali Mejía.
Manual Desarrollo Flex – J2EE. Contenidos Análisis y Diseño 1 Implementación 2 J2EE 3 Pruebas 4.
Diseño de una base de datos y elementos básicos Integrantes: López Ponce de León José Efrén Velazquez Martínez Brenda Equipo:10Grupo:307.
¿QUE SON LAS ACTUALIZACIONES?  Las actualizaciones son adiciones al software que pueden evitar problemas o corregirlos, mejorar el funcionamiento del.
File Transfer Protocol.
Unidad 2: Tareas básicas de InfoPath 2010
Tema 11 Bases de Datos y el Lenguaje SQL
Introducción a phpMyAdmin
TUTORIAL SLIDESHARE ANA ROMANO. Slideshare es una de las cientos de herramientas web 2.0 que encontramos en la Red. Es a las presentaciones lo que Youtube.
Capítulo 9: Detección de Errores MSc. Alexis Cabrera Mondeja.
KompoZer Es un completo sistema de Web que combina archivos Web manejables y de fácil uso del editor de páginas WYSIWYG. Hay binarios disponibles para.
Colegio de Bachilleres Plantel 13 Xochimilco - Tepepan
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
Unidad 4. Servicios de acceso remoto
INTEGRANTE: FLORES GODOY JUAN E. Grupo:308. Una tabla es una colección de datos sobre un tema específico, como productos o proveedores. Al usar una tabla.
¿Cómo programar un Botón para agregar registros a una base de datos?
INSTRUCTIVO PARA EL MANEJO DE ZOTERO
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
WINDOWS SERVER 2008 r2 ADMINISTRACION DE RECURSOS: Con el Administrador de recursos del sistema de Windows del sistema operativo Windows Server® 2008 R2,
DLM Transact SQL Sesión I Introducción al SQL Server Uso de las herramientas de consultas del Transact SQL.
Guía rápida de instalación de Sakai Dr. David Roldán Martínez ASIC, Universidad Politécnica de Valencia.
Helpers en ASP.NET MVC3. Introducción Los helpers son una herramienta muy potente para generar nuestro propio código HTML dentro de las vistas. Los helpers.
Softlogia S.R.L. Formación de Recursos Humanos Java Server Faces Instructor: Martin R. Baspineiro.
Desarrollo y servicios web Luisa Fernanda Rincón Pérez
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
U niversidad de G uadalajara Centro Universitario de Ciencias Exactas e Ingenierías Ponentes: Muñoz Guzmán Ramón Gallardo Olivares Mario Solís Flores José.
SYMFONY Información del Framework. Síntesis de Symfony  Es un framework diseñado para optimizar el desarrollo de aplicaciones web creado con PHP5. 
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Helpers en ASP.NET MVC3. Introducción Los helpers son una herramienta muy potente para generar nuestro propio código HTML dentro de las vistas. Los helpers.
Transcripción de la presentación:

Desarrollo y servicios web Luisa Fernanda Rincón Pérez

¿Qué es Ruby? “Un lenguaje de programación dinámico y de código abierto enfocado en la simplicidad y productividad. Su elegante sintaxis se siente natural al leerla y fácil al escribirla” Creado por Yukihiro “Matz” Matsumoto

¿Cuáles son sus características principales? Todo es un objeto Manejo de excepciones Garbage collector Manejo de hilos NO existen puntos y comas

¿Cuál es el historial de versiones de Ruby? …

¿Qué es Ruby on Rails? “Ruby on Rails es un entorno de desarrollo web de código abierto que está optimizado para la satisfacción de los programadores y para la productividad sostenible. Te permite escribir un buen código evitando que te repitas y favoreciendo la convención antes que la configuración” Rails fue creado en 2003 por David Heinemeier Hansson y desde entonces ha sido extendido por el Rails core team a más de colaboradores.

¿Qué es Rails? Es un framework para el desarrollo web escrito en Ruby. Sus principios de desarrollo son: "Don't Repeat Yourself" DRY Un programador sólo necesita especificar los aspectos no convencionales de la aplicación Convención sobre Configuración COC

¿Qué necesita Ruby on rails para funcionar? Lenguaje Ruby on rails versión 2.2 o superior. Estable 2.2.x. Última 2.3 Gemas: Paquetes de instalación Una instalación de un motor de base de datos. Por defecto usa SQLite 3

¿Cuál es el historial de versiones de Ruby on Rails? 1.0 Dic 2005 …. 4.0 Jun Sep Dic 2014

Instalación en Linux Para Ubuntu

RVM Ruby versión manager

1) instalación linux (probado en ubuntu 15.4) Actualizar el gestor de paquetes sudo apt-get update Instalar el curl sudo apt-get install curl Conseguir llave de seguridad para usar el rmv Ejecutar la petición al rmv \curl -sSL | bash -s stable –rails Probar ejecutando comando como rails –v ruby –v Instalar nodejs para ejecución de entorno de javascript sudo apt-get install nodejs Instalación Linux

Iniciar en el terminar el rvm La ruta que se pone en el source cambia según dónde se halla hecho la instalación del rvm

2. Crear una nueva aplicación rails new nombreApp 3. En la carpeta de la aplicación en el archivo gemfile descomentar la línea gem 'therubyracer'. Guardar 4. Ejecutar el comando bundle install Instalación Linux

Instalación en windows

Resultado de la instalaciónrail

Instalación Windows ( con Rails installer)

¿Cuál es el ambiente del rails installer?

Instalación ( con Rails installer)

Configuración instalador

Buscar los archivos bundle.bat y rails.bat en C:\RailsInstaller\Ruby2.2.0\bin Reemplazar la segunda línea por: Solucionar bug del rails "%~dpn0" %*

Instalar NodeJs Ingresar a la pagina de nodejs, descargarlo e instalarlo para que función bien la parte de javascript de la aplicación

¿Cómo crear un nuevo proyecto? Crea un proyecto con el nombre que se indica. Crea una estructura de directorios para proyectos. $ rails new blog blog: nombre del proyecto En la carpeta en la que deseemos En Linux autenticarse como root primero

Importante bundle install que instala las gemas que se requieran.

Descomentar la gema “the ruby racer”

Se ha creado un proyecto funcional, luego sólo es necesario subir el servidor Comando inicio servidor En la consola escribir rails server. Para que funcione se debe estar dentro de la carpeta app de proyecto creado. Para parar el servidor escribir ctr + c Puerto 3000

Página por defecto ruby on rails

Carpeta de los proyectos CarpetaFunción /app Aquí se organizan los componentes de la aplicación. Tiene subdirectorios que contienen la vista (view y helpers), los controladores (controllers) y la lógica de negocio (models). /app/controller Aquí se deben ubicar las clases controller. Un controller maneja un requerimiento web del usuario. /app/helpers Contiene todas las clases helper que asisten a las clases model, view y controller. Esto ayuda a mantener el código del modelo, la vista y los controladores lo más reducido, enfocado y despejado posible. /app/models Contiene las clases que modelan y empaquetan los datos almacenados en la base de datos de la aplicación /app/view Contiene las plantillas para completar con los datos de la aplicación, convertir a HTML y devolver al browser del usuario.

Carpeta de los proyectos CarpetaFunción /conf Aquí se ubica el código de configuración que requiere una aplicación. Incluye configuración a bases de datos, y estructura del ambiente. Permite configurar ambiente de pruebas, desarrollo y producción /db En este directorio se mantienen los scripts para el manejo de la base de datos relacional /lib Aquí se almacenan bibliotecas específicas de la aplicación /log Aquí van los logs de errores. /public Tiene todos los archivos que no cambian, tales como javaScript (public/javascripts), gráficos (public/images), hojas de estilo (public/stylesheets) y archivos HTML (public)

¿Qué son las gemas? Son plugins y/o códigos añadidos a nuestros proyectos Ruby on Rails, que permiten añadir nuevas funcionalidades.

Las gemas que requiere la aplicación se pueden configurar en el archivo GemFile. Se requiere tener instalado Bundler para el manejo de las gemas. Para hacer uso de las gemas allí configuradas se usa el comando install bundle Si no se indica la versión se instala la última. ¿Qué son los archivos GemFile?

¿Cómo aplica Ruby on rails MVC?

“ Routing is the mechanism by which requests (as specified by a URL and HTTP method) are routed to the code that handles them” ¿Qué es el enrutamiento en una aplicación web?

Haciendo ajustes Abrir sublime desde consola subl &

Crear un controlador y una vista Para crear un controlador y una vista escribir el siguiente comando rails generate controller welcome index Indica que se creará un controllador llamado welcome y una vista llamada index

Modificar información de la vista Modificar app/views/welcome/index.html.erb para escribir el siguiente texto

Adicionar lógica a la vista Código ruby Código Ruby con = significa que se va a imprimir algo. son variables de instancia disponibles en todos los métodos de una clase Se crea la variable de instancia en el controlador y en la vista así

¿Cómo se ve?

Crear código en la vista

Ciclo dentro de la vista

CSS Deben ir en la carpeta assets, dentro de nombreproyecto.css.scss los estilos

Layouts La idea básica es no repetir código Yield: Ejecuta la página que se estructura y se mete dentro de un layout. Así se evita la repetición de código. Se deben ubicar dentro de la carpeta layout

Layouts ( 2) Indicar en el controlador el layout

Modificar home page Se debe indicar que la página por defecto de la aplicación será la página creada anteriormente Abrir el archivo config/routes.rb. Descomentar la línea que inicia con Root Indica que se mapee cualquier solicitud del root al controlador en el método index

MODELO en Ruby on rails

¿Cómo aplica Ruby on rails MVC? Modelo Representan tablas de la base de datos Las clases del Modelo son gestionadas por ActiveRecord Extender de ActiveRecord::Base El programa averiguará automáticamente qué tabla usar y qué columnas tiene. ACTIVE RECORD interfaz para la manipulación de objetos dentro de bases de datos para Rails que funciona, también, en torno a Ruby

Modelo- Active Record - ORM

Generar un modelo rails generate model ( campos y tipos de campos) rails generate model User nombre:string string ¿Cómo se genera un modelo con el generador? Eliminar generate: rails destroy model User

¿Qué es el Active Record? Permite hacer mapeo objeto- relacional (ORM) en Ruby. Mapea una fila de una tabla de la base de datos a un objeto en ruby. Se usa para consultar datos en la base de datos en lugar de usar directamente sql. Por estándar los nombres quedan en minúsculsa

¿Cómo se ve la clase del modelo y la clase de la migración? PLQCgNGUqLK4l4vHyqkOenCxSPHNp6RGUq

Una migración es un concepto de ActiveRecord que permite mantener las modificaciones al esquema de su base de datos sincronizadas con la versión actual del código fuente. Cuando está ok, se ejecuta el comando rake db:migrate Para deshacerlo se ejecuta rake db:reset //Limpia las tablas rake db:drop //Elimina la bd ¿Qué es una migración?

Convenciones de nombre Llaves foráneas: singularized_table_name_id item_id Llave primaria: id

Ejecutar: rake db:migrate Correr migraciones

MODELO. Operaciones sobre el modelo. Consultar

MODELO. Operaciones sobre el modelo. Crear

MODELO. Operaciones sobre el modelo. Actualizar

MODELO. Operaciones sobre el modelo. Borrar

Una asociación e una conexión entre dos modelos del Active Record. Se usan ciertas palabras claves para demostrar esas asociaciones. Rails construye la relación entre las llaves ( primaria y foránea) según el tipo de asociación Asociaciones en Rails

belongs_to Conexión uno a uno con otro modelo. Cada instancia del modelo pertenece a una instancia del otro modelo Debe usarse el nombre de la clase en singular dentro del belong_to ¿Qué tipos de asociaciones existen?

has_one Conexión uno a uno con otro modelo. Cada instancia de un modelo contiene o pose una instancia de otro modelo ¿Qué tipos de asociaciones existen?

has_many One o mas conexiones con otro modelo. Es común encontrarla al otro lado de una relación belongs_to. Cada instancia del modelo tienen una o más instancias del otro modelo. El nombre del otro modelo debe estar en plural ¿Qué tipos de asociaciones existen?

Controlador en ruby on rails

MVC en Ruby on rails Controlador Responden a la interacción del usuario e invocan a la lógica de la aplicación Las clases del controlador son gestionadas por el Application Controller y deben heredar de él Acciones son métodos Se invoca desde la web con este patrón: URL : todo Controlador : EjemploController#método Vista con plantilla : /app/views/ejemplo/método. html.erb URL : todo Controlador : EjemploController#método Vista con plantilla : /app/views/ejemplo/método. html.erb

¿Cómo se ve el controlador por dentro? Aquí se pondrán los métodos relacionados con realizar las operaciones de CRUD. Hay métodos públicos, privados y protegidos

Vista en ruby on rails

MVC en Ruby on rails Vista Cómo se muestran los datos de las clases del Controlador Tiene fragmentos html con código ruby empotrado similar a JSP Es necesario escribir un pequeño fragmento de código en HTML para cada método del controlador que necesita mostrar información al usuario

Extensiones de la vista.erb ( Ruby embebido) Actualiza la vista que es HTML.builder Actualiza la vista que es un template xml.coffee Actualiza la vista que es un template javascript

Las rutas amigables y la vista Fuente: Opciones para enlaces

Ejecutar el comando rake routes Resultado

Validaciones

Ejemplos validaciones Active Record Incorporar validaciones a los modelos desarrollados

Scaffolding

¿Qué es ? Scaffold significa andamio en inglés. Estos comandos permiten tener rapidamente un CRUD (Create, Retrieve, Update, Delete) de cualquier sistema transaccional. rails g scaffold Subject name:string teacherName:string rails destroy scaffold Subject Deshacer scaffold

¿Cómo se ve? Falta hacer la migración de la base de datos

¿Cómo se ve?

Tipos de datos Scaffold string text (long text, up to 64k, often used for text areas) datetime date integer binary boolean float decimal (for financial data) time timestamp

Ejercicio crear con Scaffold el siguiente modelo Appointment Donde cada cita debe tener los siguientes campos: UserName Pwd isStudent(boolean) Date of birthday AppointmentTime(timespan) AdditionalInformation (text) rails g scaffold Appointment….

Son etiquetas o nombres en ruby. Estan precedidos por pos puntos ( : ) ¿Qué son los símbolos en ruby? Una vez que se ha definido un símbolo con un nombre en la aplicación no puede existir otro símbolo con ese mismo nombre.

¿Cómo poner cascadas?

Eliminar un post que tenga comentarios ¿Cómo saber si funciona?

¿Qué son los filtros de los controladores? Permiten ejecutar código compartido antes o después de pre o post procesar código sobre esos métodos. Facilitan la reutilización.

Ejemplo- filtro post Vista show.html.erb. Usa la variable de

Pasa valores de un request a otro. Los controladores los usan para enviar mensajes que son mostrados la usuario en la siguiente solicitud. ¿Para qué sirve el hash flash?

Ejemplo uso flash

Existen métodos en rails que ayudan a conocer la URL de un recurso. app.modelo_url app.post_url #=> app.modelo_url (modeloEspecifico) #=> Equivalente al id Helpers para conocer URLs

Routes.rb

Las rutas representan la relación que existe entre funciones (mostrar, agregar, eliminar, etc.) de la app y un verbo HTTP (GET, POST, PUT, etc.). En rails las rutas se representan en el archivo routes.rb ¿Qué son las rutas?

El elemento "root" dentro del archivo routes.rb representa la ruta base para la aplicación o también puede representar la ruta base para un namespace. Ruta root

Para declarar una ruta individual se debe considerar lo siguiente: Conocer el verbo HTTP asociado a la ruta Identificar el controlador y el método que se relacionará con la ruta Rutas individuales

Son una colección predefinida de todas las posibles funciones que por defecto posee un controlador Resources

Son recursos que dependen uno del otro. Por lo general se utilizan cuando se emplea una tabla de uno a muchos. Ejm: un post tiene muchos comments Nested resources Ojo: Cuando se hacen cambios en el archivo de routes se debe reiniciar el servidor

¿Cómo anidar rutas? – archivo routes Ojo: Cuando se hacen cambios en este archivo se debe reiniciar el servidor

¿Cómo se ven las rutas anidadas?

Al aplicarlo a nuestra app. Problema : muestra todos los comments sin importar los post

Incluir en la vista show de post la información de los comentarios Incluir la lógica en el controlador en el método show para tener los comentarios

¿Cómo se ve?

Show de Post

Adicionar en la vista show de post el formulario para agregar un comentario

HELPERS

En general, su objetivo es mantener el código lo mas DRY posible encapsulando código repetitivo que se ejecuta en tus vistas y entregando operaciones comunes de una manera fácil al desarrollador ¿Qué son?

¿Qué helpers existen? Buscar en: mTagHelper.html

app.modelo_path app.post_path #=>/posts app.edit_modelo_path app.edit_post_path #=>post/1 con petición GET Helpers para conocer URLs

¿Para qué sirve el hash Param? Sirve para acceder a los parámetros enviados en una solicitud GET ( por URL) o en una solicitud POST desde el controlador.

Permiten desde una página web solicitar otra. En rails se puede hacer desde el controlador usando el método redirect_to ¿Cómo se manejan re direcciones?

¿Qué pasa cuándo se guarda un comentario? Se requiere el post_id y se muestra el error de validación en la vista new de comments.

¿Cómo se debe ver?

Mejorar create del controlador comments para obtener el id del post

Bajar y volver al servidor Se elimina esta ruta pq ya se anidaron los comentarios en el post Eliminar la ruta directa de comments

Adicionar autenticación No todos los usuarios deberían agregar post o comments

Adicionar filtro de autenticación Incluir la autenticación en la sección de métodos privados del controlador. Usar método authenticate_or_request_with_http_basic Incluir la autenticación en la sección de métodos privados del controlador. Usar método authenticate_or_request_with_http_basic

¿Cuál es el resultado de la autenticación?

Problemas rails: Instalar sqllite Instalar rails en ubuntu: Otros tutoriales rails: Explicaciones sobre redirect – render: Api REST en Rails: Instalación de Heroku y rails Tutorial interactivo: Guia adicion bootstrap en ruby on rails Referencias