W menu kontekstowym Windows bardzo brakuje mi pozycji "open command line here". Czy wielka szkoda stałaby się komuś, gdyby dorzucił ją tutaj?:
Po raz kolejny okazało się, że to nie świat jest zły, tylko ja - głupi:
Czary-mary, wciśnij SHIFT do pary. Shift+RMB=extended context menu.
Uwaga, niektóre aplikacje (na przykład Tortoise SVN) wykorzystują tą funckjonalność, dorzucając kilka dodatkowych guzików do rozszerzonego menu.
I lekki off-topic... iluset podobnych smaczk&oac...
[More]
Virtual Box, z którego na dzień dzisiejszy korzystam jako swojej "platformy wirtualizacyjnej", ma niestety dość dużą wadę: nie wspiera operacji drag'n'drop, czyli przeciągania plików pomiędzy systemami hosta i gościa. To był mój podstawowy sposób przemieszczania plików gdy jeszcze używałem Virtual PC i bardzo mi się podobał. W VBox jedyne wyjście to udostępnienie katalogu maszynie wirtualnej - czy to przez zwykłe network sharing, czy też przez mechanizm Shared Folders. I w sumie nic s...
[More]
Krótki tip sprzedany mi przez zioma Karola, który przyczynił się do znacznego wzrostu komfortu mojej codziennej pracy. Zwykle na dużym ekranie mam odpaloną wirtualkę w (aktualnie - choć już niedługo) VirtualBox. Mniejszy ekran służy do zadań innych niż programowanie. W wirtualizacji uwielbiam między innymi absolutną separację środowiska "programistycznego" od całej reszty. Tyczy się to również takich czynności jak przełączanie pomiędzy oknami za pomocą alt+tab. Medal ten prześwietny m...
[More]
Krótka ciekawostka, pewnie znana większości: wrzucając do katalogu głównego aplikacji ASP.NET plik o nazwie app_offline.htm spowodujemy, że będzie on serwowany jako odpowiedź na wszystkie żądania do tej aplikacji. Zastosowań może mieć kilka, z których najbardziej oczywistym jest tymczasowe "zdjęcie" witryny podczas wgrywania nowej wersji czy rozwiązywania jakiegoś problemu: wypełniamy wówczas ten plik komunikatem o tymczasowej niedostępności i tyle, lepsze to niż standardowy komunikat ...
[More]
Może wszyscy o tym wiedzą i tylko ja byłem tak prostacko nieoświecony, ale niedawno znalazłem w Visual Studio funkcjonalność, która, jak się okazało, była tam od wielu lat. A ja, ślepiec nad ślepcami i ignorant nad ignorantami, podniecam się nią dopiero teraz. Podniecacz nad podniecaczami... Prędko, prędko baśń się baje, nie tak prędko... okienko "Add reference" się otwiera. O czym wie chyba każdy. Mnie na ten przykład po wielokroć krew z tego powodu zalewała, a "miesiąc nie był ...
[More]
Podczas tworzenia aplikacji w ASP.NET dość regularnie z różnych powodów musimy wpisywać komendę IISRESET. Wykonanie tej komendy trwa, podniesienie się usług po tak brutalnym potraktowaniu - również. Za dawnych czasów pracy nad ITCore wklepywanie owego złowieszczego polecenia było czynnością regularną niczym WDECH/WYDECH... ale taki już urok developerskiej pracy z MOSS.
Wówczas ratunkiem okazał się miniskrypcik, który zamiast ubijać całego IISa restartował jedynie wybraną pulę aplikacji. Trwa to...
[More]
Co robi programista po powrocie z pracy? Powszechnie wiadomo - siada do pracy. O ile na warunki w miejscu zatrudnienia czasami ma się wpływ minimalny, o tyle domowe środowisko to zupełnie inna para kaloszy. Ostatnio postanowiłem jeszcze bardziej "uidealnić" swoje programistyczne gniazdo w domowym zaciszu i nabyłem kolejną parę oczu na świat - 24 calowe monstrum Hyundai W241D (wierność marce, a co:) ). W połączeniu z 19" Benq FP93GP ma mi zapewnić komfort pracy o jakim wcześniej mogłem jedynie po...
[More]
Visual Studio, jak właściwie każda większa aplikacja, posiada przydatną funkcjonalność zapamiętywania ostatnio używanych plików i projektów. Niestety, jak właściwie każda większa aplikacja, brakuje w nim również funkcji czyszczenia/porządkowania owej listy. Cóż mogę zrobić w sytuacji, gdy tak naprawdę pracuję hobbystycznie nad jednym projektem, a oprócz niego mam na liście śmieci pozostałe po "tymczasowych" projekcikach rozwiązujących na przykład pojedynczy problem z forum CG? Wygląda to o tak, ...
[More]
Wraz z Visual Studio 2005 otrzymaliśmy bardzo miły feature - automatyczne wypełnianie toolboxa własnymi kontrolkami zawartymi w aktualnie otwartej solucji. Życie stało się prostsze, ponieważ nie trzeba już wykorzystywać własnej twórczości z pominięciem designera bądź babrać się w ohydnym oknie "Choose items...": Mimo swojej cudności owo udogodnienie może być czasami prawdziwym "pain in the ass" (żeby nie napisać "hateful spear in the side"). Powód jest bardzo prosty - w rozbudowanych systemach ...
[More]
Składowe klasy, których niezmienności jesteśmy pewni, możemy oznaczyć przynajmniej dwojako: 1: public class ConstantValues 2: { 3: public const int Constant = 666; 4: public static readonly int StaticReadonly = 123; 5: } Efekt ich wykorzystania jest taki sam - mamy dostęp do przypisanych im wartości spoza klasy, jednak nie możemy ich zmienić. Dokładne znaczenie: const to "wartość stała", a static readonly to "składowa statyczna tylko do odczytu" Konstrukcje te jednak różnią się kilko...
[More]
Jako że poprzednie odsłony .NETowych "zagadek" cieszyły się dużą popularnością - czas na kolejna porcję. W dzisiejszym odcinku podążymy tutaj:
Każdy zna to okno. A czy każdy wie skąd bierze się jego zawartość (chodzi konkretnie o zakładkę ".NET")? Podpowiem, że mi wiadomo o trzech takich źródłach - być może jest ich więcej?
Czekam na komentarze, niechaj chwała i blask z nich bijące będą wystarczającą zachętą dla znających odpowiedzi:).
Co się stanie, gdy klikniemy po kolei: Start -> Mój komputer -> C:\ -> windows -> assembly ? No jasne - zobaczymy zawartość GAC: Jak zedrzeć ten tajemniczy, dziwny wygląd z owego katalogu? Na przykład - używając Total Commandera. Można jednak sprawić, by i w zwykłym windowsowym exploratorze katalog stracił swą magię: No i to jest właśnie zagadka - jak to osiągnąć? Jak zrobić, katalog assembly nie był już takim "cfaniakiem"? Podpowiem, że w tym celu schodzimy tam, gdzie najcieplej.....
[More]
Właściwości (properties) to przyjemny mechanizm do zapewniania enkapsulacji, czyli jednej z najważniejszych cech programowania obiektowego. Przyjemniejszy niż zwykłe metody zwane "getters & setters". Zwrócę jednak uwagę na ciekawy fakt (zapewne znany większości czytelników, ale...). Popatrzmy na następujący kod: 1: private int _number; 2: public int Number 3: { 4: get { return _number; } 5: set { _number = value; } 6: } 7: 8: public int get_Number() 9: { 10: ...
[More]
Czy wiemy co to "abstract class"? WIEMY! A wiemy co to "sealed class"? WIEMY! Teoretycznie - dwa przeciwieństwa. Jedno zabrania tworzenia instancji klasy, drugie - zabrania dziedziczenia z klasy.Czy spotkał się ktoś kiedyś z klasą zadeklarowaną w ten sposób? 1: abstract sealed class AbstractSealed 2: { 3: }Kompilator naturalnie zgłosi sprzeciw. Jak więc możliwe jest uzyskanie poniższego efektu?Pierwsza poprawna deklaracja klasy AbstractSealed umieszczona w komentarzach do tego posta zostan...
[More]
W dobie tak potężnych narzędzi jak Visual Studio programiści często zdają się całkowicie na ich funkcjonalność. Jedną z (wspaniałych zresztą) cech współczesnych IDE jest Intellisense. Czy wyobraża ktoś sobie pisanie kodu bez podpowiedzi? Zobaczmy jednak, że nie zawsze można na tym elemencie polegać w 100% ze względu na "konfigurowalność" nawet tego mechanizmu VS.Dla przykładu załóżmy dwie solucje (w C# nie wystarczą 2 osobne projekty w jednej solucji, w innych językach nie sprawdzałem): ClassLib...
[More]
Czasami zdarza się, że jesteśmy świadomi istnienia jakiejś funkcjonalności, jednak wredny twórca biblioteki bezwstydnie ją przed nami ukrył. A my ją odkryliśmy na przykład przy pomocy Reflectora.Zasymulujmy taką sytuację. Wyobraźmy sobie bibliotekę z klasą Jarek oznaczoną jako internal. Klasa Jarek z kolei chowa przed nami bardzo ciekawą funkcjonalność - zakładanie konta w banku za pośrednictwem nieistotnej dla nas klasy Bank: 1: namespace JarekLibrary 2: { 3: internal class Jarek 4: {...
[More]
Zdarza się, że mamy w projekcie grupę plików powiązanych ze sobą logicznie. Na przykład - jeden wygenerowany automatycznie i drugi uzupełniający go własnoręcznie napisanym kodem. Przykładem "z życia" są tu klasy form z .NET, gdzie to Visual Studio standardowo pokazuje swoją ciekawą funkcjonalność "zwijania" grupy powiązanych plików. Niestety, takie zachowanie nie jest dostępne w żaden znany mi sposób z poziomu interfejsu użytkownika. Jak więc wykorzystać ten trik we własnych programach?Zamykamy ...
[More]