350 likes | 460 Views
Narzędzia współczesnego programisty. Wrocławska Grupa .NET. Paweł Hofman Wrocławska Grupa .NET http://wroc.net.isvclub.com. Software Engineer Silicon & Software Systems (S3) www.s3group.com. Agenda. Wstęp Visual Studio i Extensibility Narzędzia typu R#, Refactor!, Visual Assist X
E N D
Narzędzia współczesnego programisty Wrocławska Grupa .NET Paweł Hofman Wrocławska Grupa .NET http://wroc.net.isvclub.com Software Engineer Silicon & Software Systems (S3) www.s3group.com
Agenda • Wstęp • Visual Studio i Extensibility • Narzędzia typu R#, Refactor!, Visual Assist X • Możliwości: • Asystowanie przy edycja kodu (C#, VB, C++, XML…) • Testowanie kodu • Dodatki • Czego brakuje ? • Inne narzędzia: Reflektor.NET, Paint.NET • Demo • Pytania
- Sekcja - Wstęp Visual Studio i Extensibility Narzędzia typu R#, Refactor!, Visual Assist X Możliwości: Asystowanie przy edycja kodu (C#, VB, C++, XML…) Testowanie kodu Dodatki Czego brakuje ? Inne narzędzia: Reflektor.NET, Paint.NET Demo Pytania
Wstęp • Visual Studio ciągle NIE jest tym, co tygrysy lubią najbardziej • mnogość asystentów do edycji i upiększania (refactoring) kodu • R# - JetBrains.com • Refactor!, CodeRush – DevExpress.com • Visual Assist X - WholeTomato.com • Eclipse (Java / C / C++)
Korzyści • Większa produktywność programisty • Większy zysk firmy, rekompensujący wydatki na narzędzie • Mniejsza harówka i frustracja programisty • Czytelniejszy kod
- Sekcja - Wstęp Visual Studio i Extensibility Narzędzia typu R#, Refactor!, Visual Assist X Możliwości: Asystowanie przy edycja kodu (C#, VB, …) Testowanie kodu Dodatki Czego brakuje ? Inne narzędzia: Reflektor.NET, Paint.NET Demo Pytania
Visual Studio Extensibility • Visual Studio Extensibility • zmiana wyglądu IDE • nowe okna narzędziowe • nowi dostawców usług • od wersji VisualStudio 2005: • brak bezpośredniej interakcji z obiektami COM • atrybuty, interfejsy i klasy bazowe w kodzie zarządzanym .NET
- Sekcja - Wstęp Visual Studio i Extensibility Narzędzia typuR#, Refactor!, Visual Assist X Możliwości: Asystowanie przy edycja kodu (C#, VB, C++, XML…) Testowanie kodu Dodatki Czego brakuje ? Inne narzędzia: Reflektor.NET, Paint.NET Demo Pytania
R# - Edycja • Asystent: • modyfikuje edytory kodu • tworzy podgląd struktury pliku • sprawdza poprawność kodu podczas edycji • automatycznie sugeruje pożądane akcje dla aktualnego położenia kursora • ułatwia nawigację i wyszukiwanie zależności • monitoruje całe rozwiązanie (Solution) w poszukiwaniu potencjalnych błędów i niespójności
R# • On-the-fly Error Checking ReSharper instantly detects and highlights errors in code, without you having to compile it first. • Warnings Besides errors and warnings detectable by the compiler, ReSharper also prompts you about additional warnings that may represent real coding errors. źródło: www.jetbrains.com/resharper
R# • Code Suggestions A deeper level of code analysis is available with Code Suggestions. Code suggestions provide insights into code structure, drawing your attention to things that aren't necessarily bad or wrong, but probably useful to know. • Quick-Fixes ReSharper provides Quick-fixes for most errors, helping you solve problems instantly. You can see the list of available quick-fixes for a given error. Then simply select the appropriate quick-fix from the list, and it will implement the automatic error correction. źródło: www.jetbrains.com/resharper
R# - Wsparcie platformy .NET • Przydatny przy pracy z językami: • C# • VB.NET • Dodatkowo: • ASP.NET • XML • XAML • skrypty MS Build (.Proj) • skrypty NAnt
R# - Refactoring Extract Class from Method Parameters Make Method Static Make Method Non-Static Use Base Type where Possible Pull Members Up Push Members Down Safe Delete Convert Method to Property Convert Property to Method(s) Convert Abstract Class to Interface Convert Interface to Abstract Class Encapsulate Field Move type to outer scope Move Static Members • Using Code Refactorings • Rename Symbol • Move Type • Copy Type • Change Method Signature • Extract Method • Extract type to a new file • Introduce Variable • Introduce Field • Introduce Parameter • Inline Variable • Extract Interface • Extract Superclass źródło: www.jetbrains.com/resharper
R# - Testy jednostkowe • Przeglądanie • Uruchamianie • Historia sesji testów … dostępne wewnątrz Visual Studio • Wspiera NUnit Framework • Możliwa integracja także z innymi
Niedosyt ? • Brak sprawdzania pisowni!!! • Brak wykrywania i przenoszenia stałych z kodu do zasobów • Brak porównywania publicznego API dwóch wersji tego samego assembly • Brak wsparcia dla programistów C/C++
R# - Publiczne API • Zwykły projekt DLL używający atrybutów, klas i interfejsów z assemblies JetBrains.*.dll • Pisanie dodatków do R# jest dużo prostsze niż bezpośrednio w VisualStudio • Instalacja dodatku: • All Users - <R#InstallDir>/Bin/Plugins • Current User - <Profile>/ReSharper/v<R#Version>/vs<VsVersion><WsRootSuffix> /Plugins • Dostępne dodatki: • RGreatEx (odpłatnie) • Agent Smith • MbUnit
- Sekcja - Wstęp Visual Studio i Extensibility Narzędzia typu R#, Refactor!, Visual Assist X Możliwości: Asystowanie przy edycja kodu (C#, VB, C++, XML…) Testowanie kodu Dodatki do R# Czego brakuje ? Inne narzędzia: Reflektor.NET, Paint.NET Demo Pytania
Refactor! Pro - Możliwości • IntellAssist • 150+ Refactorings • w tym przenoszenie stałych / napisów do zasobów • wykrywanie i definiowanie stałych • Wspiera: • C# • Visual Basic *) • C++ *) • ASP.NET *) • XML • XAML • HTML • JavaScript *) = dostępna wersja darmowa
Refactor! Pro - Możliwości • metryki kodu • ciekawe dodatki wizualne • możliwość pisania dodatków • pomocny przy korzystaniu z NUnit
Filmiki instruktażowe: Refactor! Pro Demo • CodeRush! Big Picture • Refactor! 3-minutes • Refactor! Pro Big Picture źródło: www.devexpress.com
- Sekcja - Wstęp Visual Studio i Extensibility Narzędzia typu R#, Refactor!, Visual Assist X Możliwości: Asystowanie przy edycja kodu (C#, VB, C++, XML…) Testowanie kodu Dodatki do R# Czego brakuje ? Inne narzędzia: Reflektor.NET, Paint.NET Demo Pytania
Visual Assist X - Możliwości • Wspiera: • C# • VB.NET • C++ • dostępny nawet dla VisualC++ 6.0 oraz eMbedded Visual Tools 4.0 • wbudowany słownik (spellchecker dla komentarzy, zasobów i napisów)
Visual Assist X - Możliwości • wykrywa błędy przed kompilacją • wyszukuje referencje do klas niezależnie od użytego języka • zmiana nazwy elementu odświeża także zasoby i napisy • rozbudowana nawigacja po kodzie • bardzo rozbudowane kolorowanie kodu
Visual Assist X • Enhanced Syntax Coloring Make code easy to read and debug by viewing it with enhanced syntax colors. • Local Symbols in Bold Distinguish local from non-local symbols as you read code. • Stable Symbols in Italics Display stable symbols in italics and know when you reference a method from a base class versus an overriding variant. źródło: www.wholetomato.com
Visual Assist X • Underline Spelling Errors Spell check comments and strings as-you-type, or run spell check in batch mode. • Underline Mistyped Symbols Underline mistyped symbols as-you-type so you know immediately if you're mistaken about a symbol name, or you're using a symbol out-of-context. • Repair Case Type a symbol with improper case and watch it get repaired immediately. źródło: www.wholetomato.com
- Sekcja - Wstęp Visual Studio i Extensibility Narzędzia typu R#, Refactor!, Visual Assist X Możliwości: Asystowanie przy edycja kodu (C#, VB, C++, XML…) Testowanie kodu Dodatki do R# Czego brakuje ? Inne narzędzia: Reflektor.NET, Paint.NET Demo Pytania
Inne narzędzia • FxCop.NET • Reflector.NET • Paint.NET • Dependency Walker • Test Driven Development: • NUnit • MbUnit • Visual Studio .NET for Software Testers
Inne narzędzia (2) • mrówki (NAnt) • MS Build • TeamCity (JetBrains) • CruiseControl.NET • pomoce od sysinternals • monitory: rejestru, plików, ruchu sieciowego • programy diagnostyczne • pomoce od wintellect.com
Przykładowy projekt Visual Studio + R# w akcji Demo • asystent • - szybka edycja i poprawianie kodu • testy jednostkowe • wyszukiwanie i nawigacja po projekcie
Podsumowanie • VisualStudio 2005 nie jest narzędziem wystarczającym do wszystkiego. • Istnieją liczne narzędzia, które można zintegrować z VisualStudio, aby uczynić swoją pracę ‘przyjemniejszą’.
Pytania ?
Koniec Dziękuję za uwagę
Źródła i odnośniki • JetBrains – R#: www.jetbrains.com/resharper • Developer Express - Refactor!, CodeRush www.devexpress.com • Whole Tomato Software - Visual Assist X www.wholetomato.com
Źródła • Dodatki: • RGreatEx - www.safedevelop.com • Agent Smith - www.agentsmithplugin.com • www.codeproject.com • NUnit: • www.nunit.org • MbUnit: • www.mbunit.com • Visual Studio Extensibility: • msdn.microsoft.com/vsx • msdn.microsoft.com/vstudio/dsltools • blogs.msdn.com/vsxteam/
Rozwinięcia skrótów • CTC = Command Table Configuration • DTE = Development Tools Environment • MPF = Managed Package Framework • TT = Text Templates • VSCT = Visual Studio Command Table