Freigeben über


Dieser Artikel wurde maschinell übersetzt.

Toolbox

Datenbankdokumentation, APO für Vor- und Nachbedingungen, Blogs und mehr

Scott Mitchell

1-Click-Datenbank-Dokumentation

Im Laufe des meiner Karriere habe ich eine Vielzahl von Techniken zum Dokumentieren der Struktur und den Zweck einer Datenbank gesehen.Die meisten Entwickler mit Microsoft SQL Server-Datenbankdiagramm Tool können Sie eine grafische Darstellung zu erzeugen und dann rufen Sie noch einen day.Obwohl dies eine gute erste Schritt ist, ist es selten ausreichend.Zunächst einmal schwierig Freigeben von Datenbankdiagrammen für andere Beteiligte bestenfalls.(Ich hatte ein Client e-mail anzeigen Dutzende von Bildschirmfotos, die zusammen stitched aus einem großen Datenbankdiagramm besteht.) Solche Diagramme sind häufig weniger als ideal für große Datenbanken und ein Diagramm anzeigen Hunderte von Tabellen ist schwer zu lesen und verstehen.

Während ein Datenbankdiagramms sicherlich nützlich ist, sind viel bessere Tools zum Dokumentieren Ihrer Datenbank.Ein solches Tool ist BI Dokumentierer (Version 3.0), eine benutzerfreundlichen Anwendung für das automatische Generieren von Dokumentation für Microsoft SQL Server-Datenbanken.Um zu Beginn starten Sie BI Dokumentierer, und erstellen Sie eine Projektmappendatei.Die Projektmappendatei gibt an, die Datenbanken zu dokumentieren und verwaltet einen Verlauf von Snapshots.Ein Snapshot ist eine Beschreibung der Struktur der Datenbank, zu einem bestimmten Zeitpunkt in der Zeit und wird von BI-Dokumentierer für Sie generiert.Über die Lebensdauer eines Projekts, einer Datenbank in der Regel Schemaänderungen, manchmal erheblich – erhalten neue Tabellen hinzugefügt, vorhandene Spalten erhalten geändert oder entfernt, Indizes hinzugefügt oder gelöscht werden können.Diese Snapshots stellen Sie sicher, dass die Dokumentation, die Sie heute erstellen faithfully in der Zukunft reproduziert werden kann.Beim Generieren der Dokumentation können Sie entweder einen neuen Snapshot der aktuellen Datenbankschema erstellen, oder Sie können die Dokumentation von einem früheren Snapshot erneut generieren.

BI-Dokumentierer

Nach dem Auswählen der Datenbank zum Dokument, und den Snapshot erstellen, ist alles, bleibt die Dokumentation-Optionen konfigurieren.BI-Dokumentierer können eine kompilierte HTML-Hilfedatei (.chm) oder eine Reihe von HTML-Seiten erstellen.Es gibt Einstellungen zum Anpassen der Farben in der Dokumentation als auch die Möglichkeit verwendet, um ein Logo auf jeder Seite hinzufügen.Sie können optional auswählen, welche Datenbank Objekttypen auf Dokument und welche Sie weglassen.Was ’s mehr umfasst BI Dokumentierer eine integrierte Datenbank Diagrammerstellung-Tool zum Erstellen und Hinzufügen von Datenbankdiagrammen in der Dokumentation.Außerdem können Sie Ihre eigenen Microsoft Word- und Image-Dateien importieren.

Die generierte Dokumentation enthält eine detaillierte Liste der angegebenen Datenbankobjekte, die Benutzer, Rollen, Indizes, Trigger, Tabellen usw. enthält.Anzeigen von Informationen über eine bestimmte Tabelle listet die Spalten dieser Tabelle, Trigger, Indizes, Einschränkungen, Abhängigkeiten, erweiterte Eigenschaften, und die SQL-Anweisungen zum Erstellen der Tabelle benötigt.Spalten der Tabelle, Trigger und andere Informationen werden angezeigt, die verknüpft werden, wenn geklickt haben, laden Sie eine Seite mit weiteren Details.

BI-Dokumentierer ist in drei verschiedenen Editionen verfügbar: Datenbank, Enterprise und Arbeitsgruppen.Die Database Edition können nur Dokument Microsoft SQL Server-Datenbanken, während die Enterprise und Workgroup Edition auch Analysis Services-Datenbanken, Integration Services-Pakete und Reporting Services-Server dokumentieren können.Der Datenbank und der Professional Edition aktivieren einen einzelnen Benutzer in die Dokumentation zu erstellen, während die Workgroup Edition mehrere Benutzer arbeiten können.

Preis: $ 195 für die Database Edition, 395 $ für die Enterprise Edition, 495 $ für die Workgroup Edition
bidocumenter.com

Wichtige Blogs

Ich arbeitete vor kurzem an einem Projekt, die beim Hinzufügen neuer Funktionen zu einer vorhandenen Line-of-Business Windows Presentation Foundation (WPF) Anwendung.Während meiner Zeit auf dieses Projekt fand ich Beth Massi Blog, wenn eine indispensible Ressource sein.Beth ist Program Manager für die Visual Studio Community Team bei Microsoft.Sie verfügt über zahlreiche Tipps, Tricks, Videos, Artikel und Lernprogramme erstellt hat, auf Ihren Blog und des Channel 9-Website (channel9.msdn.com ), die Themen wie LINQ, Entity Framework, WPF, ADO.NET Data Services und Microsoft Office-Entwicklung zu untersuchen.

Die meisten des Beth Blogeinträge ein bestimmtes Szenario Programmierung beschreiben und zeigen Sie dann, wie mit lucid Schritt-für-Schritt-Anweisungen, zahlreiche Screenshots und Codeausschnitte und Links zu Blogbeiträgen und Artikeln mit weiteren Informationen zu lösen.Beispielsweise startet der Blogeintrag mit dem Titel “ Master-Detail Data Binding in WPF mit Entity Framework ” durch Durchlaufen des Readers durch das Entity Data Model erstellen.Beth werden dann verschiedene Möglichkeiten aufgezeigt, LINQ können die entsprechenden Detaildatensätze wieder abrufen.Andere Blogeinträge in einem ähnlichen Stil geschrieben gehören “ mithilfe von TableAdapters so einfügen verwandte Daten in ein MS Access-Datenbank ” und “ Tally Rows In A DataSet, Match A Bedingung ” a. viele.

Was des Beth Blog hervorzuheben macht, ist Ihre Leidenschaft für Visual Basic.Alle Codebeispiele wurden des sind in VB, und er häufig über bevorstehende Sprachfeatures, z. B. Unterstützung für Auflistung Initialisierungen in Visual Basic 10 bucht.Er hat auch mehrere Microsoft-MVPs Befragte, VB, in der Sie aufgefordert werden zu den Anwendungen, die Sie erstellen, die Ihre Features Lieblingssprache verwenden und so weiter.Diese Interviews (und andere wie diese) können auf Channel 9 (channel9.msdn.com/tags/MVP ) und der “ ich bin ein VB ”-Website, imavb.net eingesehen werden.

Blogs.msdn.com/bethmassi

Blog von Beth Massi

Eine Fluent-API für vor- und Post-Conditions

Wenn eine Methode aufgerufen wird, es erwartet, dass seine Umgebung in einem bestimmten Zustand vor seiner Ausführung werden; möglicherweise auch davon bestimmte Bedingungen halten, sobald die Ausführung abgeschlossen ist.Diese Annahmen werden Pre-conditions und Post-conditions bezeichnet.Pre-Conditions gelten häufig für eine Methode Eingabeparameter.Beispielsweise in .NET Framework, die Datei-Klasse ReadAllText-Methode akzeptiert den Pfad einer Datei als Eingabe und gibt den Inhalt der Datei als Zeichenfolge zurück.Der eingegebenen Pfad kann nicht, eine Zeichenfolge der Länge 0 (null), enthalten nur Leerraumzeichen oder alle ungültigen Dateipfad Zeichen enthalten; darf nicht null sein und seine Länge darf nicht die systemdefinierte maximale-Dateipfad Länge überschreiten.Wenn eine der folgenden Vorbedingungen nicht erfüllt ist, löst die ReadAllText-Methode eine Ausnahme aus.

Präbuild- und Post-conditions werden in der Regel mithilfe einer Reihe von bedingten Anweisungen wie dargestellt im Abbildung 1 implementiert.CuttingEdge.Conditions (Version 1.0), eine open-Source-Projekts gestartet von Steven van Deursen, bietet eine fließend Schnittstelle für die Angabe von Präbuild- und post-conditions.(Eine fließend Schnittstelle ist eine API Entwurf Formatvorlage, die die Lesbarkeit durch Verwendung von beschreibenden Namen und die Methode Verkettung maximiert.)

Abbildung 1 vor- und implementierte Bedingungen mit Post-Conditions

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(...);
}

Eine Vorbedingung für einen Eingabeparameter, Eigenschaft oder Variable anwenden möchten, verwenden Sie die Erweiterungsmethode erforderlich; für Post-conditions, verwenden Sie die Erweiterungsmethode stellt sicher. Beide Methoden geben ein Validator-Objekt, das eine Host der verfügbaren Methoden für das Anwenden der Regel überprüft such as IsNotNull, IsNotEmpty und IsEqualTo, u. a. viele hat zurück. Abbildung 2 zeigt die gleiche Methode als Abbildung 1 , aber der CuttingEdge.Conditions-API verwendet, um die Präbuild-implementieren und post-conditions.

Abbildung 2 vor- und implementiert mit CuttingEdge.Conditions Post-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();
}

Jeder Validator-Methodenaufruf – IsNotNull, IsNotEmpty, und so weiter – löst eine Ausnahme aus, wenn die Bedingung nicht erfüllt ist. Wenn Path gleich null ist, wird der Aufruf der IsNotNull-Methode z. B. eine ArgumentNullException ausgelöst.  Und Sie können optional eine Zeichenfolge, die verwendet werden als die Ausnahme Nachricht bereitstellen.

Manchmal eine Präbuild- oder Post-condition kann nicht mit einer der integrierten Methoden der Validator-Klasse ausgedrückt werden. In solchen Fällen haben Sie zwei Möglichkeiten. Sie können entweder eine Erweiterungsmethode erstellen, auf die erpr der Klasse oder die Evaluate-Methode ermöglicht einen booleschen Wert zurück oder Lambda-Ausdruck zum Auswerten angeben können. Wenn der Ausdruck true zurückgibt, Verarbeitung wird fortgesetzt; Wenn false zurückgegeben wird, wird eine Ausnahme ausgelöst. Abbildung 2 veranschaulicht die Verwendung von beide Varianten der Evaluate-Methode im Abschnitt „ Pre-conditions.

Preis: Kostenlose, offene Quelle
Conditions.codeplex.com

Das Bücherregal

ASP.NET MVC handelt es sich um ein relativ neues Framework zum ASP.NET-Stapel, die es Entwicklern ermöglichen, Erstellen von Webanwendungen unter Verwendung eines Musters Model-View-Controller (MVC) hinzugefügt. Es unterscheidet sich von dem herkömmlichen Modell des Web Forms-Entwicklung in vielerlei Hinsicht. Zunächst einmal wird ASP.NET MVC bietet viel mehr Kontrolle über dem gerenderten Markup und bietet eine mehr unterschiedliche Trennung von Bereichen. Webseiten werden mit knappen, SEO-freundliche URLs zugegriffen. Und die MVC-Architektur ermöglicht eine bessere Testbarkeit. Eine eingehendere Betrachtung der Unterschiede zwischen ASP.NET MVC und Web Forms finden Sie Dino Esposito Artikel in der Ausgabe Juli 2009 (msdn.microsoft.com/magazine/dd942833.aspx ).

Erste Schritte mit ASP.NET MVC beinhaltet etwas ein Lernkurve selbst für erfahrene ASP.NET-Entwickler aufgrund der zahlreichen Unterschiede zwischen den beiden Frameworks. Beispielsweise werden beim Erstellen einer ASP.NET MVC-Anwendung in Visual Studio Sie aufgefordert, ein Testprojekt Einheit erstellen. Mit ASP.NET MVC, die Sie entwerfen Webseiten mithilfe von HTML-zusammen mit ein paar Hilfsklassen – es gibt keine Web-Steuerelemente per Drag & drop auf das Zeichenblatt ziehen und. Und im Gegensatz zu Web Forms sind keine integrierten Postback oder Websteuerelement Ereignismodelle. Kurz gesagt, gibt es viele neue Verfahren erhalten Sie beim Verschieben von Web Forms auf ASP.NET MVC.

Wenn Sie eine zwischen-erfahrene Entwickler von ASP.NET, der ASP.NET MVC erfahren möchte sind, checken Sie Stephen Walther neuestes Buch “ ASP.NET MVC Framework Unleashed ” (Sams, 2009). Walther ist eine hervorragende Auftrag Einführung in neue Konzepte und Ihre Verwendung anzeigen – ohne überfordert des Readers mit einem Avalanche von Informationen.


ASP.NET MVC Framework Unleashed

Das Buch beginnt mit einer kurzen Übersicht über ASP.NET MVC – die Motivation hinter das neue Framework, seine Ziele beim Entwurf und die Vorteile. Die nächsten 500 Seiten gehen den Leser über die wichtigsten Aspekte des ASP.NET MVC, einzeln nacheinander. Erstens lernt der Reader zum Erstellen einer neuen ASP.NET MVC-Anwendung in Visual Studio wie eine Datenbank hinzufügen möchten, wie Modelle, Ansichten und Domänencontrollern, die dem Projekt hinzugefügt werden und so weiter. Die nächsten 100 Seiten erkunden Modelle, Ansichten und Domänencontrollern im Detail. Jedes Konzept wird deutlich beschrieben und wird zusammen mit Screenshots und Codebeispiele in c# und Visual Basic. In späteren Kapiteln betrachten Sie die HTML-Hilfsprogramme zur Verfügung; informieren Sie sich über Verfahren zum Validieren von Formulardaten; und untersuchen Sie ASP.NET MVC URL routing Feature genau ansehen. Es gibt auch Kapitel auf Authentifizierung, AJAX, jQuery und Bereitstellung.

Beendet die nach der Prüfung der Zentrale Teile ASP.NET MVC in separaten Kapiteln ausführlich und mithilfe der mehrere einfache Übungen, das Buch mit einem End-to-End-Beispiel eine realen ASP.NET MVC-Webanwendung zu erstellen. Dieses letzte Projekt, über 150 Seiten verteilt cements die Konzepte in den vorangegangenen Kapiteln untersucht und viele der Vorteile des ASP.NET MVC Framework hervorgehoben.

Preis: $49.99
samspublishing.com

Scott Mitchell*,* Autor zahlreicher Bücher und Gründer von 4GuysFromRolla.com, ist als MVP seit 1998 mit Microsoft-Webtechnologien. Mitchell ist unabhängiger Berater, Schulungsleiter und Autor. Erreichen Sie ihn unter Mitchell@4guysfromrolla.com oder über seinen Blog unter ScottOnWriting.net .