BLOGas.lt
Pigūs skrydžiai
Sukurk savo BLOGą Kitas atsitiktinis BLOGas

Lietuvos .NET vartotojų grupės susitikimas

Parašė Sergejus | 2010-03-31 10:11

Pirmasis šiais metais susitikimas bus skirtas Silverlight 4 ir viskam kas aplink jį (įskaitant Windows Phone 7 Series).

Vilniuje (Crowne Plaza Safyrinė C salė) - balandžio 6 d., Kaune - balandžio 8 d (Technopolis, Microsoft Inovacijų Centras).

17:30 - 18:00 - Silverlight 4 naujovės, Tautvydas Dagys, Microsoft Lietuva

18:15 - 19:15 - Silverlight 4 geriausios praktikos, Tomas Sakalauskas, Prewise

19:30 - 20:00 - Įspūdžiai iš MIX10, Sergejus Barinovas, Microsoft MVP

20:45 - Boulingas

Registracija:

Vilniuje - http://www.eventbrite.com/event/635882943

Kaune - http://www.eventbrite.com/event/635886955

Rodyk draugams

Heterogeninių šaltinių sinchronizavimas naudojant LINQ

Parašė Sergejus | 2010-03-29 21:52

Šiandien kilo poreikis sinchronizuoti dvi vieno tipo kolekcijas, imančias duomenis iš heterogeninių duomenų šaltinių (DB ir VMWare). Vaizdžiai tai galima įsivaizduoti taip:

public class T
{
    public int A { get; set; }
    public string B { get; set; }
    public string C { get; set; }
}

public class Test
{
    private IList<T> col1 = new List<T>
    {
        new T { A = 1, B = "B1", C = "C1" },
        new T { A = 2, B = "B2", C = "C2" },
        new T { A = 3, B = "B3", C = "C3" }
    };

    private IList<T> col2 = new List<T>
    {
        new T { A = 1, B = "B1", C = "C1" },
        new T { A = 2, B = "X2", C = "C2" },
        new T { A = 4, B = "B4", C = "C4" }
    };
}

Problema

Tarkime, klasės T savybė A yra pirminis raktas, col2 yra sinchronizacijos šaltinis (tai yra aktualūs duomenys), o col1 yra sinchronizuojama kolekcija. Tam kad col1 turėtų aktualius duomenis reikia atlikti 3 operacijas:

  1. Atnaujinti objektą A=2 (pakeisti savybės B reikšmę iš B2 į X2)
  2. Ištrinti objektą A=3
  3. Įterpti naują objektą A=4

Sprendimas

Atidžiau pasižiūrėjus į užduotį, kilo įtarimas, kad optimaliausias sprendimas būtų pasitelkti aibių algebrą (Intersect, Union, Except). Kaip žinia, reliacinės duomenų bazės grindžiamos aibės teorija, todėl mano paieška ir prasidėjo nuo užklausos „sql + union + compare tables“ (dėl Union turėjau tam tikrų pamąstimų, todėl ir pabandžiau pirma). Bingo! Pirmas rezultatas ir iš karto tai ko man reikia. Jeff Smith SQL užklausa grąžina visus įrašus, kuriuose bent vienas stulpelis skiriasi, o taip pat įrašus, kurių nėra vienoje iš lentelių (praktikoje tai reiškia, kad įrašas buvo įterptas arba pašalintas). SQL sakinys atrodo taip:

SELECT MIN(TableName) as TableName, ID, COL1, COL2, COL3 ...
FROM
(
  SELECT 'Table A' as TableName, A.ID, A.COL1, A.COL2, A.COL3, ...
  FROM A
  UNION ALL
  SELECT 'Table B' as TableName, B.ID, B.COL1, B.COl2, B.COL3, ...
  FROM B
) tmp
GROUP BY ID, COL1, COL2, COL3 ...
HAVING COUNT(*) = 1
ORDER BY ID

Pusė sprendimo yra, bet kadangi aš dirbau su heterogeniniais duomenų šaltiniais, man reikėjo konvertuoti aukščiau pateiktą SQL sakinį į LINQ to Objects. Prisipažinsiu, tai man užtrūko pusantros valandos, o viskas dėl SELECT MIN(TableName) as TableName. Po tam tikrų bandymų pavyko parašyti teisingą LINQ užklausą:

var tmpCol1 = from c in col1
              select new
              {
                  Entity = "col1",
                  Item = c
              };

var tmpCol2 = from c in col2
              select new
              {
                  Entity = "col2",
                  Item = c
              };

var changes = from c in tmpCol1.Union(tmpCol2)
              group c by new
              {
                  c.Item.A,
                  c.Item.B,
                  c.Item.C
              } into g
              where g.Count() == 1
              orderby g.Key.A
              select new
              {
                  Entity = g.Min(c => c.Entity),
                  Item = g.Key
              };

var result = changes.ToList();

Čia result yra kolekcija, kuri turi dvi savybes: Entity – kolekcijos pavadinimas (col1 arba col2) ir ItemT tipo objektas. Entity savybės dėka mes galime sužinoti ar įrašas buvo modifikuotas, pridėtas ar pašalintas.

Kuo daugiau dirbu su LINQ, tuo labiau įsitikinu koks jis yra galingas…

Rodyk draugams

Internet Explorer 8 lietuviškų papildukų konkursas

Parašė Sergejus | 2010-03-28 13:27

Kažkaip be didesnio šurmulio prasidėjo naujasis Microsoft Lietuva konkursas, skirtas geriausiam lietuviškam Internet Explorer 8 papildukui išrinkti. Norint dalyvauti konkurse jums užtenka sukurti unikalų lietuvišką IE8 papilduką (angl. Add-on), kas realiai apima Web sritis (web slices), paieškos tiekėjus (search providers) bei spartintuvus (accelerators). Pagrindnis prizas kaip niekada vertingas – kelionė į konferenciją MIX11! Patikėkit, ten tikrai verta nuvažiuoti.

Džiugu, kad lietuviškų papildukų kolekcija vis pildosi, prieš kelias dienas teko pačiam pasinaudoti Maps.lt spartintuvu, tad nauda tikrai akivaizdi. Manau didžiausias šio konkurso privalumas – laimi tiek dalyviai, tiek galutiniai naudotojai.

Daugiau informacijos galite rasti www.narsykirlaimek.lt puslapyje.

image

Rodyk draugams

Nemokamas Windows Azure jau nebeprieinamas, o mokamas vis dar neprieinamas

Parašė Sergejus | 2010-03-24 00:36

Tiksliai nežinau kada tai atsitiko, bet prieš porą dienų nusprendžiau parašyti paskutinį straipsnį iš mano Windows Azure serijos ir pastebėjau, kad negaliu nieko keisti Windows Azure portale. Pabandžiau užeiti į savo anglišką tinklaraštį sergejus.com ir gavau 404 klaidą (puslapis nerastas). Pasirodo, nebeliko nei mano tinklaraščio, nei duomenų bazės, nieko… Aš turėjau įsivaizdavimą, kad tai atsitiks, bet ne anksčiau negu ateis Windows Azure į Lietuvos rinką. Dabar tokia įdomi situacija: nemokamas Windows Azure jau nebeprieinamas, o mokamas vis dar neprieinamas. Kyla amžinas klausimas – ką daryt?

Rodyk draugams

Windows Phone 7 galimybių video

Parašė Sergejus | 2010-03-20 18:17

Iš karto po Windows Phone 7 kūrimo įrankių anonso MIX10 konferencijos metu, vienas entuziastas atrakino telefono emuliatorių kartu su visomis paslėptomis galimybėmis. Anot Microsoft, visas paslėptas funkcionalumas yra dar kūrimo stadijoje ir gali keistis, dėl ko ir buvo nuspręsta jį paslėpti. Jeigu jums įdomu pamatyti tai, kas dar oficialiai Windows Phone 7 nebuvo rodoma – video žemiau.

Video autorius Jason Cartwright

Rodyk draugams

MIX 10 – antros dienos naujienos

Parašė Sergejus | 2010-03-17 19:05

Antroji diena prasidėjo nuo to, kad Dean Hachamovitch anonsavo Internet Explorer 9 Technical Preview prieinamumą bei kartu su Windows padalinio vice prezidentu Steven Sinofsky gyvai pademonstravo naujos naršyklės galimybes. Visų nuostabai, IE9 palaikys dažniausiai naudojamus CSS3 ir HTML5 elementus, turės ženkliai pagerintą JavaScript variklį (šiuo metu veikia greičiau nei Firefox 3.7), palaikys SVG palaikymą bei aparatinį grafikos spartinimą atvaizduojant tiek HTML, tiek SVG.

Po Internet Explorer 9 pristatymo, scenoje parsirodė Scott Guthrie ir trumpai pristatė pagrindines Visual Studio 2010 ir ASP.NET 4 naujoves, po ko sekė Scott Hanselman demo. Demonstracijos metu buvo parodyta nauja jQuery šablonų (templating) biblioteka, kurią Microsoft sukūrė ir perdavė jQuery bendruomenei. Scott Guthrie paskelbė, kad nuo šiol oficialiai rekomenduojama naudotis jQuery biblioteka klientinėje dalyje, o MS Ajax Library patampa MS Ajax Toolkit dalimi.

Scott Guthrie atsisveikinus, scenoje pasirodė Doug Purdy ir pristatė Microsoft Web paslaugų strategiją. Vienas iš šios strategijos aspektų buvo anonsuotas kaip OData arba Open Data protokolas. Jeigu esate naudoję WCF Data Services (dar žinomą kaip Astoria ir ADO.NET Data Services), OData tai yra tas pats duomenų formatas bei URL susitarimai ($top, $filter ir pan.), prieinamas iš skirtingų platformų: Java, PHP ir pan. Taip pat kaip Microsoft strategijos dalis buvo paminėtas šiuo metu kuriamas duomenų paviešinimo servisas Codename „Dallas“.

Paskutinį pusvalandį Bill Buxton pasakojo apie Natural User Interface (NUI) bei kaip pavyzdį parodė projektą Gustav – natūrali naudotojų sąsaja dailininkams.

Nuorodos:

Internet Explorer 9 Technical Preview

OData

Codename „Dallas“

Project Gustav

Nemokama knyga iš Windows Phone 7:

WinPhone_v3%20(2)_thumb[1]

PDF, XPS, kodo pavyzdžiai

Antros dienos pagrindinis pristatymas:

Rodyk draugams

MIX 10 – pirmos dienos naujienos

Parašė Sergejus | 2010-03-16 19:50

Šiandien oficialiai prasidėjo MIX10 konferencija ir kaip jau tapo įprasta, pagrindinio pristatymo vedėju buvo daugeliui gerai žinomas ScottGu. Pirmos dienos dėmėsis buvo skirtas Silverlight 4 ir susijusioms technologijoms. Ilgai nelaukiant, iš karto buvo anonsuota apie Silverlight 4 Release Candidate versijos prieinamumą. Galutinė versija anot Scotto pasirodys po mėnesio. Kartu su nauju Silverlight atsinaujino ir dizaineriams skirtas Expression Blend įrankis – Expression Blend 4 Beta.

Po Silverlight ir Expression Blend galimybių demonstravimo scenoje pasirodė Joe Belefiore – Windows Phone padalinio vice prezidentas. Mums buvo parodytas tiek jau Barselonoje demonstruotas funkcionalumas, tiek pirmą kartą parodytos Office Mobile aplikacijos (kurios yra vis dar kuriamos). Po galimybių apžvalgos ScottGu anonsavo Windows Phone kūrimo platformą: Silverlight ir XNA. Svarbu pažymėti, kad jūsų egzistuojantis Silverlight tiesiog veiks Windows Phone!

Microsoft kuo puikiausiai supranta, kad telefono populiarumas priklausys nuo aplikacijų skaičiaus, todėl buvo paskelbta apie nemokamų Windows Phone įrankių prieinamumą: Visual Studio 2010 Express for Windows Phone CTP, Windows Phone Emulator CTP, Silverlight for Windows Phone CTP ir XNA 4.0 Game Studio CTP.

Nuorodos:

Silverlight 4 Runtime for Windows

Silverlight 4 Runtime for Mac

Silverlight 4 Tools for Visual Studio 2010

Expression Blend 4 Beta

Windows Phone Developer Tools CTP

Pirmos dienos pagrindinis pristatymas:

Rodyk draugams

MIX10 – paskutinės valandos Lietuvoje

Parašė Sergejus | 2010-03-12 14:12

Kaip ir rašiau anksčiau, šiais metais aš pirmą kartą dalyvausiu MIX konferencijoje Las Vegase. Tradiciškai susiklostė, kad Microsoft anonsuoja daugiausiai naujų produktų per dvi konferencijas: MIX ir PDC. Šiais metais pagrindinis akcentas bus Windows Phone 7 Series, bet taip pat didelis dėmesys bus skirtas Silverlight 4, Internet Explorer 9 ir Windows Azure. Pirmadienį ir antradienį vyks pagrindinės sesijos (keynotes), iš kurių aš bandysiu gyvai rašyti į twitterį (@sergejusb), o vėliau išpublikuosiu apibendrintą dienos straipsnį. Raginu visus sekti MIX naujienas čia!

Rodyk draugams

Kelios mintys dėl Windows Phone 7 Series

Parašė Sergejus | 2010-03-09 01:02

Aš esu vienas iš tų žmonių, kurie daugiau nei metus stebėjo ir rinko gandus apie Windows Phone 7. Tai tikriausiai pirmasis Microsoft produktas, pagamintas be jokių informacijos nutekėjimų. Tam kad geriau įsivaizduotume ant kiek tai buvo slaptas produktas – nei Microsoft darbuotojai, nei Windows Mobile MVP nežinojo kas vyksta Windows Phone 7 grupės viduje.

Vasario 15 dieną, Mobile World Congress konferencijos metu, Steve Ballmer pirmą kartą per 18 mėnesių nuo kūrimo pradžios, parodė gyvai Windows Phone 7. Tuo pačiu metu buvo išpublikuotas ir detalesnis video Channel 9 svetainėje. Microsoft pribloškė visus (ko nebuvo jau pakankamai senokai) savo novatoriška vartotojo sąsaja (vadinama Metro) ir operacinės sistemos galimybėmis. Per sekančias kelias valandas tai tapo naujiena #1 IT pasaulyje. Apie Windows Phone 7 rašė IT portalai, tinklaraščiai, twitter ir kiti media šaltiniai. Tuo pačiu metu startavo ir oficialus puslapis – windowsphone7series.com bei tinklaraštis.

wp7-1

Trumpai priminsiu svarbiausius dalykus apie Windows Phone 7 telefonus. Iki šiol Microsoft buvo liberali Windows Mobile įrenginių gamintojams. Jie neturėjo jokių apribojimų ekrano dydžiui bei rezoliucijai, atminties kiekiui, procesoriaus dažniui ir kitoms charakteristikoms. Nuo šiol kiekvienas įrenginys turės tenkinti žemiau išvardintus techninius reikalavimus:

  • Didelis WVGA ekranas su fiksuotu aukščio/pločio santykiu (angl. aspect ratio)
  • Talpinis jutimui jautrus ekranas (angl. capacitive multitouch)
  • 5 aparatiniai mygtukai: Start, atgal, paieška, įjungimas/išjungimas ir kamera. Lygiai 5 – nei daugiau, nei mažiau
  • Telefonas turi tenkinti tam tikrus minimalius CPU ir GPU reikalavimus
  • WiFi palaikymas
  • AGPS palaikymas
  • Akselerometras
  • FM radijas
  • Ne mažesnė nei 5 Mega pikselių kamera

Kaip matote, šie apribojimai skirti išlaikyti vienodą naudojimosi Windows Phone 7 patyrimą nepriklausomai nuo konkretaus gamintojo modelio.

Windows Phone 7 tai visiškai nauja mobilių įrenginių operacinė sistema. Ji didžiąja dalimi paremta Zune HD OS, todėl naudoja tą pačią Metro vartotojo sąsaja. Dar daugiau, Microsoft pristatė naują koncepciją – Hubs. Tai centrinė vieta, iš kurios galima atlikti tam tikras tipines užduotis bei patogiau naviguoti tarp susijusios informacijos ir meniu punktų. Šiuo metu paskelbtos 6 sritys:

  • People hub
    wp7-2
  • Picture hub
    wp7-3
  • Games hub
    wp7-4
  • Music + Video hub
    wp7-5
  • Marketplace hub
    wp7-7
  • Office hub
    wp7-6

Marketplace sritis apima ir visas telefono aplikacijas, kadangi nuo šiol tai vienintelė vieta iš kurios galima instaliuoti naujas aplikacijas. Apskritai, be 3G ar WiFi prisijungimo vargu aš Windows Phone 7 telefonas galės pilnaverčiai dirbti. Internetas naudojamas kontaktų sinchronizacijai su Facebook ir XBox Live, jūsų pasiekimai žaidimuose bei patys žaidimai irgi sinchronizuojasi su XBox Live, informacija apie grojamą MP3 dainą gali būti imama tiesiogiai iš interneto, Office (tame tarpe ir SharePoint) moka sinchronizuotis su debesimi (angl. cloud) ir t.t.

Norėdami detaliau pasiskaityti apie Windows Phone 7 galimybes rekomenduoju perskaityti šį Engadget straipsnį bei pasižiūrėti jų šou (nuo 30 minutės).

OK, aukščiau pateikta informacija nėra naujiena ir yra praktiškai mėnesio senumo. Kodėl šį straipsnį aš nusprendžiau parašyti tik dabar? Barselonoje buvo pristatyta tik viena naujovių pusė – naujovės skirtos galutiniams naudotojams. Visos naujienos skirtos programuotojoms turėjo būti paskelbtos kitą savaitę vykstančioje MIX konferencijoje (iš kurios aš aktyviai dalinsiuos įspūdžiais twitteryje). Bet prieš kelias dienas dalis informacijos pirma buvo atskleista viename iš oficialių tinklaraščių, o vėliau atsirado vaizdo įrašasTechEd Middle East konferencijos, kuriame tas pats žaidimas veikė tiek XBox, tiek Windows Phone platformose.

Pirma blogos naujienos – pasitvirtino informacija, kad egzistuojančios Windows Mobile aplikacijos naujoje operacinėje sistemoje nebeveiks. Neišreikštinai tai pat buvo pasakyta, kad .NET Compact Framework irgi nebeveiks Windows Phone 7. Programuotojams bus skirti du pagrindiniai įrankiai – Silverlight aplikacijų kūrimui bei XNA žaidimų kūrimui. Asmeniškai aš nepergyvenu dėl to, kad senos aplikacijos nebeveiks – pats laikas viską pergalvoti iš esmės. Iš kitos pusės aš be galo patenkintas, kad pasirinktos egzistuojančios brandžios technologijos: XNA iki šiol buvo naudojamas kurti žaidimus personaliam kompiuteriui, XBox 360 ir Zune HD; Silverlight jau kurį laiką kuo puikiausiai veikia tiek naršyklėse, tiek už jų ribų (out of browser support).

Vienintelis dalykas kuris mane gąsdina – tai Marketplace sritis. Nuo pat Zune pasirodymo dėl juridinių priežasčių jis buvo prieinamas tik JAV ir Kanadoje. Ar tai reiškia, kad su Windows Phone 7 mes galėsime pirkti muziką ir filmus tik iš JAV – kol kas nežinau, bet tikiuosi gauti atsakymą į šį klausimą MIXe.

Apibendrinant, turiu pripažinti kad šį kartą Microsoft pavyko padaryti „WOW“. Kas ypač malonu, su naujos operacinės pasirodymu iš karto taps pasiekiamas ir visas įrankių arsenalas programuotojams. Šiuo metu turiu svajonę – kuo greičiau nusipirkti Windows Phone 7, o tai turėtų tapti įmanoma dar šiais metais…

O ką jus manote apie Windows Phone 7?

Rodyk draugams

Steve Ballmer apie Microsoft debesų kompiuterijos strategiją

Parašė Sergejus | 2010-03-04 22:53

Ką tik pasibaigė online video transliacija iš Steve Ballmer pristatymo apie Microsoft debesų kompiuterijos strategiją. Rekomenduoju pasižiūrėti žemiau esantį video (1,5 valandos). Pristatymo metu didžiausias dėmėsis buvo skirtas šitiems Microsoft produktams:

  • Windows Azure
  • SQL Azure
  • Exchange Online
  • Sharepoint Online
  • Office Web Apps
  • Office Communications Online
  • Dynamics CRM Online

Rodyk draugams