.NET i takie tam

Archive for Październik 2008

PDC 2008 Video

with one comment

Może to tylko ja jeszcze nie miałem możliwości, zapozna się z nowościami z PDC. Gdyby jednak, ktoś jeszcze się znalazł, tutaj może znaleźć nagrania z prezentacji z załączonymi plikami PowerPoint.

Written by sakowicz

Październik 31, 2008 at 9:52 am

Stackoverflow

leave a comment »

stackoverflow-logo-250 Ostatnio słyszę dużo o nowym forum dla developerów mianowicie o stackoverforw.com. Postanowiłem sprawdzić o co tyle hałasu. Stonka fajna przejrzysta, bez zbędnych bajerów ale przecież nie o to tu chodzi. Ważne są odpowiedzi, ich jakoś i czas w jakim zostają udzielone. Tematyka pytań, dowolna rzecz jasna w ramach szeroko pojętego zagadnienia jakim jest tworzenie oprogramowania. Postanowiłem zadać, proste acz nie co może specyficzne pytanie i zobaczyć jaki będzie rezultat. Pytanie dokładnie brzmiało:

Define ‘poco’?
Can someone define what exactly ‚poco’ means? I’ve encountering the term more and more often and I’m wondering is it only about plain classes or it mean something more?

Jeszcze się dziwię temu co się stało zaraz po jego zadaniu. Pierwszą odpowiedź miałem zaraz po tym, jak zostałem przekierowany do strony głównej. Nie minęła nawet minuta, co ja piszę nawet 30 sekund. Fakt nie trzeba dużo aby opisać co znaczy akronim POCO, ale mimo wszystko. Potem ruszyła mała lawina. Po 9 minutach od zadania pytania miałem 7 odpowiedzi z czego jedynie dwie były prośbami o sprecyzowanie czy na pewno chodzi mi o ‘poco’ a nie o ‘pojo’ (to goście od Javy). Pojawiły się komentarze do udzielonych odpowiedzi w wyniku czego niektóre pytania zostały, nawet kilkukrotnie przeredagowane!
W efekcie po niespełna 10 minutach miałem przeszło 50 wyświetleń pytania, pełne wyjaśnienie terminu wraz z rysem historycznym skąd się on wywodzi. Co bardziej interesujące głosowanie czytelników, wyłoniło najlepszą odpowiedź.
Wnioski nasuwają się same – masz pytanie, teraz wiesz gdzie je zadać! Community to potęga.

Written by sakowicz

Październik 30, 2008 at 2:59 pm

Napisane w Misc

Tagged with , , ,

CodeRush Xpress for Visual Studio

leave a comment »

Developer Express Panowie (i panie 🙂 ) z DevExpress udostępnili nową wersję CodeRush Xpress – swojego narzędzia wspomagającego pracę programisty. Program jest dostępny za darmo i zawiera całkiem interesującą listę udogodnień dla developerów.

CodeRush jest największym konkurentem ReSharper’a – wtyczki o której słyszał, chyba,  każdy developer .NET. Nowa darmowa wersja na pewno poszerzy grono zwolenników tego pierwszego. Konkurencja zawsze jest dobra, przypomni panom z JetBains (twórcy ReSharper’a), że nie wolno zakopywać gruszek w popiele i nadal muszą się starać aby utrzymać prowadzenie. Tym bardziej, że w związku z długim okresem oczekiwania na wersję 4.0 wtyczki, pojawiło się dużo głosów niezadowolenia.

CodeRush’a nie znam, w wolnej chwili (jakoś brakuje ich ostatnio) zainstaluję go sobie i się nim pobawię. Jedno co obecnie mi się w nim nie podoba to ‚cukierkowatość’ interfejsu, strzałeczki, kreseczki. Nie wiem może wynika to z mojej ignorancji, czas pokaże.

Written by sakowicz

Październik 29, 2008 at 1:00 pm

Napisane w .NET, Misc, Tools

Tagged with , , , , ,

Agile Tuning

leave a comment »

AgileTuning.PL jest nowym polskim podcastem IT poświeconym, jak sama nazwa wskazuje, metodologiom agile. Pierwszy odcinek omawia tzw. stand up’y – czyli krótkie, najlepiej codzienne spotkania zespołu. Zapraszam do słuchania.

Written by sakowicz

Październik 21, 2008 at 11:45 am

Napisane w Misc

Telephony Library

leave a comment »

Większość obecnych urządzeń mobilnych z Windows Mobile na pokładzie (i nie tylko), posiada wbudowany telefon. A to otwiera ciekawe możliwości przed naszymi aplikacjami. Wszystko było by pięknie gdyby nie konieczność pracy z Telephony Application Programming Interface (w skrócie TAPI) biblioteką która umożliwia dostęp do tych wszystkich potencjalnie przydanych możliwości. Problemem jest stopień skomplikowania biblioteki, została ona napisana w C w roku bodaj 1993 i od tego czasu jedynie rozszerzana o nową funkcjonalność ew. przystosowywaną do nowych standardów. W efekcie operowanie na niej nie należy do przyjemności, no chyba, że ktoś ma skłonności lekko sadomasochistyczne.

Lepszym rozwiązaniem może być skorzystanie z komercyjnej biblioteki Telephony Library dostarczonej przez panów z OpenNetCF. Biblioteka ta jest wrapperem napisanym wokół TAPI i usuwa większość trudności na no bok. Przykładowo prosta klasa umożliwiająca nawiązywanie połączeń może wyglądać następująco:

using System;
using OpenNETCF.Telephony;

public class Phone : IDisposable
{
    private Telephony _tapi;
    private Line _line;
    private IAsyncResult _callResult;

    public event Call.CallStateHandler CallStateChanged;

    public static readonly Phone Instance = new Phone();

    public Phone()
    {
        Initialize();
    }

    private void Initialize()
    {
        _tapi = new Telephony();
        _tapi.Initialize();

        _line = _tapi.CreateLine(0, MediaMode.InteractiveVoice, 
                  CallPrivilege.Owner);

        if (_line == null)
        {
            return;
        }

        _line.NewCall += new Line.NewCallHandler(NewCall);
    }

    private void NewCall(Call call)
    {
        call.CallState += new Call.CallStateHandler(CallStateChanged);
    }

    public void Call(string phoneNumber)
    {
        if (_line == null)
        {
            return;
        }

        _callResult = _line.BeginMakeCall(phoneNumber, 
                        1, null, null, this);
    }

    public void EndCall()
    {
        if (_callResult == null)
        {
            return;
        }

        Call call = _line.EndMakeCall(_callResult);

        if (call != null)
        {
            call.Hangup();
            call.CallState -= new Call.CallStateHandler(CallStateChanged);
            call.Dispose();
            call = null;
        }
    }

    #region IDisposable Members

    public void Dispose()
    {
        if (_tapi != null)
        {
            _tapi.Shutdown();
            _tapi = null;
        }
    }

    #endregion
}

Written by sakowicz

Październik 20, 2008 at 8:14 am

Napisane w .NET CF, Devices

.NET CF i aktualizacja WSDL

leave a comment »

Dzisiaj muszę trochę ponarzekać na Visual Studio 2008 😉 Chłopaki zrobili kawał dobrej roboty tyle, że nie ma rzeczy idealnych, tak jest i w tym przypadku. Aplikacja mobilna, nad którą aktualnie pracuję konsumuje pokaźną ilość web service’ów i jak to w życiu bywa, z biegiem czasu i rozwojem funkcjonalności ulegają one zmianie. Normalka – niby nic a jednak pojawia się pewien problem – otóż o ile dodanie nowego web service’u przebiega poprawnie, to uaktualnienie już istniejącego powoduje następujący błąd:

MSDiscoCodeGenerator error message

I z aktualizacji nici. Dzieje się tak jedynie dla referencji w aplikacjach mobilnych, we wszystkich innych typach projektów (win forms/web) funkcjonalność działa bez zarzutu. Po jakiejś godzince walki i eksperymentów z instalacją/deinstalacją Visual Studio 2008 SP1 doszedłem, że problem znika po odinstalowaniu i ponownym zainstalowaniu .NET Compact Framework 3.5 Redistributable i uruchomieniu komendy:

devenv /resetskippkgs

Która spowoduje, że przy następnym uruchomieniu Visual Studio spróbuje załadować wszystkie zarejestrowane dodatki, nawet te, które wcześniej z jakiś względów były pomijane.

Written by sakowicz

Październik 1, 2008 at 9:30 pm

Napisane w Misc