Xamarin Form Prism (Sin Extension Template)

primslib

Este post vamos a crear un proyecto de Xamarin Form e implementaremos el Framework Prism sin necesidad de hacer uso del Extension Template que nos suministra la documentación oficial.

Que es Prism?
Prism es un framework para construir aplicaciones XAML libremente acopladas, mantenibles y comprobables en WPF y Xamarin Forms. Hay versiones separadas disponibles para cada plataforma y se desarrollarán en líneas de tiempo independientes. Prism proporciona una implementación de una colección de patrones de diseño que son útiles para escribir aplicaciones XAML bien estructuradas y mantenibles, que incluyen MVVM, inyección de dependencia, comandos, EventAggregator y otros.

Su creador es Brian Lagunas.

Que es MVVM?
El patrón modelo–vista–modelo de vista (Model View ViwModel) es un patrón de arquitectura de software. Se caracteriza por tratar de desacoplar lo máximo posible la interfaz de usuario de la lógica de la aplicación.

Modelo: Representa la capa de datos y/o la lógica de negocio, también denominado como el objeto del dominio. El modelo contiene la información, pero nunca las acciones o servicios que la manipulan. En ningún caso tiene dependencia alguna con la vista.

Vista: La misión de la vista es representar la información a través de los elementos visuales que la componen. Las vistas en MVVM son activas, contienen comportamientos, eventos y enlaces a datos que, en cierta manera, necesitan tener conocimiento del modelo subyacente.

Modelo de Vista: El modelo de vista es un actor intermediario entre el modelo y la vista, contiene toda la lógica de presentación y se comporta como una abstracción de la interfaz. La comunicación entre la vista y el viewmodel se realiza por medio los enlaces de datos.


Una vez que entendemos lo anterior, empezaremos a trabajar con nuestro proyecto.

Vamos a crear un proyecto Xamarin Form en blanco, que nos quede de la siguiente manera.

Vamos a Eliminar los archivos MainPage y AssemblyInfo.cs y crearemos nuestra estructura MVVM tan solo añadiendo tres carpetas con los nombres Models, Views y ViewModels, nuestro proyecto nos quedara de la siguiente manera.

Ahora vamos a abrir nuestro Manejador de Paquetes (NuGet Package Manager), haciendo click derecho en la solución > click en Manage NuGet Package for Solution y en la pestaña Buscador (Browser), buscaremos el siguiente paquete: Prism.Dryloc.Forms e instalaremos en los todos los proyectos que tenemos.

Vamos a ir a nuestro archivo App.cs y vamos a reemplazar el código que tiene actual con el siguiente: En nuestro archivo App.xaml vamos a reemplazar el codigo con el siguiente. Ahora iremos a nuestro proyecto en Android y agregaremos las siguientes lineas de código en nuestro MainActivity.cs, la primera linea que esta en el código a continuación, reemplazara la linea ya existente LoadApplication(new App()); por la que muestro, se ubica dentro del metodo OnCreate y la clase que muestro se agregara dentro de la clase MainActivity. Seguimos con nuestro proyecto iOS con el archivo AppDelegate.cs y añadiremos las lineas de código que siguen a continuación, siguiendo pasos similares al del proyecto en Android, la primera linea ira dentro del método FinishedLaunching y reemplazara la linea ya existente LoadApplication(new App()); por la que indico mas abajo y la clase iOSInitializer ira dentro de nuestra clase principal AppDelegate. Hasta aqui, ya tenemos la base principal para empezar a trabajar con nuestro proyecto utilizando Prism, a continuacion les enseñare como agregar las vistas y los modelos de vista , para todo esto, antes vamos a crear una clase dentro de la carpeta ViewModels y lo nombraremos ViewModelBase.cs, agregaremos el codigo siguiente a nuestra clase. Habiendo hecho esto, vamos a crear nuestra vista, dentro de la carpeta Views y esta la nombraremos MainPage, el tipo de archivo sera Content Page, lo único que modificaremos aquí, es que en la propiedad Title del Content Page, vamos a hacer un Binding: Title:”{Binding Title}” y listo, lo dejaremos lo restante tal cual. Dentro de la carpeta ViewModels agregaremos una clase llamada MainPageViewModel.cs y debe añadiremos las siguientes lineas. Ahora solo nos falta agregar nuestra vista y agregarle su modelo de vista desde nuestro archivo App.cs y dentro de nuestro método RegisterTypes agregaremos la siguiente linea de código. Y ahora si, ya podremos ejecutar nuestra aplicación y fijarnos en nuestro NavBar, ahí nos debería aparecer, el titulo que le agregamos desde el constructor de nuestra clase ViewModel que asignamos para MainPage.

Esto ha sido todo para empezar a trabajar con Prism sin necesidad de hacer uso del Extension Template, si te ha gustado el post, recuerda dejar un comentario para saber que te gusta y seguir creando mas contenido, hasta el próximo post.

24 thoughts to “Xamarin Form Prism (Sin Extension Template)”

  1. My coder is trying to convince me to move to .net from PHP.
    I have always disliked the idea because of the costs.

    But he’s tryiong none the less. I’ve been using WordPress on a variety of websites for about a year and am concerned about switching to another
    platform. I have heard good things about blogengine.net.
    Is there a way I can import all my wordpress content into
    it? Any help would be greatly appreciated!

  2. I was curious if you ever thought of changing the layout of your site?
    Its very well written; I love what youve got to say. But maybe you could a little
    more in the way of content so people could connect with it
    better. Youve got an awful lot of text for only having one or two pictures.
    Maybe you could space it out better?

  3. Heya i’m for the first time here. I came across this board and I to find
    It truly useful & it helped me out much. I am hoping to give one
    thing back and help others like you helped me.

  4. You’ve made some really good points there.
    I looked on the internet to find out more about the issue
    and found most people will go along with your views on this web site.

  5. Muchas gracias por su revisión a fondo. Nunca supe que alguien pudiera ganar dinero en línea haciendo encuestas. Me gusta especialmente el hecho de que YouGov tiene encuestas sobre temas políticos y sociales. A decir verdad, odio la idea de hacer una encuesta sobre productos y cosas así. ¡Estoy tan contento de que me hayas señalado este maravilloso recurso! ¡No puedo esperar a empezar! Martin

  6. Tendré que echar un vistazo más de cerca para eso – he usado Jaaxy desde que fue lanzado (Beta) y nunca he visto esta función de YouTube! Hay un parámetro de competencia general – tal vez él está en eso?

  7. Hello Chris,I am sure you missed something out! But I can’t think what it is though 😉That was an excellent review on the marketing guide – you’ve recently become my favorite site to visit!No doubt your website will be the answer to many people’s dreams of finding a safe and genuine place to learn online business. How long do you think it will take to get this sort of business up and running? Cheers Chris.

  8. Hi! I’ve been following your blog for some time now and finally got the courage to go ahead and give you a shout out
    from Porter Tx! Just wanted to tell you
    keep up the great job!

  9. I would like to get across my affection for your kind-heartedness in support of persons that must have help with the content. Your very own dedication to passing the solution along was pretty beneficial and have surely permitted others like me to reach their goals. Your own helpful report entails a whole lot to me and further more to my colleagues. Many thanks; from all of us.

  10. Aw, this was a very nice post. Finding the time and actual effort to produce a
    very good article… but what can I say… I procrastinate a whole lot and never manage to get anything done.

  11. Oh my goodness! Incredible article dude! Thank you, However I am experiencing issues with your RSS.
    I don’t know the reason why I am unable to subscribe to it.
    Is there anybody else having the same RSS issues? Anyone who knows the
    answer will you kindly respond? Thanx!! asmr 0mniartist

  12. I think this is one of the most significant information for me.
    And i am glad reading your article. But should remark on few general things, The site style is perfect, the
    articles is really excellent : D. Good job, cheers

  13. Admiring the time and energy you put into your site and in depth information you offer.

    It’s nice to come across a blog every once in a while that isn’t the
    same outdated rehashed information. Excellent read!
    I’ve bookmarked your site and I’m adding your RSS feeds to my Google
    account.

    my page – lpe88 download ios (918kiss-m.com)

Leave a Reply

Your email address will not be published. Required fields are marked *