Tak jak napisałem w jednym z wcześniejszych postów nie zajmuję się już tworzeniem raportów w Crystal Reports. Nie oznacza to jednak, że nie piszę kodu, który wykorzystuje te raporty. Dlatego też postanowiłem zebrać w jednym miejscu informację, które zaczynającemu pracę z Crystal Reports developerowi służyłyby pomocą (przy czym jest to pomoc ze strony samouka, ale lepsza tak niż żadna).1. Środowisko pracy Teoretycznie wystarczy pobrać odpowiednią wersję ze strony producenta zainstalować i możemy dz...
Pętle i warunki, naturalnie są z jednym z podstawowych elementów każdego programu. Języki wysokiego poziomu umożliwiają realizację tego za pomocą słów If, for, foreach,while. W językach niskiego poziomu, takich jak IL Assembly, wszystkie powyższe czynności wykonuje się za pomocą skoków warunkowych i bezwarunkowych. Działają one analogicznie do słowa kluczowego GOTO. W IL, najprostsza instrukcja skoku to BR:br jump1 // jakas logika tutajjump1: //... br nie zawiera żadnego warunku. Można ją porównać do...
C# 5.0 in a Nutshell is a great reference book about C#. Furthermore, it is worth to read it from the beginning to the end, to understand how C# works and to get familiar with the language features (can be used in the future as a reference). This book describes many features, which I have never used (after over 4 years programming in C#) like some XML serializers, COM interoperability or advanced threading/tasking techniques. Now, I know about them an...
Sztuka programowania 3804 dni, 3 godziny, 37 minut temu 184 źrodło rozwiń
Dobrze nazwana klasa, dobrze nazwana zmienna, dobrze nazwana tabela to połowa sukcesu w naszym zawodzie. Czytelny kod zdradzający już na pierwszy rzut oka intencje autora to skarb. Nie trzeba się głowić OCB, WTF, ot czytamy i wiemy co to to robić powinno. Jeśli jeszcze to robi to po prostu miodzik.Dobra nazwa to podstawa! No i taka sytuacja,...
Historia zaczyna się od prostego fragmentu kodu pokazanego poniżej. Kod ten to fragment walidatora, ktory ma za zadanie określić, czy dane są prawidłowe. Jeśli nie, to zmienna isValid powinna zostać ustawiona na false. var isValid = true; if (condition_1) isValid = false; if (condition_2) isValid = false; Kod ten działał do momentu, kiedy wprowadzono do niego małą zmianę pokazaną poniżej. Było to pewne uszczegółowienie logiki walidacji danych wejściowych. var isValid= true; i...
Sztuka programowania 3810 dni, 12 godzin, 6 minut temu 366 źrodło rozwiń
Czasami mam takie dni, że mam dość. Wszystko się sypie a ja sam nie wiem w co włożyć ręce (szczególnie jak przestaje działać coś na czym polegam od dłuższego czasu i coś co do tej pory nie sprawiało mi żadnych problemów). Pewnego pięknego poniedziałkowego ranka przychodzę do pracy i od progu słyszę, że po tym jak w piątek zrobiłem pusha to kod przestał się kompilować. Wprost “uwielbiam” takie rozpoczęcie tygodnia. Oczywiście jestem przekonany, że kod działa, ale jestem przecież tylko człowiekiem...
Może słyszeliście o takim ptaszku Fody. Ostatnim czasem ptaszek ten podbił moje serce. Korzystam z jego usług tak często jak się tylko da. Ogólnie muszę podziękować Pawłowi Łukasikowi za prezentacje na KGD.NET, która otworzyła mi oczy PropertyChanged.Fody To chyba mój ulubiony pakiet, ale zanim go opiszę muszę zrobić drobne wprowadzenie. Od początku mojej przygody z WPFem ( i ogólnie XAMLem) strasznie żmudnym procesem było bindowanie pomiędzy DataModelem a widokiem (niech zasłona milczenia zakryje fak...
Bardzo często na blogu poruszam tematykę c# internals. Bez nich, praktycznie niemożliwe jest pisanie optymalnego kodu. Jeśli ktoś np. nie wie jak async\await jest zaimplementowany wewnętrznie, bardzo łatwo może popełnić błędy podczas pisania kodu c#. Niedawno ktoś zasugerował mi, abym wyjaśnił bardziej IL. Bardzo często wklejam fragmentu kodu z Reflector’ora i nie wyjaśniam szczegółów. Z tego względu, przez kilka kolejnych wpisów zajmiemy się CLR internals oraz IL. Na początek podstawowe pytanie, co to...
Finally, I had time to watch Build 2014 sessions. Here are the best I have seen. Thinking for programmers (Leslie Lamport) Windows and the Internet of Things (Steve Teixeira) Building Azure Web Sites with Visual Studio Online “Monaco” (Chris Dias) What’s New for ASP.NET and Web in Visual Studio 2013 Update 2 and Beyond (Scott Hanselman and Scott Hunter) Modern C++: What You Need to Know (Herb Sutter) The Future of C# (and VB) Go Mobile with C# and Xamarin (Miguel de Icaza) TypeScript (Anders Hejlsberg) D...
W poprzednim poście opisałem jak działa stos w IL. Wiemy, że jest on kluczowy dla wszelkich operacji. Jedną z ważniejszych instrukcji, wprowadzonych w tamtym poście jest ldc.i4. Służy ona do załadowania liczby 4 bajtowej na stos. Oprócz niej, istnieje wiele innych instrukcji, które pełnią analogiczną rolę. Rozważmy następujący kod c#: float floatNumber =533.3f; double doubleNumber =5454.14; string text ="text"; int[] array =newint[] {21, 3}; Console.WriteLine(floatNumber); Console.WriteLine(doubl...
Istnieje wiele framework’ow ułatwiających izolację danych w testach jednostkowych. Nie opisuje ich na blogu, bo nie wiele od siebie różnią się . Microsoft Fakes jednak ma kilka ciekawych rzeczy i dlatego nim dzisiaj zajmiemy się. Niestety jest dostępny on wyłącznie w wersji Visual Studio Ultimate. Pierwszą wyróżniającą go cechą jest możliwość izolacji metod statycznych, które oczywiście nie mogą być w łatwy sposób mock’owane. Rozważmy klasyczny przykład:publicclass Person { publicvoid Method() ...
Sezon ogórkowy w pełni, dlatego i wpisy troszkę rzadziej niż zwykle, ale że u mnie w mieszkaniu remont to i urlop spędzam w domu i mogę nadrobić trochę zaległości… A w dzisiejszym wpisie temat, który często traktowany jest po macoszemu czyli testowanie JavaScript. O zaletach i konieczności testowania napisano już wiele, a jako profesjonalni programiści musimy wiedzieć, że dotyczy to nie tylko „backendu” ale i warstwy interfejsu użytkownika. Na całe szczęście,...
Zaczynając moją pracę jednym z pierwszych zadań było zaznajomienie się z Crystal Reports. Na szczęście nie było to moje główne zadanie. Wprawdzie czasem po dłuższej sesji kodowania odpoczynkiem było przygotowanie jakiegoś raportu. Jednak czym dalej w las tym ciemniej. Ponieważ uczyłem się budowania raportów (a nie było to moje główne zajęcie) popełniałem błędy. Czasem wynikały one z niewłaściwego przekazywania danych a czasem z nieznajomości do końca technologii. Najgorzej jednak było poprawiać rap...
AzurewisniaLeave a comment W jednym z pierwszych wpisów na blogu pisałem w jaki sposób pingować maszyny wirtualne, co w jakiś sposób pozwala nam określić opóźnienia w czasie dostępu do swojego wdrożenia. No ale w co sytuacji gdy dopiero przymierzamy się do wdrożenia rozwiązania i zastanawiamy się gdzie najlepiej na świecie umieścić naszą stronę, aplikację? Oczywiście wybór pomiędzy np. Europą a USA jest dość prosty, bo jeśli mamy użytkowników głównie w Polsce no to logicznie, nie będziemy wdrażali stron...
nodeschool.io I would like to present a highly interesting initiative for everyone keen on topics oriented to Node.js. If you are curious about how to effectively learn of stuff available on the platform, how to effectively use libraries and write the most idiomatic code, which is consistent with the UNIX philosophy, read this article.Why? The major problem when learning new things is related to the first step, even if it concerns a basic question “how to start”. This barrier is often related t...
More experience I gain, more interested I am in how things work underneath the code level. In this post I want to provide short description of the Top 10 programming languages (by TIOBE Index), how they work and their super short history.
Sztuka programowania 3817 dni, 8 godzin, 38 minut temu 441 źrodło rozwiń
Extension is available for other Visual Studio versions: GoToTest macro for VisualStudio 2008NavigateToTest VS2010 extensionNavigateToTest VS2012 extensionNavigateToTest VS2013 extension You can download the extension here: NavigateToTest Visual Studio 2013 extension Here’s the latest version that supports Visual Studio 2013. Extension is convention based. It matches ClassName file with ClassNameTest or ClassNameTests and vice-versa, so you can easily navigate to the test file and back. Here are so...
W Visual Studio istnieje pewna opcja, która umożliwia sprawdzenie wartości obiektu, do którego nie ma się jawnej referencji. Spójrzmy na następujący przykład:class Program { staticvoid Main(string[] args) { DoSomething(); } privatestaticvoid DoSomething() { var person=new Person(); person.FirstName ="Piotr"; person.LastName ="Zielinski"; } } Jeśli ustawimy breakpoint w metodzie DoSomething naturalnie zobaczymy wartość obiektu person w oknie watch:...
Raz na jakiś czas, czyli zwykle przed rozpoczęciem nowego projektu, stajemy przed wyborem stosu technologicznego dla planowanej aplikacji. Jeśli mamy za zadanie stworzyć bogatą, „jedno-stronicową” (single-page??) aplikację webową, koniecznym wydaje się odpowiedni framework JavaScript. Co daje nam taki framework? Ano rzecz jasna oszczędza nam czasu i pieniędzy na pisanie wielu niezbędnych funkcji od zera – dobry framework MVC JavaScript umożliwia nam na przykł...
Wiele razy pisałem już o słowach async\await i z pewnością ułatwiają one życie. Dla przypomnienia rozważmy kod:private async void DownloadAndSortAsync() { int[] allNumbers = await DownloadNumbersAsync(); int[] sortedNumbers = await SortNumbersAsync(allNumbers); MessageBox.Show(string.Join(“,”,sortedNumbers)); } private Task
Sztuka programowania 3819 dni, 7 godzin, 59 minut temu 194 źrodło rozwiń