XAF DevExpress – Framework para hacer aplicaciones web y de escritorio

En este post estaremos listando algunos tips útiles para usar el Framework XAF DevExpress.

Relaciones y Asociaciones de tablas

https://docs.devexpress.com/XPO/2041/create-a-data-model/relationships-between-objects

Como mostrar en cascada un select

[DefaultClassOptions]
public class Order : BaseObject { // ... Accessory fAccessory; [DataSourceProperty("Product.Accessories")] // Product es la tabla principal y Accesories es la secundaria

public Accessory Accessory { get { return fAccessory; } set { SetPropertyValue(nameof(Accessory), ref fAccessory, value); }
}
}

Propiedades de un campo

[ReadOnly(true)] // solo de lectura
[RuleRequiredField] // este campo es requerido
[VisibleInListView(false)] // no es visible en el listado
[XafDisplayName("Registrado por")] // nombre que muestra el campo
[Size(SizeAttribute.DefaultStringMappingFieldSize)] // por defecto es 100, pero se puede poner Size(-1) para texto
[ModelDefault("AllowEdit", "False")] // es solo de lectura, pero sin opción a escritura
[Association] //asociado a una tabla //Aggregated para que sea uno a muchos

para ver más propiedades: https://docs.devexpress.com/XPO/2005/create-a-data-model/built-in-attributes

Para validar un correo

public const string EmailRegularExpression = "^[A-Za-z0-9_\\+-]+(\\.[A-Za-z0-9_\\+-]+)*@[A-Za-z0-9-]+(\\.[A-Za-z0-9-]+)*\\.([A-Za-z]{2,4})$";

[RuleRegularExpression(EmailRegularExpression, CustomMessageTemplate = "El Correo debe ser válido!")]

[XafDisplayName("Email de Contacto / Usuario")]

//[RuleUniqueValue]

public string Email { get; set; }

Para unir dos campos, ejemplo nombre y apellido en uno solo

public string FullName

{ get
{

string namePart = string.Format("{0} {1}", LastName, FirstName);

return namePart;
}
}

Opciones en el Namespace

[ModelDefault("IsCloneable", "True")] //para clonar un objeto
[Appearance("Deshabilitar si ya esta activo", "IsActivo = true", Enables = false, TargetItems = "*")]

Para encontrar un objeto

string temp = "LD"
Company company = ObjectSpace.FindObject<Company>(new BinaryOperand("NombreCampo", temp);

if(company == null) {
company = ObjectSpace.CreateObject<Company>()
company.CompanyCode = temp;
company.Name = "Live Developer"
}

ObjectSpace.CommitChanges();

Para encontrar un objecto dentro de otro objecto

public override void AfterConstruction()

        {

            base.AfterConstruction();

//usuamos la session del businnessObject
Company = Sesion.FindObject<Company>(new BinaryOperand("NombreCampo", "LD");

        }

 

Para las criterias

BinaryOperator Criteria = new BinaryOperator("Campo", "ValorCampo", BinaryOperatorType.Equal);

var Clientes = this.ObjectSpace.CreateCollection(typeof(Objeto), Criteria).Cast();

Overrides en Guardar o después de guardar

protrectect override void OnSaved()

{

base.OnSaved();

this.Reload();

        }

Blazor – ¿Listo para producción?

Blazor es un Framework nuevo para crear interfaces de usuario (User Interface -UI) mediante la plataforma .NET. Actualmente está dirigido para su implementación en la web con dos modelos diferentes.

La arquitectura es similar a React, Angular, Vue y otros Frameworks que utilizan componentes de serie para crear el interfaz de usuario final. Cada componente (Modo Servidor y Modo WebAssembly) puede tener su propio estado interno autónomo. Es muy intuitivo y eficiente para la creación de aplicaciones complejas y ahora se beneficia de las características sólidas de lenguaje y desarrollo disponibles en C# y Visual Studio (u otros IDE).

El modo Blazor Server-Side es parte oficial de la versión 3.0 de .NET Core. Toda la lógica de componentes se ejecuta en el servidor y se usa una conexión de websocket para pasar las actualizaciones de la interfaz de usuario y las interacciones entre el explorador y el back-end. Esto hace que el sitio se cargue rápidamente, pero requiere una conexión constante con el servidor. Si se produce un error en una conexión, se debe volver a cargar la página. Hay algunas actualizaciones futuras para que las conexiones sean más resistentes, pero la arquitectura actual es la más adecuada para aplicaciones internas y empresariales que siempre tienen una conexión confiable y rápida.

El otro modelo de implementación es en el lado cliente (Client-side). Este modelo funciona compilando con el runtime Mono (el mismo que usa Unity para juegos y Xamarin para aplicaciones móviles). Esto se le llama webassembly y se carga directamente en el explorador. También contiene archivos DLL estándar que se descargan e interpretan sobre la marcha en el explorador para ejecutar la aplicación.

Es importante tener en cuenta que el Blazor todavía depende mucho de Javascript porque esa es la única manera de modificar cualquier cosa en el DOM o interactuar con otro código Javascript en la página. Es poco probable que se evite el uso de JS completamente incluso con Blazor. Una nota interesante es que la tecnología subyacente es independiente de HTML y se puede utilizar para impulsar otras interfaces, con experimentos que muestran Blazor ejecutando el marco Flutter de Google para interfaces de usuario de aplicaciones móviles.

En general, es un gran salto grande. Si el modelo del lado del servidor se ajusta a tu caso de uso, entonces está listo para la producción. Es altamente productivo y ofrece una gran experiencia para sus usuarios.

Hay algunas herramientas que puedes encontrar en las siguientes direcciones:

¿Por qué usar Elementor (plugin) en WordPress?

Elementor es un plugin de WordPress que permite constructor páginas con solo arrastrar y soltar. Esto significa un par de cosas:

  • Elementor permite crear publicaciones de aspecto original y páginas que únicas, en comparación con las plantillas estándar de publicación / página que vienen con su tema de WordPress.
  • Obtienes una interfaz 100% separada para trabajar en tus publicaciones y páginas — la mayor parte de tu trabajo no ocurre en el editor de bloques estándar que viene con WordPress.
  • No requiere ninguna habilidad HTML/CSS/PHP — todo se puede hacer a través de una práctica interfaz orientada al usuario.
  • Funciona en el front-end de su sitio web, lo que significa que le muestra los resultados de su trabajo de inmediato de una manera genuina de «lo que ves-es-qué-se obtiene».
  • Puedes usarlo para crear cualquier diseño de contenido o diseño de página que pueda imaginar, independientemente de lo que su tema actual de WordPress le permite hacer.
  • Y, lo más importante, funciona con todos los temas de WordPress, por lo que puedes mantener su diseño actual y aún así obtener todas las golosinas que viene con Elementor.

A pesar de que el mercado de constructores de páginas ha crecido mucho a lo largo de los años, los dos principales competidores de Elementor’s siguen siendo los mismos: esos son Beaver Builder y Divi Builder. Por lo tanto, para muchas personas, la elección de un constructor de páginas se reduce a decidir entre Elementor, Beaver y Divi.

¡Y con razón! Las tres herramientas son geniales. Son la liga absoluta de constructores de páginas. Sin embargo, al mismo tiempo, ninguno es manos abajo mejor que los demás en todo. En última instancia, utilizar Elementor, Beaver o Divi se reduce a tu preferencia personal.

Aún así, hay una cosa que pone a Elementor significativamente por delante de los demás. Esa cosa es el precio que viene la versión gratuita.

Si bien hay una versión Pro de Elementor, honestamente obtienes el 90% de la genialidad del plugin de forma gratuita. Beaver y Divi no te dan eso. Esto hace que Elementor sea la mejor primera opción para cualquiera que busque un plugin de constructor de páginas.

👍

 Pros de Elementor:

  • Es gratis. Y la mayoría de los nuevos sitios web no necesitarán actualizar a Pro.
  • Tienes una gama excepcional de características y es fácil de usar.
  • Una vez más, la gama de características que están disponibles de forma gratuita es más que impresionante. Creo que deberías incluir eso en la lista dos veces.
  • Te permite crear diseños de página personalizados y diseños que pueden no estar disponibles en su tema actual y no requiere ninguna habilidad HTML, CSS o PHP.
  • Características como la edición de texto en línea y las vistas previas en tiempo real le proporcionan una verdadera interfaz de edición de «lo que se ve-es-lo que se obtiene».
  • La capacidad de ajustar sus vistas de escritorio, tableta y móvil por separado.
  • Hay ajustes muy detallados para todas las alineaciones, márgenes y valores de relleno. Literalmente nada está fuera de tu control.
👎

 Contras de Elementor:

  • Agregar estilo personalizado a los vínculos no siempre va según lo planeado. Es posible que te quedes atascado con la tipografía y la configuración de color predeterminadas de Elementor, que puede no ser lo que quieras.
  • Si algo está desalineado en la página, a menudo es difícil localizar el valor de margen exacto que es el culpable. Por ejemplo, puede tener un bloque principal, una columna dentro de él y, a continuación, un elemento de contenido dentro de él. Cada uno de ellos tiene su propia configuración de margen.
🧐

 Veredicto final:

Para concluir esta revisión de Elementor, diría que si necesita un excelente plugin gratuito de construcción de páginas de arrastrar y soltar para WordPress, Elementor debe ser su herramienta de ir a. Si bien hay otras alternativas en el mercado, Elementor se destaca como la única solución que puede ser utilizada por cualquier persona (incluidos los principiantes), y no te obliga a actualizar a una licencia de pago.

Herramientas y frameworks que aprender en 2020

Es esa época de año nuevo, es momento de establecer una meta y probar algo nuevo. Incluir en el aprendizaje de una nueva herramienta o framework puede ser una solución ideal para muchos desarrolladores.

Aquí el listado con sus links de herramientas de aprendizaje que pone a disposición Digital Ocean:

Sabes que es Laragon?

Este paquete para Windows es similar a Xampp, pero Laragon es una herramienta de desarrollo local más potente, un «kit de herramientas para desarrolladores». 

 

Laragon es un entorno de desarrollo universal portátil, aislado, rápido y potente para PHP, Node.js, Python, Java, Go, Ruby. Es rápido, ligero, fácil de usar y fácil de extender.

Laragon es ideal para crear y administrar aplicaciones web modernas. Se centra en el rendimiento, diseñado en torno a la estabilidad, la simplicidad, la flexibilidad y la libertad.

Laragon es muy ligero y se mantendrá lo más delgado posible. El binario principal en sí es inferior a 2 MB y utiliza menos de 4 MB de RAM cuando se ejecuta.

Laragon no utiliza servicios de Windows. Tiene su propia service orchestration de servicio que administra los servicios de forma asincrónica y sin bloqueo para que encuentre que las cosas se ejecutan de forma rápida y fluida con Laragon.

Entorno de desarrollo local de alto rendimiento. 

Laragon también tiene requisitos mínimos bajos y puede funcionar en un portátil barato. El núcleo de Laragon utiliza menos de 4 MB de RAM – ¡Ahorre energía en su computadora portátil!

Fácil y flexible

Laragon es fácil de instalar, fácil de usar, fácil de extender y fácil de operar.
Laragon hace las cosas mucho más fáciles:
– ¿Quieres tener un CMS de WordPress?  Solo 1 clic
– ¿Quieres mostrar tu proyecto local a los clientes? Solo 1 clic
– ¿Desea activar/desactivar una extensión PHP? Sólo 1 clic.

Bonitas URLs

Trabajar con su «aplicación» utilizando esta url agradable, corta, hermosa:
http://app.test

en lugar de http://localhost/app

Moderno y poderoso

Laragon está en contenedores, aislado y portátil. Es bien conocido en la comunidad PHP, pero también se utiliza para MEAN, Ruby on Rails, Django, Flask, Java, Go.

Tendencias de Marketing Digital para 2020

Son cada vez más las empresas que se suman a implementar dentro de sus planes de marketing, estrategias de marketing digital, y es que en la actualidad los consumidores prefieren interactuar más en medios digitales para adquirir productos o servicios.

En Ecuador, de acuerdo a We are Social, en 2017 y 2018 se ha multiplicado el número de usuarios que realizan transacciones online, estos porcentajes han sido del 2% al 10%. Esto significa que existe un enorme mercado para las empresas que buscan realizar estrategias de mercadeo orientadas al mundo digital para captar y cautivar a sus clientes.

Ante estos datos y la imparable velocidad con la que avanza la digitalización de las comunicaciones en general, y la forma de relacionarse de las empresas con sus clientes, es necesario contar con información clara y precisa sobre las herramientas más relevantes que ofrece el mundo digital a la hora de generar el vínculo entre oferta y demanda.

A continuación te presentamos una guía con las 10 principales tendencias en marketing digital para 2020, las cuales te ayudarán a preparar tu estrategia digital para este año que viene.

1. Búsqueda de voz

2. Publicidad móvil

3. Trato personalizado y comunicación directa

4. Redes sociales para encontrar nuevos productos

5. Audio y vídeo le ganan al formato texto

6. Interacción contenido y usuario

7. Inversión publicitaria en Instagram

8. Advergames y storyscaping

9. Webinars: una herramienta que sigue en alza

10. Linkedin: integración de nuevas herramientas

Cómo instalar Apache Tomcat 8 en CentOS 7

Apache Tomcat es un servidor web de código abierto que está diseñado para servir páginas web Java. Se implementa ampliamente y potencia varias aplicaciones web de misión crítica en todo el mundo.

Como guía de inicio, este artículo explica cómo instalar Apache Tomcat 8, la última versión estable de Apache Tomcat, en una instancia de servidor Vultr CentOS 7.

Prerrequisitos

Antes de seguir leyendo, debes:

  • Implemente una nueva instancia de servidor Vultr CentOS 7.
  • Inicie sesión en esta máquina desde su terminal SSH como un usuario de sudo no root.

Paso 1: actualice su sistema CentOS

Lo primero es lo primero, debe actualizar el sistema al último estado estable:

sudo yum install epel-release sudo yum update -y && sudo reboot

Use el mismo usuario de sudo para iniciar sesión en el sistema después de que finalice el reinicio.

Paso 2: instalar Java

Debe instalar Java SE 7.0 o posterior para que Apache Tomcat pueda ejecutarse correctamente. Aquí, instalaré OpenJDK Runtime Environment 1.8.0 usando YUM:

sudo yum install java-1.8.0-openjdk.x86_64

Ahora, puede confirmar su instalación con:

java -version

La salida será similar a la siguiente:

openjdk version "1.8.0_91" OpenJDK Runtime Environment (build 1.8.0_91-b14) OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)

Paso 3: crear un usuario dedicado para Apache Tomcat

Por razones de seguridad, debe crear un usuario «tomcat» dedicado no root que pertenezca al grupo «tomcat»:

sudo groupadd tomcat sudo mkdir /opt/tomcat sudo useradd -s /bin/nologin -g tomcat -d /opt/tomcat tomcat

De esta manera, creó un usuario «tomcat» que pertenece al grupo «tomcat». No puede usar esta cuenta de usuario para iniciar sesión en el sistema. El directorio de inicio es /opt/tomcat , que es donde residirá el programa Apache Tomcat.

Paso 4: descargue e instale el último Apache Tomcat

Siempre puede encontrar la última versión estable de Apache Tomcat 8 desde su página de descarga oficial , que es 8.0.33 en el momento de la escritura.

En la sección «Distribuciones binarias» y luego en la lista «Núcleo», use el enlace que apunta al archivo «tar.gz» para componer un comando wget:

cd ~ wget http://www-us.apache.org/dist/tomcat/tomcat-8/v8.0.33/bin/apache-tomcat-8.0.33.tar.gz sudo tar -zxvf apache-tomcat-8.0.33.tar.gz -C /opt/tomcat --strip-components=1

Paso 5: configura los permisos adecuados

Antes de poder ejecutar Apache Tomcat, debe configurar los permisos adecuados para varios directorios:

cd /opt/tomcat sudo chgrp -R tomcat conf sudo chmod g+rwx conf sudo chmod g+r conf/* sudo chown -R tomcat logs/ temp/ webapps/ work/ sudo chgrp -R tomcat bin sudo chgrp -R tomcat lib sudo chmod g+rwx bin sudo chmod g+r bin/*

Paso 6: Configurar un archivo de unidad Systemd para Apache Tomcat

Por conveniencia, debe configurar un archivo de unidad Systemd para Apache Tomcat:

sudo vi /etc/systemd/system/tomcat.service

Rellene el archivo con:

[Unit] Description=Apache Tomcat Web Application Container After=syslog.target network.target [Service] Type=forking Environment=JAVA_HOME=/usr/lib/jvm/jre Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid Environment=CATALINA_HOME=/opt/tomcat Environment=CATALINA_BASE=/opt/tomcat Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC' Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom' ExecStart=/opt/tomcat/bin/startup.sh ExecStop=/bin/kill -15 $MAINPID User=tomcat Group=tomcat [Install] WantedBy=multi-user.target

Guardar y Salir:

:wq

Por motivos de seguridad, también debe instalar haveged:

sudo yum install haveged sudo systemctl start haveged.service sudo systemctl enable haveged.service

Paso 8: Inicie y pruebe Apache Tomcat

Ahora, inicie el servicio Apache Tomcat y configúrelo para que se ejecute en el arranque del sistema:

sudo systemctl start tomcat.service sudo systemctl enable tomcat.service

Para probar Apache Tomcat en un navegador web, debe modificar las reglas del firewall:

sudo firewall-cmd --zone=public --permanent --add-port=8080/tcp sudo firewall-cmd --reload

Luego, puede probar su instalación de Apache Tomcat visitando la siguiente URL desde un navegador web:

http://[your-Vultr-server-IP]:8080

Si nada sale mal, verá la portada predeterminada de Apache Tomcat.

Paso 9: Configure la interfaz de administración web Apache Tomcat

Para utilizar la «Aplicación de administrador» y el «Administrador de host» en la interfaz web de Apache Tomcat, debe crear un usuario administrador para su servidor Apache Tomcat:

sudo vi /opt/tomcat/conf/tomcat-users.xml

Dentro del segmento </tomcat-users ...>...</tomcat-users> , inserte una línea para definir un usuario administrador:

<user username="yourusername" password="yourpassword" roles="manager-gui,admin-gui"/>

Recuerde reemplazar «su nombre de usuario» y «su contraseña» por los suyos, cuanto menos común, mejor.

Guardar y Salir:

:wq

Reinicie Apache Tomcat para que sus modificaciones surtan efecto:

sudo systemctl restart tomcat.service

Actualice la página principal de Apache Tomcat desde su navegador web. Inicie sesión en la «Aplicación de administrador» y el «Administrador de host» con las credenciales que configuró anteriormente.

La configuración de Apache Tomcat está completa. Ahora puede usarlo para implementar sus propias aplicaciones.

Cómo instalar Apache 2.4, MariaDB 10.3 y PHP 7.2 en Ubuntu 18.04

En este artículo, aprenderá cómo configurar una pila LAMP actualizada instalando las últimas versiones estables de Apache 2.4 y MariaDB 10.3 en Ubuntu 18.04.

Nota: Ubuntu 18.04 viene con PHP 7.2 ya instalado, por lo que solo necesitaremos instalar algunos paquetes necesarios.

Prerrequisitos

  • Una instancia de servidor Ubuntu 18.04 x64 actualizada
  • Un usuario de sudo.

Crear un usuario de sudo

Primero, actualice su sistema:

apt-get update -y apt-get upgrade -y

A continuación, cree un nuevo usuario:

adduser <username>

Escriba y vuelva a escribir una nueva contraseña segura para este usuario, luego configure la información del usuario o deje los campos en blanco y presione ENTRAR para usar los valores predeterminados.

Agregue el usuario al grupo sudo :

usermod -aG sudo <username>

Instalar Apache 2.4

Instale la última versión estable de Apache 2.4:

sudo apt-get install apache2 -y

Use el siguiente comando para confirmar la instalación y verificar la versión de Apache:

apache2 -v

La salida será similar a la siguiente:

Server version: Apache/2.4.29 (Ubuntu) Server built: 2018-10-03T14:41:08

En un entorno de producción, querrás eliminar la página de bienvenida predeterminada de Ubuntu Apache:

sudo mv /var/www/html/index.html /var/www/html/index.html.bak

Por razones de seguridad, debe evitar que Apache exponga archivos y directorios dentro del directorio raíz web /var/www/html a los visitantes:

sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak sudo sed -i "s/Options Indexes FollowSymLinks/Options FollowSymLinks/" /etc/apache2/apache2.conf

Nota: De acuerdo con sus requisitos específicos, puede personalizar más configuraciones en ese archivo más adelante.

Inicie el servicio Apache y haga que se inicie en el arranque del sistema:

sudo systemctl start apache2.service sudo systemctl enable apache2.service

Instalar MariaDB 10.3

Primero, instale software-properties-common , si es necesario:

sudo apt-get install software-properties-common

A continuación, importe la clave gpg:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Agregue el sistema apt repo:

sudo add-apt-repository 'deb [arch=amd64] http://mirror.zol.co.zw/mariadb/repo/10.3/ubuntu bionic main'

Actualizar apto:

sudo apt update -y

Ahora puedes instalar MariaDB:

sudo apt install -y mariadb-server mariadb-client

Durante el proceso de instalación, el asistente de configuración del paquete MariaDB aparecerá automáticamente y le pedirá que configure una nueva contraseña para el usuario root MariaDB. Elija una contraseña segura y repítala para confirmarla.

Una vez instalado MariaDB, puede confirmar la instalación:

mysql -V

El resultado será similar al siguiente:

mysql Ver 15.1 Distrib 10.3.10-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Inicie y habilite el servicio MariaDB:

sudo systemctl start mariadb.service sudo systemctl enable mariadb.service

Asegure la instalación de MariaDB:

sudo /usr/bin/mysql_secure_installation

El primer mensaje será ingresar la contraseña de root que acaba de establecer. A continuación, le preguntará si desea cambiar la contraseña.Puede ingresar n y presionar ENTER , a menos que desee cambiar la contraseña.

Durante el proceso interactivo, simplemente presione ENTER para ver las opciones predeterminadas, ya que son las más seguras.

MariaDB 10.3 ahora se ha instalado de forma segura en su sistema. En el futuro, también puede configurar usuarios designados y bases de datos para sus aplicaciones web. Inicie sesión en el shell de MySQL como root :

mysql -u root -p

Escriba la contraseña raíz de MariaDB que configuró anteriormente cuando se le solicite.

Cree una aplicación webapp base de datos MariaDB, una aplicación webappuser usuario de la base de datos y la contraseña del usuario de la base de yourpassword :

CREATE DATABASE webapp; CREATE USER 'webappuser'@'localhost' IDENTIFIED BY 'yourpassword'; GRANT ALL PRIVILEGES ON webapp.* TO 'webappuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT;

Si es necesario, puede personalizar MariaDB revisando y editando el archivo de configuración principal de MariaDB que es /etc/mysql/my.cnf :

sudo cp /etc/mysql/my.cnf /etc/mysql/my.cnf.bak sudo vi /etc/mysql/my.cnf

Recuerde reiniciar el servicio MariaDB si realiza alguna modificación en ese archivo:

sudo systemctl restart mariadb.service

Instalar paquetes PHP 7.2

Asegúrese de instalar estos paquetes después de instalar Apache:

sudo apt-get install -y php libapache2-mod-php7.2 php7.2-cli php7.2-common php7.2-mbstring php7.2-gd php7.2-intl php7.2-xml php7.2-mysql php7.2-zip

Configurar el firewall UFW

Por defecto, el firewall UFW en Ubuntu 18.04 está inactivo. Debe habilitar el firewall UFW para mejorar la seguridad. Primero revise la lista de aplicaciones:

sudo ufw app list

Luego establece tus reglas:

sudo ufw allow OpenSSH sudo ufw allow in "Apache Full"

Finalmente, comience ufw:

sudo ufw enable

Felicitaciones, ahora tiene una pila LAMP en funcionamiento en su sistema Ubuntu 18.04. Ahora puede implementar su propia aplicación web sobre la base de la pila LAMP.

Primero, actualice su sistema:

Estrategias de SEO 2018

1: Centrarse y concentrate en el contenido

Google tiene esta actualización llamada Hummingbird, y con Hummingbird los sitios web que tienen contenido de todo un poco no funcionarán tan bien como los sitios que se enfocan en un solo nicho y son súper minuciosos.

Quieres ser MUY exhaustivo con tu contenido SEO. Entonces trabaja en el contenido,  de manera que la gente diga: «Este es el final de todo el sitio» que debería terminar leyendo «si le interesa salir de la página».

2: Optimiza la etiqueta de título y la descripción

¿Alguna vez has hecho una búsqueda en Google, y has notado que cada vez que lo haces, aparece este enlace en la parte superior, y luego está esta oración con un enlace en la parte superior que se llama etiqueta del título.

Y la siguiente descripción se llama meta descripción.

Ahora piensa de esta manera, si busca la frase citas en línea, y no ve la palabra citas en línea ni en el título ni en la descripción, ¿va a hacer clic en el resultado?

Debes incluir la palabra clave en el título y su descripción, pero tiene que ser atractivo. Si no fluye en una oración, no es fácil de leer, y no es atractivo o evoca la curiosidad, nadie va a hacer clic.

3: Usa Google Search Console

¿Sabía que Google le ofrece una herramienta que le enseña a clasificar el número uno en Google?

Si aún no eres usuario de él, regístrate.

No cuesta un dólar. Te estás perdiendo si no lo estás usando.

Ahora que ha aprendido estos tres consejos, te desafío en lo que quiero que tomes estas tácticas y las implementes, y luego de que las implementes, en los próximos 45 días quiero que deje un comentario con sus resultados.

 

¿Cuál es la diferencia entre un CRM y un ERP?

Un CRM es un sistema que permite gestionar clientes mientras que un ERP gestiona procesos. Un CRM es por lo tanto una herramienta imprescindible para la ventael marketing y la atención al clientemientras que un ERP lo es para la producción.

La implantación de un CRM (Customer Relationship Manager) permite aumentar los ingresos de la empresa mientras que un ERP (Enterprise Resource Planning) permite controlar los costes.

Se requiere un esfuerzo importante de implantación de un ERP porque necesitamos cambiar y refundar los procesos de la empresa en profundidad mientras que el proceso de implantación de un CRM es más ‘ligero’ (se añade a lo que ya existe).

https://www.youtube.com/watch?v=h36iNIjZWGE