Transcript tutaj

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 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
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
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
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
ź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
Refactor! Pro
Filmiki instruktażowe:
- CodeRush! Big Picture
- Refactor! 3-minutes
- Refactor! Pro Big Picture
Demo
ź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 asyou-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
Visual Studio + R# w akcji
Przykładowy projekt
- asystent
- szybka edycja i poprawianie kodu
- testy jednostkowe
- wyszukiwanie i nawigacja po projekcie
Demo
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