W trakcie mojej niedawnej prezentacji poświęconej technologii in-memory OLTP w systemie SQL Server 2014 padło pytanie (w pełni zasadne), czy w związku z wprowadzeniem na potrzeby definiowania tabel in-memory możliwości definiowania indeksów inline w składni polecenia CREATE TABLE podobne definiowanie indeksów będzie możliwe dla tradycyjnych tabel. Okazuje się, że tak. W dokumentacji SQL Server 2014 w części poświęconej nowościom w silniku bazodanowym została wymieniona specyfikacja indeks...
Strona głównaUżytkownik
trismegista | użytkownik
Bazy danych i XML 3759 dni, 23 godziny, 34 minuty temu 138 źrodło rozwiń
Jednym zdaniem NCrunch to narzędzie do automatycznego uruchamiania testów jednostkowych w Visual Studio. Pisałem już o NCrunch-u ale o tak świetnym dodatku warto napisać jeszcze raz i to z dwóch powodów. Po ostatniej prezentacji na ITAD na bielskiej ATH kilka osób pytało mnie o zielony pasek więc w ramach wyjaśnienia taki zielony pasek to wła...
Kiedyś pisałem o modyfikatorze sealed i dlaczego warto go używać jeśli chodzi o kwestie dobrych praktyk. Podobne mam zdanie co do modyfikatora virtual – używam wyłącznie jak mam takie wymagania. Zawsze zaczynam od najbardziej restrykcyjnych modyfikatorów. Klasy deklaruję jako sealed internal, a metody jako private. Nie zaznaczam metod jako virtual “na zapas”, ponieważ skoro nie są one zaprojektowane pod tym kątem to może przynieść to więcej kłopotów niż korzyści. Analogiczne zasady stosuje się np. w bezp...
Sztuka programowania 3759 dni, 23 godziny, 34 minuty temu 261 źrodło rozwiń
Czasami można zaobserwować następujący kod:int[] firstArray = Enumerable.Range(1, 1000).ToArray(); int[] secondArray = Enumerable.Range(1, 1000).ToArray(); foreach (int item in firstArray) { Process(item); } foreach (int item in secondArray) { Process(item); } Mam na myśli sytuacje kiedy mamy kilka osobnych tablic, ale przetwarzanie ich jest takie same lub bardzo podobne. Inny przykład to przetworzenie tablicy, a potem pojedynczego elementu pochodzącego z innego źródła...
Sztuka programowania 3759 dni, 23 godziny, 34 minuty temu 208 źrodło rozwiń
Na początek roku post minimalistyczny - kilka linków, które gnieżdziły się w mojej głowie ostatnio. Co dalej z Windows, Windows Phone, C#, Visual Studio? Odpowiedź już za niecałe 3 miesiące na BUILD 2014! Pierwsze przecieki o Windows 8.1 Update 1, który ma się ukazać w marcu tuż przed BUILD (choć ciekawszy wydaje się bardziej mglisty “Threshold”). Interesujące rozważania na temat języków programowania prosto z Microsoft. Sienna - genialny przykład minimalistycznej roboczej aplikacji Windows Store, takie...
O IntelliTrace pisałem już wielokrotnie. Do tej pory nie wyjaśniłem jednak, że chociaż IntelliTrace nazywamy debugger'em historycznym to w rzeczywistości IntelliTrace jest profilerem. Dokładniej mówiąc jednym z komponentów składowych IntellITrace jest niezarządzana implementacja interfejsu ICorProfiler. Profiler ten komunikuje się z zarządzaną częścią IntelliTrace, czyli z programem IntellITrace.exe. IntellITrace.exe jest natomiast używane przez Visual Studio...
Zwyczajny, często widziany kod który parsuje stringa na inta. int Foo(string value) { var pageId = string.IsNullOrEmpty(value) ? 0 : int.Parse(value); return pageId; } W zależności od tego czy jesteśmy pewni, że przekazany string ładnie się sparsuje, powyższa funkcja może wystarczyć lub nie. Fakt, że dostajemy string już mówi, że coś może pójść nie tak. Gdybyśmy mogli przekazać int...
Sztuka programowania 3799 dni, 9 godzin, 37 minut temu 249 źrodło rozwiń
The dynamic keyword has been part of the C# language for quite a while now. I thought I know it well, yet I stumbled upon an interesting case that surprised me.The code that works Here's a piece of code that I started with. This code works like you would expect.
Sztuka programowania 3799 dni, 9 godzin, 37 minut temu 113 źrodło rozwiń
Zrównoleglenie danego algorytmu to jeszcze nie koniec wyzwań. Pytanie jakie należy postawić, to jak wiele stworzyć wątków? Musimy wziąć pod uwagę synchronizacje i problemy z tym związane. Jeśli mamy tylko 4 procesory, wtedy tworzenie więcej niż 4 wątków nie przyśpieszy obliczeń, jeśli wszystkie one zawsze będą zajęte. Tworzenie większej liczy wątków niż CPU, ma sens wyłącznie jak część z nich musi czekać na jakieś dane i tym samym, nie wykorzystują one w pełni cykli CPU. Liczba wątków, zależy od tego j...
Sztuka programowania 3799 dni, 9 godzin, 37 minut temu 96 źrodło rozwiń
Sporadycznie, podczas instalacji VS 2013 może nastąpić mały problem, o którym dowiemy się dopiero w trakcie tworzenia nowego projektu – nie każdego rodzaju, ale takiego, który polega na paczkach NuGet. Mianowicie, jak będziemy chcieli stworzyć nowe solution z projektem, otrzymamy taki o to błąd:The system cannot find the file specified. (Exception from HRESULT: 0x80070002) Jak zaś będziemy chcieli dodać projekt do istniejącego solution – lub pustego, założonego przy pierwszym błędzie, otrzymamy taki o ...
Nie wiem jak wy ale ja kocham debugować kod. Odkrywanie, gdzie programista (w wielu wypadkach ja sam!) popełnił (świadomie/nieświadomie) błąd wprawia mnie w stan euforii pewnie jak morfina uzależnionego :). Visual Studio (dla mnie) jest dość bliskie idealnego narzędzia do tego celu, ale do szczęścia brakowało mu kilku rzeczy. Jedną z nich był podgląd zwracanej wartości z funkcji. W poprzedniej wersji mogliśmy tę wartość uzyskać, ale trzeba było się troszkę "namęczyć". VS 2013 to the rescue Najnow...
Integrujemy ASP.NET z PayU Cykl artykułów dotyczących integracji strony w ASP.NET z systemem płatności on-line PayU. Artykuły, krok po kroku opisują tworzenie strony zamówienia, następnie tworzenie stron powrotów oraz raportów...
Wprowadzenie Wzorce projektowe mają na celu rozwiązanie najczęściej spotykanych problemów związanych z pisaniem kodu. W przypadku warstwy prezentacji można wykorzystać m. in. następujące rozwiązania: MVC, MVP czy Model-View-ViewModel. Ze względu na mechanizm wiązań (binding), programistom WPF oraz Silverlight, polecany jest wzorzec MVVM – jest to technologia umożliwiająca bardzo łatwą implementację wzorca.K...
Architektura 3982 dni, 19 godzin, 33 minuty temu 554 źrodło rozwiń