Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Microsoft Academic Program VS.NET Tools Student Technology Conference 2005 Neno Loje Microsoft Student Partner Universität Hamburg.

Ähnliche Präsentationen


Präsentation zum Thema: "Microsoft Academic Program VS.NET Tools Student Technology Conference 2005 Neno Loje Microsoft Student Partner Universität Hamburg."—  Präsentation transkript:

1 Microsoft Academic Program VS.NET Tools Student Technology Conference 2005 Neno Loje Microsoft Student Partner Universität Hamburg

2 Microsoft Academic Program Student Technology Conference 2005 VS.NET Tools Neno Loje Microsoft Student Partner Universität Hamburg neno.loje@studentprogram.de

3 Microsoft Academic Program Student Technology Conference 2005 Wer bin ich? Neno Loje –Microsoft Student Partner (MSP) –Student der Informatik an der Universität Hamburg –Entwickler bei der KEEP IT SIMPLE GmbH in Hamburg Und noch? –Autor für div. Fachzeitschriften und Sprecher auf Fachkonferenzen –Microsoft Certified Professional (MCP) –Microsoft Most Valuable Professional (MVP) für Visual C+ –Codezone Site-Editor für Deployment und die Base Class Library Arbeitsschwerpunkte –.NET-Architektur und Technologien –Design wiederverwendbarer Komponenten und APIs –Smart Clients (Windows Forms)

4 Microsoft Academic Program Student Technology Conference 2005 Making of… Sehr viel Neues –Zur Beruhigung: Mehr Evolution als Revolution Weitaus mehr als in einen Vortrag passt –Persönliche Auswahl Viele weitere Vorträge

5 Microsoft Academic Program Student Technology Conference 2005 Beta Content Warning Die eingesetzte Software ist eine Vorabversion. Stabilität und Funktionsumfang spiegeln nicht die des endgültigen Produkts wieder. Wir möchten nachdrücklich darauf hinweisen, dass die Betaversion eines Produkts nicht dieselbe Stabilität aufweist wie die Verkaufsversion eines Microsoft-Produkts. Es ist möglich, dass Probleme auftreten, die zu Datenverlust oder Datenbeschädigungen führen. Die Version ist nicht für eine vollständige Verwendung geeignet. Sie sollten Ihre vorhandenen Daten sichern, bevor Sie diese Software installieren und ausführen. Dont try this with your PC at home! (or use Virtual PC )

6 Microsoft Academic Program Student Technology Conference 2005 Developer Roadmap WindowsLonghorn

7 Microsoft Academic Program Student Technology Conference 2005 Ziele von Visual Studio 2005 Zwischenschritt auf dem Weg zu WinFx/Longhorn Top-Customer Issues Produktivität –Weniger Codezeilen bis zum Ergebnis Performance Dinge, die bisher nicht möglich waren –Neue Managed-Klassen –.NET Code in der Datenbankschicht

8 Microsoft Academic Program Student Technology Conference 2005 Einfacher Drucken Private Sub Button1_Click(…) Handles Button1.Click With My.Computer.Printer.WriteLine("Circuit Board ID: " & _ txtCircuitBoardID.Text).WriteLine("Date Printed: " & Now).WriteLine(PictureBox1.Image).WriteHorizontalLine(Height:=3).WriteLine("Test Data").WriteLine(TextBox1.Text).Print(PreviewDialog:=True) End With End Sub Private Sub Button1_Click(…) Handles Button1.Click With My.Computer.Printer.WriteLine("Circuit Board ID: " & _ txtCircuitBoardID.Text).WriteLine("Date Printed: " & Now).WriteLine(PictureBox1.Image).WriteHorizontalLine(Height:=3).WriteLine("Test Data").WriteLine(TextBox1.Text).Print(PreviewDialog:=True) End With End Sub Private Sub Button1_Click(…) Handles Button1.Click PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.ShowDialog() End Sub Private Sub PrintDocument1_PrintPage(…) Handles PrintDocument1.PrintPage Dim font As New Font("Arial", 10) Dim brush As Brush = Brushes.Black Dim X As Integer = 50 Dim Y As Integer = 50 Dim LineHeight As Integer = 20 With e.Graphics.DrawString("Circuit Board ID: " & _ txtCircuitBoardID.Text, font, _ brush, X, Y) Y = Y + LineHeight.DrawString("Date Printed: " & Now, font, _ brush, X, Y) Y = Y + LineHeight.DrawImage(PictureBox1.Image, X, Y) Y = Y + LineHeight + _ PictureBox1.Image.Height.DrawLine(Pens.Black, X, Y, 750, Y) Y = Y + LineHeight.DrawString("Test Data", font, brush, X, Y) Y = Y + LineHeight.DrawString(TextBox1.Text, font, brush, X, Y) End With End Sub Private Sub Button1_Click(…) Handles Button1.Click PrintPreviewDialog1.Document = PrintDocument1 PrintPreviewDialog1.ShowDialog() End Sub Private Sub PrintDocument1_PrintPage(…) Handles PrintDocument1.PrintPage Dim font As New Font("Arial", 10) Dim brush As Brush = Brushes.Black Dim X As Integer = 50 Dim Y As Integer = 50 Dim LineHeight As Integer = 20 With e.Graphics.DrawString("Circuit Board ID: " & _ txtCircuitBoardID.Text, font, _ brush, X, Y) Y = Y + LineHeight.DrawString("Date Printed: " & Now, font, _ brush, X, Y) Y = Y + LineHeight.DrawImage(PictureBox1.Image, X, Y) Y = Y + LineHeight + _ PictureBox1.Image.Height.DrawLine(Pens.Black, X, Y, 750, Y) Y = Y + LineHeight.DrawString("Test Data", font, brush, X, Y) Y = Y + LineHeight.DrawString(TextBox1.Text, font, brush, X, Y) End With End Sub Visual Basic.NET 2003Visual Basic Whidbey

9 Microsoft Academic Program Visual Studio Debugger

10 Microsoft Academic Program Student Technology Conference 2005 RAD Debugging Edit and Continue: Code zur Laufzeit verändern Erlaubte Änderungen – Beispiele: –Hinzufügen von privaten Felder zu einer Klasse –Hinzufügen von privaten, nicht-virtuellen Methoden zu einer Klasse –Verändern des Inhalts einer Methode (auch während des Stepping) Verbotene Änderungen – Beispiele: –Entfernen von Feldern/Methoden –Bearbeiten von generischen Klassen (Generics) –Die Serialisierung erkennt neue Felder nicht. Display-Attribute für ein komfortableres Debuggen

11 Microsoft Academic Program Streng-Typisierte Ressourcen

12 Microsoft Academic Program Student Technology Conference 2005 Performance Zielsetzungen –Langfristig: Performance der CLR ähnlich zu nativem Code –Reduzieren des Overheads von zusätzlichen verwalteten Prozessen –Verringern der Startzeit und des Arbeitsspeicherbedarfs NGen –Kompiliert IL-Code in nativen Code, speichert Ergebnis auf Platte –Vorteile: Rekompilierung des IL nach nativen Code unnötig, somit schnellerer Programmstart –VS 2005: Wesentliche Reduktion des privaten, nicht gemeinsam verwendeten Arbeitsspeicherbedarfs. –OS: Kein-JIT-Plan, jeglicher managed Code wird ge-NGen-ed

13 Microsoft Academic Program Student Technology Conference 2005 VS.NET Projekt Assembly: geom.dll VB, C#, … Build SQL Server 2005 SQL Daten-Definition: create assembly … create function … create procedure … create trigger … create type … SQL Query: SELECT name FROM Supplier WHERE Location::Distance ( @point ) < 3 CLR gehosted in SQL (in-proc) SQL CLR-Funktionalität Define Location.Distance()

14 Microsoft Academic Program Student Technology Conference 2005 SQL-Programmiermodell Zeichenkette splitten Der bisherige Weg…. declare @str varchar(200) select @Str = 'Microsoft Corporation|SQL Server|2003|SQL-CLR|2002-08-20|11:32:00|Document|3.b.3' SELECT substring(@Str + '|', 0 + 1, charindex('|', @Str + '|', 0 + 1) - 0 - 1 ), charindex('|', @Str + '|', 0 + 1) - 0 - 1 ), substring(@Str + '|', charindex('|', @Str + '|') + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) - charindex('|', @Str + '|') + 1) - charindex('|', @Str + '|') - 1 ), charindex('|', @Str + '|') - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1, charindex('|', @Str + '|') + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) - 1 ), charindex('|', @Str + '|') + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 ) charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 ) declare @str varchar(200) select @Str = 'Microsoft Corporation|SQL Server|2003|SQL-CLR|2002- 08-20|11:32:00|Document|3.b.3' SELECT substring(@Str + '|', 0 + 1, charindex('|', @Str + '|', 0 + 1) - 0 - 1 ), charindex('|', @Str + '|', 0 + 1) - 0 - 1 ), substring(@Str + '|', charindex('|', @Str + '|') + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) - charindex('|', @Str + '|') + 1) - charindex('|', @Str + '|') - 1 ), charindex('|', @Str + '|') - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1, charindex('|', @Str + '|') + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) - 1 ), charindex('|', @Str + '|') + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) - 1 ), substring(@Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1, charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) + 1) - charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|', charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 ) charindex('|', @Str + '|') + 1) + 1) + 1) + 1) + 1) + 1) - 1 )

15 Microsoft Academic Program Student Technology Conference 2005 SQL-Programmiermodell Zeichenkette teilen Public Shared Sub SplitString() Dim s As String Dim s As String s = "Microsoft Corporation|SQL Server|2003|SQL-CLR|2002-08- 20|11:32:00|Document|3.b.3" s = "Microsoft Corporation|SQL Server|2003|SQL-CLR|2002-08- 20|11:32:00|Document|3.b.3" Dim myArray() As String = Split(s, "|") Dim myArray() As String = Split(s, "|") End Sub Der neue Weg…. Weitere Vorträge Managed Code statt T-SQL Donnerstag, 17:30h Neues vom SQL Server 2005 Donneratag, 9:00h

16 Microsoft Academic Program Student Technology Conference 2005 Inhalt hier rein! CONTENT

17 Microsoft Academic Program XML Code Documentation

18 Microsoft Academic Program Student Technology Conference 2005 Projects and Testing Often an expensive afterthought Strategies for minimizing impact Requirements Coding Integration Beta Test Post-Release 5 10 15 20 25 30 Relative Cost To Fix Bugs...

19 Microsoft Academic Program Student Technology Conference 2005 Defence In Depth Microsoft uses a 'defence in depth' strategy –Unit testing –Code reviews –Frequent builds Catch bugs early –Static checks –Runtime checks

20 Microsoft Academic Program Student Technology Conference 2005 VSTS Test Types Unit Tests –Test class methods Web Tests –Record and playback interactions Load Tests –Simulate multiple users Manual Tests –Provide scripts for manual tasks Third-party Tests –Integrated into VSTS

21 Microsoft Academic Program Unit Testing & Code Coverage

22 Microsoft Academic Program Student Technology Conference 2005 Static Analysis Find errors in your code before you run or deploy it A range of checks –From style to code correctness to security issues Integrated into the Team System Build Environment

23 Microsoft Academic Program Student Technology Conference 2005 Static Analysis The dev process with Static Analysis Code Compile StaticAnalysis AnalyzeCodeCheckRulesRaiseErrors Binary

24 Microsoft Academic Program Student Technology Conference 2005 PREFast Static analysis for C/C++ code –Managed and unmanaged C++ Catches common bugs –Buffer overruns, uninitialized memory –Memory leaks, null pointer dereference Reported as compiler warnings –Display path to problem –Use #pragma to turn off

25 Microsoft Academic Program Student Technology Conference 2005 FxCop Static analysis for.NET assemblies –Not just C++ Uses design guidelines Customizable –Which checks to include –Whether to report as error or warning –Create custom rules

26 Microsoft Academic Program Static Code Analysis

27 Microsoft Academic Program Student Technology Conference 2005 Unit Test Management

28 Microsoft Academic Program Student Technology Conference 2005 Code Coverage How much of your class have you tested? –Percentage or graphical

29 Microsoft Academic Program Student Technology Conference 2005 Authors PROJECT FILE - $%#^$&% - @$#%$^# Abracadabra Feeds Visual Studio.NET 2002/2003 VS Build System Produces Final Product Pre build step 0011010101111001011011011001110010100111 Post build step

30 Microsoft Academic Program Student Technology Conference 2005 Final Product Produces Feeds Authors DEVELOPER Authors MSBuild MSBuild MSBuild PROJECT FILE

31 Microsoft Academic Program MSBuild

32 Microsoft Academic Program Student Technology Conference 2005 Mehr Informationen MSDN Online Deutschland http://www.microsoft.com/germany/msdn/ http://www.microsoft.com/germany/msdn/ Codezone http://www.codezone.de http://www.codezone.de

33 Microsoft Academic Program Student Technology Conference 2005 Danke! Danke für Ihre Aufmerksamkeit!

34 Microsoft Academic Program Student Technology Conference 2005 Fragen und Antworten ? ? ? ? ?

35 Microsoft Academic Program Student Technology Conference 2005 Über den Referenten Neno ist Microsoft Student Partner an der Universität Hamburg und arbeitet als Softwareentwickler bei der KEEP IT SIMPLE GmbH in Hamburg. Er ist ständig auf der Suche nach Dingen, die das Entwicklerleben einfacher machen. Außerdem ist Neno überzeugter Notepad- Nutzer. Sie erreichen Ihn über seine Webseite www.dotnet-online.de. www.dotnet-online.de


Herunterladen ppt "Microsoft Academic Program VS.NET Tools Student Technology Conference 2005 Neno Loje Microsoft Student Partner Universität Hamburg."

Ähnliche Präsentationen


Google-Anzeigen