Visual Studio 2010: GenerateFromUsage

Poprzednie edycje Visual Studio potrafiły uprzykrzyć życie, jeżeli ktoś próbował stosować Test Driven Development, czyli: najpierw napisz kod korzystający z klasy, a dopiero potem samą klasę; najpierw zaimplementuj wywołanie metody, a dopiero potem samą metodę. Bez dodatków takich jak Resharper podobne scenariusze były niczym innym jak wielkim pain in the... neck.
Teraz to się zmieni i nawet użytkownicy gołego VS będą mogli cieszyć się generacją kodu na podstawie kontekstu jego wykorzystania. Oto typowy przykład:

1) Definiujemy stworzenie nowej instancji nieistniejącej klasy (wraz z parametrem konstruktora) oraz wywołanie jej metody

2) Generujemy klasę

3) Generujemy konstruktor

4) Generujemy metodę

5) Dopieszczamy wygenerowany kod

Uwagi... Feature taki jest z pewnością niesamowicie przydatny, jednak przydałaby się większa kontrola nad generowanym kodem. Co jeśli chcę klasę publiczną – czy muszę ręcznie dodawać modyfiaktor widoczności (zmiana template w folderze program files/visual studio/costamcostam/templates/class.zip nic nie dala)? Albo metodę nie-internal? Nie znalazłem nigdzie ustawień pozwalających zmienić domyślne zachowanie, co nie oznacza jednak że nie zostaną takie dodane (ani też że już nie są gdzieś ukryte).

Opublikowane 30 maja 09 01:45 przez Procent
Filed under:

Komentarze:

# dotnetomaniak.pl said on maja 30, 2009 14:37:

Dziękujemy za publikację - Trackback z dotnetomaniak.pl

# Robert Ł said on maja 30, 2009 20:18:

"Co jeśli chcę klasę publiczną ... " zamiast "Generate class for 'nazwaKlasy' ", klikamy 'generate other'. Dostępnych pare opcji.

Szkoda, że brakuje takiej opcji, przy tworzeniu metody.

# Hellix said on maja 30, 2009 21:49:

No cóż... Dobrze, żę chociaż tyle jest. Myślę że i tak Resharper zawsze będzie o krok przed funkcjami dostępnymi standardowo w VS.

# Procent said on maja 31, 2009 03:11:

@ Hellix: kiedyś  myślałem trochę o tej kwestii i doszedłem do wniosku, że VS powinien zawierać wszystkie cechy R#. Później z kolei dowiedziałem się od teamu tworzącego VS że ich celem nie jest zastąpienie wszystkich dostępnych dodatków, a jedynie wciągnięcię tych najważniejszych ulepszeń i udostępnienie jak najlepszego środowiska do tworzenia kolejnych udoskonaleń. I... zgadzam się z tym całkowicie! R# czy CodeRush SĄ od tego, żeby być co najmniej o krok do przodu, a im dalej - tym lepiej, to jest ich zadanie. I tyle. A od programistów bądź ich pracodawców zależy, czy będą mieli dostęp do najfajniejszych featerów.

# nuwanda said on maja 31, 2009 11:31:

Zgadzam się z Procentem. Takie rozumowanie można pociągnąć jeszcze dalej. Po mojej sesji na CodeCamp'09, na której padło pytanie "dlaczego w R# nie ma takiego mechanizmu jaki daje Exceptional" napisałem do ludzi z JetBrains z podobnym pytaniem. Odpowiedzieli, że mają kilka requestów na coś podobnego, ale na razie wszystkich przekierowują na Exceptionala bo dla nich to jeszcze nie jest feature, który musi się znaleźć w samym R#.

# arturstan said on maja 31, 2009 21:46:

Dopóki MS nie kupi JetBrains czy DevExpress, to oni zawsze będa z przodu.

Problem jest w tym, że Ci co korzystaja z CodeRush (np. ja) nie skorzystaja z Exeptionala (a prezentacja na cc mnie zachęciła)

Komentarze anonimowe wyłączone

About Procent