W takim dniu jak dziś można zadać pytanie: czy programiści są przesądni? Wydaje się, że raczej nie – przynajmniej w porównaniu z niektórymi innymi zawodami (np. aktorzy teatralni mają tyle przesądów, że to cud, iż w ogóle wychodzą na scenę :]). A jednak nie jest to wcale takie pewne. To przecież w informatyce ogóle, a w programowaniu w szczególności, wyeksponowaną pozycję zajmują wszelkiego rodzaju ‘...
Merge modules to plik z rozszerzniem .msm, który możemy dołączyć do naszego pliku .msi. Zaletą jest to, że na wyjściu dostajemy jeden plik Windows Installera, którego zawartość jest połączona(stąd nazwa merge module) z modułem.
Lambda expressions - brzmi groźnie. To właśnie tym elementem języka C# 3.0 straszono programistów (a raczej programiści straszyli się nawzajem) jeszcze dobre kilkanaście miesięcy przed premierą .NET 3.5. A bo to "funkcyjne", a bo to "nowe", "nieznane" i trudne do pojęcia. Jak za chwilę zobaczymy - nic bardziej mylnego. Jeżeli kiedykolwiek korzystałeś z delegatów, to umiesz korzystać także z metod anonimowych. Jeżeli umiesz korzystać z metod anonimowych, to... to są właśnie wyrażenia lambda, tylko trochę ...
Kolekcje generyczne są bezpieczną (ang. type-safe), szybką i wydajną (ang. performance) wersją ich nie-generycznych odpowiedników. Przykładowo List, Dictionary, Queue, Stack, SortedList i SortedDictionary są odpowiednikami zwykłych kolekcji. Różnica polega na tym, że korzystając z typów generycznych podajemy parameter, który jest zamieniany na nazwę typu podczas kompilacji. W ten sposób można użyć każdego typu, ale tylko wcześniej określonego. W innym wypadku otrzymamy błędy już przy kompilacji. Namiastk...
Assembly security - zapewnienie integralności kodu08 listopada, 2009 Zastanawiam się ilu developerów zdaje sobie sprawę z tego, że istnieją narzędzia umożliwiające dekompilację ich kodu oraz, że jeżeli nie podejmiemy żadnych działań mających na celu zwiększenie bezpieczeństwa kodu, to w praktyce każdy, kto ma chociaż odrobinę wiedzy będzie mógł sporo namieszać w napisanych programach.
Podczas pisania ostatnich kilku postów na temat nowego interfejsu: Express Interface (Xi), cały czas zastawiałem się, czy w ogóle ta nowa propozycja ma szansę się przyjąć. W przypadku oprogramowania związanego z szeroko pojętą "automatyką przemysłową" łatwo zauważyć, że nowości trudno wypływają na wierzch...
Jak można przeczytać na blogu Technical Advisory Council dla OPC Foundation, kierownictwo OPC Foundation postanowiło ostatnio utworzyć grupę roboczą, która ma za zadanie ustalić plan współpracy z nowym interfejsem Xi.
Projektowanie klas nie jest zagadnieniem, które podczas nauki języka C# należałoby odkładać ''na później''. Oczywiście środowiska programistyczne, tworząc za nas szkielet kodu aplikacji, pozwalają do pewnego stopnia uniknąć definiowania własnych klas. Jednak bez podstawowej choćby orientacji w tej materii mogą pojawić się kłopoty nawet z pełnym zrozumieniem rozwijanego przez nas programu.
Jeśli ktoś z was interesuję się Oslo, to nie powinien nie kojarzyć osoby Douglasa Purdy. Doug, na swoim blogu ogłosił dalsze plany wobec tej technologii. Nazwa kodowa “Oslo” zmienia się w SQL Server Modelling. Czyli Oslo będzie kolejnym komponentem w SQL Serverze.
Oryginalny post: The One Thing Every Software Engineer Should KnowAutor: Jeff Atwood Jestem wielkim fanem Stevea Yegge, więc dużym zaszczytem była dla mnie możliwość goszczenia go przy okazji ostatniego podkasta Stack Overflow. Nie spodziewałem się natomiast, że jeden konkretny temat, związany z doświadczeniami Stevea z Google i Amazona, będzie się nieustannie przewijał: Gdybym każdego programistę miał nauczyć tylko jednej rzeczy, byłby to marketing. Nie jak pisać na klawiaturze, nie jak p...
Nawiązując do artykułu Andrzeja Stasiewicza omawiającego tworzenie fraktala Mandelbrota (PCWK 7/2005) oraz do opisanej w poprzednim numerze implementacji liczb zespolonych w C#, przepiszemy algorytm tworzący ów piękny fraktal z użyciem utworzonej miesiąc temu struktury Complex...
Zdarzyło Ci się kiedyś mieć taki dzień, w którym wszystko, co komitowałeś do systemu kontroli wersji, było złe? Tak w ogóle, to czym dokładnie taki dzień różni się od każdego innego? Ale bądźmy poważni. Kod, który jest widoczny to kod, który może być niepoprawny. Nie powinno to być zaskoczeniem. Ale czy wiesz, że nawet kod, którego nie widać, również może być zły?
Tworząc aplikację .NET w Visual Studio (na przykład aplikację konsolową lub okienkową), jest możliwość wyboru skompilowania jej do pakietu (assembly) w trybie Debug albo Release...
Patrząc na materiał który dzisiaj mamy do przerobienia artykuł nie powinien być długi a pomówimy sobie o kolekcjach i słownikach. Czyli o bardzo pomocnych typach danych :)Kolekcje Kolekcja jest klasą która pozwala na dodawanie elementów a później iterowanie po nich. .NET Framework udostępnia nam następujące klasy kolekcji: ArrayList – prosta klasa która umożliwia przechowywanie dowolnego typu danych oraz iterowanie po nich. Można ją oczywiście rozszerzyć do własnych celów etc. Queue – nic innego jak kole...
Tym wszystkim co chcą się dowiedzieć: jak obsługiwana jest pamięć na platformie .NET, jak działa Garbage Collector, co to są generacje zmiennych i z jakimi stosami mamy do czynienia w .NET, co to są obiekty tymczasowe, jak przechowywane są duże obiekty i dlaczego mamy do czynienia z fragmentacją pamięci, jak przebiega finalizacja (kiedy potrzebny jest destruktor, metoda Finalize lub wykorzystanie mechanizmu Dispose) jakie są częste problemy z pamięcią. Polecam obejrzenie filmu-prezentacji: http://www...
Przepis: zainstaluj MSDN Library, pójdź do Development Tools and Languages -> Visual Studio -> Visual C# -> Visual C# Samples -> Hello World Sample -> Hello1.cs -> View Source:..
W czasach kiedy rozpoczynałem swoją zabawę z C++ (a w gruncie rzeczy żadnym wielkim wygą nie jestem ;]) takie rzeczy starano się robić w WinAPI z wykorzystaniem ShellExecute, czy SendMessage. Bo jak sam temat mówi wpis ten będzie dotyczył systemu Windows. Wraz z rozwojem języków i środowisk sporą część tychże funkcji można wykorzystać poprzez łatwiejsze w użyciu zamienniki.
Scott Hanselman uważa, że umieszczanie certyfikatów branżowych w podpisie jest niezręczne: Jeśli nierozsądne byłoby umieszczenie w CV wyników egzaminów ze studiów, to czemu umieszczenie Scott Hanselman, MCSD, MCT, MCP, MC*.* jest rozsądne? Posiadanie certyfikatu znaczy tyle, że jesteś w stanie przyswoić dużą dawkę wiedzy technicznej. Chwileczkę. Proponuję podpisywanie się w następujący sposób: Scott Hanselman, 11 dużych projektów zakończonych sukcesem, 3 projekty Open-Source, 1 projekt zakończony g...
Oryginalny post: Who's Your Coding Buddy?Autor: Jeff Atwood Zdumiewa mnie, jak bardzo mój kod zyskuje na tym, że zostanie przejrzany przez kogoś innego. Nie mam tu na myśli formalnej recenzji kodu, wysyłania go do publicznej oceny w Internecie lub uciążliwego reżimu programowania w parach. Jedna szybka próba wyjaśnienia i pokazania mojego kodu koledze/koleżance z zespołu -- to zazwyczaj wystarcza, by wyłapać błędy. To oczywiście nie jest nic nowego. Doskonała książka autorstwa Karla Wiegersa Peer Revi...
W tej lekcji training kit robi długi wstęp na temat: „dlaczego mamy różne kodowania”, który sobie pominiemy. Dopiero na drugiej stronie pojawia się pierwsza istotna dla nas informacja, która mówi, że przestrzeń System.Text dostarcza nam klasy do kodowania i dekodowania. System.Text wspiera następujące kodowania:Unicode UTF-32: reprezentuje znaki unicode jako ciągi 32-bitowe. Do konwertowania używamy klasy UTF32Encoding. Unicode UTF-16: : reprezentuje znaki unicode jako ciągi 16-bitowe. Do konwertowania u...