Working with Tasks is a modern way of writing asynchronous code in an easy and flexible manner. It is quite straightforward to start using them, so usually developers do not investigate thoroughly the topic. Unfortunately this often leads to unpleasant surprises - especially when it comes to exception handling. Having this in mind let's take a look how to handle exceptions in Task and what can happen if we do it wrong.
I am not a big fan of dynamic type in C#, however there are certain situations in which it can be handy. Let's assume that we have following piece of code (which I encounter quite often at my work) public abstract class Weapon { //some properties } public class Gun : Weapon { //some properties } // more derived types var weaponService = new WeaponService(); IList
.Net w wersji 4.0 wprowadził pojęcie Corupted Stare Exception. Wiedza o nich jest dość istotna, gdyż domyślnie nie są wyłapywane nawet przez ogólny blok catch(Exception), a także blok finally.
Ostatnio trafiłem na nową aplikację od JetBrains (producenta ReSharper’a) o nazwie dotPeek. Czym, że ona jest ? W skrócie można powiedzieć, że jest to DARMOWY dekompilator dla języka .NET, wspierający pliki .dll, .exe, zip, .vsix., .nupkg, oraz .winmd. ...
Posted by mndevnotes W .NET 4 pojawiła się nowa klasa System.Lazy. Opakowuje ona obiekt danego typu, dzięki czemu jego inicjalizacja następuje dopiero w momencie pierwszego użycia.
CAPTCHA to akronim od „Completely Automated Public Turing Test to Tell Computers and Humans Apart” – czyli w skrócie jest to obrazek, którego treść trzeba wpisać w formularzu, aby przejść dalej. W swoim projekcie skorzystałem z dobrodziejstw Google czyli ReCaptcha (http://www.google.com/recaptcha).
AppDomain.AssemblyResolve - zdarzenie to pozwala załadować assembly jeśli standardowy mechanizm platformy .NET nie poradzi sobie z tym zadaniem. Aplikacja działała poprawnie aż do migracji na platformę .NET 4.0 Czemu? O tym właśnie będzie post. Zwrócę w nim uwagę na dość istotną różnicę pomiędzy platformą .NET 4.0, a jej wcześniejszymi wersjami jeśli chodzi o wspomniane zdarzenie. Różnica ta, w określonych warunkach, może napsuć krwi.
Ten typ błędu może wskazywać, że zapomnieliśmy dodać do naszego projektu referencji do assembly Microsoft.SqlServer.Types . Ja upewniłem się, że takowe posiadam, poza tym w opcjach oznaczyłem aby podczas buildu zapisywało się do output directory czyli do bin’a. Jednak się myliłem! Okazało się, że...
Bazy danych i XML 4823 dni, 10 godzin, 52 minuty temu 52 źrodło rozwiń
Od ostatniej części tutoriala WPF, poświęconej tworzeniu prostego kalkulatora minęło już kilka tygodni, więc czas najwyższy na nową część. Dziś zajmiemy się zagadnieniem niezwykle ważnym z punktu widzenia wykorzystania własnych danych w połączeniu z interfejsem graficznym. Mowa oczywiście o bindowaniu, czyli wiązaniu danych wyświetlanych w kontrolkach, a pochodzących np. z naszych własnych obiektów, właściwości, bazy danych etc.
Witajcie w trzeciej części tutoriala do WPF. W dwóch poprzednich wpisach (WPF Tutorial - wprowadzenie oraz WPF Tutorial - obsługa kontrolek), powiedzieliśmy sobie m.in o: WPFie ogółem Języku znaczników XAML Podstawowych właściwościach WPF Kontrolkach Ponieważ wiemy już całkiem sporo, to czas dowiedzieć się, czy z tych informacji można zrobić jakiś sensowny użytek, np. budując prosty, tytułowy kalkulator:) Jeśli zatem chcecie wykorzystać zgromadzoną dotychczas wiedzę, do zbudowania czegoś praktycznego...
Architektura 4907 dni, 22 godziny, 48 minut temu 361 źrodło rozwiń
W poprzedniej i zarazem pierwszej części tutoriala do WPF, powiedzieliśmy sobie co nieco na temat samego WPF, zawartego w nim języka XAML oraz menadżerów układów. Dziś przyszła kolej na kontrolki, bez których w GUI, nie było prawdopodobnie by niczego. Co należy rozumieć jako kontrolkę? Są to wszystkie buttony, gridy, listy, comboboxy itp. itd. Każda z kontrolek, posiada pewien wspólny zestaw właściwości, które bierze się z reguł dziedziczenia zawartych w WPFie (patrz akapit o drzewach). Oprócz tego, kon...
Do grona rzeczy, które wyróżniają aplikację, już na pierwszy rzut oka, najczęściej z pewnością możemy zaliczyć jej GUI, czyli innymi słowy wartstwę prezentacji. W .Necie, praktycznie od zawsze, GUI tworzyło się za pomocą dość wygodnych Windows Forms, które za pomocą metody Drag & Drop (Przeciągnij i upuść) pozwalały na szybkie tworzenie wizualnego obszaru naszej aplikacji, często bez napisania nawet jednej linijki kodu. Istotą takiego podejścia, było użycie absolutnego pozycjonowania elementów, względem ...
Kilka miesięcy temu, we wpisie związanym ze tworzeniem stron, jeszcze w ASP.NET MVC 2, otarłem się delikatnie o zagadnienie reguł routingu w ASP.NET MVC. Generalnie, jest to dość istotne zagadnienie, dlatego warto zapoznać się z nim trochę szerzej, Tym bardziej, że wpływa ono w sposób znaczący zarówno na przepływ danych jak i ruch użytkowników naszej witryny.
Coraz częściej w projektach zaczynam używać LINQ i zaczynam dostrzegać zalety. Nie dość, że można w ten sposób trochę pisania kodu oraz zyskać na przejrzystości. Poniżej zamieszczę parę przykładów, w których pomału przerzucam się na LINQ.
W trakcie rozwijania algorytmów na potrzeby pracy magisterskiej pojawiło się zapotrzebowanie na zdecydowane przyspieszenie jednego z nich. Algorytm polegał na liczeniu pewnych własności dla każdego punktu regularnej siatki. Zrównoleglenie było naturalnym rozwiązaniem, ponieważ elementy nie zależały od siebie nawzajem. Zdecydowałem się na użycie Parallel Extensions (Wiki, MSDN) ze względu na prostotę. Przedstawię szkielet rozwiązania, które może zostać zastosowane pr...
Gdy zaczynałem zabawę z DirectX w F# natknąłem się na dość dziwne zachowanie Visual Studio 2010. Po przepisaniu prostego przykładziku do F# zapragnąłem ujrzeć owoc swojej ciężkiej pracy, więc nie zwlekając wcisnąłem F5. Niestety, skutek okazał się całkowicie niezgodny z oczekiwaniami – debuger posłusznie wstał, jednak żadne okno aplikacji nie pojawiło się. Zacząłem poszukiwać błędu w napisanym kodzie – jednak to nie był ten problem. Break dla wszystkich wyjątków również nie pomógł. Aplikacja w ogóle się...
Jak pozbyć się wyjątku Common Language Runtime detected an invalid program. przy emitowaniu assembly
„Mamy aplikację napisaną dla .NET 2.0, która obsługuje wtyczki (plugin'y). Chcemy opracować dla niej wtyczkę, oferującą nową funkcjonalność. Z jakiegoś powodu (np. z wygody lub lepszych rozwiązań technicznych) wtyczkę chcielibyśmy przygotować w .NET 4.0. Czy nam się to uda?” Zobaczmy przykład.
Autor: Zainstalowałem właśnie sobie VS2010EE, głównie po to, żeby pobawić się trochę nowościami z C# 4.0 któremu dedykuje tą notkę Nie będę nikogo oszukiwał, nie będzie tutaj wybitnie zaawansowanych rzeczy, ot takie krótkie podsumowanie tego co się pierwsze nawinęło ;-> Named & Optional Parametrs - co można tłumaczyć jako, opcjonalne(domyślne) parametry, oraz parametry nazwane. Osobiście trochę mi brakowało parametrów domyślnych, ale ‘named’ to jest faktycznie, ficzer, ale może być całkiem przydatny...
W centrali ogłoszono ukończenie prac nad Visual Studio 2010 i .NET 4.0. Wersja RTM już jest, wersje próbne są do pobrania tutaj: http://www.microsoft.com/visualstudio/en-us/download Nic mi nie wiadomo na temat Expressów, nie są jeszcze dostępne w wersji finalnej. Pewnie ma to związek z ogłoszeniem na MIX10 wersji Express wspierającej Windows Phone, trudno powiedzieć. Natomiast co mnie miło zaskoczyło, development Silverlight idzie do przodu szybciej niż sam za...