33. spotkanie WG.NET

Studia mi nie służą (czy już o tym wspominałem?:)), ale tym razem udało mi się nie opuścić 33. spotkania – i bardzo dobrze! :)

Było to spotkanie łączone razem z PLSSUG także pierwsza sesja była dotnetowa, a druga sikłelowa. Sesję .NET poprowadził prosto z Krakowa – Szymon Kobalczyk! Tematem prezentacji był PRISM znany też jako Composite Application Guidance for WPF. Treść wykładu i sama prelekcja były naprawdę megaciekawe! Szkoda tylko, że równie mega co poziom wystąpienia, było moje pouczelniane zmęczenie (od 6 na nogach…) przez co kompletnie nie mogłem się skoncentrować. Niemniej jednak Szymon bardzo mnie zainteresował i z całą pewnością, gdy już (w końcu!) będę miał czas, zajmę się tym tematem :) Obiema rękami podpisuję się pod stwierdzeniem, że Szymon to mistrz WPF-a :) Po zasadniczej części prezentacji, Szymon pokazał odrobinę „magii”, czyli swego rodzaju implementacje MS Surface (rękawice rządziły :D) :) Ta część była równie wspaniała, co poprzednia i chyba jeszcze bardziej zaskakująca :)

Po bardzo krótkiej przerwie, przyszła pora na prezentację SQL-ową. Niestety temat tej prelekcji był (jak dla mnie – bazodanowego laika) bardzo zaawansowany i niewiele z tego wystąpienia wyniosłem – ot ogólne pojęcie czym tytułowy Service Broker (bo o nim była mowa) jest. Nie podejmuję się więc oceny tego wystąpienia. Wydaje mi się tylko, że Krzysztof Bąk – główny prelegent przesadził trochę z ilością materiału, który chciał zaprezentować. Wierzę jednak, że skoro w przygotowaniu brał udział Paweł Potasiński to musiała być ona dla SQL-owców smacznym kąskiem :)

Tyle mojej relacji, a teraz idę odpoczywać (ach, strasznie marudny się zrobiłem przez te studia! :)).

Tyle się dzieje.. a ja nie mam czasu :(

Ech, studia są przereklamowane! Poniekąd człowiek się uczy dwa razy w roku, a tymczasem ja nie mam czasu na nic. Moje aktualne życie przypomina cykl uczelnia -> nauka -> spanie -> uczelnia -> nauka… Mam nadzieję, że to się w najbliższym czasie zmieni. Ostatnio nawet opuściłem 32. spotkanie WG.NET, ale to bardziej z powodu Imagine Cup 2009 – wszystko na to wskazuję, że będę mógł startować… ale o tym szerzej za jakiś czas. Ostatnio w świecie .NET wiele się dzieje i bardzo żałuję, że nie mam czasu o tym napisać, a konkretniej:

  1. Pojawiła się finalna wersja Silverlighta 2.0
  2. Od jakiegoś czasu można testować ASP.NET MVC Beta 1 (ech, przydałoby się zrobić migrację bloga…)
  3. .NET ma nowe logo, przyznam, że całkiem sexy ;)
  4. Visual Studio 2010 CTP oraz .NET 4.0 CTP są dostępne do ściągnięcia (!!), aż żal nie przetestować

Być może o czymś zapomniałem jednak powyższa lista i tak jest według mnie imponująca. Postaram się częściej pisać, obiecuję ;)

Przygarnij mnie – szukam drużyny na Imagine Cup :)

Początki studiowania zajmują mi masę czasu, tym niemniej chciałbym zrealizować swoje mini-marzenie i wystartować w Imagine Cupie :) Najbardziej zainteresowany jestem kategorią Software Design, ale jestem otwarty na wszystkie inne kategorie programistyczne. Jeśli więc do Twojego teamu brakuje osoby to polecam się poprzez dział kontakt. Nie jestem nastawiony na wielki sukces, a jedynie na przednią zabawę :)

Darmowy hosting ASP.NET

Jakiś czas temu, hostedwindows.pl zakończyło świadczenie usługi darmowego hostingu ASP.NET. Szkoda, bo był naprawdę dobry, no ale cóż – kapitalizm ;) Ze względu na powtarzające się pytania odnośnie bezpłatnego hostingu, zamieszczam wyniki badań przeprowadzonych przeze mnie.

studentlive.pl – darmowy hosting, ale wyłącznie dla studentów; podczas rejestracji wymagane jest podanie kodu, który możecie (jeśli studiujecie ;)) uzyskać od Student Partnera na waszej uczelni; sam używam i jestem jak najbardziej zadowolony :)

qsh.eu – darmowy hosting dla każdego, niestety posiada parametry nieco gorsze od hostedwindows i studentlive; osobiście korzystałem z niego przez jakiś czas i nie narzekałem :)

To tyle. Może nie za dużo tego, ale myślę, że wystarcza do zastosowań domowych :) Może w przyszłości liczba ta się zwiększy?

Bloggers Underground – wrażenia

Pisałem o tym wydarzeniu jakiś czas temu. Właśnie jestem „po” – tzn. dotarłem do domu :) Impreza była naprawdę genialna! Doskonałej atmosfery tego wydarzenia nie da się opisać :) Były zapowiedziane sloty na wypowiedzi (strasznie się na swoim denerwowałem i wyszedł tak średnio :P), były luźne rozmowy, dyskusja… a wszystko w naprawdę fajnym klimacie. Gratulacje dla Anety, Karola i Łukasza za organizację tej wspaniałej imprezy. A do wszystkich MS-sceptyków – Microsoft zapewnia naprawdę ogromne (i bardzo przyjemne ;P) wsparcie dla ludzi ze światka IT. „Im” też dziękuję :)

Jestem studentem, naprawdę :)

3 dni temu zostałem oficjalnie włączony w poczet studentów informatyki na Wydziale Elektroniki i Technik Informacyjnych Politechniki Warszawskiej :) Nowa przygoda się rozpoczyna, mam nadzieję, że zakończy się sukcesem.

W zasadzie to już jestem po paru zajęciach i stwierdzam – będzie ciężko :) Mam nadzieję, że zostanie mi trochę czasu na dotnetowanie. Tymczasem wracam do rozwiązywania zetek! :)

31. spotkanie WG.NET

26 września, tradycyjnie o godzinie 18.00 rozpoczęło się 31. spotkanie WG.NET. Także i tym razem było niezwykle miło i ciekawie :)

Pierwsze wystąpienie należało do Kuby Binkowskiego i było rozwinięciem tematu zaczętego na Zine Day, a mianowicie dotyczyło AOP i DI – „AOP i DI wg P&P, czyli Unity i Policy Injection Application Block”. Tak jak w tytule Kuba opowiadał o dwóch frameworkach – PIAB i Unity. Temat jest niebanalny, więc wykład wymagał dużo skupienia. Nasz prelegent jednak się spisał i przedstawił temat bardzo zgrabnie. PIAB przedstawione było na bazie (powiedzmy :P) biznesowej aplikacji, natomiast Unity zdominowane było przez kulinarne skojarzenia, za co należy się Kubie lincz (18.00 to jak słusznie zauważył zdaje się Kuba Gutkowski pora kolacyjna!) :) Wyczerpanie tematu w godzinnym wykładzie jest niemożliwe, jednak wydaje mi się, że możliwości i filozofie obu frameworków zostały bardzo dobrze zaakcentowane. Brawo Kuba! :)

Po pierwszym wystąpieniu, tradycyjnie już była krótka przerwa na pogadanki. Jak zwykle można było ją spędzić bardzo miło. Wydaje mi się, że pomysł z przerwami na networking się przyjął i jest naprawdę doskonały!

„Praktyczny przegląd możliwości TFS 2008” – tak brzmi tytuł drugiego wykładu przeprowadzonego przez Marka Byszewskiego. Znów temat bardzo obszerny ale i bardzo ciekawy. Mam wrażenie, że bardzo zainteresował całą publikę :) Prezentacja była bardzo rzeczowa i zawierała praktyczne same przykłady i pokazy – czyli to co programiści lubią najbardziej :) Mam nadzieję, że temat będzie jeszcze rozwijany! Gratulacje za świetną prelekcję! Osobiście lubię ten bardzo spokojny styl, w którym Marek prowadzi wystąpienia :)

Tyle z 31. spotkania. Żal tylko, że następne, 32. spotkanie WG.NET prawdopodobnie dopiero za miesiąc!

Bloggers Underground

Już 7 października o godzinie 19.00 w jednym z lokali na warszawskiej starówce odbędzie się pierwsze wydarzenie pod nazwą „Bloggers Underground” – spotkanie społeczności blogerów piszących o technologiach Microsoft.

Formuła spotkania jest bardzo prosta – kilka wystąpień po 10 minut, podczas których można opowiedzieć o ciekawym wydarzeniu związanym z prowadzeniem bloga lub opisać ciekawe „case study”. To doskonała możliwość spędzenia wieczoru przed konferencją Microsoft Technology Summit 2008 w luźnej atmosferze wraz z innymi specjalistami IT i programistami. Zgłoszenia, pomysły oraz sugestie prosimy przekazywać drogą mailową.

Ilość miejsc jest limitowana i tylko zaproszeni goście mają wstęp na spotkanie, dlatego warto się śpieszyć z decyzją.

Zapraszamy na oficjalnego bloga imprezy, na którym publikujemy najświeższe informacje.

Do zobaczenia 7 października!

Bloggers Underground: oficjalna strona wydarzenia

Źródło: Codeguru.pl

Wszystko na to wskazuje, że i ja tam będę :) Nie wiem jeszcze tylko o czym opowiedzieć. Prawodopodobnie opowiem historię startupu mojego bloga :) Do zobaczenia!

ASP.NET MVC – autoryzacja użytkowników dla leniwych

Jeśli chcemy ograniczyć użytkownikom dostęp do różnych funkcjonalności naszej strony napisanej w ASP.NET MVC możemy skorzystać z przydatnych Membership Providerów (tak jak w przykładowej aplikacji MVC), możemy też zainteresować się czymś takim. Również kuszącą opcją jest skorzystanie z (mniej lub bardziej rozbudowanej) Forms Authentication znanej dobrze z „czystego” ASP.NET. Ja skusiłem się na tę ostatnią opcję, gdyż chciałem uzyskać efekt minimalnym nakładem pracy.

Jeśli prowadzicie blog, jedyne czego Wam potrzeba, to ograniczyć „anonimowym” dostęp do pewnych stron i akcji (jak np. dodawanie nowych notek), a dla siebie zatrzymać pełne uprawnienia. W tej sytuacji moje minimalistyczne rozwiązanie wydaje się być rozsądne :) Do rzeczy!

Na początek, w głównym pliku Web.config naszej aplikacji musimy dodać:

<authentication mode=”Forms />”

Aby nasza aplikacja wiedziała, czego od niej chcemy ;) Teraz należałoby stworzyć zwykły widok-formularz, w którym umieścimy pola login i hasło oraz odwołanie do odpowiedniej akcji, na przykład:

<form action=”/Admin/Authenticate/” method=”post”>

To znaczy, że po wciśnięciu przycisku submit uruchomiona zostanie akcja podłączona pod route (to wszystko można ustawić w Global.asax) „http://naszaplikacja.com/Admin/Authenticate/” przekazując przy tym wartości pól Login i Password. Proste, prawda? Teraz należałoby obsłużyć żądanie w kontrolerze. Przykładowa akcja poniżej:

[AcceptVerbs("POST")]
public ActionResult Authenticate(string Login, string Password)
{
if (!ZaawansowaMetodaAutoryzacji())
throw new Exception();
else
{
FormsAuthentication.SetAuthCookie("Admin", false);
return Index();
}
}

Bardzo ważna jest tutaj linia:

FormsAuthentication.SetAuthCookie(„Admin”, false);

To ona spowoduje, że zostaniemy autoryzowani jako użytkownik „Admin”. Drugi parametr („false”) działa jak znane pole „Remember me”, więcej do poczytania tutaj. Fajnie, prawda?

Teraz pozostaje nam już tylko oznaczyć odpowiednie akcje jako chronione. To ważne, chrońcie akcje a nie strony! Odpowiedź czemu zdaje się być oczywista. W dobrze napisanej aplikacji MVC każdy widok (każda strona) renderowana jest po przejściu przez kontroler, a więc przez odpowiednią akcję. Jeśli zabronimy „anonimowym” dostępu do odpowiednich akcji uzyskamy niemal 100% pewność, że nie obejrzą oni danej strony, ani nie wywołają nieprzeznaczonej dla nich metody (np. tworzącej nowy wpis na blogu) :) Jak zabronić dostępu użykownikowi do danej metody (akcji)? To bardzo proste. Wystarczy metodę oznaczyć atrybutem PrincipalPermission. Na przykład:

[PrincipalPermission(SecurityAction.Demand, Name = "Admin")]
[AcceptVerbs("POST")]
public RedirectToRouteResult AddEntry(string Title, string Text)
{
dataContext.AddEntry(Title, Text);
return RedirectToAction("Recent", "Blog");
}

Dzięki temu metoda – wpis może być dodany tylko przez użytkownika „Admin”. W taki sposób oznaczamy wszystkie metody, do których chcemy dodać restrykcje. To tyle! Tym sprytnym sposobem nasza aplikacja jest chroniona w bardzo prosty sposób :)

Źródła mojego bloga w końcu dostępne! :)

Po wielu zapowiedziach w końcu są :) Źródła mojego bloga (hLog) dostępne do ściągnięcia w dziale Projekty. Jest to mój pierwszy projekt w ASP.NET MVC i w ogóle w ASP.NET. Jestem więc otwarty na sugestie, propozycje, uwagi i krytykę – w komentarzach bądź via dział Kontakt. Zachęcam do ściągania! :)

PS. Mój feed jest teraz obsługiwany przez FeedBurner. Wszystkich aktualnych subskrybentów prosiłbym o zmianę adresu na http://feeds.feedburner.com/LukaszSowa/ a niesubskrybentów o subskrybcję :)