PowerShell to platforma skryptowa dla systemu Windows, stworzona zwłaszcza dla zaawansowanych użytkowników i administratorów, którym brakowało narzędzia podobnego do basha z systemów Uniksowych (mimo iż sam bash jest dostępny także dla Windows w ramach Cygwin, a przykładowo ksh jest rozprowadzany jako składnik Windows Services for Unix). Wiele osób narzekało też na brak platformy skryptowej z prawdziwego zdarzenia, często zapominając o narzędziu Host skryptów dostępnym od Win...
Strona głównaUżytkownik
Paweł Łukasik | użytkownik
Ostatnio poznałem nieznany mi wcześniej, a prosty sposób tworzenia raportów i zapisywania ich do formatu PDF czy Excel. Działa on zarówno w kontekście aplikacji ASP.NET jak i w aplikacjach Windows Forms i innych. Mam tutaj na myśli klasy z przestrzeni nazw Microsoft.Reporting.WebForm (w przypadku aplikacji stacjonarnych chodzi o przestrzeń Microsoft.Reporting.WinForms). W przestrzeni Microsoft.Reporting.WebForm znajdziemy wiele rzeczy, najważniejsze to po pierwsze kontrolka ReportViewer do prezentowa...
Gdy jakiś czas temu zainstalowałem sobie addin’a (dalej będę używał polskiego odpowiednika – wtyczka) do SSMS znanej specjalizującej się tym firmie byłem pod wrażeniem możliwości rozbudowy management studio. Ale po jakimś czasie wtyczka znudziła mi się i postanowiłem odinstalować ją. I po odinstalowaniu uruchomiłem ponownie SSMS i tu zdumienie: opcje wtyczki były nadal obecne w SSMS! Teraz wiem, że to nie przypadek. Moje doświadczenia pokazują, że zespól deweloperski odpowiedzialny za wtyczki do SSMS w t...
Task-based API w .NET 4.0 (część I) października 1, 2009 22:34 by Marek Kalinowski Pierwszą okazję do zetknięcia się ze zmianami w API dotyczącym wielowątkowości miałem przy okazji udostępnionej prezentacji Daniela Motha z konferencji PDC2008 (http://channel9.msdn.com/pdc2008/TL26/). Podstawowym argumentem mającym mówić za wprowadzeniem (i używaniem) nowego API jest konieczność dostosowania się deweloperów do zmian w architekturze procesorów – czasy "darmowego" przyrostu wydajności bezpowrotnie minęły, o...
Programowanie rozproszone 5550 dni, 14 godzin, 40 minut temu 77 źrodło rozwiń
Po ostatnim małym sukcesie (7 dni i ponad 700 ściągnięć) z behaviorsem (patrz poprzedni wpis), postanowiłem że gdy kolejny raz przyjdzie mi do głowy jakiś nowy prosty behavior, również się nim podzielę.Prościej się nie da Mój najnowszy behavior nie może być prostszy, bo poniżej jednej linii kodu która rzeczywiście coś robi, nie da się zejść ;) Na szczęście jego działanie stawia go w innym świetle. A o co chodzi? Otóż mój nowy behavior, jak nazwa tego wpisu sugeruje, otwiera listę ComboBoxa po najechani...
Silverlight 5550 dni, 14 godzin, 40 minut temu 67 źrodło rozwiń
Krótki opis o tym jak możemy przechwycić wartości parametrów z metod, które wywołujemy przy pomocy Mock Objects.
Kiedy w końcu udało mi się zdobyć dostęp do SDK Microsoft Surface, natchniony rozkminianiem o co w tym wszystkim chodzi, postanowiłem króciutko się podzielić pierwszymi doświadczeniami. Instalacja Instalacja oprócz tego że musiałem doinstalować coś do XNA przebiegła niezwykle sprawnie. Całość razem z SDK, przykładami, super emulatorem i resztą rzeczy o których jeszcze nie mam pojęcia, znalazły się bezboleśnie na moim dysku, a w Visual Studio doszły nowe typy projektów. Development Ci którzy może ...
Przyspieszamy ASP.NET - AJAX Web Services W tej części cyklu “Przyspieszamy ASP.NET” omówię kolejne rozwiązanie z serii “wilk syty, owca cała”. Tym razem za pomocą asynchronicznego odwołania do Web Service’u sprawimy, że klient otrzyma dane szybciej, generując przy tym mniejszy ruch i mniej obciążając serwer niż w przypadku klasycznego postbacku. Co więcej, w jego odczuciu strona będzie działa bardziej dynamicznie. Jednak nie ma róży bez kolców…Gdzie jest problem i co chcemy osiągnąć? Przypuśćmy, że twor...
Dzisiaj odrobina odnośnie dostosowywania serializacji do własnych potrzeb. Na pierwszy ogień interfejs ISerializable, pozwalający na ‘wrzucenie’ do serializowanego strumienia tego co chcemy i pod jaką nazwą chcemy.
Architektura 5557 dni, 23 godziny, 56 minut temu 104 źrodło rozwiń
Dzisiaj kolejna porcja nadrabiania zaległości z podstawowych podstaw(bo jak inaczej to idzie nazwać?), tym razem serializacja.
Architektura 5562 dni, 22 godziny, 36 minut temu 152 źrodło rozwiń
Autor: Jakiś czas temu zdarzyło mi się napisać własny behavior, który w odróżnieniu od tych które dłubie na co dzień, może mieć zastosowanie w wielu aplikacjach, stąd też pomysł aby się nim podzielić :)Co to są behaviorsy nie będę się rozpisywał w tym temacie. Zagadnienie jest większe, a do poczytania o nim polecam świetny artykuł: http://www.silverlightshow.net/items/Behaviors-and-Triggers-in-Silverlight-3.aspx O co chodzi?
Jak zapewne większość wie Qt jest to zestaw bibliotek programistycznych wspomagających tworzenie aplikacji w C++, Java ... , która może być wykorzystywana na różnych systemach operacyjnych (tzw. idea 'cross-platform'). O ile kompilacja w środowisku Linux jest dosyć prosta, należy z repozytoriów zainstalować Qt i za pomocą dwóch komend kompilować napisany program, tak chcąc zintegrować środowisko MSVS2008 oraz bibliotekę Qt trzeba zapewnić odpowiednio skonfigurowane pliki nagłówkowe. Instrukcja ta zamiesz...
Mając przygotowany już kod obsługujący naszą składnię, możemy przejść analizy przekazanego wyrażenia. Korzeniem wyrażenia zawsze obiekt LambdaExpression, którego Body jest wywołaniem metody lub konstruktora, których argumenty będą poddane sprawdzeniu. Wywołanie metody powoduje odłożenie na drzewie obiektu MethodCallExpression, zaś sama metoda i informaje o niej (MethodInfo) jest dostępna przez property Method. Wywołanie konstruktora (np. new Service(...)) odkłada na drzewie obiekt NewExpression, umies...
Krótki, szybki poranny wpis ;-) Ostatnio pokazałem, jak napisać własny, prosty walidator w asp.net – działający po stronie klienta i serwera. Czasem niektóre pola formularza są ukrywane za pomocą JavaScriptu – wtedy walidator nie powinien działać. On jednak nie wie, czy kontrolka została ukryta, czy nie. Podejrzałem ostatnio podczas debugowania WebSite’u w VisualStudio skrypty, które są ładowane jako WebResource do konkretnej strony: Debugowanie skryptów w VisualStudio Polecam każdemu zapoznanie s...
Mityczne 100% pokrycia W środowisku deweloperskim wciąż żywy jest mit 100% pokrycia kodu testami jednostkowymi. Co gorsza, mit ten ma się równie dobrze (a może nawet lepiej?) wśród decydentów (kierowników, dyrektorów itp.). Celem poniższej notki jest pokazanie, jak bardzo naiwne jest podejście "100% pokrycia". Popatrzmy na następujący trywialny kod:
Dzisiejszy wpis to praktycznie dokończenie dwóch poprzednich, stanowiące jakieś ich uzupełnienie, lub też swojsko rzecz ujmując ‘dobicie’. Do zbadania na dziś przygotowałem klasy Timer i BackgroundWorker. Ta druga trochę nietypowo, ponieważ wykorzystana zostanie w ‘aplikacji’ konsolowej, a głównym(tak mi się zdaje) jej zastosowaniem są aplikacje okienkowe i puszczanie złożonych czasowo operacji w tle, by GUI nie zostało ‘zawieszone’. Timer(System.Threading) Tutaj prosto i przyjemnie: jeśli chcemy odpala...
Być może się komuś przyda. Ta darmowa biblioteka: http://www.carlosag.net/Tools/ExcelXmlWriter/ o nazwie CarlosAg Excel Xml Writer Library umożliwia tworzenie plików Excela w formacie XML (dokładniej jako: XML Spreadsheet). Nie wymaga ona zainstalowanego Excela. Wspiera formatowanie, wyrównania, formuły, tabele przestawne i inne rzeczy.
Programistom używającym kontrolki GridView na co dzień znany jest zapewne fakt, że w przypadku pustego źródła danych kontrolka nie generuje żadnego widocznego markup'u. W szczególności nie będą widoczne nagłówki kolumn czy wiersz dodający. Kiedy w wyszukiwarce wpiszemy hasło Show GridView if datasource is empty otrzymamy oczywiście mnóstwo rozwiązań tego problemu. Niestety pośród nich nie znajdziemy, a przynajmniej ja nie znalazłem, satysfakcjonującej odpowiedzi dotyczącej źródła danych typu ObjectDa...
Dzisiaj kontynuacja ostatniego wpisu, traktującego o najprostszych operacjach na wątkach. Bez zbędnych wstępów przejdę więc do klasy ReaderWriterLock. ReaderWriterLock Klasa ta daje możliwość, której nie daje nam klasa Monitor, mianowicie rozróżnianie pomiędzy blokadą do odczytu(umożliwia ona wielu wątkom jednoczesny dostęp do zasobu) oraz zapisu(tylko jeden naraz możliwy, oczywiście wtedy odczyt jest również zablokowany. Aby jej użyć wystarczy instancja ReaderWriterLock w klasie, do której dostęp ma ...