Empezando en Angular

Muy buenas,
Soy Manuel, llevo muchos años como programador Windows. Quisiera hacer algunas preguntas sobre programación Web a ver si sois tan amables de ayudarme. Ya se que voy tarde pero quiero iniciarme en la programación Web.

He visto que Angular va ganando popularidad y parece que es apoyado por Google. ¿Os parece un buen lenguaje para empezar ?.

Por otra parte , estuve la semana pasada en la charla sobre IONIC , la cual estuvo muy interesante. Este framework ¿es sólo para desarrollar sobre plataformas móviles o también es utilizado para web normal en dispositivos de escritorio ?

Y por último y abusando de vuestra confianza , respecto al alojamiento de una web en angular. He visto que Angular se despliega sobre node.js y la mayoria de los alojamientos del mercado usan el trio : PHP+APACHE+MYSQL , sabeis si hay alojamientos baratos para aplicaciones angular ?

Gracias de antemano por vuestras respuestas. Os lo agradezco mucho ya que cuando se empieza con algún lenguaje no es lo mismo ir dirijido que ir dandote cabezazos por ahí.

Un saludo

¡Buenas!

Creo que tienes un lío bastante grande. Te voy explicando:

Angular no es un lenguaje, es un framework. Este framework va sobre javascript / typescript y permite la creación de los componentes.

Lo que pasa es que es un framework tan grande que acaba usando varias herramientas y un compilador para funcionar correctamente, pero sigue sin llegar al término «lenguaje».

Antes de empezar a usar Angular, sería recomendable que manejases algo de programación web más sencilla.

IONIC podríamos definirlo como una «expansión» de Angular. Añade gran cantidad de componentes y herramientas para permitir la programación tanto para móvil como para web normal, incluso permite crear una «aplicación de escritorio».

Angular no requiere Node en el lado servidor. De hecho, Angular no requiere «nada» en el servidor, una vez compilado son unos cuantos ficheros que podrás desplegar con cualquier servidor web. Ahora bien, como casi todas las webs, necesitas una parte servidor que obtenga la información de la base de datos, compruebe permisos y todo eso.

Cuando se trabaja con Angular, normalmente se usan herramientas para tener una API Rest. Bien puedes usar un servicio como Firebase como se hizo en la charla, o bien puedes montarte tú uno, con PHP, Node, Java… Lo que quieras. Yo por ejemplo suelo usar la combinación Kotlin + Spring Boot + Mongo + Angular.

Breve resumen:

  • Una Angular al final se convierte en ficheros simples de HTML + JS + CSS.
  • Si quieres obtener información de bases de datos podrás usar algún servicio ya existente o crear el tuyo como te plazca.
  • IONIC es un conjunto de herramientas para ampliar las opciones de Angular y podrás usarlo en cualquier plataforma.

Buenas de nuevo Miguel Angel,

Muchas gracias por tu pronta y detallada respuesta Miguel Angel. Te debo una cerveza en el proximo meetup…

La idea es acceder a los datos de Mysql a los que ahora accede una app windows. Por ejemplo sería ver un grid o tabla de clientes en web, He hecho algunos pinitos en PHP y este accedería directamente a mysql , obtiene los datos y pinta una tabla con HTML que luego el navegador muestra. El despliegue en el servidor es simplemente copiar los módulos php a la carpeta correspondiente en Apache. ¿ Dices que en Angular el despliegue es más o menos así ?

Gracias de nuevo.

Un saludo

Sí. Una vez tienes tu app Angular terminada ejecutas el «build» y transforma tus cientos de ficheros en apenas 4 o 5. Esos los copias copias en el apache y a volar.

En este caso lo normal es que PHP tras acceder a los datos en vez mostrar HTML se limite a mostrar los datos en JSON u otro formato. Será Angular el encargado de formatearlos correctamente.

Con Angular es un poco más… “complejo”.

Dado que es un framework frontend, a diferencia de PHP que se trata de un lenguaje backend, necesitarás además de la base de datos algún webservice que te sirva esos datos (un API REST, para que nos entendamos). Este puede estar en PHP, Node.js, Django, o lo que mejor se te de.

Llegados a este punto, Angular mediante peticiones HTTP puede obtener esos datos en forma de objetos JSON, y trabajar con ellos como necesitemos.

En cuanto al despliegue, Angular funciona sobre cualquier servidor web realmente. Yo tengo preferencia por Nginx, pero del mismo palo puede ir en Apache2, un servidor Node, o lo que prefieras. No necesitas módulos especiales ni nada por el estilo, a ojos del servidor, tu aplicación Angular no deja de ser otra web más. Aunque si es cierto que existe una serie de buenas prácticas con respecto a los despliegues, como minificar el código, empaquetar los assets, etc.

Y con respecto a esto… No exactamente. Ionic es un framework de Apache Cordova, que a su vez es un conjunto de herramientas para montar aplicaciones móviles utilizando tecnologías web (como en los buenos años de Phonegap), pero que introduce la posibilidad de trabajar con Angular para este tipo de aplicaciones. No es que amplíe el framework o que “puedas usarlo en cualquier plataforma” :wink:

  Gracias chicos por vuestras respuestas, ya me voy aclarando un poco . 

De hecho he compilado la primera aplicacion Angular 2 que hay en la pagina de Angular y la he desplegado en un XAMP y funciona perfecto.

Una última pregunta antes de ponerme a machacar Angular . ¿Podriamos decir que Angular es un framework para frontend como podría ser el famoso bootstrap ? ¿ Si es así cual es mejor para empezar ?

Gracias por todo de antemano.

Podemos decir que Angular es un framework para frontend, básicamente porque lo es. De hecho, está orientado a trabajar con SPAs (Single Page Application). Sin embargo, Bootstrap anda lejos de ser un framework, siendo en su lugar una librería de CSS. Son cosas bastante diferentes, Angular te da funcionalidad, mientras que Bootstrap solo te da estilos.

Mi recomendación personal en este caso, es que uses ambos. Si te gusta BS, ¿por qué no?

De verdad gracias a todos por vuestras respuestas . Que nivelazo tiene este foro, así da gusto.

Un saludo

1 me gusta

Nada hombre. Para cualquier otra duda o consulta, aquí estamos.

Bootstrap es «framework css», solo aporta una serie de componentes básicos para la interfaz.

Angular hace mucho más, ocupándose también de toda la gestión de acceso a páginas, visualización de los datos, formateo de los mismos… Realmente Angular hace «todo» menos controlar el acceso a los datos, eliminado tareas propias de la cara del servidor y pasándolas al cliente.

1 me gusta

Ok. Gracias Miguel.

Pues nada a darle caña al Angular. La mayor alegría ha sido ver que funciona en un Apache normal y corriente , yo creia que esto necesitaba un servidor más específico.

Yo tengo un alojamiento en "one & one " ,¿ creeis que es adecuado para pequeñas aplicaciones ( 5 clientes a la vez como mucho etc) o creeis que es mejor pasarse a los grandes tipo AWS o Google ?

Un saluo

Angular reduce muchísimo la carga en el servidor. Mientras que en una aplicación «PHP normal» el servidor debe generar cada HTML, en sistemas como Angular el servidor solo debe sacar los datos de la BD. No debe generar HTML ni nada.

Además de que se reducen muchísimo la cantidad de consultas. Normalmente si una web muestra los datos del usuario en el encabezado, estos datos debe sacarlos en cada página, en Angular los obtiene una vez y el cliente «los mantiene», solo debe sacar la información nueva.

1 me gusta

Buenas @msegura! Me alegra que hayas encontrado ayuda!

Mi opinión con respecto a este tema:

Sin lugar a duda es una “apuesta segura”. Tiene grandísimas empresas detrás ( que le dan estabilidad), tiene una comunidad espectacular (con lo que podrás asistir a charlas, tienes acceso a los propios desarrolladores de la tecnología , … ) y además gran cantidad de contenido de calidad como cursos, documentación, …

Con respecto a este comentario de @MiguelAngelLV:

Estoy totalmente de acuerdo. Sería el escenario ideal. Si estás cómodo con la programación web, conceptualmente hablando, trabajar con Angular o cualquier otro framework o librería es muy sencillo.
No obstante te puedes adentrar en la programación web directamente con Angular debido a la cantidad de material que hay disponible y aunque tengas algunas dudas de arquitectura o conceptual, puedes apoyarte en la comunidad!

Un saludo!

1 me gusta

Mi consejo personal: HUYE de 1&1. Corre hacia adelante sin mirar atrás y esquiva sus ofertas fantasma. Si necesitas un servidor, te recomiendo encarecidamente OVH, Kimsufi, Scaleway o Digital Ocean (de este último tengo cupones de 10$ de crédito, que te da para dos meses de prueba con una máquina básica o 1 mes de prueba con una máquina algo más avanzada).

gracias por el consejo SrFreak ,

¿ debo huir de 1&1 por algo concreto? ¿ precio , rendimiento ?

Este de Digital Ocean que comentas, no tiene mala pinta,  parece que soporta 

MEAN que será un requisito importante para Angular , ¿ no ?

Espero no ser “coñazo” con tanta pregunta…

Un saludo

El stack MEAN no es un requisito para Angular, aunque mucha gente opine que si. Es solamente un stack más dentro de los posibles. DigitalOcean, como los otros mencionados, es un servicio de VPS: ellos te dan una máquina virtual y tu en ella, montas lo que tu quieras, como tu quieras. Además de que tienen un montón de documentación guay, tutoriales escritos por la comunidad, foros de soporte, etc.

Lo de huir de 1&1 es porque se trata de una empresa que vende “hosting profesional”, es decir, servicios de hosting a precios abusivos con un servicio que deja mucho que desear. Dice mucho de si mismos tanta publicidad como tienen. De hecho, anteriormente he trabajado con ellos y no te exagero si te digo que pasamos 4 semanas esperando una respuesta por una incidencia con sus servicios de correo (llamando por teléfono casi a diario). Como he dicho, existen muchos servicios más económicos e infinitamente mejor valuados.

Cuando coincidamos hablamos de ello, que quiero también conocer tu opinión como profesional experto para planteamientos a mis clientes.

Ok. Marcos.

LLevo unos 20 años desarrollando software de forma profesional, software de Gestión, tpvs etc
y siempre en Windows.Si mi experiencia puede servir a alguién, estaré encantado de ayudar.

Un saludo

1 me gusta