Co wyświetli poniższy fragment kodu?internalclass Program { publicstaticvoid Main() { var timer =new Timer(TimerCallback, null, 0, 1000); Console.ReadLine(); } privatestaticvoid TimerCallback(Object o) { Console.WriteLine("Callback: "+ DateTime.Now); } } Powyższy konstruktor uruchamia timer i spodziewalibyśmy się, że na ekranie po prostu będą wyświetlane kolejne callbacki. W praktyce jednak dokonywana jest pewna optymalizacja, która ma fatalne efekty. Można zauwa...
Sztuka programowania 3658 dni, 22 godziny, 48 minut temu 101 źrodło rozwiń
Ostatnio zetknąłem się z problemem dotyczącym wykorzystania transakcji natywnych SQL Servera z poziomu pakietu SQL Server Integration Services (SSIS). Abstrahując od tego, czy jestem zwolennikiem zaszywania kodu T-SQL w pakietach SSIS, czy nie, problem wydał mi się dobrym materiałem na wpis na blogu :-)
Bazy danych i XML 3658 dni, 22 godziny, 48 minut temu 51 źrodło rozwiń
autor: "New year. New certifications. New you." - przeczytałem wczoraj w emailu. Dlaczego ? Ano w zeszłym roku zostało wydane Visual Studio 2012 (a z nim .NET 4.5), Windows 8 z nowym App Store'm, pojawił się więc idealny moment na zmiany w dotychczasowych ścieżkach Microsoft'u. Przyjrzyjmy się więc, co się zmieniło... Nadeszła kolejna certyfikatowa rewolucja. Microsoft postanowił odejść od przyznawanego od kilku lat tytułu Microsoft Certified Professional Developer (MCPD) i powrócił do tytułu podobnego...
Jako osoba często prezentująca postanowiłem co jakiś czas dzielić się interesującym tip&trickiem usprawniającym proces prezentacji Dzisiejszy wpis będzie dotyczył prezentowania kodu, co dzieje się najczęściej w obecności Visual Studio. Problem jaki się pojawia to wielkość czcionki, którą wykorzystujemy. Na co dzień podczas pisania aplikacji pewnie mało osób wykorzystuje dużą czcionkę bo niewiele kodu zmieści się wtedy na ekranie. Jednak podczas prezentacji sytuacja ta jest zupełnie inna. Musimy zape...
autor Git jest the best – to wie chyba każdy kto czyta tego bloga. Może niekoniecznie się z tym zgadza, ale przynajmniej wie:). Wydaje mi się, że to jedyny kawałek softu, na który nigdy nie narzekałem… Aż do niedawna. Przyszło mi pracować przy wieloletnim projekcie, którego repozytorium liczone było w gigabajtach. Za pomocą Git-TFS ściągnąłem sobie historię, a tam, jak się można domyślić, cały TfuFSowy syf. Czyli na przykła...
Introduction In the company I'm currently working for, it is a common practice to use Devexpress XtraReports to create all kind of reports. Usually these reports are embedded into html page and used along with DevexpressReportViewer. However, lately I have been asked to open a report as a PDF file, without putting a viewer into a html page. 1. First approach After some digging, I created an action in controller which looks like this public void ExportToPdf() { using (MemorySt...
I think all Resharper users are familiar with snippets. Resharper's snippet basically generates a piece of code, which can be easily customised on the fly. All you have to do is to press TAB, and you can change names of auto-generated variables etc. Today, I decided to write my own snippet, which would make writing unit tests easier. In general, all my unit test methods looks like this [Test] public void MethodNameScenarioExpectedResult_Test() { //test logic goes in here } So let's writ...
autor: Ponownie wrócę do tematyki kompilowania C# w locie. Pisałem wcześniej, że potrzebowałem takiej funkcji aby użytkownicy mojej aplikacji mogli w dowolnym momencie zdefiniować własny algorytm obliczania odległości między dwoma wektorami. Po kilku próbach już wiedziałem jak to zrobić, a chwilę później miałem już zaimplementowaną pierwszą wersję rozwiązania. Przyszła pora wypróbowania nowej zabawki na prawdziwych danych. Uruchomiłem więc aplikację, napisałem krótki skrypt i wystartowałem ...
ReadOnlyCollection jest wraperem na kolekcję zabezpieczającym ją przed modyfikacjami. Nie tworzy on ponownie elementów a jedynie przechowuje oryginalną kolekcję, dzięki czemu wszelkie wykonywane bezpośrednio na niej operacje są w nim odzwierciedlane. Zasada działania ReadOnlyCollection jest bardzo prosta: jeżeli wywołana zostanie na nim metoda modyfikująca kolekcję pojawi się wyjątek, w przeciwnym wypadku ta sama metoda zostanie wywołana na oryginalnej kolekcji.
In almost every enterprise scale system there are some tree structures to be held in the database. It could be a system menu structure, an enterprise organisation structure or a user hierarchy. Lets assume that we need to model insurance agents hierarchy for insurance policies processing system. Thinking about agents as children and parents and creating such structures seems to be natural: Agents tableColumnTypeIDInt, not nullParentIDInt, nullRole/RangeSome example attribute Structure...
Bazy danych i XML 3662 dni, 9 godzin, 27 minut temu 23 źrodło rozwiń
In previous post, I defined a good unit test as one that:tests single unit of workcontains only one assertis self contained Presented sample of code with one unit test, unfortunately had two asserts. Clear violation of the second rule. One of the fellow bloggers MJ pointed out this mistake. It is time to “fix” it and talk about “Only one assert per test” rule.Why only One Assert There are couple of problems with multiple asserts.Unit Test Misinformation Frameworks like NUnit do notify about failing un...
Sztuka programowania 3662 dni, 9 godzin, 27 minut temu 36 źrodło rozwiń
Pod jednym z ostatnich postów wywiązała się krótka dyskusja na temat komentowania kodu i postanowiłem poczynić follow-up w postaci osobnej notki. Mam cały czas na myśli oczywiście komentarze wyjaśniające działanie kodu a nie zakomentowany kod. Zakomentowany kod powinien być usuwany na poziomie repozytorium w momencie check-ina i problem mielibyśmy z głowy. Na ten temat nawet nie będę się rozwodził.
Sztuka programowania 3662 dni, 22 godziny, 24 minuty temu 171 źrodło rozwiń
W poprzednim poście pokazałem jak korzystać z funkcji FromAsyncPattern na przykładzie usługi sieciowej. Dzisiaj zaprezentuję kilka dodatkowych funkcji. Najpierw zdefiniujmy co chcemy uzyskać:Użytkownik może wpisać szukaną frazę w pole edycyjne. Usługa sieciowa ma za zadanie wyszukanie fraz wpisanych w pole zdefiniowane w punkcie 1. Wyłącznie frazy dłuższe niż 3 znaki mają być przetwarzane. Jeśli użytkownik wpisze dwa razy tą samą frazę to tylko pierwsza ma zostać wysłana do usługi (optymalizacja). Zdarze...
Sztuka programowania 3664 dni, 17 godzin, 2 minuty temu 16 źrodło rozwiń
Here is code which shows how to extend Spring.NET’s AdoTemplate to enable Dapper micro ORM support. It is based on code & configuration presented in THIS post.publicdelegate T DataContextDelegate
Bazy danych i XML 3664 dni, 17 godzin, 2 minuty temu 39 źrodło rozwiń
Atak Cross-Site Request Forgery (w skrócie CSRF lub XSRF) polega na wykorzystaniu nieświadomego niczego użytkownika, który w danym momencie zalogowany jest do serwisu będącego celem ataku, do wysłania żądania spreparowanego przez hakera. Takie żądanie może na przykład zmieniać dane użytkownika użytego do ataku, na takie, które później będą mogły być wykorzystane przez atakującego do zalogowania się do serwisu. W dzisiejszym poście, chciałbym pokazać jak zabezpieczyć się przed tego typu atakiem w aplikac...
As .NET developer I’m about to face the problem of using it in a quite complex system. I took some up front effort to prepare some concept of handling nested DB operations and transactions management. I’m not an Entity Framework specialist (nor enthusiast) but the potential of this technology (the result of factors like MS marketing or community activity) shouldn’t be overlooked. Though I have faced a problem of EF which won’t appear in HelloWorld scenarios but will get very hard to ove...
Architektura 3664 dni, 22 godziny, 33 minuty temu 79 źrodło rozwiń
autor: Dzisiaj wrócę do tematu użycia języka C# jako języka skryptowego przy pomocy Mono.CSharp.dll i opiszę w jaki sposób przekazać parametry do takiego skryptu. Pominę podejście opierające się o wklejanie do skryptu string'owej reprezentacji takich parametrów i od razu przejdę do bardziej eleganckiego rozwiązania. Bazuje ono na tym co przeczytałem w tym poście. Zaczynamy od utworzenia statycznej klasy ScriptContext, która posłuży nam do wymiany danych pomiędzy skryptem, a naszym programem...
autor: Od jakiegoś czasu pracuję nad aplikacją do generowania i analizowania wykresów rekurencyjnych. Temat sam w sobie jest bardzo ciekawy, więc może do niego wrócę w przyszłości, ale dzisiejszy post będzie o czymś innym. Moja aplikacja między innymi wykonuje obliczenia na wektorach np.: oblicza różne odległości (euklidesową, Manhattan czy normę maksimum) między nimi. Dodawanie kolejnych algorytmów wymagało jednak każdorazowej rekompilacji aplikacji. Zacząłem więc szukać sposobu aby umożl...
This post is based on my answer on the Stack Overflow – “How to unit test this function?” The original question is about writing unit test for a code that uses Console methods inside its body. This problem is more general and in this post, I want to show one of the ways to unit test code with static method.Example of code with static methods This example is from the Stack Overflow quest...
Sztuka programowania 3668 dni, 16 godzin, 52 minuty temu 66 źrodło rozwiń
In one of my companies on of the first tasks was to create appllication, that will show which ORM will be the best choice for my team ( in terms of performance, support and features). Main focus of this task was performance. My company has a online shop that is generating a huge ammout of queries. This was an important task, because we planned to redesign whole project with ORM in order to improve efficiency and get rid off all the complex stored procedures with business logic. I selected...
Bazy danych i XML 3669 dni, 4 godziny, 37 minut temu 221 źrodło rozwiń