SDJ 09.2010 PL.pdf
(
10808 KB
)
Pobierz
Windows phone
9/2010 (189)
SPIS TREŚCI
BIBLIOTEKA MIESIĄCA
Phone 7. Dokonano zmiany całej platformy, co zrewolu-
cjonizowało pisanie aplikacji na urządzenia mobilne. Fir-
ma Microsoft pokazała także urządzenie prototypowe,
które spełniało wszystkie podstawowe wymagania, jakie
postawiła firma. Przyjrzyjmy się zatem, co tak napraw-
dę się zmieniło i co najważniejsze, czy te zmiany pomogą
Nam, programistom.
4 STL w praktyce: Wyszukiwanie.
Efektywne wyszukiwanie obiektów przy pomocy
biblioteki STL.
Rafał Kocisz
Programisto C++! Czy jesteś pewien, że wykorzystujesz
w praktyce potencjał swojej wspaniałej biblioteki standar-
dowej? Jeśli chcesz się przekonać, czy Twoja wiedza na
temat operacji wyszukiwania oferowanych przez STL jest
pełna, to koniecznie przeczytaj ten artykuł!
36 Windows Phone – Pierwsze kroki.
Prosta aplikacja do Twittera.
Dariusz Gunia
15 lutego 2010 roku, na konferencji Mobile World Congress,
Steve Balmer (CEO firmy Microsoft) ogłosił nowy mobilny
system operacyjny Windows Phone 7 Series (obecnie ofi-
cjalna nazwa brzmi: Windows Phone 7). Bardzo ciekawy
jest fakt, że WP7 od strony technicznej nie ma prawie nic
wspólnego z poprzednimi wersjami platformy (Windows
Mobile), bowiem firma Microsoft postanowiła, że system
ten zostanie napisany od podstaw. Producenci smartfonów
(np. HTC) zapowiadają pierwsze telefony z WP7 pod ko-
niec bieżącego roku, ale programiści już teraz mogą two-
rzyć oprogramowanie na nowy system operacyjny.
KLUB TECHNICZNY
14 Technologie Progress OpenEdge – Część 10.
Web serwisy w OpenEdge – Pobieranie usług
innych dostawców.
Piotr Tucholski
Web serwisy są środkiem do szybkiego osiągnięcia in-
tegracji i elastyczności aplikacji w zgodzie z architekturą
SOA. Oferują wymierne korzyści, jak łatwość użycia i nie-
zależność od języka programowania i platformy systemo-
wej. OpenEdge oferuje możliwości zarówno wykorzysta-
nia Web serwisów oferowanych przez innych dostawców,
jak i wystawianie własnych usług. W niniejszym odcinku
zajmiemy się pierwszym z powyższych aspektów.
46 Metody Synchronizacji Bazy Mobilnej SQL
Server Compact z SQL Server 2008.
Na przykładzie Remote Data Access.
Daniel Dudek
Pomimo iż firma Microsoft na konferencji MIX 2010 za-
prezentowała nowy system mobilny Windows Phone 7,
to oznajmiła jednocześnie, że poprzednia wersja systemu,
Windows Mobile 6.5, będzie nadal wspierana. Duża ilość
aplikacji mobilnych z sektora biznesowego i/lub przemy-
słowego czy medycznego stosuje systemy Windows Mo-
bile 5.0, 6.0, 6.1, jak również 6.5. W dzisiejszych czasach
nie można sobie wyobrazić aplikacji działającej bez dostę-
pu do bazy danych. W artykule pokażę, jak wykonać kopię
bazy firmowej do wersji mobilnej, oraz jak przekazać wpro-
wadzone zmiany z powrotem na serwer firmowy.
PROGRAMOWANIE C++
22 Stałość
Stałość logiczna i stałość fizyczna.
Robert Nowak
Oznaczanie obiektów, argumentów, metod i składowych
jako stałe zwiększa czytelność kodu oraz dostarcza dodat-
kowych warunków poprawności.
PROGRAMOWANIE URZĄDZEŃ
MOBILNYCH
PROGRAMOWANIE PYTHON
54 Kurs Pythona. Odcinek 3: Model obiektowy.
Łukasz Langa
Dwa pierwsze odcinki miały za zadanie zapoznać nas
z podstawowymi cechami języka i środowiska Python.
Ostatnią wielką niewiadomą pozostały dla nas klasy. Po
ich poznaniu będziemy mogli uznać, że rozumiemy funda-
menty Pythona. Do dzieła!
26 Rozpocznij przygodę z Windows Phone
– Zobacz, jak to się robi w technologii Microsoft.
Daniel Dudek
Na konferencji MIX 2010 w Las Vegas firma Microsoft za-
prezentowała swój nowy system operacyjny Windows
2
9/2010
2
SPIS TREŚCI
SPIS TREŚCI
APLIKACJE BIZNESOWE
narzędzia do opracowywania, które współpracuje z .NET
Framework 2.0 i kolejnymi wersjami.
58 Zwinna jakość. Strategie testowania
i zapewnienia jakości w Agile.
Karolina Zmitrowicz
W ostatnich latach zapanowała prawdziwa moda na lek-
kie metodologie wytwarzania oprogramowania. Szcze-
gólnie podejścia zwinne, Agile, takie jak Scrum, zdoby-
wają sobie coraz więcej zwolenników. Szybko, tanio,
bez zbędnej biurokracji, działające oprogramowanie na
końcu każdej iteracji – ale czy przy zachowaniu wyso-
kiej jakości?
FELIETON
20 Outsourcing IT
Czyli polska szansa na sukces.
Michał Gronowski
Polski rynek IT zmienia się dynamicznie, jednak ciągle
ma duże perspektywy rozwoju. Coraz częściej stosowa-
nym rozwiązaniem wsród wielu przedsiębiorstw jest out-
sourcing IT. Centra usług IT (świadczące usługi zarówno
dla polskich, jak i zagranicznych klientów) działają prężnie
w naszym kraju. Jako przykład można podać ośrodek Ac-
centureTechnology Solutions w Łodzi.
Z ŻYCIA ITOLOGA
70 Scrum – Nowa metoda zarządzania projektami.
Mariusz Chrapko
Zajęcia z WF-u – tak średnio wspominam. Rzucanie piłką
lekarską o dziwo nawet mi nieźle wychodziło (czułem się
jak jakiś Gigant w walce z bogami Olimpu), ale już na przy-
kład palantówka, biegi dookoła szkoły, skoki przez kozła,
stanie na rękach, przewroty – mógłbym być bohaterem
programu: „O ludziach, którzy przeżyli własną śmierć”.
A Gry Zespołowe? A, to co innego, zwłaszcza siatka. Tu
się naprawdę realizowałem: dwie drużyny, rywalizacja,
wspólny cel… Może dlatego tak lubię Scrum – Grę w Pro-
jekt, z dużym zapasem zdrowego rozsądku.
80 Make IT Green!
Roger Zacharczyk
Biznes i ekologia? Czemu nie… Również firmy z bran-
ży IT mogą wiele zrobić, aby połączyć swoją działalność
z ochroną środowiska. Jak? Odpowiedzią jest Green IT,
do niedawna tylko moda, a od jakiegoś czasu koniecz-
ność, wymóg nakładany na firmy przez Unię Europejską,
ale także inne organizacje. Brzmi strasznie? Na szczęście
– jak to się mówi – nie taki diabeł straszny jak go malują.
Miesięcznik
Software Developer’s Journal
(12 numerów w roku)
jest wydawany przez Software Press Sp. z o.o. SK
EFEKTYWNOŚĆ PRACY
Redaktor naczelny:
Łukasz Łopuszański
lukasz.lopuszanski@software.com.pl
Skład i łamanie:
Tomasz Kostro
www.studiopoligraficzne.com
74 Najprostsze możliwe środowisko – O potędze
prostoty.
Michał Bartyzel, Mariusz Sieraczkiewicz
Kto nie uwielbia tych wspaniałych chwil, kiedy projekt na-
biera kształtu, kolejne funkcjonalności pojawiają się jedna
za drugą i nie możemy się nacieszyć wspaniałym, progra-
mistycznym dziełem. A diabeł czyha …
Kierownik produkcji:
Andrzej Kuca
andrzej.kuca@software.com.pl
Adres korespondencyjny:
Software Press Sp. z o.o. SK,
ul. Bokserska 1, 02-682 Warszawa, Polska
tel. +48 22 427 36 91, fax +48 22 224 24 59
www.sdjournal.org cooperation@software.com.pl
PRZEGLĄD NOWOŚCI
Dział reklamy:
adv@software.com.pl
Redakcja dokłada wszelkich starań, by publikowane
w piśmie i na towarzyszących mu nośnikach informacje i programy
były poprawne, jednakże nie bierze odpowiedzialności za efekty
wykorzystania ich; nie gwarantuje także poprawnego działania
programów shareware, freeware i public domain.
78 Generator raportów dla .Net (Visual Studio)
FastReport.NET 1.4.
FastReport.Net – generator raportów z wieloma funkcjami
dla deweloperów, korzystających z Microsoft Visual Stu-
dio 2005 oraz 2010, Delphi Prism lub z dowolnego innego
Wszystkie znaki firmowe zawarte w piśmie są własności odpowiednich firm.
Zostały użyte wyłącznie w celach informacyjnych.
Osoby zainteresowane współpracą prosimy o kontakt:
cooperation@software.com.pl
BIBLIOTEKA MIESIĄCA
STL w praktyce:
Efektywne wyszukiwanie przy pomocy biblioteki STL
Programisto C++! Czy jesteś pewien, że wykorzystujesz
w praktyce potencjał swojej wspaniałej biblioteki
standardowej? Jeśli chcesz się przekonać, czy Twoja wiedza
na temat operacji wyszukiwania oferowanych przez STL jest
pełna, to koniecznie przeczytaj poniższy artykuł!
Dowiesz się:
• Jakie klasy sekwencji obsługuje STL;
• W jaki sposób STL porównuje ze sobą obiekty;
• Jakie opcje wyszukiwania obiektów oferuje STL.
Powinieneś wiedzieć:
• Solidna znajomość podstaw języka C++;
• Solidna znajomość podstaw biblioteki STL.
wiecie, co posiadacie.
Mam wrażenie, że to
mądre, polskie przysłowie jak ulał pasuje do
niektórych użytkowników biblioteki STL. A przecież
Standard Template Library
uważana jest w różnych
kręgach za jedną z najlepiej zaprojektowanych biblio-
tek w całej historii informatyki. Jej autorom udało się
zrealizować zadanie iście karkołomne: zaprojektować
oprogramowanie wielokrotnego użytku, łatwo rozsze-
rzalne i jednocześnie bardzo wydajne. Jak połączyć
te wykluczające się cechy oprogramowania? Odpo-
wiedzią jest paradygmat programowania uogólnione-
go (ang.
generic programming
), który można stoso-
wać dzięki takim właściwościom języka C++ jak wzor-
ce funkcji i klasy szablonowe.
Jedną z pułapek czyhających na użytkowników STL
jest jej pozorna łatwość. Problem w tym, że wiele do-
stępnych w sieci samouczków opera się na pobież-
nym rozważaniu prostych przykładów użycia tej biblio-
teki, które rozwodzą się nad tym, jak łatwo można pod-
mienić w kodzie wektor (
std::vector
) na listę (
std::
list
). Okazuje się, że rzeczywistość jest o wiele bar-
dziej złożona.
Głównym natchnieniem do rozpoczęcia cyklu arty-
kułów traktujących o bibliotece STL stało się dla mnie
szkolenie, które przeprowadziłem latem br. dla grupy
zawodowych programistów języka C++. Szkolenie za-
tytułowałem
Efektywne wykorzystanie biblioteki STL
,
zaś jego celem było omówienie zestawu praktycznych
idiomów, których stosowanie pozwala korzystać z STL
w sposób poprawny i co ważne – efektywny. Idąc na
to szkolenie, bałem się trochę, czy aby nie zanudzę
moich słuchaczy (spora część prezentowanych mate-
riałów odnosiła się do elementarnej wiedzy na temat
STL). Ku mojemu zdziwieniu, materiał, który przygoto-
wałem, okazał się dla większości uczestników bardzo
cennym uzupełnieniem ich wiedzy na temat standardo-
wej biblioteki wzorców.
Wtedy właśnie wpadłem na pomysł opisania i przed-
stawienia na łamach kolumny
Biblioteka Miesiąca
cy-
klu artykułów zatytułowanego
Praktyczny STL
, w któ-
rym znalazłoby się szczegółowe omówienie podsta-
wowych aspektów korzystania z tej biblioteki. Na po-
czątek postanowiłem opisać, jakie mechanizmy wy-
szukiwania elementów w sekwencjach oferuje nam
standardowa biblioteka wzorców. W kolejnych odsło-
nach cyklu, które pojawiać się będą co jakiś czas na
stronicach
Software Developer's Journal
, omówię rów-
nież metody sortowania sekwencji i usuwania elemen-
tów z sekwencji. Oddzielny artykuł poświęcony będzie
kontenerowi
std::vector
, kolejny zaś – kontenerom
asocjacyjnym.
STL: krótka klasyfikacja kontenerów
Pytanie jest proste:
jak można wyszukiwać za pomocą
biblioteki STL?
Okazuje się, iż odpowiedź na to pytanie
wcale już taka prosta nie jest. Jeśli jedyne, co przycho-
dzi Ci do głowy, to odpowiedź w stylu:
no cóż, można
4
9/2010
Wyszukiwanie
C
udze chwalicie, swego nie znacie, sami nie
Wyszukiwanie przy pomocy biblioteki STL
zapewne użyć algorytmu std::find()...
, to zdecydowanie
powinieneś przeczytać poniższy artykuł!
Zanim udzielę odpowiedzi na postawione wyżej py-
tanie, chciałbym przypomnieć kilka podstawowych fak-
tów na temat biblioteki STL. Zacznijmy od przypomnie-
nia sobie sprawy najbardziej elementarnej. Trzy głów-
ne filary biblioteki STL to:
Listing 1.
Czy żądany element występuje w sekwencji
nieposortowanej?
#include
<algorithm>
#include
<cassert>
#include
<iterator>
#include
<list>
#include
<vector>
•
kontenery
– obiekty, które pozwalają przechowy-
wać inne obiekty,
•
algorytmy
– funkcje służące do przetwarzania
obiektów przechowywanych w kontenerach,
•
iteratory
– obiekty, które pozwalają traktować kon-
tenery jako sekwencje obiektów; stanowią swoisty
klej pomiędzy kontenerami i algorytmami.
#include
<boost/assign/std/list.hpp>
#include
<boost/assign/std/vector.hpp>
using
namespace
boost
::
assign
;
using
namespace
std
;
Ważnym pojęciem w nomenklaturze STL jest
sekwen-
cja
. Sekwencja to – mówiąc prosto – ciąg obiektów,
po którym można się na różne sposoby poruszać.
O tym, w jaki sposób to
poruszanie się
wygląda, decy-
dują klasy iteratorów opisujących sekwencje. Na przy-
kład, jeśli sekwencja opisana jest parą iteratorów wej-
ścia (ang.
Input Iterators
), to jedyne, na co możemy
sobie pozwolić, to
przejście
przez wszystkie elementy
sekwencji, po kolei, bez możliwości żadnych skoków
czy powrotów.
W kontekście tematu, który nas dziś szczególnie in-
teresuje (tj. wyszukiwanie elementów w sekwencjach),
niezwykle istotna jest cecha sekwencji zwana
uporząd-
kowaniem
. Sprawa jest prosta: sekwencje występujące
w STL mogą być nieuporządkowane tudzież uporząd-
kowane (mówiąc innymi słowami: posortowane wedle
określonego kryterium). Ciekawe jest to, że taka kla-
syfikacja sekwencji przenosi się bezpośrednio na jed-
ną z klasyfikacji kontenerów, które można podzielić na
dwie kategorie:
template
<
class
Iter
,
class
T
>
bool
hasValue
(
Iter
irst
,
Iter
last
,
const
T
&
val
)
{
Iter
found
=
ind
(
irst
,
last
,
val
);
return
found
!=
last
;
}
int
main
()
{
vector
<
int
>
vec
;
vec
+=
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
;
assert
(
hasValue
(
vec
.
begin
()
,
vec
.
end
()
,
3
));
assert
(
hasValue
(
vec
.
begin
()
,
vec
.
end
()
,
5
));
assert
(
hasValue
(
vec
.
begin
()+
vec
.
size
()
/
2
,
vec
.
end
()
,
8
));
assert
(!
hasValue
(
vec
.
begin
()
,
vec
.
end
()
,
13
));
assert
(!
hasValue
(
vec
.
begin
()
,
vec
.
end
()
,
15
));
assert
(!
hasValue
(
vec
.
begin
()
,
vec
.
begin
()+
vec
.
size
()
/
2
,
8
));
•
kontenery sekwencyjne
(
std::vector
,
std::list
,
std::deque
i
std::string
) – ich zawartość domyśl-
nie nie jest uporządkowana;
•
kontenery asocjacyjne
(
std::set
,
std::multiset
,
std::map
i
std::multimap
) – ich zawartość zawsze
jest uporządkowana.
list
<
int
>
lst
;
lst
+=
2
,
4
,
6
,
8
,
10
;
assert
(!
hasValue
(
lst
.
begin
()
,
lst
.
end
()
,
3
));
Kategoryzacja ta jest bardzo ważna dla każdego użyt-
kownika biblioteki STL. Dlaczego? Otóż dlatego, że
pierwsza część odpowiedzi na pytanie
jak można wy-
szukiwać za pomocą biblioteki STL?
brzmi:
to zale-
ży od tego, czy chcesz przeszukiwać sekwencję upo-
rządkowaną czy nieuporządkowaną
.
list
<
int
>::
const_iterator
it
(
lst
.
begin
());
advance
(
it
,
lst
.
size
()
/
2
);
assert
(
hasValue
<
list
<
int
>::
const_
iterator
>(
lst
.
begin
()
,
it
,
4
));
Co to znaczy „szukać”?
Skoro znamy już pierwszą część odpowiedzi na na-
sze pytanie, warto poszukać kolejnej. Okazuje się, że
będzie ona... kolejnym pytaniem. W tym miejscu moż-
return
0
;
}
www.sdjournal.org
5
Plik z chomika:
scrum
Inne pliki z tego folderu:
SDJ 03.2011 PL.pdf
(8875 KB)
SDJ 02.2011 PL.pdf
(14257 KB)
SDJ 01.2011 PL.pdf
(13720 KB)
SDJ 12.2010 PL.pdf
(12546 KB)
SDJ 11.2010 PL.pdf
(14189 KB)
Inne foldery tego chomika:
ArchiMate
ATAM
BABOK
BPML
BPMN
Zgłoś jeśli
naruszono regulamin