Web Standards Update - HTML5 og CSS3 udvidelse til Visual Studio 2010

20. juli 2011

Selvom det ikke på nogen måde har været umuligt at lave hverken HTML5, XHTML5 eller CSS3 i Visual Studio 2010 har der manglet både intellisense til og validering op imod de disse ting - men det kan løses med Web Standards Update, WSU, udvidelsen til Visual Studio 2010. Opdateringen er lavet ef Microsoft-folk med danskeren Mads Kristensen i spidsen men det er dog ikke en officiel Microsoft opdatering.

I HTML5 får vi nu blandt andet glæde af de nye tags relateret til video og audio ligesom også de nye input-typer som mail, url og date er med, kigger vi på CSS3 er det blandt andet værd at se at relativt almindelige ting som filter og behavior nu kan valideres ligesom der nu er intellisense på browser-specifikke ting som -ms-*, -moz-* og -webkit-*. Endelig får vi glæde af mulighederne inden for de nye javascript browser API's som fx geolocation og local storage.

Standarderne er endnu ikke på plads så selvom opdateringen til Visual Studio bestemt er et stort skridt skal vi nok også forvente at se nyere versioner af WSU.

Her kan du downloade Web Standards Update for Microsoft Visual Studio 2010 SP1.

(X)HTML, .NET, ASP.NET, CSS, JavaScript , , ,

HTML parsing og Screenscraping med Html Agility Pack (HAP)

12. maj 2010

Det sker ret ofte at man har behov for at læse bestemte ting ud fra en hjemmeside, altså screenscraping, eller at parse egen HTML fx med henblik på at replace indhold med noget andet - regular expressions er langt fra altid et godt valg i forbindelse med denne type HTML-opgaver og andre muligheder som fx XPath eller LINQ to XML kræver, at HTML'en er valid og selvom det burde være en selvfølge er det ofte ikke tilfældet. Et rigtig godt alternativ til at screenscrape, parse HTML eller fixe fejl i HTML er Html Agility Pack (HAP), som kan downloades her; Html Agility Pack.

For at benytte HAP er alt du skal gøre at downloade løsningen fra hjemmesiden og tilføje en reference til HTMLAgilityPack.dll i dit projekt - og så er du klar til at manipulere med og hive information ud af en HTML-kilde. For at det hele kan give lidt mere mening vil jeg her komme med et par mindre eksempler;

Find billeder uden alt-attribut, indsæt den med default beskrivelse og gem som nyt dokument

HtmlDocument lHtmlDocument = new HtmlDocument();
lHtmlDocument.Load(
@"C:\dokument.html");
var lNoAltAttributeNodes = lHtmlDocument.DocumentNode.SelectNodes("//img[not(@alt)]");
if (lNoAltAttributeNodes != null)
{
   
foreach (HtmlNode lHtmlNode in lNoAltAttributeNodes)
    {
        lHtmlNode.Attributes.Append(
"alt", "manglende alt...");
    }
}
lHtmlDocument.Save(
@"C:\opdateretdokument.html");

Find alle links og aflæs title-attributten

List<string> lTitles = new List<string>();
HtmlDocument lHtmlDocument = new HtmlDocument();
lHtmlDocument.Load(
@"C:\dokument.html");
var lLinkNodes = lHtmlDocument.DocumentNode.SelectNodes("//a[@href]");
if (lLinkNodes != null)
{
   
foreach (HtmlNode lHtmlNode in lLinkNodes)
    {
       
string lLinkTitle = lHtmlNode.GetAttributeValue("title", string.Empty);
       
if (!string.IsNullOrEmpty(lLinkTitle))
        {
            lTitles.Add(lLinkTitle);
        }
    }
}


Ovenstående er selvfølgelig relativt simple eksempler men de viser alligevel godt hvor lidt der faktisk skal til for at arbejde med HAP, det eneste der kan være lidt tricky i det - hvis man ikke har arbejdet med det før - er XPath-delen, og søger du lidt starthjælp til det kan det findes her; XPath hos w3schools. Det er ikke et krav at arbejde med XPath som ovenstående to eksempler benytter da man sagtens kan gennemløbe den parsede html med almindelige løkker, men det giver alligevel rigtig mening med XPath.

.NET, ASP.NET , , , , ,

Pimp din Visual Studio med nye temaer og få bedre arbejdsmiljø

25. marts 2010

Sidder man lang tid foran sit Visual Studio synes jeg let man kan blive træt i øjnene af det som standard meget hvide udviklingsmiljø og selvom Visual Studio giver gode muligheder for at ændre opsætningen af skrifttyper og farver (i Tools -> Options -> Environment -> Fonts and Colors) er det noget der let kan tage alt for lang tid uden at man alligevel kommer frem til et særlig brugbart resultat.

Heldigvis findes der masser af færdige themes på nettet man uden videre kan importere og hvor alt arbejdet altså er gjort for en. Personligt er jeg stor tilhænger af de lidt mørkere temaer da det giver mine øjne meget mere ro til at få produceret noget - specielt temaet "Nightingale" sammen med skrifttypen Envy Code R benytter jeg rigtig meget. Temaet, både i en 2005 og 2008 version, samt findes her; Nightingale VS2005/VS2008.

Et skift af theme synes jeg, udover at kunne tilpasse ens arbejdsmiljø til ens øjne, også kan være en god måde at adskille forskellige udviklingssprog på hvis man fx både sidder med VB.NET, C# og F# samt få ny energi til programmeringen da det føles som at få et helt nyt udviklingsværktøj samtidig med at man beholder de features man kender til. Har du selv lavet ændringer til et tema så husk endelig at få taget backup af dem inden du skifter - ved import er det en også god idé at holde øje med præcis hvad de nye settings indeholder og fravælger enventuelle uhensigtsmæssige ting som fx tastatur-genveje.

Både export og import af temaer sker i Tools -> Import and Export Settings.

Som sagt findes der masser af andre themes på nettet og måske passer mit forslag ikke lige dig, så tag en tur rundt på nettet og se hvad du kan finde. Nedenfor et screenshot af Nightingale samt Envy Code R i aktion.

.NET, ASP.NET , ,

Podcast om ASP, ASP.NET og PHP

13. februar 2010

For nogle dage siden deltog jeg i en podcast primært omhandlede ASP, ASP.NET og PHP. Podcasten er et slags interview mellem Daniel Mellgaard Frost, Developer Evangelist i Microsoft Danmark, samt altså undertegnende og meget kort fortalt får du i den lidt historie om min baggrund, lidt om min nutid samt nogle tanker fx omkring religionskrig mellem, valg af og hjælpemuligheder i forskellige sprog/teknologier.

Jeg har endnu ikke turde høre podcasten igennem selv da jeg ser det som værende med stor fare for at sidde tilbage med en enormt nedtryk følelse efter at have hørt ens egne fejl såsom skæv accent, talebøffer, tekniske ups'ere etc. En enkelt ting jeg dog er rimelig overbevist om er, at jeg får det gjort til en dårlig ting, at man har så stort et udvalg af løsningsmodeller i ASP.NET i forhold til mit "gamle" sprog ASP - det er selvfølgelig ikke hensigten, for mange muligheder kan give en stor frihed! Det jeg forsøger at sige med det er, at de mange måder at kunne løse den samme udfordring på i mine øjne er med til at gøre det sværere dels at komme i gang med og dels at få hjælp til ASP.NET.

Men lyt selv her; Frosts Podcast Show #16 – Rundt om ASP, ASP.NET og PHP med Kim Larsen

ASP, Privat, ASP.NET, .NET , , ,

Gratis kontroller fra DevExpress

13. december 2009
Uanset om du udvikler winforms, ASP.NET, Silverlight eller WPF vil DevExpress bestemt være et besøg værd da de udvikler nogle i mine øjne langt hen ad vejen fantastiske kontroller - og det bedste af de hele er endda at man kan downloade 60 gratis kontroller fra dem. Gratis-pakken indeholder for det meste videreudviklede standard-kontroller som fx TextEdit, MemoEdit, CheckEdit og ListBoxControl hvor man skal op og købe en licens for at få adgang til de mest spændende kontroller til fx rapporter, kalendre, charts og grids, men som en start giver gratis-pakken i hvert fald nogle interessante muligheder.

Det jeg primært mener DevExpress er lykkedes med er at give deres kontroller er design og brugervenlighed samt at indbygge muligheder man til tider godt kan savne i standard-kontrollerne fra Microsoft - til gengæld kræver de helt store kontroller fra DevExpress også godt med tid at sætte sig ind i for at man kan danne sig bare lidt overskuelighed over dem. Skal man nævne noget negativt må det dels være, at kontrollerne til ASP.NET kan være meget klient tunge og at de, måske ikke så meget de små kontroller i gratis-pakken men nok mere de store og komplicerede, ikke er helt fejlfrie og det kan koste en del tid at finde ud af om fejlen ligger i ens egen kode eller i kontrollen - heldigvis har DevExpress et godt forum og et rigtig godt support-center, hvor man udover kodehjælp også ofte ret hurtigt får bugfixes til de fejl man måtte finde.

Teknisk giver kontrollerne selvfølgelig en del, men personligt er jeg nok mest glad for at få adgang til at kunne arbejde med nogle designede kontroller fremfor bare standard-grå Microsoft firkanter. Herunder i hvert fald en oversigt over kontrollerne fra gratis-pakken.



Udover kontroller som ovenstående udvikler DevExpress også enkelte Visual Studio Productivity Tools, bl.a. et ret godt Refactor produkt.

ASP.NET, .NET , , , , , ,