środa, września 14, 2011

O MS i jego technologiach

Kolejne narzędzie do monitorowania wymiany danych w aplikacjach internetowych – httpwatch. Niestety wersja basic jest darmowa, inne są płatne – ok. 400 dolarów. Podobny efekt dostaniemy stosując FireBuga w Firefoxie lub inny monitor np. Fiddler lub DynaTrace (szczególne do testowania AJAX). Można też skutecznie wykorzystać wbudowany w IE8/9 debugger (F12). Czym się różni cURL do przegladarki? Przegladarka wczytuje stronę i wszystkie odnośniki do jej zasobów (style, js, linki) i następnie je “wykonuje” na tej stronie, cURL czyta tylko to co jest pod adresem, który mu wskażemy i nie zagłębia się dalej. Najlepsze narzędzie do darmowego dzielenia partycji GPARTED.

Porady MS z MSDN na temat oprogramowania OneNote w środowisku VBA w Excelu.

Jak tworzyć aplikacje mobilne? Można pójść w kierunku modelu natywnego tzn. tworząc kod natywny (binarny) pod dany system operacyjny (Apple iOS, Google Android, Symbian, HP WebOS czy MS Windows Phone 7/Windows 8 Mango) ale to prowadzi do zróżnicowania/fragmentacji bazy kodowej (pod każdy OS inny kod). Inna droga to tworzenie aplikacji serwerowej i ściąganie jej na urządzenie mobilne (w tym przypadku kod serwerowy jest dowolny, może to być PHP/Python/Ruby/.NET/J2EE/EXT-GWT pod warunkiem, że strumień posyłany do urządzenia zawiera HTML5 i JS – a właściwie HTML/JS/CSS). Ten ostatni sposób jest uniwersalny – działa na każdym urządzeniu, ale ma wadę jest mniej efektywny od kodu natywnego i wymaga framweworka do tworzenia aplikacji mobilnych. Takich frameworków jest wiele choćby DHTMLX Touch (mamy), jQuery Mobile, Sencha Touch, czy framwork firmy Nitobi itd. Czyli druga droga jest lepsza od kodu natywnego ale i taki wymaga rozdwojenia (sforkowania) kodu aplikacji na urządzenia mobilne i stacjonarne. Istnieje jeszcze inne rozwiązanie - generatory aplikacji do tworzenia kodu natywnego. Pisze się w Javie a potem generuje kod natywny dla danej platformy - tak działa bezpłatne oprogramowanie Appcelerator (kupił on ostatnio firmę Aptana znaną z narzędzi typu RAD bazujących na Eclipsie i przeznaczonych dla JS/PHP/Ruby/HTML) lub rozwiązanie firmy XAMARIN - Mono Android/Mono Touch (tam się pisze w #C z .NET), są też rozwiązania komercyjne lub ciekawostka App Inventor firmy Google. Ważną sprawą jest WYDAJNOŚĆ – kod aplikacji mobilnych nie powinien być zbyt skomplikowany (rozdmuchany graficznie i złożony logicznie) ponieważ te urządzenia mimo wszystko są wolne (patrz jak długo ładują się np. popularne portale społecznościowe twitter czy facebook). Tutaj nasze aplikacje mogą się zachowywać gorzej niż na starych PC-tach z Windows XP i IE 6/7 na pokładzie. W większości przypadków w tych urządzeniach stosuje się procesory architektury ARM firmy Qualcomm – najpopularniejsza rodzina CPU to SnapDragon

Rady praktyczne przy tworzeniu aplikacji mobilnych: a) stosowanie szablonów stron – projekt boilerplate, c) przeczytanie porad na webhosting, c) zapoznanie się z artykułem Hanselmana o CSS3 media queries

Znalezione na webhostingu.pl. Wychodząc naprzeciw programistom w JS powstaje nowy framework JS czyli biblioteka funkcji JS – Kendo UI – na bazie dobrze znanego jQuery (jak często nazywa się ją “zabójca” Flasha na ten temat jest świetny artykuł w witrynie appendto). Na razie jest ona dostępna na licencji GPL3 (niekomercyjnej). Wsparcie komercyjne będzie później jak również i wersja MOBILE (listopad) – ich plany (roadmap) są tu. Tu i ówdzie  pojawia się firma Telerik (co to może znaczyć?). Uwaga: To jest wersja BETA!. Czy KENOD UI to po prostu  jakiś tam zamiennik jQuery UI i wtyczek zintegrowanych w jedną całość? Czyli Kendo UI to wszystko graficzne poza bazowy framework jQuery. Co jeszcze wyróżnia Kendo UI – zintegrowane pojęcie DataSource oraz Templates (Szablonów), w jQuery to jest jeszcze w powijakach. Kendo UI integruje się też z zewnętrznymi bibliotekami KNOCKOUT oraz JQ template.

Proszę popatrzeć – wszędzie przewija się biblioteka jQuery! Jest specjalny dodatek do VS 2010 z intellisense dla JQuery do ściągnięcia tu. Prezentacje są na blogu - http://frontenddesignconference.com/presentations/jquery_nuts_bolts_and_bling

Co daje HTML5: a) nowe elementy semantyczne strony (header, footer, article), b) nowe elementy formularza (gui i walidacje po stronie klienta), c) wsparcie natywne dla mediów (video i audio), d) kanwa (rysowanie 2D na płótnie) e) obsługę gniazdek sieciowych (web socket), f) wsparcie aplikacji offline (lokalne baza danych), g) pamięć lokalne zamiast ciasteczek h) praca asynchroniczna (web workers) i) geo lokacja. Należy pamiętać, że wsparcie CSS3 to nie HTML5.

Co zrobić jak się nie ma pełnego pakietu MS Office? Spróbuj Office Web Apps (Word, Excel, PowerPoint and OneNote pracujące w przeglądarce). Jeden warunek – konto w MS Live. Ale dzięki niemu dostajesz dodatkowo 25 GB pamięci w chmurach za darmo.

Zrzucił jarzmo – kto? Google. Jakie? Znaczek “wiecznej” bety czyli “Preview” na stronie głównej GAE. Czym się różni Google App Engine od MS Azure? Teraz niczym, obaj są usługami płatnymi. Ostatnio GAE ma zdjęty napis “Preview” więc to już produkt komercyjny, ma podwyższone opłaty co trochę podwyższyło ciśnienie niektórym deweloperom. Ale jest jena subtelna różnica – MS Azure pozwala tworzyć chmury prywatne lub hybrydowe (obok publicznych). Taka mania skrywania swej własnej infrastruktury serwerowej może Google nie wyjść za dobrze. W MS wiadomo, kupuje się MS Windows Server 2008 + inne dodatki (rozwiązania serwerowe jak SharePoint + Office Web Apps) i ma się u siebie chmurę do własnej dyspozycji z pełna kontrolą dostępu. Pod tym względem rywalami dla MS są Dell i VMware. MS ma też partnera Futjitsu.

Cięcia kosztów czy co? Podobnie jak Google obciął wiele peryferyjnych projektów programistycznych w swym Google Labs tak i MS oświadczył, że pragnie skończyć życie OLE DB (dokładnie chodzi o OLE DB dla MS SQL Serwera 2011 – Denali). Dostawcy OLE DB dla innych baz (np. Oracle) są nietknięci. OLE DB ma w swej nazwie OLE, a to już wymarła technologia (skończyła się wraz z Windows XP) bazująca na API z COM+. Co w zamian? Stare, dobre, portowalne na inne platformy API dla ODBC. A ODBC jest okrzepłym, ogólnie przyjętym standardem ANSI. Zbiega to się z innym wydarzeniem – MS stawia na dobre, szybkie aplikacje w C++ i zachęca programistów do korzystania z tego języka. Ale to może zbieg okoliczności. A oto lista wszystkich kandydatów na nieboszczyków, czyli produktów, których wsparcie się niebawem może zakończyć. Powyższa akcja w nowomowie MS (i nie tylko) nazywa się równaniem do szeregu – alignment. Uwagi techniczne: podczas podłączenie poprzez OLE DB następuje uruchomienie całej “maszynerii” uniwersalnej biblioteki COM do  obsługi dowolnego źródła danych, inicjacja ODBC odbywa się poprzez “skok” do DLL pełniącej funkcję zarządcy ODBC – ODBC32.dll , która jest odpowiedzialna za wywołanie odpowiedniego sterownika (też DLL) do obsługi danej bazy. Jest to krótsze i wydajniejsze. Podobny mechanizm działa w przypadku JDBC – do połączenia wystarczy pojedynczy plik JAR bez dodatkowego narzutu warstwy zarządzającej. Jest to dobre bo szybie i wydajne ale stwarza też kłopoty. W przypadku OLE można było zarządzać pulą połączeń. W przypadku ODBC / JDBC ktoś musi tym również zarządzać. Kto? Nie wiadomo. Na stronie jest dokument opisujący w sposób techniczny różnice działania.

Wychodząc naprzeciw programistom MS udostępnił SSDT – SQL Server Development Tools – narzędzie ułatwiające pracę z bazami danych (oczywiście MS-owymi). Jest tutaj wzmianka o LocalDB – następcy MS SQL Server Express. Utworzenie bazy to polecenie:

C:\Program Files\Microsoft SQL Server\110\Tools\Binn>SqlLocalDB.exe create LocalDBDemo

Podpięcie się do niej:

(localdb)\LocalDBDemo

Więcej na temat localDB - go.microsoft.com/fwlink/?LinkId=221201 – wchodzi ona w skład MS SQL Server o nazwie Denali i określa się jako - SQL Server Express LocalDB

Wszystkie przeglądarki są nasze, żadnej nie zaniedbamy. Pod tym hasłem ewangeliści MS zachęcają do stosowania HTML 5 nawet na “przestarzałych” wersjach przeglądarek (patrz ich własnych wersji IE 6/7/8). Rada – sprawdzić z jaką przeglądarką ma się do czynienia i nie wierzyć zawartości UA (User-Agent). Podobny artykuł na ten temat jest tutaj.

Jak wywoływać PInvoke? Tak - tu.

Wielkie nieba! Herezja do potęgi! Instalowanie node.js na IIS! Hanselman jest dobry.

Warto zbadać:

  1. Gry w JS/HTML5 - http://click.email.microsoftemail.com/?qs=693c747dc51c5c434d275ff0731f519cc21d9ee61b4229fe1f285b759770ff6ba9e9f2acf249abc9
  2. HTML5 Gaming: Animating Sprites in Canvas with EaselJS
    When you want to write casual games using the HTML5 Canvas element, you'll need to find a way to handle your sprites. See how to use EaselJS in PiratesLoveDaisies, an HTML5 tower defense game. In this tutorial: how to use your existing sprite elements and animate them.
  3. Channel9::GoingNative[1]
    See demos of the next Visual C++ IDE. Watch an interview of the man behind Microsoft's implementation of the C/C++ Runtime Library CRT. Listen to what people said about the latest C++ and Beyond conference.

Brak komentarzy: