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).
“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.
No cóż… Dobrze, żę chociaż tyle jest. Myślę że i tak Resharper zawsze będzie o krok przed funkcjami dostępnymi standardowo w VS.
@ 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.
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#.
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)