Narzędzia współczesnego programisty

35
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

description

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 - PowerPoint PPT Presentation

Transcript of Narzędzia współczesnego programisty

Page 1: Narzędzia współczesnego programisty

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

Page 2: Narzędzia współczesnego programisty

Agenda

WstępVisual Studio i ExtensibilityNarzędzia typu R#, Refactor!, Visual Assist XMożliwości:

Asystowanie przy edycja kodu (C#, VB, C++, XML…)Testowanie koduDodatkiCzego brakuje ?

Inne narzędzia: Reflektor.NET, Paint.NETDemo Pytania

Page 3: Narzędzia współczesnego programisty

- Sekcja -

WstępVisual Studio i ExtensibilityNarzędzia typu R#, Refactor!, Visual Assist XMożliwości:

Asystowanie przy edycja kodu (C#, VB, C++, XML…)Testowanie koduDodatkiCzego brakuje ?

Inne narzędzia: Reflektor.NET, Paint.NETDemo Pytania

Page 4: Narzędzia współczesnego programisty

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.comRefactor!, CodeRush – DevExpress.comVisual Assist X - WholeTomato.com

Eclipse (Java / C / C++)

Page 5: Narzędzia współczesnego programisty

Korzyści

Większa produktywność programisty

Większy zysk firmy, rekompensujący wydatki na narzędzie

Mniejsza harówka i frustracja programisty

Czytelniejszy kod

Page 6: Narzędzia współczesnego programisty

- Sekcja -

WstępVisual Studio i ExtensibilityNarzędzia typu R#, Refactor!, Visual Assist XMożliwości:

Asystowanie przy edycja kodu (C#, VB, …)Testowanie koduDodatkiCzego brakuje ?

Inne narzędzia: Reflektor.NET, Paint.NETDemo Pytania

Page 7: Narzędzia współczesnego programisty

Visual Studio Extensibility

Visual Studio Extensibilityzmiana 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

Page 8: Narzędzia współczesnego programisty

- Sekcja -

WstępVisual Studio i ExtensibilityNarzędzia typu R#, Refactor!, Visual Assist XMożliwości:

Asystowanie przy edycja kodu (C#, VB, C++, XML…)Testowanie koduDodatkiCzego brakuje ?

Inne narzędzia: Reflektor.NET, Paint.NETDemo Pytania

Page 9: Narzędzia współczesnego programisty

R# - Edycja

Asystent:modyfikuje edytory kodutworzy podgląd struktury plikusprawdza poprawność kodu podczas edycjiautomatycznie sugeruje pożądane akcje dla aktualnego położenia kursoraułatwia nawigację i wyszukiwanie zależnościmonitoruje całe rozwiązanie (Solution) w poszukiwaniu potencjalnych błędów i niespójności

Page 10: Narzędzia współczesnego programisty

R#

On-the-fly Error CheckingReSharper instantly detects and highlights errors in code, without you having to compile it first.

WarningsBesides 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

Page 11: Narzędzia współczesnego programisty

R#

Code SuggestionsA deeper level of codeanalysis 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-FixesReSharper 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

Page 12: Narzędzia współczesnego programisty

R# - Wsparcie platformy .NET

Przydatny przy pracy z językami:C#VB.NET

Dodatkowo:ASP.NETXMLXAMLskrypty MS Build (.Proj)skrypty NAnt

Page 13: Narzędzia współczesnego programisty

R# - Refactoring

Using Code RefactoringsRename SymbolMove TypeCopy TypeChange Method SignatureExtract MethodExtract type to a new fileIntroduce VariableIntroduce FieldIntroduce ParameterInline VariableExtract InterfaceExtract Superclass

Extract Class from Method ParametersMake Method StaticMake Method Non-StaticUse Base Type where PossiblePull Members UpPush Members DownSafe DeleteConvert Method to PropertyConvert Property to Method(s)Convert Abstract Class to InterfaceConvert Interface to Abstract ClassEncapsulate FieldMove type to outer scopeMove Static Members

źródło: www.jetbrains.com/resharper

Page 14: Narzędzia współczesnego programisty

R# - Testy jednostkowe

PrzeglądanieUruchamianieHistoria sesji testów

… dostępne wewnątrz Visual Studio

Wspiera NUnit FrameworkMożliwa integracja także z innymi

Page 15: Narzędzia współczesnego programisty

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++

Page 16: Narzędzia współczesnego programisty

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/PluginsCurrent User - <Profile>/ReSharper/v<R#Version>/vs<VsVersion><WsRootSuffix> /Plugins

Dostępne dodatki:RGreatEx (odpłatnie)Agent SmithMbUnit

Page 17: Narzędzia współczesnego programisty

- Sekcja -

WstępVisual Studio i ExtensibilityNarzędzia typu R#, Refactor!, Visual Assist XMożliwości:

Asystowanie przy edycja kodu (C#, VB, C++, XML…)Testowanie koduDodatki do R#Czego brakuje ?

Inne narzędzia: Reflektor.NET, Paint.NETDemo Pytania

Page 18: Narzędzia współczesnego programisty

Refactor! Pro - Możliwości

IntellAssist150+ Refactorings

w tym przenoszenie stałych / napisów do zasobówwykrywanie i definiowanie stałych

Wspiera:C#Visual Basic *)C++ *)ASP.NET *)XMLXAMLHTMLJavaScript

*) = dostępna wersja darmowa

Page 19: Narzędzia współczesnego programisty

Refactor! Pro - Możliwości

metryki kodu

ciekawe dodatki wizualne

możliwość pisania dodatków

pomocny przy korzystaniu z NUnit

Page 20: Narzędzia współczesnego programisty

Refactor! Pro

Demo

Filmiki instruktażowe:- CodeRush! Big Picture- Refactor! 3-minutes- Refactor! Pro Big Picture

źródło: www.devexpress.com

Page 21: Narzędzia współczesnego programisty

- Sekcja -

WstępVisual Studio i ExtensibilityNarzędzia typu R#, Refactor!, Visual Assist XMożliwości:

Asystowanie przy edycja kodu (C#, VB, C++, XML…)Testowanie koduDodatki do R#Czego brakuje ?

Inne narzędzia: Reflektor.NET, Paint.NETDemo Pytania

Page 22: Narzędzia współczesnego programisty

Visual Assist X - Możliwości

Wspiera:C#VB.NETC++

dostępny nawet dla VisualC++ 6.0 oraz eMbedded Visual Tools 4.0

wbudowany słownik (spellchecker dla komentarzy, zasobów i napisów)

Page 23: Narzędzia współczesnego programisty

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

Page 25: Narzędzia współczesnego programisty

Visual Assist X

Underline Spelling ErrorsSpell check comments and strings as-you-type, or run spell check in batch mode.

Underline Mistyped SymbolsUnderline 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 CaseType a symbol with improper case and watch it get repaired immediately.

źródło: www.wholetomato.com

Page 26: Narzędzia współczesnego programisty

- Sekcja -

WstępVisual Studio i ExtensibilityNarzędzia typu R#, Refactor!, Visual Assist XMożliwości:

Asystowanie przy edycja kodu (C#, VB, C++, XML…)Testowanie koduDodatki do R#Czego brakuje ?

Inne narzędzia: Reflektor.NET, Paint.NETDemo Pytania

Page 27: Narzędzia współczesnego programisty

Inne narzędzia

FxCop.NET

Reflector.NET

Paint.NET

Dependency Walker

Test Driven Development:NUnit

MbUnit

Visual Studio .NET for Software Testers

Page 28: Narzędzia współczesnego programisty

Inne narzędzia (2)

mrówki (NAnt) MS BuildTeamCity (JetBrains)CruiseControl.NET

pomoce od sysinternalsmonitory: rejestru, plików, ruchu sieciowegoprogramy diagnostyczne

pomoce od wintellect.com

Page 29: Narzędzia współczesnego programisty

Visual Studio + R# w akcji

Demo

Przykładowy projekt- asystent- szybka edycja i poprawianie kodu- testy jednostkowe- wyszukiwanie i nawigacja po projekcie

Page 30: Narzędzia współczesnego programisty

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ą’.

Page 31: Narzędzia współczesnego programisty

Pytania

?

Page 32: Narzędzia współczesnego programisty

Koniec

Dziękuję za uwagę

Page 33: Narzędzia współczesnego programisty

Źródła i odnośniki

JetBrains – R#:www.jetbrains.com/resharper

Developer Express - Refactor!, CodeRushwww.devexpress.com

Whole Tomato Software - Visual Assist Xwww.wholetomato.com

Page 35: Narzędzia współczesnego programisty

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