Archive for the ‘.NET’ Category
Dlaczego Entity Framework będzie rządzić światem
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

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.
ZineDay 2008

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Ľć:
- András Belokosztolszki z RedGate, który będzie opowiadał o tworzeniu baz danych – więcej informacji z poście Pawła
- Gael Fraiteur jeden z twórców PostSharpa – Aspect Oriented Programming dla .NET
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ę
ALT .NET – alternatywne podejście do programowania
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.

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:
- 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
- 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
- Nie jesteś zadowolony ze statusem quo. Twój kod zawsze może być lepiej zapisany, bardziej elegancki, prosty o wyższej jakości
- 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:
- Dave Laribee – oryginalny post na blogu o ALT .NET
- ALT .NET Podcast – na razie głównie o narzędziach i wzorcach projektowych
- ALT .NET – strona zbierająca informacje o ruchu
- Jeffrey Palermo – jego własne rozwinięcie ALT .NET
- Scott Hanselman – z opisem, fajnym logiem(który użyłem w tym poście) i geekcodem, ten człowiek zawsze pisze ciekawe rzeczy
Wszystko idzie do Linq
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'
}
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
x64 an x86 interop in .NET
.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.

TortoiseMigrate
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
- Clear .svn folders from version checked out of svn+ssh://server/project:
FOR /r \"%1\" %%f IN (.svn) DO RD /s /q \"%%f\" \" - Check out project from http://server01/svn/project
- Copy and overwrite files in 2. with 1.
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
Visual Studio 2008 InstallFest 25 lutego 2008 w Poznaniu
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.
VII spotkanie poznańskiej grupy .NET
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 »
VI spotkanie poznańskiej grupy .NET
Po pierwsze zaskoczyła mnie frekwencja, ale w sumie nic dziwnego – w końcu występował star presenter, czyli Paweł Potasiński. Jednak znane nazwiska robią swoje. Całość miała zakończyć się o 20:30, ale nastąpiło lekkie przesunięcie i finiszowaliśmy koło 22:00. Co było rewelacyjne, do końca dotrwało całkiem sporo osób!
Tym razem przedstawiałem temat Test Driven Development w .NET. Skupiłem się głównie na narzędziach open source, ponieważ dostęp do nich jest szczególnie łatwy, ale często brak informacji o ich możliwościach.
Poniżej prezentacja, skrót najważniejszych linków oraz do ściągnięcia aplikacje, których używałem do demonstracji.
VI spotkanie poznańskiej grup .NET
http://www.dotnet.poznan.pl/StrefaPGNET/Spotkania/tabid/62/ctl/Details/Mid/386/ItemID/5/selecteddate/2007-11-23/Default.aspx

Serdecznie wszystkich zapraszam na VI spotkanie poznańskiej grupy .NET. Odbędzie się ono 23.11 od godziny 18 w budynku Wyższej Szkoły Bankowej ‘CP’ w Poznaniu, przy ul. Ratajczaka 5/7, Sala 211 (1 piętro).
Tym razem znowu będę miał przyjemność opowiedzieć o unit testing i szeroko rozumianym test driven development. Chciałem przy okazji poruszyć tematy związane z agile project management. Jeżeli macie jakieś przemyślenia lub sugestie o tym, co Was najbardziej interesuje – zapraszam do dyskusji