? He creado una aplicación de escritorio simple en C# 3.0 para aprender C#, wpf y .Net 3.5. Mi aplicación esencialmente lee datos de un archivo csv y los almacena en una base de datos SQL server CE. Yo uso sqlmetal para generar el código ORM para la base de datos. Mi primera iteración de esta aplicación es fea como el infierno y estoy en el proceso de refactorización.¿Cómo diseñaría una aplicación de escritorio en C# 3.0
Lo que me lleva a mi pregunta. ¿Cómo diseñarías una aplicación de base de datos de escritorio en C#? ¿Cuáles son las mejores prácticas?
¿Creas una Capa de abstracción de base de datos (DAL) que utiliza el código generado sqlmetal? ¿O es el código generado suficiente de una abstracción?
Si usa el patrón DAL, ¿lo convierte en un elemento único o estático? ¿Utiliza el patrón View-Model-ModelView con el patrón DAL?
Disculpas si esto parece una larga pregunta abierta, pero hace mucho tiempo que reflexiono sobre esto. Veo muchos ejemplos sobre cómo diseñar una aplicación n-tier empresarial en C#, pero no tanto sobre la arquitectura de aplicaciones de escritorio independientes.