W jednym z ostatnich postów przedstawiłem swoje wrażenia z pracy z VirtualPC. Dzisiaj czas na...
Virtual Box from Sun Microsystems
Plusy
VirtualBox ma dwie główne zalety: jest darmowy jak VPC oraz nie posiada jego największych wad. Tak więc możemy na nim zainstalować wybrany przez siebie system niezależnie od tego czy chcemy mieć 32 czy 64 bity. Dla mnie, z powodu Win2008R2 (64bit-only) było to być albo nie być dla platformy wirtualizacyjnej. Dodatkowo nie ma problemu z przydzie...
[More]
Zapisy do konkursu "Daj się poznać" zostały oficjalnie zakończone. Lista uczestników, planowana początkowo na 5-6, MAKSYMALNIE 15 pozycji, zawiera aż... 79 projektów! Tak ogromna liczba zgłoszeń niesamowicie mnie zaskoczyła (i, nie ma co ukrywać, uradowała). Odnotowuję to jako wielki sukces. Bez żadnej kampanii marketingowej, bez medialnego wsparcia wielkich korporacji oraz bez (mimo wszystko) przesadnego wysiłku udało się zebrać tak imponującą grupę. Przecież nawet w tak promowany...
[More]
Jeszcze przed założeniem własnej działalności i przeniesieniem wszelkich operacji związanych z programowaniem na własną maszynę, do własnego gniazda, nieśmiało i powoli badałem przydatność wirtualizacji dla programisty. Z badań owych wyniknął wniosek bardzo jasny - wirtualizacja to dla mnie rozwiązanie IDEALNE i bez niego nie bardzo wyobrażam sobie pracę. Szczególnie jako pseudo-freelancer jakim jestem teraz, gdy zdarza mi się pracować nad więcej niż jednym projektem jednocześnie.
Temat ...
[More]
Kolejny "kliento-walidacyjno-mvcowy post". Tym razem zmagałem się z niedziałającą walidacją po wpięciu w DOM HTMLa zwróconego z serwera. Akcja kontrolera kończyła się instrukcją:
1: return PartialView(viewName, model)
, a wstawianie w odpowiednie miejsce po stronie klienta odbywało się poprzez wywołanie jQuery.html(). Zdziwienie moje było o tyle duże, że kawałek DOMu uzyskiwany przez przeglądarkę najwyraźniej zawierał skrypt odpowiedzialny za walidację (inspected by Fir...
[More]
Nie dalej jak kilka godzin temu ogłosiłem oficjalny start konkursu, a już mam przyjemność podać kolejnego bardzo miłego newsa. Dzięki uprzejmości Jakuba "Gutka" Gutkowskiego do puli nagród dołącza druga "nagroda główna", czyli MSDN Ultimate. Widzieliście wcześniej konkurs z DWOMA pierwszymi miejscami? ;) Dzięki Gutek!
Mam nadzieję, że jeszcze bardziej podniesie to motywację wśród aktualnych uczestników oraz - kto wie? - przekona dodatkowo jakąś Nike (która się...
[More]
Oto oczekiwana chwila: czas oficjalnie rozpocząć konkurs Daj się poznać! Na stronie uczestników opublikowałem właśnie listę zgłoszonych dotychczas projektów, więc... uczestników zaganiam do roboty;) a obserwatorów zachęcam do śledzenia ich poczynań. Od razu przyznam, że zainteresowanie przeszło moje najśmielsze oczekiwania. Obawiałem się, że nie zgłoszą się nawet trzy osoby. Za sukces uznałbym pięciu uczestników, a tu... aż 22 projektów na linii startowe...
[More]
W .NET 4.0 dodano nowe metody TimeSpan.ToString() dające możliwość formatowania czasu podczas wyświetlania. No i fajnie, ale co jeśli póki co utknęliśmy we wcześniejszych wersjach frameworka? Ja w dużej mierze nadal korzystam z 3.5, a po prostu CHCĘ mieć możliwość napisania:
1: string formatted = span.Format("HH:mm:ss");
Co tam owijać w bawełnę... mam:). Pod spodem siedzi sobie extension method:
1: public static string Format(this TimeSpan that, string format)
2: {
...
[More]
Szkoda, że w C# nie ma znanych z Javy anonimowych klas. Nie mylić z anonimowymi typami, które nie pozwalają na implementację metod! W internecie jest wiele skarg i próśb próbujących wymusić na Microsofcie dodania tego, jakże wygodnego, ficzera do naszego języka.
Powstaje jednak pytanie: gdzie tak naprawdę byśmy owych klas używali? Jedna odpowiedź szczególnie regularnie przewija się przez praktycznie każdy wątek o tej tematyce: do zaimplementowania inline interfejsu I...
[More]
Tym razem do wora trafiły bardzo interesujące książki ufundowane przez firmę DevCore.NET z Białegostoku. Po szczegóły odsyłam na stronę konkursu, a niezdecydowanych zachęcam do wzięcia udziału. Jednego możecie być pewni: kolejne niespodzianki (a przynajmniej jedna;) ) w drodze.
Utworzenie własnego atrybutu walidacji danych jest w ASP.NET MVC niezwykle banalne, szczególnie jeśli dziedziczymy z jakiegoś już istniejącego. Dla przykładu takie cacko pozwoli na wprowadzenie jedynie wartości czasu:
1: public class TimeSpanFormatAttribute : RegularExpressionAttribute
2: {
3: public TimeSpanFormatAttribute()
4: : base(@"^\d{2}:\d{2}:\d{2}$")
5: {
6: this.ErrorMessage = "Expected time in format HH:MM:SS";
7:
8: }
9: }
Wys...
[More]
Od momentu ogłoszenia konkursu dostałem od Was sporo pytań. Zebrałem więc je w jeden dokument wyjaśniający, mam nadzieję, większość niejasnych do tej pory kwestii.
NIe jest to co prawda prawdziwe FAQ, ponieważ znaczna część pytań została zadana jeden raz, ale skoro już tak się przyjęło...
Zapraszam zatem do zapoznania się z FAQ konkursu "Daj się poznać".
Od wczorajszego ogłoszenia konkursu otrzymałem wsparcie od kolejnych sponsorów. Zachęcam do zapoznania się z uaktualnioną listą nagród.
Dodatkowo firma VisualSVN zaoferuje przedłużoną licencję próbną swojego produktu dla każdego uczestnika, który wyrazi takie zapotrzebowanie. Tak więc jeśli się zgłosisz i zdecydujesz na SVN to zachęcam do skorzystania z okazji - zintegruj SVNa z VS na cały czas trwania konkursu:).
Zapraszam do udziału w organizowanym przeze mnie konkursie "Daj się poznać". Wystarczy odrobina chęci i zaangażowania, aby wygrać znakomite nagrody, stać się rozpoznawalnym i zdobyć uznanie wśród polskich społeczności programistycznych.
Po szczegóły odsyłam na stronę konkursu.
Wszelkie uwagi przyjmuję zarówno w komentarzach do tego posta jak i przez stronę kontaktową.
Automatycznie generowane walidatory client-side w ASP.NET są spoko - minimalnym nakładem pracy (dodanie atrybutu Required, StringLength, RegularExpression itd na właściwości modelu oraz jednolinijkowej instrukcji <% Html.EnableClientValidation(); %> w widoku) otrzymujemy informacje o błędnych danych bez wycieczki na serwer. Co jednak w przypadku, gdy chcemy sami obsłużyć/zablokować wysyłanie danych na serwer? Sporo się naszukałem, zanim udało mi się znaleźć sposób na sprawdzenie pop...
[More]
Uważasz, że im więcej masz testów (jednostkowych, integracyjnych, jakich-tam-jeszcze-chcesz) tym lepszy jest twój kod? I bardziej niezawodny system tworzysz? Też tak myślałem... kiedyś. Sama ILOŚĆ kodu testującego o niczym jednak nie świadczy.
Dzisiaj cytat potwierdzający mój zwrot w poglądach na tą sprawę:
Writing code in a testing namespace doesn’t count much in the way of testability
Źródło: Udi Dahan
Wczoraj na stronie http://software.com.pl/ pojawił się artykuł mojego autorstwa: "Certyfikaty programistyczne – czy warto?". Jest to trochę "ugrzeczniona":) wersja posta "Kilka zdań o certyfikatach MS".
Zapraszam do lektury.
O Fluent Interface ("płynnym interfejsie"?:) ) jest od jakiegoś czasu dość głośno w światku .NET. Stał się... trendy. Implementują go właściwie wszystkie kontenery IoC, można za jego pomocą skonfigurować NHibernate, coraz więcej innych projektów udostępnia swoje API w ten sposób. Ale dlaczego, czy jest to naprawdę tak fajne? Moim zdaniem: TAK. Fluent Interface jest nawet czymś więcej niż "fajnym bajerem" - pozwala naprawdę bardzo uprościć pracę z naszą biblioteką.
Weźmy na przykła...
[More]
Automatyzacja w procesie tworzenia oprogramowania jest często-gęsto traktowana po macoszemu, O tej konkretnie materiii planuję napisać wkrótce trochę więcej w osobnej notce. Dziś przykład skryptów, które mogą znacznie przyspieszyć proces tworzenia aplikacji ciągnącej dane z MySQL.
Sam kiedyś pracowałem z bazą (a raczej jej strukturą) trzymając po prostu w repozytorium pliki bazy. Przy wdrażaniu aplikacji na serwer produkcyjny generowało się skrypt z Management Studio i uruc...
[More]
Miałem ostatnio okazję tworzyć małą aplikacyjkę korzystającą z Entity Framework jako technologii dostępu do danych przechowywanych z MySQL. Miało być banalnie: ściągamy oficjalny "konektor" (link), instalujemy i wszystko śmiga jak pszczółka maja na polanie pełnej bzu.
Oczywiście gdyby tak było to pisanie tego posta nie miałoby sensu:). Dwa problemy, w kolejności występowania:
Integracja z Visual Studio 2010
Ku swojej radości znalazłem informację, że wraz z którąś-tam wersją conn...
[More]
Tyle się mówi o obowiązku ciągłego rozwoju w zawodzie programisty. "Przynajmniej jeden nowy język w roku!" "Przynajmniej jeden nowy framework na kwartał!" "Przynajmniej jedna książka techniczna na miesiąc!" Znacie te zawołania?
Wiecie co... nie do końca widzę w tym sens. Na pewno nie zamierzam twierdzić, że taki sposób zagospodarowania wolnego czasu jest zły - bo nie jest - ale na mnie takie podejście po prostu NIE DZIAŁA. Co z tego że rok temu przeczytałem od deski do deski książ...
[More]