fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
2 minut

Visual Studio 2010: GenerateFromUsage


30.05.2009

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).

0 0 votes
Article Rating
5 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Robert Ł
Robert Ł
14 years ago

“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
14 years ago

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
14 years ago

@ 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
14 years ago

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
arturstan
14 years ago

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)

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również