Słowo kluczowe var jest sposobem na uniknięcie długich nazw typów podczas deklarowania zmiennych lokalnych. Dzięki niemu unikamy dwukrotnej specyfikacji typu, co może być przydatne w np. wypadku deklarowania zmiennej typu Dictionary
Ile klas z którymi się spotkałeś miały sufiks "Manager" (np. ConnectionManager, SessionManager)? Każdy większy system wydaje się być pełen takich klas - SessionManager, ConnectionManager, PolicyManager, QueueManager, UrlManager, ConfigurationManager, albo co jeszcze smutniejsze EJBManager. Słowa "manager" i "manage" posiadają przynajmniej dziesięć różnych znaczeń - od "stworzyć coś i utrzymywać w zgodzie z wytycznymi" do "osiągnąć określony cel". Pamiętam jak pewnego dnia recepcjonistka przemianowała si...
C++ ewoluuje, standard się zmienia. Visual Studio 2010 implementuje zmiany w kompilatorze. Oto telegraficzny skrót na temat wyrażeń lambda w C++ i deklaracji zmiennej auto, czyli odpowiednik var z C#/.NET Framework.
Jakiś czas temu, zacząłem pisać aplikację, w której zależało mi na IDE-podobnym wyglądzie. Oczywiście nic nie stało na przeszkodzie, aby korzystając z WPF napisać dowolny UI, jednak po przebadaniu dostępnych rozwiązań, ze szczególnym nastawieniem, na te Open Source’owe, padło na Avalon Dock.Jak się okazało, był to strzał w dziesiątkę, szczególnie z punktu widzenia użytkownika Visual Studio, który przyzwyczajony jest do tamtejszego interf...
Bardzo często zgłaszają się do mnie osoby które programują stosunkowo niedługo, lub właśnie rozpoczynające swoją przygodę z programowaniem, i pytają o to jaką książkę bym polecił do języka XYZ, czy znam jakiś dobry tutorial, ewentualnie jak rozwiązać dany problem (np. jak poprawić błąd kompilacji lub błąd logiczny), czy jaką funkcję użyć aby uzyskać określony efekt. Przez ostatnie 10 lat które "spędziłem" w Internecie takich rozmów odbyłem dziesiątki, jeśli nie setki. Tak więc wychodząc na przeciw przysz...
W poprzednim odcinku pokazałem jak stworzyć szkielet menu do SSMS. W tym odcinku pokażę, jak stworzyć uniwersalny schemat wywoływania poleceń powiązanych z menu naszej wtyczki. Można by od biedy zastosować taki prosty schemat: gdzie zastosowanych zostanie tyle “if-ów” ile jest poleceń w naszym menu. Ale to rozwiązanie jest bardzo mało eleganckie. Aby stworzyć mechanizm automatycznie dopasowujący elementy menu z elementami wykonawczymi należy zauważyć, że:polecenie może być wywołaniem metody z klasy Nex...
Wiele razy już w przeciągu ostatnich 2-3 lat szukałem jakiejś porządnej biblioteki implementującej podstawowe algorytmy z algebry liniowej i ogólnie z matematyki. Wbrew pozorom znalezienie tychże dla platformy .NET nie jest takie trywialne...
Oryginalny post: The Greatest Invention in Computer ScienceAutor: Jeff Atwood Jak myślisz, co jest największym wynalazkiem w dziedzinie informatyki? Oprócz komputera oczywiście. Poważnie, przed dalszym czytaniem, zatrzymaj się na chwilę i rozważ pytanie. Mówiłem wcześniej o tym, jak młode są w rzeczywistości tak zwane nowoczesne języki programowania i warto to powtórzyć dla kontekstu. C ma z grubsza tyle lat co ja; FORTRAN jest w wieku moich rodziców. Ale co z nowymi dzieciakami na osie...
Framework Microsoft .NET posiada dwie podstawowe grupy zmiennych – wartościowe, przekazywane przez wartość – np. Decimal, oraz referencyjne - przekazywane przez referencję, np. String. Postaram się przedstawić pierwszą grupę zmiennych.Typy wbudowane Typy przekazywane przez wartość stanowią dużą cześć wbudowanych typów frameworka .NET. Przykładem są Value Types (np. System.Byte, System.Int32, System.Double) – wszystkie są przekazywane przez wartość. Oto przykład pokazujący różnicę zachowania typu wartośc...
Jakiś czas temu postanowiłem rozpocząć moją przygodę grafiką 3D generowaną za pomocą Windows Presentation Foundation (WPF). Muszę przyznać, że biorąc pod uwagę prostotę z jaką można tworzyć grafikę 3D jest to na prawdę dobre narzędzie. Bez większych problemów opanowałem generowaną przy pomocy trójkątów w przestrzeni grafikę, tym bardziej, że bardzo wiele artykułów opisuje właśnie te elementy. Schody pojawiły się w momencie, gdy postanowiłem dodać do moich grafik 3D jakieś napisy. Dlatego właśnie tworzeni...
Mapowanie relacji pomiędzy tabelami na asocjacje klas to dusza ORMow. To przy okazji najbardziej problematyczne zagadnienie. Zagadnienie relacji jest szerokie jak rzeka i nie sposób opisać wszystkich przypadków. Najważniejsze z mojego punktu widzenia jest jednak zrozumieć sedno sprawy, zrozumienia tego brakowało przy moich pierwszych próbach i przyznam że zjadło mi to wiele godzin. Dzięki zastosowaniu klas POCO możemy posługiwać się niedostępnymi dla modelu DataSetów kolekcjami i powiązaniami ...
Ostatnio wrzuci mnie w projekcik z którym z woli klienta dostęp do bazy realizowany jest z wykorzystaniem nHibernata Troche więc o nHibernacie aby nie umkneło na przyszłość. Na początek POCO = Plain Old CLR Object Czyli proste niezwiązane klasy zawierające zazwyczaj proste property. NHibernate nie wymaga nawet aby klasa była serializowalna wymaga jedynie domyślnego bezparametrowego konstruktora oraz publicznych property wyrażających asocjacje między klasami POCO. Klasy POCO są reprezenta...
Novell poinformował wczoraj, że udostępni zestaw narzędzi dla developerów, którzy chcą programować aplikację dla iPhone OS w microsoftowym frameworku .Net zamiast Objective-C.
Język C# udostępnia ciekawą "odmianę" tablic, mianowicie tablice postrzępione (ang. jagged arrays). Elementami tablicy postrzępionej są tablice.
Regiony Regiony są sposobem na zwiększenie czytelności kodu poprzez logiczne pogrupowanie jego elementów w łatwe do ukrycia grupy. Dzięki nim możemy w prosty sposób przeglądać tylko wybrane elementy klasy. Czy naprawdę jest to dla nas ułatwienie? Czy są takie przypadki, kiedy nie interesuje nas całość kodu klasy? Jeśli tak, być może oznacza to, że klasa ma za dużo odpowiedzialności. Jeśli klasa ma kilka logicznych fragmentów, które chcielibyśmy zamknąć w r...
Każdy dobry programista wie, że po skończeniu pracy z obiektem klasy implementującej interfejs IDisposable należy wywołać metodę Dispose (jawnie bądź nie jawnie). Dlatego kiedy ostatnio zobaczyłem kod, w którym programista beztrosko raz po raz tworzy ikonę, a następnie radośnie o niej zapomina powodując wzrost liczby obiektów GDI przez usta przeszły mi dość niecenzuralne słowa.
Wraz ze wzrostem popularności platformy .NET oczywistym stał się fakt, że zaczną powstawać i rozwijać się narzędzia służące do tworzenia aplikacji multimedialnych, a przede wszystkim gier. Wspierany przez Microsoft zarządzany DirectX został jakiś czas temu zastąpiony przez XNA – narzędzie umożliwiające łatwe i szybkie tworzenie tego typu aplikacji dla Windows oraz konsoli Xbox360. W ramach Mono został uruchomiony projekt...
Cykl wpisów na temat Spring.NET autorstwa Beniamina Zaborskiego.
Dynamicznie rozwijający się XNA, może się pochwalić naprawdę niezłymi produkcjami. Pomyśleć tylko, że przyszłe rozwiązania Microsoftu podniosą znaczenie i wartość tego, bądź co bądź frameworka, mowa tutaj o Project Nathal (Video), czy Surface (Video z przykłądem aplikacji XNA). Perspektywa ta sprawia, iż wypadałoby pozytywnie spoglądać w przyszłość tego produktu.Jednak XNA to głównie gry. Postanowiłem osobom, które zaczynają...
Tutaj znajdziecie krótki ale ciekawy wpis o tym jak zacząć zabawę ze sztuczną inteligencją w XNA. Autor tekstu udostępnił również bardzo prostą bibliotekę AI którą możecie się pobawić na początek.