Arquitectura Aplicaciones <br />Juan Pablo García González<br />Juanpablo.garcia@datco.cl<br />Software Developer Manager ...
Agenda<br />Aplicaciones Web<br />Richclientapplication<br />Aplicaciones Móviles<br />Referencias<br />
Aplicaciones web<br />
Aplicaciones WEB<br />
Consideraciones de Diseño<br /><ul><li>Dividir la aplicación lógicamente
Use abstracciones para implementar bajo acomplamiento entre capas
Entienda como los componentes se comunicaran unos con otros
Considere el uso de Caching para minimizar las llamadas al servidor
Considere el uso de «Logging» e «instrumentación»
Considere la autentificación de usuarios a través de los límites de confianza
No pase datos sensibles en texto plano por la red
Diseñe su aplicación Web para que corra con privilegios mínimos</li></li></ul><li>Problemas específicos de diseño<br />
Problemas específicos de diseño<br />
Problemas específicos de diseño<br />
Consideraciones por Capas<br />Capa de presentación<br />Capa de Negocios<br />Capa de Datos<br />Capa de servicios<br />
Consideraciones de Testing<br /><ul><li>Definición clara de inputs y outputs de las capas de la aplicación
Considere el uso de MVC o MVP, esto permite el uso de pruebas unitarias
Separa la implementación de lógica de negocio de Workflows, simplifica las pruebas
Diseño componentes desacoplados que puedan ser probados por separado
Use Logging y tracing que ayuden a detectar errores</li></li></ul><li><ul><li>Para diferentes tipos de aplicaciones
Web browser  ASP.NET
Web browser sin Reload  ASP.NET + Ajax
Web browser con Rich  Media  ASP.NET + Silverligth
data driven Web application ASP.NET DynamicData
test-drivendevelopmentapproachASP.NET MVC
Si se usa ASP.NET considere el uso de Master Page para consistencia</li></ul>Consideraciones Tecnológicas<br />
Consideraciones de «Deploy»<br />NondistributedDeployment<br /><ul><li>Para aplicaciones pequeñas
No escalables
Cuando no se necesita compartir la lógica de negocio</li></li></ul><li>Consideraciones de «Deploy»<br />DistributedDeploym...
ASPNET MVC<br />Demo<br />
richclientapplication<br />
richclientapplication<br />
Consideraciones de Diseño<br />Selecciones la tecnología adecuada (Windows Forms, WPF, XAML Browser Applications (XBAP), O...
Cuestiones especificas del diseño<br />
Cuestiones especificas del diseño<br />
Cuestiones especificas del diseño<br />
Cuestiones especificas del diseño<br />
Cuestiones especificas del diseño<br />
Consideraciones de Seguridad<br />Determine el mecanismo adecuado de autentificación de usuarios<br />Tenga en cuenta la a...
Consideraciones manejo Datos<br />
Consideraciones OCC<br />Offline/OccasionallyConnected<br />Data centric.<br />Serviceoriented.<br />
Consideraciones Tecnológicas<br />Elija la tecnología correcta<br />WPF  aplicaciones ricas en multimedios<br />Windows F...
Consideraciones Deployment<br />Stand-aloneDeployment<br />
Consideraciones Deployment<br />Client/Server Deployment<br />
Consideraciones Deployment<br />N-TierDeployment<br />
Upcoming SlideShare
Loading in …5
×

Modulo2 Arquitectura dotnet

1,185 views
1,082 views

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,185
On SlideShare
0
From Embeds
0
Number of Embeds
14
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

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 />

×