Opublikowano Nie zdążyłem dotrzeć przed oblicze komputera na czas aby obejrzeć JetBrainsowy webinar z Johnem Skeetem Big thanks to @jonskeet for the Webinar (and the private class named var). Thank you to everyone that attending. Recording available soon. — JetBrains ReSharper (@resharper) …no właśnie, zaintrygowało mnie “private class named var” Napisałem taki kawałek kodu: public class VarHacking{ private class var{ public string Message { get; set; } } public v...
Sztuka programowania 2828 dni, 16 godzin, 18 minut temu 237 źrodło rozwiń
Co to jest pingback? Jest to rodzaj notyfikacji dotyczącej umieszczenia linku do danego źródła w tekście. Notyfikację tę my możemy zarówno wysłać jak i otrzymać. Dziś napiszę jak my możemy odebrać taki pingback i co musi zostać spełnione, zaś następnym razem opisze sposób wysyłania takiej notyfikacji. To co będziemy potrzebować (choć nie jest to konieczne) to biblioteka XML-RPC.NET – ułatwi nam ona znacząco implementację – gdyż komunikacja odbywa się poprzez XML-RPC, oczywiście dla hardcorów istni...
From few days I’m official member of codeguru redaction. I have hope the cooperation will be delightful. But now time is for rebellion!
Jeśli jest źle, i wiadomo że jest źle, to jest dobrze. Bo może być tylko lepiej. I czas na zmiany. Najważniejsze, aby być zadowolonym z siebie. Czerpać radość i satysfakcję z codziennych obowiązków i nie czuć się “gorszym” względem otoczenia. Wykorzystywać ogromne możliwości rzucane przez naszą profesję. Kilka lat temu miałem niemały kryzys odnośnie swojej roli w z...
W .NET do synchronizacji dostępnych jest wiele mechanizmów. W dzisiejszym wpisie chciałbym przedstawić różnice między semaforem a muteksem. Na pierwszy rzut oka, wyglądają one identycznie. Przykład:class Program { staticvoid Main(string[] args) { Mutex mutex =new Mutex(); mutex.WaitOne(); Console.WriteLine("Sekcja krytyczna tutaj"); mutex.ReleaseMutex(); Semaphore semaphore=new Semaphore(1,1); semaphore.WaitOne(); Console.WriteLine("Sekcja krytyczn...
Sztuka programowania 2830 dni, 18 godzin, 38 minut temu 179 źrodło rozwiń
O klasie ManualResetEvent pisałem na blogu już wielokrotnie. Prosty przykład:internalstaticclass Sample { privatestaticreadonly ManualResetEvent _manualEvent=new ManualResetEvent(false); publicstaticvoid Main() { Task.Factory.StartNew(Run); _manualEvent.WaitOne(); Console.WriteLine("Exiting..."); } privatestaticvoid Run() { Thread.Sleep(1000); Console.WriteLine("Run"); _manualEvent.Set(); } } Zastosowanie ManualResetEvent oraz AutoResetE...
Sztuka programowania 2832 dni, 19 godzin, 31 minut temu 117 źrodło rozwiń
Opublikowano Wiadomość z ostatnie chwili, dosłownie jeszcze gorąca – prosto z Redmond. Właśnie wyszedł Update 2 dla Visual Studio 2012. Zmiany zaszły w 4 głównych obszarach: Agile planing – teraz wszystko musi być agile więc poprawili TFS-a w tym zakresie – co dokładnie to nie sprawdzałem bo nie mam już przyjemności pracy z TFS-em Jakość – czyli zmiany w Test Managerze, code coverage, asp.net manual testing, “significant” polepszenia w zakresie testowania dla SharePointa Windows Store dev – tutaj ...
Wielowątkowość jest bardzo skomplikowanym tematem. W celu napisania prostego kodu wystarczy znać naprawdę niewiele konstrukcji. Sytuacja znaczącą komplikuje się gdy mamy wysokie wymagania odnoście pamięci czy CPU. RegisterWaitForSingleObject jest metodą dość mało popularną a przydatną gdy chcemy oszczędzić trochę pamięci.Wyobraźmy sobie, że mamy kod, który chcemy wykonać wyłącznie w momencie zasygnalizowania przez WaitHandle (AutoResetEvent, Semafor itp.). Jeśli operacja wewnątrz zajmuje trochę czasu w...
Sztuka programowania 2834 dni, 17 godzin, 11 minut temu 119 źrodło rozwiń
Miałem ostatnio okazję implementować własny provider claimów do SharePointa. Jak prawie całe API SharePointa, ta kupa kupy woła o pomstę do nieba. Postanowiłem wykorzystać okazję i zaprezentować jak to złe API mogłoby wyglądać, gdyby ktoś w teamie odpowiedzialnym za “dev-experience” tego kolosa miał trochę oleju w głowie. Ale najpierw kilka słów wprowadzenia, czyli przedstawienie problemu.
Prosty wzorzec, jak tworzyć kontekst aplikacji z obiektami ładującymi się tylko w razie potrzeby.
Sztuka programowania 2836 dni, 18 godzin, 43 minuty temu 296 źrodło rozwiń
.NET Micro Framework to framework z rodziny .NET służący do oprogramowywania systemów typu embedded z ograniczonymi zasobami pamięci. Minimalne wymagania to 256 kB pamięci flash oraz 64 kB pamięci RAM. .NET Micro to taki młodszy brat .NET Framework z bardzo okrojonym BCL, WPF i WCF (wersja 4.x). Jeżeli programowałeś wcześniej w “pełnym dotnecie”, przesiadka na Micro może okazać się szokiem. Niby to ten sam C#, jednak braki w BCL (wynikające z ograniczeń platformy sprzętowej) szybko dają się we znaki.
Sztuka programowania 2836 dni, 18 godzin, 43 minuty temu 128 źrodło rozwiń
This post will be a little note with steps needed to setup a working CouchDb instance on windows machine.NoSql RDBSM rules the world, it is still a “standard” in the industry. My first Database was used inside a simple rss client written in C. This was the weird world of C programming with weak documentation and Segmentation fault errors everywhere. Now, I am mostly using MSSQL with ORM support ( NHibernate ), but there is another world of databases on the horizon, NoSql movement. There have been a lot...
Bazy danych i XML 2836 dni, 18 godzin, 43 minuty temu 85 źrodło rozwiń
Writing mappings for models in large application is quite boring task. Fortunatelly, Fluent NHibernate provides possibility for automatic mapping creation - so called automappings.
Na temat walidacji formularzy w ASP.NET MVC napisałem już w przeszłości kilka postów. Jako, że ostatnio pracuję po godzinach nad pewnym swoim projektem (jeśli starczy mi zapału i doprowadzę go do końca to na pewno się pochwalę), znów natknąłem się na pewien problem związany właśnie z walidacją. Rozwiązanie jest w sumie banalne ale może komuś się przyda ;) Myślę, że najlepiej będzie rozpocząć od przedstawienia problemu, zacznijmy więc!Opis problemu Czasem tworząc skomplikowany widok, mamy potrzebę zawrze...
Git jest git jak mawia Spartakus Maciej jednak nie każdemu dane jest dostąpić do tego świętego Grala bo sporo firm używa np svn-a. Sam jestem w takiej sytuacji, że wewnątrz firmy obowiązuje jedyny słuszny svn i nikt nie ma zamiaru zmieniać tego dla jednego marudzącego kolesia. W takiej sytuacji trzeba sobie radzić samemu. Git ma wbudowanego klienta svn-a i nic ale to zupełnie nic nie stoi na przeszkodzie, aby korzystać z niego jako klienta svn. Do wykonania git-> svn potrzebujemy instalk...
W ostatnich postach przedstawiałem różne scenariusze użycia PLINQ. Ze względu na zrównoleglenie przetwarzania, kolejność na wyjściu nie zawsze będzie taka sama. Najlepiej to rozważyć na przykładzie:int[] numbers = Enumerable.Range(1, 50).ToArray(); foreach(int number in numbers.AsParallel().Where(n=>n>2)) { Console.WriteLine(number); } W scenariuszu sekwencyjnym, spodziewalibyśmy się liczb z zakresu 3-50. Skoro sekwencja wejściowa ma uporządkowane liczby od 1-50 to po wykonaniu zapytania oczekujemy p...
Sztuka programowania 2843 dni, 19 godzin, 23 minuty temu 118 źrodło rozwiń
Myślę, że każdy, kto korzysta z rozmaitych stron/aplikacji choć raz spotkał się zakładkami (ang. tabs). Z tego względu nie opiszę co to jest, kto nie wie może zajrzeć tutaj, ale pokażę alternatywne podejście ...
Kilka tygodni firma Atlassian ogłosiła zamkniętą betę swojego (podobno jednego z najlepszych)klientów git-a Wczoraj wyszedł z wersji beta i jest oficjalnie dostęny. http://www.sourcetreeapp.com/ Od czasów bety używam go do oglądania repozytorium i czasem do commitowania i wygląda, że jest całkiem przyzwoity. Myślę, że warto spróbować. To też może Cię zainteresować:Pobierz Windows 7 beta. Już dostępny do pobrania.Nowy Office 2013 już do pobraniaPolska Kronika Filmowa – Milionowy klient...
Dzisiaj w firmie @blackgilmore trafił na ciekawy błąd, duplikujące się style w css-ie. Mając 3 pliki less:test1.less .test1Function() { .testClass { background-color: #f00; } } test2.less @import-once "test1.less"; .test2Class { top: 1px; .test1Function(); } test3.less @import-once "test1.less"; @import-once "test2.less"; wynik powinien wyglądać tak: .test2Class { top: 1px; } .test2Class .testClass { background-color: #f00; } Jeśli jednak .tes...
Podczas korzystania z obiektu CollectionView w widoku, oprócz samej prezentacji kolekcji często mamy także dodatkowe kontrolki powiązane z właściwościami aktualnie wybranego elementu. Standardowym podejściem przy realizacji tego zadania jest utworzenie w klasie ViewModel właściwości udostępniającej aktualnie wybrany element kolekcji, a następnie zdefiniowanie w kontrolkach wiązań do interesujących nas właściwości tego elementu.