W poprzednim poście pokazałem prostą aplikację z wykorzystaniem Caliburn.Micro. Teraz chciałem pokazać bardziej zaawansowane (ale tylko trochę) sposoby bindowania.Bindowanie bezpośrednio do obiektu W przykładzie, który został pokazany uzupełniając dane w textboxach przypisujemy te dane do odpowiedniej property w klasie. Fragment dla przypomnienia public string LastName { get { return _person.LastName; } set { _person.LastName = value; NotifyOfPropertyChange("Last...
Dzisiaj na ruszt wrzucimy integrację z systemem automatycznych płatności transferuj.pl. Sprawa wydaje się nie być trudna, ale spędziłem za pierwszym razem nad tym trochę czasu zanim wszystko odpowiednio skonfigurowałem, a w Internecie na ten temat materiałów brak. Dokumentacja do integracji jest i to jest dobra, jednak co na chłopski rozum opisane to łatwiej zrozumieć.
Sztuka programowania 3744 dni, 3 godziny, 17 minut temu 285 źrodło rozwiń
Pod koniec poprzedniego postu na temat MVVM wspomniałem o Caliburn.Micro jako narzędziu, które czyni moją pracę lżejszą. Dla tych, którzy nie wiedzą jest to framework wspomagający w tworzeniu aplikacji opartej o wzorzec MVVM. Jeśli ktoś zastanawia się dlaczego od razu nie wspomniałem o tym frameworku i poprzedni przykład robiłem bez jego użycia to moja odpowiedź jest prosta (i poparta gorzkim doświadczeniem). Otóż robiąc coś zaawansowanego musimy mieć świadomość mechanizmów za tym stojących inaczej...
Today, working on a new feature for my pet project, I realized that I have to notify the view, that all properties in view model have changed. The most obvious way to achieve that would, of course be to rise PropertyChange event a bunch of times. protected virtual void OnPropertyChanged(Expression
Ile razy mieliście tak „Hej, komputer/drukarka/myszka/klawiatura/monitor/telewizor/radio/suszarka (niepotrzebne skreślić) nie działa! Zrób coś z tym!”, mówicie, kurde nie za bardzo wiem o co chodzi, nie znam się akurat na tym… A w odpowiedzi dostajecie „No jak to? Przecież jesteś INFORMATYKIEM!”.
W poprzednim poście opisałem (bardzo ogólnie) dlaczego już nie lubię WinForms i dlaczego używam WPF. Przez używanie WPFa mam na myśli WPF+MVVM ponieważ szczerze mówiąc to uważam, że stosowanie WPFa bez MVVMa to strata czasu, ale to tylko moje zdanie (jak większość opinii wyrażona na tym blogu). Czym więc jest ten cały MVVM? Otóż jest to ni mniej ni więcej wzorzec projektowy. Na początek trochę teorii (niestety bez niej się nie da).Model Obiekty biznesowe, serwisy i wszystko to co jest związane z ...
Skomplikowane aplikacje mogą wymagać skomplikowanego kodu. Jeżeli jego złożoność wynika ze złożoności modelowanego problemu to wszystko jest ok. Gorzej, jeżeli złożoność kodu wynika ze… złożoności kodu. W takim przypadku mówimy o złożoności przypadkowej.
Architektura 3752 dni, 4 godziny, 26 minut temu 311 źrodło rozwiń
Pomimo tego, że fanem Google Chrome nie jestem to przeglądarka Chrome Canary posiada funkcję z której ostatnio korzystam dość intensywnie – emulator urządzeń mobilnych, który jest niezastąpiony w momencie gdy projektujemy aplikację również pod tablety czy telefony.
Jestem geekiem(a może nerdem?) jeśli chodzi o nowe technologię. Po prostu je uwielbiam, ale mimo tego nie mogłem przekonać się do jednego (i to w cale nie do takiej nowości). Nie mogłem przekonać się do laptopa. Po prostu pogardzałem takim sprzętem. Liczyła się dla mnie tylko stacjonarka wraz z jej nieposkromioną (do czasu) mocą. Aż pewnego dnia coś we mnie pękło: Muszę kupić sobie laptopa Wzbraniałem się przed tym długi czas, ale w końcu nie wytrzymałem. Jadę do domu na święta a muszę mieć dost...
Chciałem Wam dzisiaj przedstawić fajną bibliotekę dla .net opartą na wkhtmltopdf do generowania dokumentów PDF z kodu HTML. Bardzo długo szukałem optymalnego dla mnie rozwiązania, aż w końcu trafiłem właśnie na Rotativę. Próbowałem wielu rozwiązań, ale każde miało swoje wady. Długi czas próbowałem walczyć z iTextSharp, ale składnia dokumentu PDF była mocno odpychająca, a licencja nie była zachęcająca. Później trafiłem właśnie na wkhtmltopdf, ale i ta biblioteka miała dwie zasadnicze wady, które mnie znie...
Fajną sprawą jest wstawić link dla elementów w autocomplete np. jeżeli wykorzystuje się je w wyszukiwarce.
Everyone who has ever tried to create multilingual application knows, that this is very tedious task. The most repetitive work is usually moving hard-coded strings to resource files. Fortunately with Resharper this is definitelly less painfull than usuall. In order to point out localizable parts of application , it is necessary to decorate classes with System.ComponentModel.LocalizableAttribute. However, usually we want to localize an entire program, so more universal solution is to set appropria...
To make this review complete, I’m providing solution with examples of all mechanisms usage, it can be found at my GitHub: https://github.com/szabl/AspNetViewsCodeReuseExamples OverviewMethodBrief descriptionUsageHTML HelpersC#/VB.NET methods returning html as a stringBest suits view elements, where quite a lot of logic is necessary to generate short HTML. Rather not good for elements specific to a specific view.Display/Editor TemplateView file used as a template for displaying or editing given data type....
Sztuka programowania 3752 dni, 4 godziny, 26 minut temu 118 źrodło rozwiń
Od pewnego czasu wszystkie nowe aplikację okienkowe tworzę w WPFie. Próba napisania czegoś w Winformsach sprawia mi ból. A przecież gdy zaczynałem to Winformsy były moją pierwotną technologią (bo php litościwie pomine). To właśnie WinFormsy wraz z prostotą C# (o naiwności!) były przyczyną mojego zainteresowania platformą .net. Pamiętam jak przez mgłę mój pierwszy projekt w WinFormsach. Jakieś matematyczne obliczenia (średnia, mediana itp.), ale istotny był graficzny interfejs (jego brak powodował ...
Ponieważ popełniłem kiedyś coś co nazwałem Fody ciekawa ptaszyna – część 1 to w związku z tym należało zrobić coś co nazywa się Fody cz2 co też obecnie czynie. Fody ma wiele pakietów, ale opiszę teraz tylko te wybrane z których kiedyś korzystałem (lub widziałem sens ich zastosowania). Tworząc aplikacje okienkowe musimy również przemyśleć sposób ich dystrybucji. Należy go dostosować do poziomu zaawansowania klienta oraz do nakładów pracy związanych z danym sposobem. Pisząc dużą aplikację wymaga...
gosia Konferencja ITCampRO rozpoczęła się 22 maja o godzinie 9 rano. Tuż po śniadaniu było można zobaczyć, że ponad 400 osób zarejestrowanych piło kawę, jadło przekąski i rozmawiało w języku którego nie rozumiem. Na szczęście prawie wszystkie sesje były w języku angielskim. W tym roku w porównaniu do poprzedniego było więcej sesji technicznych na poziomie 300 i była to 4 edycja, na którą zaproszone zostały osoby nie tylko z Rumunii, ale również z innych zakątków świata, takich jak Ameryka, Anglia, Włoc...
Why does it happen? Why do we limit ourselves to relational databases only? Of course, there exists a set of situations in which relational databases are the best tool for the job, but – conversely – there exists a set of situations where relational database is a very inferior tool. Each type of tool has its purpose, limitations, and applications in which the tool will be the best. The important thing is not to look at the application from the point of view of a database only. We need to look at the ap...
Bazy danych i XML 3754 dni, 21 godzin, 28 minut temu 95 źrodło rozwiń
A short while ago I had a task that required generating excel documents (xls) with special OLE objects. Checkboxes, to be precise.Problem overview The functionality was fairly simple. User generated a password protected excel document with some empty fields to be filled by somebody else. The document was handled over to another user who filled in the mandatory and optional fields. Marked some check boxes and send back. As the final step the document was processe...
Sztuka programowania 3754 dni, 21 godzin, 28 minut temu 90 źrodło rozwiń
W poprzednim wpisie na temat testowania kodu JavaScript, przedstawiłem trzy najpopularniejsze frameworki służące do tego celu – QUnit, Mocha oraz Jasmine. Napisałem też baaardzo pokrótce na czym generalnie polega testowanie JavaScript. Myślę jednak, że to zdecydowanie za mało… Postanowiłem więc trochę zgłębić temat na łamach bloga, tak żebyśmy wszyscy się mogli czegoś nowego nauczyć Całkiem subiektywnie, na warsztat wybrałem Jasmine. Podoba mi się składnia ...
Jak zdefiniować rozwój zawodowy? Rozwój zawodowy to proces zwiększania zakresu swojej wiedzy w czasie. Niby dobrze, ale jak to rozumieć? Może najprościej jak się da: każdego dnia uczymy się X nowych metod ( z danej klasy Frameworka etc.). I jeśli mówimy o początkach kariery zawodowej to jest to z pewnością prawda. Tylko, że jeśli z biegiem czasu dalej będziemy tak rozumieć rozwój to chyba coś z nami jest nie do końca w porządku. Chociaż to za dużo powiedziane. Może lepiej zabrzmi, że taka ścieżka r...
Architektura 3759 dni, 2 godziny, 42 minuty temu 563 źrodło rozwiń