Este artículo proviene de un motor de traducción automática.

Cuadro de herramientas

Documentación de base de datos, API para condiciones previas y posteriores, blogs y más

Scott Mitchell

Documentación de la base de datos con un solo clic

En el transcurso de mi carrera he visto una variedad de técnicas utilizadas para documentar la estructura y el propósito de una base de datos. La mayoría de los desarrolladores utiliza la herramienta de diagrama de base de datos de Microsoft SQL Server para generar una representación pictórica y, a continuación, llamar a lo a día. Aunque esto es un buen primer paso, es suficiente rara vez. Para empezar, compartir diagramas de base de datos con otros participantes puede resultar difícil en el mejor. (Tenía un cliente de correo electrónico me docenas de capturas de pantalla que, juntos, stitched consta de un diagrama de base de datos grandes.) Y tales diagramas suelen ser menos ideales para grandes bases de datos; un diagrama muestra cientos de tablas es difícil de leer y entender.

Mientras un diagrama de base de datos es ciertamente útil, hay mucho mejores herramientas para documentar la base de datos. Una de estas herramientas es BI Documentador (versión 3.0), una aplicación fácil de usar para generar automáticamente documentación para las bases de datos de Microsoft SQL Server. Para empezar, inicie a Documentador de BI y cree un archivo de solución. El archivo de soluciones especifica las bases de datos para documentar y mantiene un historial de instantáneas. Una instantánea es una descripción de la estructura de la base de datos en un punto determinado en tiempo y es generada por el Documentador de BI. A través de la vida útil de un proyecto, esquema de la base de datos normalmente cambia, a veces significativamente, se agregan nuevas tablas, columnas existentes obtener modificadas o eliminadas, se pueden agregar o quitar los índices. Estas instantáneas Asegúrese de que la documentación que se crea hoy puede fielmente reproducirse en el futuro. Al generar la documentación, puede crear una nueva instantánea del esquema de la actual base de datos o puede volver a generar la documentación desde una instantánea anterior.

Documentador de BI

Después de la selección de una base de datos al documento y crear la instantánea, sólo queda configurar las opciones de documentación. Documentador de BI para crear un archivo de Ayuda de HTML compilado (.chm) o una serie de páginas HTML. Hay opciones para personalizar los colores utilizados en la documentación, así como la capacidad para agregar un logotipo a cada página. Puede seleccionar opcionalmente los tipos de qué objeto de base de datos al documento y cuáles va a omitir. ¿Qué ocurre ’s más Documentador de BI incluye una base de datos integrada puede utilizar para crear y agregar diagramas de base de datos a la documentación de herramienta de creación de diagramas. Además, puede importar sus propios archivos de Microsoft Word y la imagen.

La documentación generada incluye una lista detallada de los objetos de base de datos especificada, que incluye usuarios, funciones, índices, desencadenadores, tablas y más. Ver información acerca de una tabla determinada enumera las columnas de esa tabla, desencadenadores, índices, restricciones, dependencias, propiedades extendidas y las instrucciones SQL necesarias para crear la tabla. Las columnas de la tabla, desencadenadores y otra información que se muestran como vínculos, cuando hace clic en, carga una página con más detalles.

Documentador de BI está disponible en tres ediciones: Base de datos, Enterprise y Workgroup. El Database Edition puede sólo documento Microsoft las bases de datos SQL Server, mientras que las ediciones Workgroup Enterprise y también pueden documentar bases de datos de Analysis Services, paquetes de Integration Services y Reporting Services servidores. La base de datos y Professional Editions habilitar un único usuario crear la documentación, mientras el Workgroup Edition permite que varios usuarios colaborar.

Precio: $ 195 para Database Edition, 395 dólares para la edición Enterprise, 495 dólares para la Workgroup Edition bidocumenter.com

Blogs de nota

Recientemente, trabajé en un proyecto que implica agregar nueva funcionalidad a una aplicación de Windows Presentation Foundation (WPF) de línea de negocio existente. Durante mi tiempo en dicho proyecto encontré blog de Beth Massi para ser un recurso indispensable. Humberto es un administrador de programas para el equipo de comunidad de Visual Studio en Microsoft. En su blog y en Channel 9 sitio Web de Microsoft (channel9.msdn.com de ) que explorar temas como el desarrollo de LINQ, Entity Framework, WPF, ADO.NET Data Services y Microsoft Office, ha creado numerosas sugerencias, trucos, vídeos, artículos y tutoriales.

La mayoría de entradas de blog de Humberto describe un escenario de programación específico y, a continuación, muestra cómo resolver con instrucciones paso a paso lucid, numerosas capturas de pantalla y fragmentos de código y vínculos a entradas de blog y artículos con más información. Por ejemplo, la entrada de blog titulada “ principal-detalle Data Binding en WPF con Entity Framework ” inicia recorriendo el lector a través del proceso de crear Entity Data Modelel. Humberto a continuación muestra diferentes formas que use LINQ para volver a extraer los registros de detalle adecuado. Otras entradas de blog escritas en un estilo similar incluyen “ mediante TableAdapters To insertar relacionados Data Into An MS Access Database ” y “ Tally Rows In A DataSet That coincidir una condición, ” entre muchos otros.

Lo que hace blog de Humberto destaquen es su pasión por Visual Basic. Todos ejemplos de código de Humberto son en VB y envía con frecuencia acerca de las características de lenguaje próximos, como la compatibilidad con inicializadores de colección en Visual Basic 10. Ella ha entrevistadas también varias MVP de Microsoft que está utilizando VB, pidiéndoles acerca de las aplicaciones que esté creando, las características de lenguaje favorito y así sucesivamente. Estas entrevistas (y otros como ellos) pueden verse en Channel 9 (channel9.msdn.com/tags/MVPde ) y en el sitio Web “ soy un VB ”, de imavb.net.

blogs.msdn.com/bethmassi

Blog de Beth Massi

Una API Fluent para versiones anteriores y Post-Conditions

Cuando se llama a un método, espera un determinado estado anterior a su ejecución en su entorno; puede asumir también cierta condiciones mantenga una vez que finaliza la ejecución. Estas suposiciones se denominan pre-conditions y post-conditions. Pre-Conditions suele aplicar a parámetros de entrada del método. Por ejemplo, en .NET Framework el archivo de ReadAllText método la clase acepta la ruta de acceso de un archivo como entrada y devuelve el contenido del archivo como una cadena. La ruta de acceso proporcionada no puede ser una cadena de longitud cero, contienen sólo caracteres de espacio en blanco o incluir cualquier ruta de archivo no válida; no puede ser null; y su longitud no puede superar la longitud definida por el sistema máximo-ruta del archivo. Si no se cumple alguna de estas condiciones previas, el método ReadAllText produce una excepción.

Previas y post-conditions se implementan normalmente mediante una serie de instrucciones condicionales, como se muestra en de figura 1. CuttingEdge.Conditions (versión 1.0), un proyecto de código abierto iniciado por Steven furgoneta Deursen, proporciona una interfaz habla para especificar previa y post-conditions. (Una interfaz habla es un estilo de diseño de API que maximiza legibilidad mediante el uso de nombres descriptivos y el método encadenamiento).

Figura 1 versiones anteriores y Post-Conditions implementadas mediante conditionals

public string ReadAllText(string path)
{
      // Pre-conditions...
      if (path == null)
            throw new ArgumentNullException(...);
      if (path.Length == 0)
            throw new ArgumentException(...);
      if (IsOnlyWhitespace(path) ||
            ContainsInvalidCharacters(path))
            throw new ArgumentException(...);
      if (path.Length >
            GetMaximumFilePathLength())
            throw new PathTooLongException(...);

      // Open file and read and return contents
            as string...
      object contents = GetFileContents(path);

      // Post-conditions
      if (!contents is string)
            throw
                  new InvalidFileTypeException(...);
      if (string.IsNullOrEmpty(
            (string) contents))
            throw new EmptyFileException(...);
}

Para aplicar una condición previa en un parámetro de entrada, propiedad o variable, utilice el método de extensión requiere; para post-conditions, utilice el método de extensión garantiza. Ambos métodos devuelven un objeto Validator, que tiene un host de los métodos disponibles para aplicar las comprobaciones de regla, such as IsNotNull, IsNotEmpty y IsEqualTo, entre otros muchos. Figura 2 muestra el mismo método como de figura 1, pero utiliza la API de CuttingEdge.Conditions para implementar el previas y post-conditions.

Figura 2 versiones anteriores y Post-Conditions implementadas mediante CuttingEdge.Conditions

public string ReadAllText(string path)
{
      // Pre-conditions...
      path.Requires()
            .IsNotNull()
            .IsNotEmpty()
            .Evaluate(!IsOnlyWhitespace(path)) &&
                  !ContainsInvalidCharacters(path),
                  "path contains whitespace only or
      invalid characters")
            .Evaluate(p => p.Length <=
                  GetMaximumFilePathLength());

      // Open file and read and return contents
      // as string...
      object contents = GetFileContents(path);

      // Post-conditions
      contents.Ensures()
            .IsOfType(typeof(string))
            .IsNotNull()
            .IsNotEmpty();
}

Cada llamada al método de validación: IsNotNull, IsNotEmpty, etc. — inicia una excepción si no se cumple la condición. Por ejemplo, si la ruta de acceso es null, la llamada al método de IsNotNull producirá una excepción ArgumentNullException.  Y puede proporcionar opcionalmente una cadena que se utiliza como el mensaje de la excepción.

A veces un previas o post-condition no pueden expresarse mediante uno de los métodos de la clase de validación integrados. En tales casos, tiene dos opciones. Puede crear un método de extensión en la clase de validación o puede utilizar el método Evaluate, que permite que especifique una expresión lambda o Boolean para evaluar. Si la expresión devuelve true, el procesamiento continúa; si devuelve false, se produce una excepción. Figura 2 ilustra el uso de ambas formas del método Evaluate en la sección pre-conditions.

Precio: Origen libre, abierta
Conditions.codeplex.com

La biblioteca

ASP.NET MVC es un marco relativamente nuevo agregado a la pila ASP.NET que permite a los desarrolladores crear aplicaciones Web utilizando un modelo de Model-View-Controller (MVC). Difiere el tradicional modelo de desarrollo de formularios Web Forms de muchas maneras. Para empezar, ASP.NET MVC ofrece mucho más control sobre el marcado representado y proporciona una separación de preocupaciones más distinta. Las páginas Web se obtiene acceso mediante direcciones URL descriptivas SEO, concisas. Y la arquitectura MVC permite una mejor capacidad de prueba. Para más exhaustivo de las diferencias entre ASP.NET MVC y Web Forms, consulte el artículo de Dino Esposito en el número de julio de 2009 (msdn.microsoft.com/magazine/dd942833.aspx de ).

Introducción a ASP.NET MVC implica un poco de una curva de aprendizaje, incluso para los programadores experimentados de ASP.NET, debido a de las numerosas diferencias entre los dos marcos. Por ejemplo, cuando la creación de una aplicación de ASP.NET MVC en Visual Studio, deberá crear un proyecto de prueba de unidad. Con ASP.NET MVC, diseñar las páginas Web mediante HTML junto con unas cuantas clases auxiliares: hay hay controles de Web para arrastrar y colocar en la página. Y, a diferencia de formularios Web Forms, no hay ningún control Web o de devolución de datos preparado en modelos de eventos. En resumen, hay una gran cantidad de nuevas técnicas para obtener información al mover de formularios Web Forms ASP.NET MVC.

Si un intermedio para experimentado desarrollador ASP.NET que desee aprender ASP.NET MVC, desproteger último libro de Stephen Walther, “ ASP.NET MVC Framework Unleashed ” (Sams, 2009). Walther hace un trabajo excelente introducción a conceptos nuevos y que muestra cómo se usan — sin abrumar el lector con un avalanchas de información.


ASP.NET MVC Framework desatado

El libro comienza con una breve introducción de ASP.NET MVC; la motivación para el nuevo marco de trabajo, sus objetivos de diseño y ventajas. Las páginas de 500 a continuación guían al lector a través de los aspectos clave de ASP.NET MVC, uno en uno. En primer lugar, el lector aprende a crear una nueva aplicación de ASP.NET MVC en Visual Studio, cómo agregar una base de datos, cómo modelos, vistas y los controladores se agregan al proyecto etc.. Las páginas siguientes 100 explore modelos, vistas y los controladores en detalle. Cada concepto se describe claramente y viene acompañado de capturas de pantalla y ejemplos de código en C# y Visual Basic. Los capítulos posteriores mirar los servicios de Ayuda HTML disponibles; explorar técnicas para validar los datos del formulario; y analizar minuciosamente la característica de enrutamiento de URL de ASP.NET MVC. También hay capítulos sobre autenticación, AJAX, jQuery y de implementación.

Después de examinar las partes principales de ASP.NET MVC, en capítulos independientes, en detalle y con la Ayuda de varios ejercicios simples, el libro termina con un ejemplo de extremo a extremo de la creación de una aplicación de ASP.NET MVC Web real. Este proyecto final, repartidos en 150 páginas, cements los conceptos que en los capítulos anteriores se han examinado y destaca muchas de las ventajas de ASP.NET MVC framework.

Precio: $49.99
samspublishing.com

Scott Mitchell , autor de numerosos libros y fundador de 4GuysFromRolla.com, es un MVP que trabaja con tecnologías Web de Microsoft desde 1998. Mitchell es un consultor independiente, instructor y escritor. Ponerse en de Mitchell@4guysfromrolla.com o a través de su blog en de ScottOnWriting.net.