#VS2017 – Lecciones aprendidas migrando una UWP App de #Windows 8.1 a #Windows10 y como reemplazar GeoLocation.CivicAddress

Buenas!

Si alguna vez te aburres, una actividad 100% interesante es intentar actualizar un proyecto que se ha cerrado hace 3 años o más. En mi caso, he invertido gran parte de estos últimos días en actualizar una App de Windows 8.1 a Windows 10.

He aquí un par de cosas que he aprendido

  • Visual Studio 2017 es mil veces mejor que las versiones anteriores para crear UWP Apps. Este punto se aplica el dicho “para gustos colores”, en mi caso VS2017 vuela.
  • Hace 3 años la opción mas recomendable para compartir código / funcionalidad entre proyectos eran Portable Class Libraries. Hoy esto es muy Old School, he migrado varios proyectos a .Net Standard y algún par de ostias he sufrido
  • Por ejemplo, .Net Standard va por su versión 2.0, sin embargo, para poder crear Net Standard Class Libraries que se puedan utilizar en UWP Apps, hay que “bajar” hasta la versión 1.4
  • No more CivicAddress. Si utilizas funcionalidades de localización en tu App, incluyendo valores como el país, ciudad, código postal y estado, la propiedad CivicAddress ha sido declarada obsoleta desde Win8.1

Sobre este último punto me extenderé un poco. Pues bien, cuando obtienes la ubicación en una UWP App, los 2 valores que si se retornan son latitud y longitud. Estuve investigando un poco sobre la mejor forma de obtener una dirección a partir de un punto (latitud y longitud) y llegué a esta conclusión

Puedes utilizar servicios como los siguientes donde debes tener una clave de Developer

Aunque gracias a StackOverflow encontré un servicio gratuito que con 4 líneas me resuelve el problema. Se trata de OpenStreetMap y el siguiente código es mas que suficiente para comprender como funciona

El resultado que retorna este servicio es similar a

I1

Eso si, si tu aplicación requiere un uso muy intenso de este servicio, es momento de volver a Bing o a Google para evitar un

System.Net.Http.HttpRequestException: ‘Response status code does not indicate success: 429 (Too Many Requests).’

I2

Happy Coding!

Saludos @ Toronto

El Bruno

References

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s