Bartek Szafko

all of the bits and pieces

Archive for the ‘.NET’ Category

Prezentacje z Mix10

without comments

Mix 2010 był już jakiś czas temu, co ważne prezentacje w formacie HiDef już są dostępne tutaj. BTW: polecam użycie downloadera.

Read the rest of this entry »

Written by Bartłomiej Szafko

Marzec 22nd, 2010 at 5:00 am

Posted in .NET, Development

Tagged with , ,

Mono i CAB

with 2 comments

image

Mono to otwarta implementacja środowiska .NET tworzona przez Novella – działa na linuxach i mac os.

Z ostatnich wiadomości: Microsoft obiecał, że nigdy nie będzie ścigał projektu mono o licencję, można przeczytać o tym na blogu Miguela, to może umocnić pozycję tego projektu, do tej pory niespecjalnie było wiadomo czy MSFT pozwie  novella i zmusi do zamknięcia, więc raczej nie podchodziłem do projektu na 100% poważnie.

W Mono niestety nie uświadczysz WPF czy WCF, ale jest za to asp .net MVC. Jest też prawie 100% zgodność z Winsforms. Język C# jest w wersji 3.0 i obsługuje LINQ.

Dla Mono jest coś co się nazywa Mono Migration Analyzer (MoMA) – pozwala na sprawdzenie w jakim stopniu aplikacja będzie się uruchamiać na mono.

Wszystko fajnie, ale postanowiłem spróbować jak to wygląda w rzeczywistości na bardziej zaawansowanych aplikacjach.  Wziąłem Smart Client Software Factory w wersji z kwietnia 2008, a konkretnie Quickstarts.BankTeller i przepuściłem przez MoMA, oto  co dostałem:

image

Czyli w sumie nie jest źle! Dokładniejszy raport wygląda tak:

image

Pierwsza z uwag jest spowodowana tym, że w aplikacji jest wywoływana przeglądarka internerowa, której brakuje w Mono – co w sumie jest OK. Drugi brak już jest poważniejszy, ale z tego co kojarze jest w kolejce do zrobienia.

Czyli w sumie powinno się udać uruchomić aplikację w SCSF na linuxie – hmm to otwiera całkiem ciekawe możliwości. Teraz tylko muszę wybrać jakąś dystrybucję ( czy Polish Linux Distribution jeszcze żyje?) zainstalować na wirtualce i sprawdzić jak to działa w praktyce.

PS: Ostatnio pojawił się także ciekawy podcast Scotta Hanselmanna w tym temacie – do posłuchania tutaj.

Written by Bartłomiej Szafko

Lipiec 8th, 2009 at 7:11 pm

Posted in .NET, Development

Dlaczego Entity Framework będzie rządzić światem

with 7 comments

Nadrabiając ostatnio zaległości w słuchaniu DotNetRocks w odcinku #411 o ORM-ach Ward Bell podniósł ciekawą kwestię, a mianowicie, że Entity Framework będzie dominującym mapperem obiektowo relacyjnym na rynku. Myśl całkiem przewrotna, szczególnie biorąc pod uwagę “Vote of No Confidence”(Alt.NET podcast – hej tutaj też Ward Bell) ze strony społeczności. Jednak warto odsunąć flamewar i love to hate relationship do MS na bok i spojrzeć na fakty.

Po pierwsze zasoby

Microsoft inwestuje w EF nieprawdopodobne zasoby, takie o których np.: NHibernate może tylko pomarzyć. Oczywiście jak zwykle V1 pozostawia trochę do życzenia, ale MS już wielokrotnie dowiódł(patrz Vista –> Windows 7), że jednak potrafi się uczyć na błędach i słuchać klientów, więc następne wersje zapewne będą już o wiele lepsze.

Po drugie literatura

Ward podniósł też ciekawy argument – ile jest opublikowanych książek dotyczących NHibernate – okazuje się, że nie ma :( natomiast już w tej chwili są dostępne conajmniej 3 książki na ten temat.Tutaj ciekawostka – link do bloga Julie Lerman, która sama jest autorką spoooorej książki o Entity Framework.

O EF na C2C

c2c logo male

Julie Lerman będzie prelegentem na konferencji Communities2Communities więc będzie okazja, aby posłuchać o EF prosto z ust ekspertki. Na zeszłorocznej edycji C2C temat EF również był obecny pod postacią prelekcji Jarka Kowalskiego.

Written by Bartłomiej Szafko

Styczeń 24th, 2009 at 11:09 am

Posted in .NET, Development

ZineDay 2008

without comments

Na Zinie piszę już jakiś czas i muszę przyznać, że jest to najlepsza i jedyna(?) blogernia związana z .NET w Polsce. Wszystko to zasługa Michała Grzegorzewskiego, który wyszedł z inicjatywą i zaprosił bardzo wielu wartościowych ludzi.

Już 6 września odbędzie się zlot autorów i czytelników zina ZINE DAY 2008. Impreza zapowiada się bardzo ciekawie wśród prelegentów można znaleĽć:

Z tego co mówi Michał wynika, że spotkanie odbędzie się w bardzo luĽnej atmosferze i będzie okazja do dyskusji o tematach, które interesują wszystkich uczestników. Całość w duchu ALT .NET :)

Co do szczegółów zachęcam do śledzenia bloga Michała.

Ja również tam będę :)

Written by Bartłomiej Szafko

Lipiec 26th, 2008 at 1:12 pm

Posted in .NET, Społeczności

ALT .NET – alternatywne podejście do programowania

without comments

ALT .NET jest ruchem wśród developerów, którego manifest brzmi następująco:

Jesteśmy samoorganizującą się społecznością developerów. Łączy nas chęć ciągłego ulepszania siebie, rzucamy wyzwania dotychczasowym schematom i pomagamy sobie wzajemnie osiągnąć doskonałość w tworzeniu oprogramowania.

za http://altdotnet.org


Ruch ALT .NET jest na tyle nowy, że nawet nie ma jeszcze ścisłej definicji. Jako pierwszy terminem posłużył się Dave Laribee w kwietniu zeszłego roku i wskazał 4 główne cechy, które powinna wykazywać osoba, żeby określić ją tym terminem:

  1. Jesteś typem developera, który używa najlepiej działających narzędzi w danej chwili, ale cały czas masz otwarte oczy na lepsze metody
  2. Sięgasz poza główny nurt i adaptujesz to co jest najlepsze z każdej społeczności: Open Source, Agile, Java, Ruby i inne
  3. Nie jesteś zadowolony ze statusem quo. Twój kod zawsze może być lepiej zapisany, bardziej elegancki, prosty o wyższej jakości
  4. Wiesz, że narzędzia, są bardzo przydatne, ale nie załatwiają wszystkiego. To zasady i wiedza są naprawde ważne. Najlepsze są narzędzia, które wykorzystują wiedzę i zachęcają do stosowania zasad

W ALT .NET chodzi bardziej o zasady niż narzędzia, ale jest parę, o których wszyscy członkowie ruchu piszą: NUnit, xUnit, CC.NET, NHibernate, PostSharp i wiele innych.

Moim zdaniem ruch może uzyskać spore poparcie, ponieważ wspiera różnorodność, pomysłowość i innowację.

Ja jestem ALT .NET!

Poniżej kilka Ľródeł związanych z tematem:

Written by Bartłomiej Szafko

Lipiec 9th, 2008 at 10:28 pm

Posted in .NET, General, Społeczności

Wszystko idzie do Linq

without comments

Linq – language integrated query, to w dużym uproszczeniu możliwość definiowania zapytań podobnych do SQLa dla różnych Ľródeł danych. Domyślnie Linq wspiera XML (XLinq) oraz bazy danych (LinqToSql).

Ostatnio powstaje bardzo dużo rozszerzeń do Linq. Jedno z nich zwróciło moją szczególną uwagę: JsonToLinq. Javascript Object Notation jest formatem, w którym można zserializować obiekty JavaScriptowe i póĽniej je szybko zdeserializować. Czytałem (niestety w tej chwili nie pamiętam Ľródła), że JSON jest wielokrotnie szybszy niż parsowanie XML przy AJAXowych wywołaniach.

Przykładowo JSON może wyglądać tak:
{
'id': 2,
'login': 'wiesiek',
'background_path': '/users/sztywny/background',
'avatar_path': '/users/sztywny/avatar',
'current_status_path': '/statuses/12345'
}

Więcej o JSONIE.

Biblioteka JSON.NET implementuje odpowiednie ( i co najważniejsze szybkie)readery dla jsona, przez co można skorzystać z wszystkich możliwości jakie daje Linq. Dla powyższego przykładu JSONa, odczytujący go kod może wyglądać tak:

    1 user.Id = jsonResponse.PropertyValue<int>(“id”);

    2 user.Name = jsonResponse.PropertyValue<string>(“login”);

    3 user.ScreenName = jsonResponse.PropertyValue<string>(“login”);

Jednak prawdziwe możliwości ujawnia przy przetwarzaniu bardziej złożonych struktur:


[{
"type":"DirectedMessage",
"body":"aaaa",
"transport":{"name":"www","id":6},
"id":2424062,
"user_path":"/users/xxx",
"recipient_path":"/users/yyyy",
"created_at":"2008-06-25 20:02:32"
},{
"type":"Status",
"body":"zzzzzzz",
"transport":{"name":"api","id":7},
"id":2424061,
"user_path":"/users/rrrr",
"created_at":"2008-06-25 20:02:10"
}]

Żeby z takiej reprezentacji stworzyć strukturę obiektów można zrobić coś takiego:

    1 JArray jsonResponse = JArray.Load(new JsonReader(reader));

    2 if (jsonResponse != null)

    3 {

    4     var _tweets = from o in jsonResponse.Children<JObject>()

    5             select new Tweet()

    6                         {

    7                             DateCreated = o.PropertyValue<DateTime>(“created_at”),

    8                             Id = o.PropertyValue<long>(“id”),

    9                             Text =  o.PropertyValue<string>(“body”),

   10                             User = GetUser(ApiUrl + o.PropertyValue<string>(“user_path”))

   11                         };

   12  }

A piszę o tym dlatego, że zacząłem bawić się API do BLIPa, które wszystkie wyniki zwraca właśnie w formacie JSON.

To co próbuje zrobić to dostosować fajnego klienta Twitter(protoplasty blipa) w wpf do współpracy z naszym rodzimym serwisem. Udało mi się już zalogować do serwisu i pobrać ostatnie wiadomości, jednak jak na razie przy większej liczbie żądań pojawia się błąd :( wydaje mi się, że jest to bolączka tego rozwiązań.


Oryginalny klient Twittera nazywa się Witty i ma całkiem ciekawy kod :)

Written by Bartłomiej Szafko

Czerwiec 25th, 2008 at 7:52 pm

Posted in .NET

x64 an x86 interop in .NET

without comments

.NET assemblies are just a byte-code which is interpreted on host machine. .NET default behaviour is to run assemblies with highest possible capabilities. On 64-bit machines that means running x64. Unfortunately this causes some interoperability problems with 32-bit componets (for example COM).

There is a simple workaround for that problem. You just have to force 32-bit compilation on your assembly. In order to achieve that, go to project properties build tab and set platform target to x86 or use configuration manager to set the target for whole solution.


Written by Bartłomiej Szafko

Czerwiec 3rd, 2008 at 5:42 pm

Posted in .NET

TortoiseMigrate

without comments

Problem

Change of subversion server location and acces protocol between commits. Let’s you had your subversion at svn+ssh://server/project (call it first) and it was moved to http://server01/svn/project (call it second). And what is more important you have made some uncommited changes made to the version checked out from the first location.

Manual solution

  1. Clear .svn folders from version checked out of svn+ssh://server/project:
    FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \"

  2. Check out project from http://server01/svn/project
  3. Copy and overwrite files in 2. with 1.
  4. It’s clearly burdersome and prone to errors

Migrate

With TortoiseMigrate you just right click on a folder and the application takes care for the rest.


A word of caution: TortoiseMigrate plays with entries files this might be dangerous and you use it on your own risk.

Download

Anyway it was just a fun project

Written by Bartłomiej Szafko

Maj 7th, 2008 at 9:21 pm

Posted in .NET

Visual Studio 2008 InstallFest 25 lutego 2008 w Poznaniu

without comments

Cała impreza nabiera kształtów. Myślę, że nie zdradzam żadnej tajemnicy Visual Studio 2008 InstallFest w Poznaniu obędzie się 25 lutego 2008 od godziny 18 w Piwnicy 21. Na razie rejestracja nie jest dostępna – jak tylko to się zmieni, napiszę tutaj o tym. Impreza oczywiście w pełni darmowa.

Takie przedsięwzięcie to dla mnie przede wszystkim nowość od strony organizacyjnej, pomimo to jestem z siebie zadowolony – udało mi się pozyskać lokal oraz znaczącego sponsora. Jestem pod wrażeniem z jak dużą sympatią ludzie się odnoszą do takich inicjatyw jak InstallFest.

Written by Bartłomiej Szafko

Luty 6th, 2008 at 6:15 pm

Posted in .NET, Społeczności

VII spotkanie poznańskiej grupy .NET

without comments

poznańska grupa .net logo Tym razem, było dużo mniej ludzi. Okazuje się, jednak że istnieje potrzeba zapraszania znanych ludzi – tzw. celebrytów, którzy zachęcają innych do odwiedzenia. Tym razem również miałem okazję występować – z tematem continuous integration w .net. Poniżej prezentacja oraz garść linków do narzędzi o których opowiadałem.
Read the rest of this entry »

Written by Bartłomiej Szafko

Grudzień 18th, 2007 at 8:19 pm

Posted in .NET, Społeczności