Weblog

Informačný portál

Moja iniciatívna maličkosť navrhla, aby v robote nasadili nejaký portál na správu dokumentov. Mám skúsenosti s pár inštaláciami SharePoint Services, tak sme sa rozhodli pre ne. Požiadavka na portál bola, aby vedel pracovať aj s dokumentami na zdiľaných priečinkoch a s mailami v Exchange. Čiže sme potrebovali nasadiť SharePoint Portal Server 2003.

Rozchodiť SPS Portál už nie je taká sranda, ako rozchodiť len WSS. Trápili sme sa s kolegom, trápili, celý deň. Úspech v rozchodení Portálu spočíva v tom, že konto, pod ktorým beží Application Pool portálu na IIS, má prístup do SQL Server-u a je owner konfiguračnej databázi Portálu.

SharePoint Portal má úžasnú vec, ktorou je crawler. Tento indexovací robot prechdáza stránkami portálu a indexuje ich. Týmto spôsobom dokáže naindexovať Portál, Sites, Exchange alebo zdieľané priečinky. Verejné priečinky Exchange, ktoré sa majú zdieľať, treba vystaviť cez Exchange HTTP Virtual Server s použitím Windows integrated authentication a bez formulárového prihlasovania. Potom stačí crawleru povoliť adresu http://exchange/public/verejný_priečinok a spustiť indexáciu.

Vyhľadávanie je jedna z najlepších vecí na Portále. Z jediného vyhľadávacieho políčka máte možnosť vyhľadať vo full textovo indexovanom obsahu (kategorizovanom na základe metadát v dokumentoch) , ktorý nepozostáva len z obsahu dokumentov v knižniciach na SharePoint-e, ale aj zo súborov na zdieľaných priečinkoch, v Exchang-i a na mnohých iných miestach. Všeobecne sa dá povedať, že čokoľvek, čo sa dá reprezentovať URI adresou, sa cez portál dá nájsť.

Ukladanie dokumentov do knižníc na SharePoint Services je geniálne jednoduché. Stačí otvoriť Word, napísať svoj dokument a uložiť ho na adresu http://sharepoint/sites/project/documen­ts. Word, Excel a PowerPoint dokážu prechádzať štruktúrou SharePoint-u ako priečinkami na disku, ?root? však nie je Tento počítač, ale SharePoint Server.

Pre správne fungovanie balíka Office so SharePointom treba mať doinštalovanú súčasť SharePoint Services Components, bez ktorej Office nevie takto pracovať so SharePointom.

Windows Sidebar Gadgets

Windows Vista a portál Live.com umožňujú spúšťanie tzv. Gadgetov, čo sú mini aplikácie využívajúce DHTML alebo Web 2.0. Najnovšie informácie pre vývojárov o gadgetoch sú na MicrosoftGadget­s.com. Sú tu dva tutoriály o vytváraní gadgetov pre Live.com a Windows Sidebar. Jediný rozdiel pre Gadgety medzi týmito dvoma prostrediami je XML manifest, ktorý popisuje Gadget.

Live.com používa rozšírený RSS formát. Windows Sidebar používa vlastný XML formát, ktorý popisuje Gadget v podstate rovnakým spôsobom, ako RSS formát, len tagy majú iné názvy.

Na vývoj Gadgetov vám stačí Visual Studio Express (Web Edition pre Live.com Gadgety) a prípadne Windows Vista, ak by ste chceli testovať Gadgety vo Windows Sidebar-e. Potrebujete mať znalosť HTML, CSS a JavaScript-u a potom už stačí si prejsť SDK.

Nastavenie vývojového prostredia pre Live.com gadgety je pracnejšie, poskytuje však aj ladenie JavaScriptov z prostredia Visual Studia (podpora pre breakpointy, step in/out… klasické debugovanie).

Portál Live.com nepoužívam, tak som začal pracovať na Gadgete do Windows Sidebar. Podľa tutoriálu som vytvoril šablónu pre Visual Studio, ktorá vytvorí nový C# projekt so základnou štruktúrou, predpripravenou prvou stránkou a stránku s nastaveniami Gadgetu a nejakú tú aplikačnú logiku na pozadí. C# projekt po zbuildovaní nakopíruje súbory do správneho priečinku, aby ho Windows Sidebar videl. V tomto type projektu však nebude možné ladiť JS, pretože Windows Sidebar nepracuje so zdrojákmi, ktoré má Visual Studio, ale s ich kópiou a neexistuje žiaden PDB súbor, ktorý by umožnil ladenie.

Šablónu Windows Sidebar Gadget treba nakopírovať do priečinku My Document\Visual Studio 2005\Templates.

.NET Framework 3.0

Súbor technológií známych doteraz pod názvom WinFX (Windows Presentation, Communication a Worfklow Foundation a nové Windows CardSpace (pôvodné InfoCard)) bol oficiálne premenovaný na .NET Framework 3.0. Bude dostupný pre Windows Vista, XP a 2003 Server.

Logovanie chýb pomocou log4net

Veľmi dôležitou vecou, ktorú musí mať každá aplikácia, je logovanie chýb. Pre .NET aplikácie existuje výborná knižnica log4net. Síce jej chýba priamo zabudovaný výstup do XML dokumentu, obsahuje generovanie XML fragmentov do textového súboru a ten je možné potom vložiť ako externú entitu do XML dokumentu.

log4net obsahuje dobrý základ pre logovanie chýb pomocou vlastných, špecializovaných, objektov. Pomocou nich je možné napr. zalogovať podrobne chyby v SQL príkaze, alebo všetky SQL príkazy, ktoré boli asociované s DataAdapter-om, v ktorom nastala chyba. Takto je možné zistiť aj v akom stave bolo spojenie s databázou.

Logovací systém log4net sa skladá z týchto základných objektov:

  • Layout – stará sa o formát, v akom budú logované záznamy uložené.
  • Appender – ukladá záznamy do logovacieho výstupu. Výstup môže byť súbor, databáza, konzola, logovací server a pod.
  • Filter – filtruje úroveň (Level) záznamov a iné vlastnosti, na základe ktorých logovaný záznam predá appenderu, alebo nepredá.
  • ILog – interface ktorý ukladá záznamy. Je vytvorený na základe konfiguračného XML súboru, alebo programovo.

Všetky logovacie metódy rozhrania ILog prijímajú ako prvý parameter object, druhý, nepovinný, je Exception. Napr.:

ILog.Error(ob­ject message, Exception exception);

Pri spracovaní logovaného objektu (väčšinou v metóde LayoutBase.For­mat(), v prípade XmlLayout-u vo FormatXml()) sa zavolá message.ToStrin­g(). Štandardne sa do metódy posiela string (zložitejší text sa formátuje napr. pomocou ErrorFormat(string format, params object[] args)). Nič nám však nebráni si napísať vlastný logovací objekt, ktorý bude preťažovať metódu ToString().

Prvá trieda je celkom jednoduchá: do textového logu vypisuje len chybovú správu. (Zdrojový kód SimpleLogItem)

public class SimpleLogItem
{
private string _message;

public SimpleLogItem()
: this("")
{ }

public SimpleLogItem(string message)
: this (message, null)
{ }

public SimpleLogItem(string message, params object[] args)
{
if (message != null)
_message = String.Format(mes­sage, args);
else
_message = message;
}

public string Message
{
get { return this._message == null ? "" : _message; }
}

public override string ToString()
{
return String.Concat("[Log message] ", Message);
}
}

Konštruktor SimpleLogItem priamo podporuje formátovanie textu pre väčšie pohodlie. Celkovo však táto trieda nerobí nič, čo by sa nedalo dosiahnuť „Format“ metódami v ILog. Slúži však ako veľmi jednoduchý základ pre sofistikovanejšiu triedu: SimpleSqlLogItem.

Zdrojový kód triedy SimpleSqlLogItem je celkom veľký takže na neho uvádzam len linku. Uvediem len použitie a výstup logu.

SqlCommand cmd;
SqlConnection
conn;
// …

try
{
SqlDataReader reader = cmd.ExecuteRe­ader();
// …
}
catch
(SqlException ex)
{
log.Warn(new SimpleSqlLogI­tem(cmd, „Nepodarilo sa získať informácie o užívateľovi.“));
}
finally
{
conn.Close();
}

SimpleSqlLogItem môže naformátovať výstup napríklad takto:

[Log message] Nepodarilo sa získať informácie o užívateľovi.
[SQL Command] SELECT id, meno, email FROM uzivatelia WHERE id = @ID AND meno = @meno
[param] int @ID = 1
[param] varchar @meno = ‚Administáror‘

[Connection] DBSERVER\SQLEX­PRESS:UkazkovaDB (Open)

Btw: v tomto príklade sa nepodarilo získať informácie o užívateľovi pretože dátový typ parametru @meno by mal byť nvarchar. Takéto logovanie dokáže zachytiť aj aktuálny stav pripojenia do databázy, pretože získanie stavu objektu SqlCommand.Con­nection sa vykoná pred uzavretím spojenia v kóde finally.

Nabudúce popíšem spôsob vytvorenia vylepšeného LogItem-u, ktorý bude používať XmlWriter na zápis údajov.

Skúška blogovania cez Microsoft Word 2007

Po rozchodení XML-RPC rozšírenia do Textpatternu, môžem teraz oveľa pohodlnejšie blogovať. A aj s kontrolou pravopisu :-)

Vďaka Wordu budem môcť jednoduchšie publikovať články s naformátovanými a zvýraznenými zdrojovými kódmi s ukážkami. Len aby som teraz mal inšpiráciu na nejaké features v .NETe… A spomenul si na tie, ktoré som chcel blognúť v poslednom mesiaci, ale kvôli strnulému publikovaciemu rozhraniu som sa na to nakoniec vykašlal.

PS: Word pridáva do textu aj tvrdé medzery a sú súčasťou vypublikovaného dokument. Dobrá vecička, veľmi dobrá :-))

PS2: Vytváranie smajlíkov je tiež jednoduchšie: vytvoril som si jedného, pravé kliknutie ? Uložiť rýchly štýl a už len ďalších smajlíkov pooznačujem a kliknem v Ribbone na štýl Smajlíci. Keby som to ešte mohol spraviť cez Auto Correct ;o)

Windows Vista Beta 2, Office System Beta 2

A je to tu, dnes vyšla pre širokú verejnosť dlhoočakávaná porcia software: Windows Vista beta 2 a Microsoft Office System 2007 beta 2.

Kto sa zaregsitroval do Beta experience programu, má možnosť vyskúšať si tieto skvelé produkty. Už sa teším na blogovaciu feature v Microsoft Word 2007. Konečne bude blogovanie tak easy, ako písanie protokolov na meračky, alebo firemných reportov :-)

Nové funkcie

Aktuálne novinky, ktoré som vám priniesol na Izsak's Weblog

  • opravené formátovanie komentárov (nové Textile API nebolo kompatibilné s Texy!) (2.12.2006)
  • nová verzia systému Textpattern 4.0.2,
  • vylepšené čisté URI odkazy – pridaná podpora pre stránkovanie,
  • opravené stále aktualizovanie RSS zdroju, keď bol článok okomentovaný.

Aktuálne novinky na Photo Blog-u Mateja Šulgana:

  • vylepšený archív fotografií so stránkovaním a kategóriami
  • na stránkach sa zobrazujú náhľady staršej a novšej fotky,
  • zmenšená navigácia,
  • zrýchlené vykonávanie PHP kódu

Priemerný plat

Toto si nemôžem odpustiť blognúť:

Dotyčný tedy musel vědět, že medián statistické veličiny, která podléhá unimodálnímu asymetrickému rozdělení pravděpodobnosti s kladnou šikmostí, je vždy menší než průměr této veličiny – což je důvod, proč většina lidí má, měla a bude mít podprůměrné příjmy bez ohledu na to, která politická strana právě vládne a dokonce bez ohledu na to, zda je ekonomika kapitalistická, tržně sociální či komunistická.

Zdroj: Vzdělání, hospodářský růst a motivace, Pavel Kohout

Via: Prečo má 62% percent ľudí nižší ako priemerný plat, Mayov poznámkový blog

Zaujímavé darčeky

Trošku v predstihu, ale však nevadí ;-), som dostal veľmi zaujímavé darčeky. Tradične už dostávam rôzne testovacie balíčky so softwarom od Microsoftu. Dnes však bol balíček výnimočný. Nejednalo sa o testovacie verzie :-).

Za účasť na Ready to Launch Tour 2005 som získal plnú verziu najlepšieho vývojového nástroja: Visual Studio 2005 Professional. Spolu s ním som získal aj SQL Server 2005 Standard Edition s jednou klientskou prístupovou licenciou a možnosť získať BizTalk Server 2006 Developer Edition. Naozaj, veľmi hodnotný darček. A k Visual Studio neodmyslitelne patrí MSDN Library.

K tomu som dostal dve DVD s rôznymi materiálmi k celosvetovej súťaži, ktorá pomáha realizovať úžasné nápady študentov – Imagine Cup.

Aby toho nebolo málo, tak mi prišla ponuka na prácu externého lektora v KVT.

Tak to som zvedavý, čo ma bude čakať 18. 4. :-))