ASP MVC 3 jest w dużej części spoko - znajdą się elementy bardzo irytujące, ale ogólnie mogę powiedzieć że jestem z pracy z tym frameworkiem raczej zadowolony. Denerwuje mnie jednak to, że pracując nad jedną daną akcją w jakimś kontrolerze muszę śmigać po kilku plikach: plik kontrolera plik z routingiem plik z modelem parametru akcji plik z modelem zwracanym przez akcję plik z mapowaniami AutoMappera plik widoku .cshtml plik skryptów .js ... o czymś zapomniałem? ...
[More]
Niejedną już umowę w swoim "wolnostrzelcowym" życiu podpisałem... i właściwie ani razu nie była ona taka jak być powinna. Co prawda za każdym razem następuje pewien postęp, jednak mimo to zawsze w praniu okazuje się, że jednak o czymś - ja lub Klient - nie pomyśleliśmy. Nie wynikało to bynajmniej z chęci jednej strony do oskubania drugiej strony, co raczej z braku doświadczenia lub zbyt nieformalnego podejścia do bardzo ważnych kwestii. Postaram się tutaj zebrać garść porad wyniesiony...
[More]
Kilka dni temu udostępniona została beta nowej, całkowicie świeżej i dziewiczo rumianej wersji portalu CodeGuru.pl, z którym (jak pewnie wielu z Was) jestem związany duchowo, a czasem i fizycznie:). Zachęcam do zapoznania się z tym co można już poklikać (niestety jeszcze nie ma modułu forum). Wchodźcie więc, zapoznajcie się i zgłaszajcie swoje uwagi czy zauważone błędy - jeszcze jest czas, aby zostały poprawione/wdrożone przed uruchomieniem finalnej wersji portalu! Kilka linków: beta CG ...
[More]
Na studiach wpaja się nam zasady programowania obiektowego. Niestety, bardzo często osoby wpajające tą wiedzę mają zerowe doświadczenie w praktycznym jej wykorzystaniu. Mówią coś, bo to samo im kiedyś powiedziano, i tak dalej i tak dalej. Jedną z nieodłącznych cech obiektowości jest oczywiście dziedziczenie. Ileż to razy trzeba było rysować na zajęciach diagramy UML z durną przykładową hierarchią "animal -> mammal -> monkey" czy "vehicle -> engine vehicle -> car"....
[More]
Ostatnim razem rozpisałem się na temat serializacji WSZYSTKIEGO, nawet interfejsów, do JSONa i możliwością ich deserializacji do odpowiednich klas. Bardzo szybko pojawił się jednak problem: przedstawiony przeze mnie sposób wypluwa z siebie informacje nie tylko o źródłowym typie, ale także o dllce z której ów typ pochodzi. W wielu przypadkach może być to działanie pożądane, jednak u mnie kluczowym aspektem całej sprawy była "przenaszalność" zserializowanych akcji pomiędzy wersjami oprog...
[More]
Musiałem ostatnio serializować (no i oczywiście deserializować) kolekcje obiektów z hierarchii wyglądające na przykład tak: 1: public interface IExecutableAction
2: {
3:
4: }
5:
6: public class ReduceValue : IExecutableAction
7: {
8: public decimal ReduceBy;
9:
10: public ReduceValue()
11: {
12:
13: }
14:
15: public ReduceValue(decimal reduceBy)
16: {
17: ReduceBy = reduceBy;
18: }
1...
[More]
Standardowo jeśli chcemy przekazać w URLu tablicę w MVC to wysyłamy po prostu wiele wartości o tej samej nazwie, np ?array=1&array=2&array=3. Może się jednak zdarzyć, że przydałoby się to jakoś "skompaktować", na przykład do takiej postaci: ?array=1,2,3. Co wtedy? Da się to osiągnąć w dość prosty sposób implementując własny ModelBinder: 1: public class CommaSeparatedIntArrayModelBinder : IModelBinder
2: {
3: public object BindModel(ControllerContext controller...
[More]
Aplikacja, którą tworzę, w pewnych cyrkumstancjach wymaga odblokowanych popupów. Postępowanie nasuwa się samo - trzeba wykryć czy popupy są odblokowane i pokazać jakieś ostrzeżenie, jeśli nie są. Myślałem, że będzie to kwadrans roboty... No i faktycznie byłby to kwadrans, jeśli nie odpaliłbym więcej niż jednej przeglądarki. Jak to w świecie webdev bywa, to samo raz działa tak, a raz srak, w zależności od tego co jest naszym oknem na świat. Poniżej efekt ponad dwóch godzin prób i błędów, który ...
[More]
Aż dziw bierze, że od ponad dwóch latam param się freelancingiem, a jak ktoś pyta "gdzie mogę zobaczyć efekt twojej pracy?" - jestem zmuszony odpowiedzieć "nigdzie, zią". Tak to jednak bywa, gdy pracuje się głównie nad jednym projektem (ciągle w fazie rozwoju) albo przy zleceniach na systemy "wewnętrzne". Na szczęście niedawno uległo to zmianie i kilka tygodni temu zakończyłem pracę nad pierwszym publicznie dostępnym portalem mojego wykonania (moim zadaniem była imp...
[More]
Na samo wspomnienie pracy z TFS mam nieprzyjemne ciary na plecach. I jak codziennie widzę kilka/kilkanaście wpisów na Twitterze rzygających na to paskudne narzędzie gorącą nienawiścią, pokłon Bozi składam że nie muszę się z tym już użerać. Na myśl przychodzi mi wówczas tekst z najlepszej płyty jaką kiedykolwiek wydano... bo słowa te mogłyby być taglinem dla TFSa: When you are suffering, know that I have betrayed you Źródło: Marilyn Manson, "Antichrist Superstar"