Wyrażenia regularne pozwalają sprawdzić, czy ciąg znaków pasuje do pewnego wzorca, co przydatne jest chociażby przy sprawdzaniu danych wejściowych, wyciąganiu informacji z tekstu, czy do ich podmiany. Zapisywany wzorzec jest ciągiem znaków, który musi spełniać pewne wymagania, a użyte symbole i operatory mają określone znaczenie, często zależne od kontekstu. Najczęściej wykorzystywane to:
Wczoraj odbyła się prezentacja na temat LINQ. Starałem się pokazać podstawy posługiwania się tym bardzo fajnym narzędziem. Tak jak obiecałem wrzucam prezentację oraz kod, który pisałem. Aby poprawnie działało LINQ to SQL musicie stworzyc sobie prostą baze i wrzucić do pliku Mapa.dbml tak jak to robiłem wczoraj. Kod w kilku ważniejszych miejscach pokomentowałem także można go sobie na spokojnie przeanalizować :) Dzięki za przybycie! :)
Można użyć wielu klas Stream do zapisu i odczytu plików. .NET Framework dostarcza nam specjalne klasy do zapisu plików tekstowych, plików binarnych czy też do kompresji danych i przechowywania ich w pamięci. W dzisiejszym artykule przyjrzymy się temu tematowi w mniej lub bardziej szczegółowy sposób.Odczyt i zapis pliku tekstowego Do odczytu pliku tekstowego możemy użyć klasy TextReader lub StreamReader. Przykłady ich użycia (zaczerpnięte z training kit’a bo jak wiecie nie lubie wymyślać sztucznych tworów...
Czasami zdarza się, że jesteśmy świadomi istnienia jakiejś funkcjonalności, jednak wredny twórca biblioteki bezwstydnie ją przed nami ukrył. A my ją odkryliśmy na przykład przy pomocy Reflectora.
Wraz z pojawianiem się kolejnych wersji .NET do świata programistów wchodziło coraz większe zamieszanie. Co oznacza każdy następny numerek, jakie zmiany wnosi, jak się owe zmiany mają do poprzedników? Przykładowy fakt, że piszemy program używając Visual Studio 2008 w języku C# 3.0 i korzystając jednoczeście z bibliotek w wersjach 2.0, 3.0 i 3.5, a o jego poprawne działanie dba CLR w wersji 2.0.50727 może nieźle namieszać. Szczególnie u początkujących developerów.
Na temat Beginner's All Purpose Symbolic Instruction Code Edsger Dijkstra miał to do powiedzenia: Nauczenie studentów dobrego stylu programowania jest praktycznie niemożliwe, jeśli byli oni wcześniej wystawieni na szkodliwe działanie BASICa; jako potencjalni programiści są umysłowo okaleczeni bez nadziei na regenerację. Jestem pewien, że wyolbrzymiał dla efektu; o ile podziwiam jego refera...
Czy zastanawialiście się kiedyś jak działa słowo kluczowe yield? Jeśli ktoś nie kojarzy tej konstrukcji to w telegraficznym skrócie pozwala ona (między innymi) w bardzo łatwy sposób zaimplementować interfejs IEnumerable. Interfejs ten wymagana dostarczenia tylko jednej metody, która powinna zwrócić instancję klasy implementującej IEnumerator. Zaimplementowanie tego interfejsu nie powinno przysporzyć znacznych trudności ale wymaga już trochę większego nakładu pracy. Przykładowe, uproszczone użycie yield ...
Ostatnio pomogłem rozwiązać dwa problemy z "nie działającymi" zdarzeniami. Jak to najczęściej bywa, znając rozwiązanie, problem wydaje się banalnie prosty. Ponieważ jednak dojście do rozwiązania nie zawsze jest już tak proste postanowiłem napisać ten post. Ogólnie problem został mi przedstawiony mniej więcej w taki sposób (luźny cytat): Podczepiłem się pod zdarzenia kilku kontrolek ale po wykonaniu post back'a do strony, metody obsługi zdarzeń nie są wołane. W obu wspomnianych sytuacjach obserwowany e...
Ostatnio zainteresowałem się modelowanie procesów biznesowych. Spodziewałem się istnienie kilku standardów ale rzeczywistość naprawdę nie zaskoczyła. Świat BPM okazał się naprawdę bogaty. Sądzę, że porównanie do dżungli będzie nawet bardziej odpowiednie. Mamy więc: BPDM, BPEL4WS, BPML, BPMN, UML Activity Diagram, WSFL, XLANG, XDPL i sporo więcej. W poście tym chciałbym troszeczkę usystematyzować ten bałagan i wyjaśnić jak jak to rozumiem. Wstęp Zacznijmy od tego, że w procesie BPM należy wyróżnić dwa ...
Po trzech artykułach nt. MVP czas przyszedł na cześć ostatnią. Gdyby ktoś nie pamiętał zacząłem od omawiania podstaw, potem przeszedłem do usprawnienia widoków a następnie do zdarzeń i walidacji...
Jakiś czas temu napisałem o konkursie na crackme dla .net zorganizowanym przez Krakowska Grupa Developerów .NET, dzisiaj z ciekawości tam zajrzałem i zobaczyłem, że jest tylko 1 rozwiązanie, więc postanowiłem zadziałać...
O tym jak bardzo należy uważać i dlaczego przed ostatecznym wypuszczeniem produktu do klienta trzeba wszystko sprawdzić 10 razy, przekonał się niecały miesiąc temu brytyjski oddział Microsoft...
Ostatnio zacząłem eksperymentować z szyfrowaniem na platformie .NET. Pierwszym celem jaki sobie postawiłem było przekształcenie tekstu do postaci zaszyfrowanej...
Podczas pisania komponentu w C# napotkałem na niewielki problem. Otóż chciałem wyświetlać stronę html, której źródło znajdowało się w pliku .html . Niestety same z tym problemy...
Jeżeli w codebehind zmienimy właściwość 'Enabled' kontrolki CheckBox na false to w clientcode zmiana właściwości 'disabled' tej kontrolki na true nie działa, dotyczy tyko IE i kontrolki CheckBox (inne kontrolki np. TextBox działają prawidłowo, w FireFox wszystko działa ok)...
Przestrzenie nazw (ang. namespace) służą do organizacji typów (klas, wyliczeń, struktur) w logiczne całości...
Język C# daje nam możliwość zamiany zmiennej typu prostego na obiekt i vice versa. Obie konwersje są realizowane za pomocą opakowywania (ang. boxing) i odpakowywania (ang. unboxing)...
Jakiś czas temu ukazała się wersja 2.0 projektu Phalanger – kompilatora PHP dla platformy .NET. Wprawdzie już o niej pisałem, ale tylko jako wzmiankę o nowej wersji. Teraz przyrzyjmy się co możemy zrobić ciekawego w obecnej wersji...
Zgodnie z wcześniejszymi zapowiedziami nadal kontynuowane są prace nad upublicznieniem kodu źródłowego .NET Micro Framework na zasadach standardowej licencji open source. Po tej zmianie każdy będzie mógł bezpłatnie pobrać kod .NET ...
Czasami przychodzi moment kiedy chcielibyśmy kompilować nasz projekt poza środowiskiem graficznym VS. Powodów wyklarowania się takiej potrzeby może być sporo...