Dzisiejszy artykuł powstał na podstawie angielskiego artykułu ze strony BlueLemonCode. Artykuł zamieszczam z powodu tego, aby sposób eleganckiego i darmowego znakowania pdf’ów był bardziej dostępny, a także w powyższym kodzie wprowadziłem pewną małą, ale ważną zmianę, dzięki której na każdej stronie pojawi się ten znak wodny, gdzie w matczynym kodzie nie zawsze.
Sztuka programowania 4045 dni, 19 godzin, 47 minut temu 131 źrodło rozwiń
Leave a comment There are some materials on the Web concerning the fact that role-based authentication is probably not the best option while implementing system security infrastructure. I find this blog post quite exhaustive: http://lostechies.com/derickbailey/2011/05/24/dont-do-role-based-authorization-checks-do-activity-based-checks/. So basically you need a component which determines whether user X is authorized to perform action Y. But that is the simplest case scenario. Probably, in practice you n...
Architektura 4052 dni, 6 godzin, 25 minut temu 83 źrodło rozwiń
Dzisiaj będzie krótko, gdyż temat jest dość krótki. Artykuł o tej tematyce piszę z powodu tego, ponieważ w polskim internecie ciężko znaleźć publikacje o serializacji i deserializacji binarnej, raczej spotykam się z serializacją do xml. Dla osób bardzo początkujących opiszę co to ów serializacja jest. Opisując to najprościej jest to zapisanie stanów obiektów do pliku w postaci binarnej, czyli nieczytelnej dla użytkownika. Deserializacja ...
Recently I've been coding some WCF methods and I've got a strange exception during WCF message serialization. I needed to send list of enums to the WCF service. There are couple of ways to do that. First solution is using [Flag] attribute to combine several enum values into one variable - but then you need to use powers of 2 for enum values. I couldn't do that because of the requirements and actual big number of that enums stored in current database. It would require writing and applying a lot of scrip...
Sztuka programowania 4065 dni, 4 godziny, 33 minuty temu 162 źrodło rozwiń
Ostatnio czytając jedną z książek o programowaniu w Objective-C natrafiłem na sformułowanie o polimorfizmie, które spowodowało u mnie wodę z mózgu. Musiałem się nad nim naprawdę zastanowić, gdyż do tej pory w ogóle o tym w takich kategoriach, a jednak. Po dłuższym zastanowieniu się zrewidowałem swoje pojęcie co to jest polimorfizm. Wszystko zaczęło się od tego zdania:Polymorphism enables programs to be developed so that objects from different classes can define methods that share the same name. Kod w O...
Sztuka programowania 4067 dni, 7 godzin, 11 minut temu 218 źrodło rozwiń
Ukrywanie folderów i plików w systemie Windows za pomocą komend cmd.
12.13.12 by MJ In September I wrote a short article about writing a clean code. I told you that it is a good habit to implement programs with a one and good style. Today I am going to wrtie something about a special tools which are very useful during programming. First of all, you need to have a JetBrains ReSharper installed at your local machine. Then you have to download a StyleCop, which is a plugin designed for ReSharper (http://stylecop.codeplex.com/releases/view/79972). ReSharper allows...
OWIN stands for The Open Web Interface for .NET. It is a standard for communication between .NET web servers and web applications. It defines required elements for HTTP request. It is inspired by Rack from Ruby on Rails World. Katana is implementation of this standard. We can say that it is a lightweight web server for .NET. In fact, it is more than that.
Dalsze rozważania na temat nullanle.
Sztuka programowania 4092 dni, 8 godzin, 14 minut temu 183 źrodło rozwiń
Po dłuższej urlopowej przerwie w blogowaniu zacznę od zagadki z serii co zostanie wypisane na ekran, którą podsunął mi kolega Przemek: decimal d = 2; Console.WriteLine("d == 2 = {0}", d == 2); Console.WriteLine("d == (decimal)2 = {0}", d == (decimal)2); Console.WriteLine("d.Equals(2) = {0}", d.Equals(2)); Console.WriteLine("d.Equals((decimal)2) = {0}", d.Equals((decimal)2)); Tutaj jeszcze nie ma haczyka i odpowiedź to 4XTrue. Zmieńmy jednak jedną liniję: decimal? d = 2; Tym razem odpowiedź jes...
Sztuka programowania 4092 dni, 8 godzin, 14 minut temu 167 źrodło rozwiń
IKVM.NET to wirtualna maszyna Javy napisana w .NET oraz zbiór implementacji podstawowych klasy z Javy dzięki którym możliwe jest uruchamianie kodu Javy bezpośrednio w środowisku .NET/Mono. Paczka IKVM.NET zawiera dwa główne narzędzia ikvm.exe (maszyna wirtualna) oraz ikvmc.exe – translator bytekodu Javy do .NET IL. IKVM.NET (ikvmc) umożliwia wykonanie szybkiego portu (translacji) biblioteki Javy do .NET. W moim przypadku była to biblioteka Morofologik – analizator morfologiczny, słownik morfologiczny i ...
Sztuka programowania 4094 dni, 4 godziny, 56 minut temu 226 źrodło rozwiń
It was always bothering me, when I wanted to run one simple command, and I needed to create new C# console project in Visual Studio to do that. With scriptcs I can finally do that in console. Project scriptcs allows you to run single commands and also C# script files.
Posted by kamilhawdziejuk on If you ever wondered how programming can change your home environment this post will show you how this can be done in .NET world. There are a few open source projects developed in Microsoft Research that will change the world in near future about which developers should know: 1. HomeOS (http://research.microsoft.com/en-us/projects/homeos/ with http://homeos.codeplex.com/) Lab of things (http://www.lab-of-things.com/ with http://labofthings.codeplex.com/) .NET G...
This time I would like to point out the behavior, that should be absolutely clear to any C# developer. When an exception is thrown inside try..finally block (without catch), and consequently in the scope of a using statement, it is bubbled up to the caller, rather than handled in any way.
Sztuka programowania 4108 dni, 12 godzin, 18 minut temu 101 źrodło rozwiń
Dzisiaj opisze mechanizm lamba expression. Dla przypomnienia Linq jest połączeniem 5 elementów:extension methodsyieldFunc, Predicate, Actionwyrażenia lambdaIQueryable i Expression Trees Wyrażenia lambda to nic innego jak syntactic sugar czyli taki bonus od Microsoftu, który ułatwia pisanie kodu. Wyrażenia lambda upraszczają zapisu delegatu. Przypomnijmy przykład z poprzedniego wpisu.C# class Program { ...
Sztuka programowania 4113 dni, 9 godzin, 29 minut temu 183 źrodło rozwiń
W kolejnym wpisie o linq przedstawię zasadę działania Func, Predicate, Action. Dla przypomnienia Linq jest połączeniem 5 elementów:extension methodsyieldFunc, Predicate, Actionwyrażenia lambdaIQueryable i Expression Trees Przyjrzyjmy się najpierw deklaracji tych trzech typów. C# public delegate void Action
Sztuka programowania 4117 dni, 12 godzin, 15 minut temu 210 źrodło rozwiń
Jeśli kiedykolwiek chciałeś stworzyć xml'a z obiektu, do którego klasy nie mogłeś modyfikować, a nie wystarczał Ci .net-owy XmlSerializer, sprawdź tą bibliotekę, może tobie też się przyda.
Bazy danych i XML 4122 dni, 12 godzin, 35 minut temu 178 źrodło rozwiń
sie10Kategorie: .Net, C# przez graf Blogowania chciałem rozpocząć od cyklu wpisów o Linq. Każdy dobry programista C# powinien umieć się posługiwać Linq, nie każdy niestety wie jak to właściwie działa. Linq wprowadza wspólny interfejs do pracy z kolekcjami niezależnie od źródła danych. Linq jest połączeniem 4 elementów:extension methodsyieldFunc, Predicate, Actionwyrażenia lambda W tym poście omówię extension methods czyli metody rozszerzające. Extension methods jak sama nazwa wskazuje ...
Sztuka programowania 4124 dni, 7 godzin, 47 minut temu 132 źrodło rozwiń
Sometimes there is a need to generate a document (HTML report, e-mail etc.) from a given template. It’s simple when it comes to just replace some tokens, but in case of more complicated operations (dealing with collections, conditions, loops) it’s better to use advanced template engine. Fortunately there is NVelocity that can be used as a standalone tool that gives pretty much flexibility.
In the project, I am working with, there is a simple feature that imports data from external source. Import is only interested in new records. This condition is fulfilled with ‘DateTime’ comparision. Looks simple, Unfortunately I have encountered a nice ‘bug’.
Sztuka programowania 4131 dni, 7 godzin, 6 minut temu 90 źrodło rozwiń