.NET i takie tam

Archive for Listopad 2008

OpenNetCF dla Visual Studio 2008

leave a comment »

Pojawiła się nowa wersja biblioteki OpenNetCF, rozszerzającej możliwości .NET Compact Framework. Nosi ona numerek 2.3 i oprócz zmian w samej bibliotece została ona przystosowana do pracy z Visual Studio 2008 (niestety nie w pełni). Zmianie uległo również nazewnictwo, obecnie mamy następujące wersje:

  • Community Edition (darmowa)
  • Standard Edition
  • Professional Edition

Porównanie wersji można znaleźć tutaj, natomiast wersję Community można pobrać z tego adresu.

Reklamy

Written by sakowicz

Listopad 28, 2008 at 12:24 pm

Mobile Architecture Pocket Guide

leave a comment »

pnp_logo

Microsoft w ramach ‚Patterns & Practices’ opublikował – ‚Mobile Architecture Pocket Guide’ – przegląd zalecanych praktyk i wskazówek przy projektowaniu aplikacji mobilnych. Przewodnik wcale nie nie wydaje się ‚pocket’ gdyż porusza wszystkie ważne tematy, od architektury aplikacji mobilnych poprzez poszczególne warstwy aplikacji (presentation, business, data access, service) po wskazówki dotyczące komunikacji ze światem zewnętrznym i schematy rozpowszechniania aplikacji.

Written by sakowicz

Listopad 27, 2008 at 10:42 am

Internet Explorer Mobile 6

leave a comment »

Microsoft ogłosił nową przeglądarkę – Internet Exploler Mobile 6 – dla urządzeń mobilnych pracujących pod kontrolą systemów Windows Mobile. Jak na razie dostępne są jedynie obrazy systemowe dla developerów, sam produkt ma być, niedługo, dostępny do ściągnięcia, dla przeciętnego użytkownika.
Osobiście jakoś nie mogę się przełamać, do przeglądania stron na urządzeniach mobilnych. Główną przyczyną jest chyba uciążliwość procesu. Mały ekran, kłopotliwa nawigacja i niewielka ilość stron, które są przystosowane do wyświetlania na PDA spowodowały, że jedyne co dotychczas robiłem to ewentualne sprawdzenie poczty na Gmail (tak na marginesie mobilną wersję gmail’a można znaleźć pod tym adresem: http://mail.google.com/m). Możliwe, że teraz się to zmieni.

Internet Exploler Mobile 6 Emulator image

Microsoft zapewnia, że nowa przeglądarka jest zgodna ze starszym, desktop’owym, bratem Internet Exploler. Na ile IE jest zgodna ze standardami, nie mi oceniać, jednak wydaje się, że jeśli jest to prawda, to mamy pewien postęp. Pośród innych nowinek mamy:

  • automatyczne dopasowanie layout’u strony do ekranów mobilnych
  • rozszerzoną obsługę JavaScript (Jscript v5.7 z Internet Explorer 8
  • rozszerzone funkcje multimedialne (Adobe Flash Lite 3.1 do obsługi falsh’a)
  • lepszą integrację z wyszukiwarką
  • usprawniono nawigację
  • dodano obsługę gestów
  • wielokrotny zoom
  • dodatkowo przeglądarka umożliwia zmianę sposobu wyświetlania stron z mobilnej na standardową (desktop’ową)

Teraz tylko czekać na wydanie finalnej wersji produktu. Miejmy nadzieję, że będzie ona dostępna osobno do ściągnięcia a nie wbudowana w obraz systemu. Ciekawe też może być porównanie nowego produktu Microsoftu z mobilną przeglądarką Opery Mobile.

Written by sakowicz

Listopad 13, 2008 at 10:57 am

Apple vs. Reszta Świata

with one comment

Do boom’u reklamowego: "I’m Mac/PC/Linux" (niepotrzebne skreślić) przyłączają się, producenci sprzętu 😉 i trudno nie odmówić im racji:

Written by sakowicz

Listopad 11, 2008 at 11:47 am

Napisane w Apple, Misc

Tagged with , , , ,

WordPress 2 Object

leave a comment »

Chwila zabawy z LINQ 2 XML i proszę mamy posty z WordPress’a w postaci obiektowej. Metoda:

public IEnumerable<Post> GetAllPosts()
{
    var posts = from item in _xml.Descendants("channel").Descendants("item")
                where item.Element(_wp.GetName("post_type")).Value == "post"
                select new Post()
                {
                    Title = item.Element("title").Value,
                    Url = item.Element("link").Value,
                    Autor = item.Element(_dc.GetName("creator")).Value,
                    Categories = (from t in item.Descendants("category")
                                  where t.Attributes().Count() == 2 && t.Attribute("domain").Value == "category"
                                  select GetCategory(t.Value)).ToList(),
                    Tags = (from t in item.Descendants("category")
                            where t.Attributes().Count() == 2 && t.Attribute("domain").Value == "tag"
                            select t.Value).ToList(),
                    DateCreated = DateTime.Parse(item.Element(_wp.GetName("post_date")).Value),
                    Content = item.Element(_content.GetName("encoded")).Value,
                    Status = item.Element(_wp.GetName("status")).Value,
                    Comments = (from c in item.Elements(_wp.GetName("comment"))
                                where c.Element(_wp.GetName("comment_approved")).Value == "1"
                                select new Comment()
                                {
                                    Autor = c.Element(_wp.GetName("comment_author")).Value,
                                    EMail = c.Element(_wp.GetName("comment_author_email")).Value,
                                    Url = c.Element(_wp.GetName("comment_author_url")).Value,
                                    DateCreated = DateTime.Parse(c.Element(_wp.GetName("comment_date")).Value),
                                    Content = c.Element(_wp.GetName("comment_content")).Value,
                                }).ToList()
                };

    return posts;
}

jak nazwa wskazuje pobiera wszystkie posty z pliku *.xml będącym kopią bezpieczeństwa wyeksportowaną z WordPress’a. Jednakże zanim, standardowo wygenerowany plik, będzie można załadować do obiektu XElement musimy, ręcznie, dodać jeden brakujący namespace. Mianowicie w tag’u:

<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:wp="http://wordpress.org/export/1.0/"
>

musimy dodać atrybut:

xmlns:excerpt="http://wordpress.org/excerpt/1.0"

Teraz wszystko śmiga. Inna rzecz na którą warto zwrócić uwagę to sposób odczytu znaczników, np.:

<content:encoded> ...</content:encoded>

Próba bezpośredniego odczytu wartości, przykładowo:

item.Element("content:encoded").Value;

spowoduje wygenerowanie XmlException: The ‚:’ character, hexadecimal value 0x3A, cannot be included in a name. Aby pobrać tą wartość musimy się odwołać do wcześniej wymienionego namespace’u, następująco:

XNamespace _wp = @"http://wordpress.org/export/1.0/";

item.Element(_wp.GetName("cat_name")).Value;

Kod źródłowy: download.

Written by sakowicz

Listopad 10, 2008 at 11:00 am

Napisane w .NET, Tools

Tagged with , , , ,

SVN Monitor

leave a comment »

svn-monitor-logo-thumb Nie spotkałem jeszcze nikogo kto pracując z Subversion, nie znal by lub bądź nie lubił TortoiseSVN. Ale jeśli takowa osobistość gdzieś tam jest to pewnie będzie zainteresowana darmowym programem SVN-Monitor. Program oprócz standardowych operacji (update, commit, revert, diff), umożliwia również (skopiowane ze strony autora):

• Keep your source up-to-date with minimum conflicts and manual merges
• Browse and search the svn log from your computer while offline (disconnected from the svn repository)
• Be constantly aware of your local source modifications, without using any Visual Studio plugin
• Keep a local updated mirror of the repository, while not affecting your changes, without the need to commit
• Monitor the source for certain events
• Receive notifications of any kind (balloon popups, tray icons, email, sounds, …) when certain events occur

Written by sakowicz

Listopad 3, 2008 at 11:10 am

Napisane w Tools

Tagged with , , , , , ,