# Patrones y prácticas... ¡Chúpate!

<datetime class="hidden">2006-06-24T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported -->
## 

Patrones y prácticas... ¡Chúpate!

Publicado el Martes, Julio 20, 2004 10:42

Creo que he dejado bastante claro en el pasado que creo que una de las áreas más débiles de la "experiencia de desarrollador" de Microsoft es la [Área de patrones y prácticas](http://www.microsoft.com/resources/practices/default.mspx)Bueno, trate de encontrar un artículo sobre el patrón de Singleton en el sitio; pista, no utilice la función de búsqueda, devuelve un enlace a la [Bloque de aplicación de caché](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/CachingBlock.asp) ¡para 'Singleton' y nada en absoluto para 'Singleton Pattern'! Cuando lo encuentres ([aquí](http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpatterns/html/ImpSingletonInCsharp.asp)), puede notar algunas cosas:

1. Realmente no explica dónde / por qué querrías usarlo, aquí está el 'Contexto'

*'Usted está construyendo una aplicación en C#. Usted necesita una clase que tiene sólo una instancia, y usted necesita proporcionar un punto global de acceso a la instancia. Usted quiere estar seguro de que su solución es eficiente y que toma ventaja de las características de ejecución de lenguaje común de Microsoft .NET. También puede querer asegurarse de que su solución es seguro de hilo. '*

Lo cual es técnicamente exacto, absolutamente... bien, así que ¿por qué realmente quieres usarlo? ¡Algunos ejemplos pueden ayudar aquí!

2. Esto realmente no es la implementación más fácil o incluso "mejor" - por mi dinero, [esto es](http://www.yoda.arachsys.com/csharp/singleton.html) - tiene un montón de versiones que explican los beneficios / inconvenientes de cada uno.

Me he quejado de esto antes, ¿por qué lo estoy haciendo de nuevo? Estaba tratando de encontrar una implementación decente de un patrón específico, el [Vista del despachador](http://java.sun.com/blueprints/corej2eepatterns/Patterns/DispatcherView.html) - con el tiempo fui a la [Sitio de los patrones solares](http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html) Y traducido de la versión J2EE a C#... ¡lo cual es un dolor en el culo! No puedo encontrar el post en este momento, pero leí algunas cosas en el blog de alguien que el foco había estado en el desarrollador 'profesional' en lugar del 'oportunista' en el sitio P&P... significando aquellos con formación formal comp-sci versus aquellos que eligieron convertirse en desarrolladores después de haber calificado en un tema diferente.
Hmm...No sé si el Reino Unido es inusual, pero diría que de los muchos desarrolladores con los que he trabajado, alrededor del 5% han sido graduados de comp-sci - y no han sido fácilmente identificables por su nivel de habilidad.
Encuentro esto realmente molesto, los patrones deben ser el lenguaje universal de todos los desarrolladores, seguro, el 'Enterprise Developer' probablemente confiará en patrones más (como el uso de patrones puede simplificar en gran medida la creación y la comprensión futura de sistemas empresariales complejos) pero realmente creo que Microsoft ha caído la bola en no empujar patrones más a la comunidad de desarrolladores en general. [DoFactory](http://www.dofactory.com/Patterns/Patterns.aspx) llenar parte de la brecha pero todavía estoy desconcertado por la agnosia Patrones en sitios como [MSDN](http://msdn.microsoft.com/), incluso el [Centro de arquitectura](http://msdn.microsoft.com/architecture) apenas los menciona... vamos, es como construir una casa con materias primas como la arcilla y la madera en lugar de usar cosas como ladrillos y puertas.

De todos modos, despotricar...