Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Modulo2 Arquitectura dotnet

1,332 views

Published on

Published in: Technology
  • Be the first to comment

Modulo2 Arquitectura dotnet

  1. 1. Arquitectura Aplicaciones <br />Juan Pablo García González<br />Juanpablo.garcia@datco.cl<br />Software Developer Manager – Datco Chile<br />
  2. 2. Agenda<br />Aplicaciones Web<br />Richclientapplication<br />Aplicaciones Móviles<br />Referencias<br />
  3. 3. Aplicaciones web<br />
  4. 4. Aplicaciones WEB<br />
  5. 5. Consideraciones de Diseño<br /><ul><li>Dividir la aplicación lógicamente
  6. 6. Use abstracciones para implementar bajo acomplamiento entre capas
  7. 7. Entienda como los componentes se comunicaran unos con otros
  8. 8. Considere el uso de Caching para minimizar las llamadas al servidor
  9. 9. Considere el uso de «Logging» e «instrumentación»
  10. 10. Considere la autentificación de usuarios a través de los límites de confianza
  11. 11. No pase datos sensibles en texto plano por la red
  12. 12. Diseñe su aplicación Web para que corra con privilegios mínimos</li></li></ul><li>Problemas específicos de diseño<br />
  13. 13. Problemas específicos de diseño<br />
  14. 14. Problemas específicos de diseño<br />
  15. 15. Consideraciones por Capas<br />Capa de presentación<br />Capa de Negocios<br />Capa de Datos<br />Capa de servicios<br />
  16. 16. Consideraciones de Testing<br /><ul><li>Definición clara de inputs y outputs de las capas de la aplicación
  17. 17. Considere el uso de MVC o MVP, esto permite el uso de pruebas unitarias
  18. 18. Separa la implementación de lógica de negocio de Workflows, simplifica las pruebas
  19. 19. Diseño componentes desacoplados que puedan ser probados por separado
  20. 20. Use Logging y tracing que ayuden a detectar errores</li></li></ul><li><ul><li>Para diferentes tipos de aplicaciones
  21. 21. Web browser  ASP.NET
  22. 22. Web browser sin Reload  ASP.NET + Ajax
  23. 23. Web browser con Rich Media  ASP.NET + Silverligth
  24. 24. data driven Web application ASP.NET DynamicData
  25. 25. test-drivendevelopmentapproachASP.NET MVC
  26. 26. Si se usa ASP.NET considere el uso de Master Page para consistencia</li></ul>Consideraciones Tecnológicas<br />
  27. 27. Consideraciones de «Deploy»<br />NondistributedDeployment<br /><ul><li>Para aplicaciones pequeñas
  28. 28. No escalables
  29. 29. Cuando no se necesita compartir la lógica de negocio</li></li></ul><li>Consideraciones de «Deploy»<br />DistributedDeployment<br /><ul><li>Para un alto desempeño</li></li></ul><li>Consideraciones de «Deploy»<br />Load Balancing<br />Tolera fallas<br />Se necesita manejar las sesiones de manera consistente<br />Puede ser por hardware o Windows Network Load Balancing (NLB)<br />Mejorsi se usa un clsuter SQL<br />
  30. 30. ASPNET MVC<br />Demo<br />
  31. 31. richclientapplication<br />
  32. 32. richclientapplication<br />
  33. 33. Consideraciones de Diseño<br />Selecciones la tecnología adecuada (Windows Forms, WPF, XAML Browser Applications (XBAP), OBA)<br />Separe la lógica de presentación de las interfaces de implementación (ejemplo PresentationModel o SupervisingPresenter)<br />Identifique las tareas de presentación y los flujos de presentación<br />Separe la aplicación en capas<br />Reuse los componentes comunes de la presentación (ej: bibliotecas)<br />Si usa servicios remotos manténgalos con bajo acoplamiento<br />Reduzca las llamadas a «remotelayers»<br />
  34. 34. Cuestiones especificas del diseño<br />
  35. 35. Cuestiones especificas del diseño<br />
  36. 36. Cuestiones especificas del diseño<br />
  37. 37. Cuestiones especificas del diseño<br />
  38. 38. Cuestiones especificas del diseño<br />
  39. 39. Consideraciones de Seguridad<br />Determine el mecanismo adecuado de autentificación de usuarios<br />Tenga en cuenta la autentificación offline<br />Considere validar los inputs de los usuarios y de los servicios que consume<br />Considere proteger la data local.<br />Considere implementar Logging y auditoria<br />
  40. 40. Consideraciones manejo Datos<br />
  41. 41. Consideraciones OCC<br />Offline/OccasionallyConnected<br />Data centric.<br />Serviceoriented.<br />
  42. 42. Consideraciones Tecnológicas<br />Elija la tecnología correcta<br />WPF  aplicaciones ricas en multimedios<br />Windows Forms aplicaciones de negocios, alto desempeño<br /> XAML Browser Application(XBAP)aplicaciones que se descargan y ejecutan con el browser<br />Office Business Applications (OBA) aplicaciones basadas en documentos y reportes<br />
  43. 43. Consideraciones Deployment<br />Stand-aloneDeployment<br />
  44. 44. Consideraciones Deployment<br />Client/Server Deployment<br />
  45. 45. Consideraciones Deployment<br />N-TierDeployment<br />
  46. 46. Técnicas de Deployment<br />Click Once deployment<br />XCOPY deployment<br />Windows Installer (.MSI) package<br />XBAP package<br />
  47. 47. WCF, windowsForm<br />DEMO<br />
  48. 48. Aplicaciones Móviles<br />
  49. 49. Aplicaciones Móviles<br />
  50. 50. Consideraciones Generales<br />Decida que clase de aplicación construye: richclient, Web client o rich Internet application (RIA)<br />Determine que tipo de dispositivo usará y sus recursos<br />Considere los escenarios ocasionalmente conectados y anchos de banda limitados<br />Defina la UI adecuada para el dispositivo<br />Defina los layer adecuados para su aplicación, pensando en la reutilización y mantenciones<br />
  51. 51. Consideraciones especificas<br />
  52. 52. Consideraciones especificas<br />
  53. 53. Consideraciones especificas<br />
  54. 54. Consideraciones especificas<br />
  55. 55. Consideraciones especificas<br />
  56. 56. Consideraciones especificas<br />
  57. 57. Consideraciones tecnológicas<br />Microsoft Silverlight for Mobile<br />.NET Compact Framework<br />Windows Mobile<br />Mobile Device Manager (MDM)<br />Windows Embedded<br />
  58. 58. Consideraciones de Deployment<br />Microsoft Exchange ActiveSync® technology using a Windows Installer file (MSI).<br />Over the air, using HTTP, SMS, or CAB files<br />Mobile DeviceManager–basedCAB o MSI<br />
  59. 59. App Móvil<br />Demo<br />
  60. 60. Referencias<br />Microsoft ApplicationArchitecture Guide, 2nd Edition<br />http://msdn.microsoft.com/en-us/library/dd673617.aspx<br />Patterns of Enterprise Application Architecture. Addison-Wesley, 2002.<br />http://martinfowler.com/eaaCatalogs<br />
  61. 61. Arquitectura Aplicaciones<br />Juan Pablo García González<br />Juanpablo.garcia@datco.cl<br />Software Developer Manager – Datco Chile<br />

×