Algunas de las posibles mejoras que pueden ser implementadas dentro de los componentes desarrollados son las siguientes:
x Soporte de la operación Patch [61] en el controlador genérico OData. De esta manera, evitaríamos el envío completo del modelo que queremos modificar, cambiando únicamente aquella/s propiedad/es que más nos interese.
x Como consecuencia de la anterior mejora, habría que modificar el repositorio genérico añadiendo un método nuevo que modificara la propiedad exacta, sin alterar el estado de las demás ligadas al propio modelo.
x Mejoras en los mensajes de error [62] que serán notificados al cliente, quién hará uso de la API de OData desplegada. Realizando esto, enriqueceríamos el mensaje enviado con el objetivo de dar un mayor feedback sobre los posibles problemas que ocurran dentro del servidor.
x Implementar una clase genérica [62] que represente filtros personalizados en forma de atributos adheridos a las acciones implementadas. Esto podría ser útil en el ámbito de la autenticación de las APIs para blindar las mismas frente a peticiones intrusivas y evitar la duplicación.
x Tratar de encontrar la manera efectiva y rápida de crear una clase genérica que pudiera servir como punto de partida para configurar una API de OData, incluyendo los aspectos relacionados con el registro de las acciones implementadas en el controlador genérico y el mapeo de las rutas.
x Refactorización del propio código. De esta manera, éste será más legible y facilitará la localización de errores.
x Aumentar el número de tests de integración para garantizar el mayor número de casos posibles dónde funcionarán los componentes desarrollados.
Referencias
[1] M. Fowler, Patterns of Enterprise Application Architecture, 1th ed: Addison- Weasly Professional, 2002.
[2] J. Palermo. (2008). The Onion Architecture, [Online] Available:
http://jeffreypalermo.com/blog/the-onion-architecture-part-1/.
[3] Visual Studio Online Services [Online] Available:
https://www.visualstudio.com/en-us/products/what-is-visual-studio-online- vs.aspx.
[4] Visual Studio [Online] Available: https://www.visualstudio.com/. [5] IntelliSense [Online] Available: https://msdn.microsoft.com/es-
es/library/hcw1s69b.aspx
[6] Kanban Panel [Online] Available: https://www.visualstudio.com/en-us/get-
started/work/work-from-the-kanban-board-vs.
[7] Scrum Panel [Online] Available: https://www.visualstudio.com/en-us/get-
started/work/work-in-sprints-vs.
[8] Git [Online] Available: https://git-scm.com/
[9] TFVC [Online] Available: https://msdn.microsoft.com/en- us/library/ms181237.aspx
[10] Team Explorer [Online] Available: https://www.visualstudio.com/es- es/products/team-explorer-everywhere-vs.aspx
Referencias
[11] Generación de código con t4 [Online] Available:
http://code.tutsplus.com/tutorials/code-generation-using-t4--cms-19854
[12] ORM [Online] Available: https://en.wikipedia.org/wiki/Object- relational_mapping
[13] Entity Framework [Online] Available: http://www.entityframeworktutorial.net/
[14] XML [Online] Available:
https://es.wikipedia.org/wiki/Extensible_Markup_Language
[15] Entity Framework Core [Online] Available:
https://github.com/aspnet/EntityFramework
[16] SQL [Online] Available: https://es.wikipedia.org/wiki/SQL
[17] Automapper [Online] Available: http://automapper.org/
[18] OData [Online] Available: http://www.odata.org/
[19] REST [Online] Available:
https://es.wikipedia.org/wiki/Representational_State_Transfer
[20] Paquetes NuGet [Online] Available: https://www.nuget.org/
[21] ASP.NET [Online] Available: http://www.asp.net/
[22] ASP [Online] Available: https://es.wikipedia.org/wiki/Active_Server_Pages
[23] CLR [Online] Available:
https://es.wikipedia.org/wiki/Common_Language_Runtime
[24] MVC [Online] Available:
https://es.wikipedia.org/wiki/Modelo%E2%80%93vista%E2%80%93controlador
[25] Web Forms [Online] Available: http://www.asp.net/web-forms
[26] LINQ [Online] Available: https://msdn.microsoft.com/es-
es/library/bb397926.aspx.
[27] SQL Server 2014 [Online] Available: https://www.microsoft.com/es-es/server- cloud/products/sql-server/
[28] Castle Windsor [Online] Available:
[29] T4 Template [Online] Available: https://msdn.microsoft.com/es- es/library/bb126445.aspx
[30] Windows Communication Foundation [Online] Available:
https://msdn.microsoft.com/es-es/library/ms731082(v=vs.110).aspx
[31] C# y Visual C# [Online] Available: https://msdn.microsoft.com/es- es/library/kx37x362.aspx
[32] IoC [Online] Available:
https://es.wikipedia.org/wiki/Inversi%C3%B3n_de_control
[33] MVP [Online] Available:
http://webclientguidance.codeplex.com/wikipage?title=MVPDocumentation&refe rringTitle=bundles
[34] Patrón Repositorio [Online] Available:
http://martinfowler.com/eaaCatalog/repository.html
[35] Patrón Especificación [Online] Available:
https://nanddonet.wordpress.com/2012/02/10/specification-pattern/
[36] Patrón UoW [Online] Available:
http://martinfowler.com/eaaCatalog/unitOfWork.html
[37] AOP [Online] Available:
https://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_aspectos
[38] POCO [Online] Available: https://msdn.microsoft.com/es- es/library/dd456853(v=vs.100).aspx
[39] DDD [Online] Available: https://en.wikipedia.org/wiki/Domain-driven_design
[40] Patrón DTO [Online] Available:
http://martinfowler.com/eaaCatalog/dataTransferObject.html
[41] OData v4 Client [Online] Available: http://www.asp.net/web-api/overview/odata- support-in-aspnet-web-api/odata-v4/create-an-odata-v4-client-app
[42] OData Client [Online] Available: https://github.com/object/Simple.OData.Client
Referencias
[44] ALM [Online] Available:
http://searchsoftwarequality.techtarget.com/definition/application-lifecycle- management
[45] Integration testing [Online] Available:
https://en.wikipedia.org/wiki/Integration_testing
[46] ASP.NET Web API [Online] Available: http://www.asp.net/web-api
[47] OData Controllers [Online] Available: http://www.asp.net/web-
api/overview/odata-support-in-aspnet-web-api/odata-v4/create-an-odata-v4- endpoint
[48] SOLID Principles [Online] Available:
https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)
[49] CRUD [Online] Available:
https://en.wikipedia.org/wiki/Create,_read,_update_and_delete
[50] Actions OData [Online] Available: http://www.asp.net/web-api/overview/odata- support-in-aspnet-web-api/odata-v4/odata-actions-and-functions
[51] API OData [Online] Available: http://odata.github.io/WebApi/#02-05-model- builder-summary
[52] OData Query Options [Online] Available: http://www.asp.net/web-
api/overview/odata-support-in-aspnet-web-api/supporting-odata-query-options
[53] JSON [Online] Available: https://es.wikipedia.org/wiki/JSON
[54] Expression Trees [Online] Available: https://msdn.microsoft.com/en- us/library/bb397951.aspx
[55] Katana Project [Online] Available: https://msdn.microsoft.com/en- us/magazine/dn451439.aspx
[56] OWIN [Online] Available: http://owin.org/
[57] Expected Object Library [Online] Available:
https://lostechies.com/derekgreer/2011/06/28/introducing-the-expected-objects- library/
[58] Microsoft Unit Testing [Online] Available: https://msdn.microsoft.com/en- us/library/ms243147(VS.80).aspx
[59] Database Initialization [Online] Available:
http://www.entityframeworktutorial.net/code-first/database-initialization-strategy- in-code-first.aspx
[60] DTO Pattern [Online] Available:
https://en.wikipedia.org/wiki/Data_transfer_object
[61] Patch [Online] Available:
https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol#Request_methods
[62] Error and Exception Handling in ASP.NET [Online] Available:
Este documento esta firmado por
Firmante CN=tfgm.fi.upm.es, OU=CCFI, O=Facultad de Informatica - UPM, C=ES
Fecha/Hora Sat Jun 04 14:26:14 CEST 2016 Emisor del
Certificado
[email protected], CN=CA Facultad de Informatica, O=Facultad de Informatica - UPM, C=ES Numero de Serie 630
Metodo urn:adobe.com:Adobe.PPKLite:adbe.pkcs7.sha1 (Adobe Signature)