Validera mot webbstandarder

Att se till att en hemsida följer webbstandarderna från W3C är väldigt viktigt ifall man vill att designen ska fungerar bra på alla olika läsare. Annars förlitar man sig på hur bra (och hur) läsaren hanterar felen. Resultatet kan då variera stort.

Måste erkänna att jag aldrig direkt har kämpat för detta tidigare. Webben har helt enkelt känts för "trasig" för att man ska orka bry sig. Men när nu IE7 är på gång och Microsoft verkar ta webbstandarderna på allvar, så känns det värt att börja rensa sina egna alster från icke-validerad kod. Okej då kör vi!

1. Validera som XHMTL Transitional
Nu lyckade jag för första gången skapa en webbsida (den här bloggen) som validerar som XHTML 1.0 Transitional.

Valid XHTML 1.0 Transitional

Min startsida som innehåller flash blev dock lite svårare att få att validera som XHTML pågrund av att den innehåller en flashfilm. Hittade en bra artikel på ämnet men den hjälpte mig tyvärr inte hela vägen.

Denna sida har fortfarande några fel i DOCTYPE Strict men det tar jag en annan dag... Här finns en länk om skillnaderna mellan transitional och strict och ytterligare läsning om varför det är så viktigt att ange en korrekt DOCTYPE.

2. Validera som giltig CSS
Nästa steg blir CSS validering, detta gick ju fint också.

Valid CSS!

Fick dock en hel del varningar - bland annat som säger "You have no color with your background-color" och liknade. Detta beror på de nya W3C reglerna som introducerades nyligen. Att följa dessa kan dock skapa en del oväntade effekter. Så jag väljer att ha kvar varningarna - de är du endå bara varningar.

3. Validera ett RSS-flöde
RSS-flödet i min blogg är också riktig. Fick en varning på kodningen:

"Your feed appears to be encoded as "iso-8859-1", but your server is reporting "US-ASCII""

Detta såg jag många som haft problem med men hittade ingen lösning.

[Valid RSS]

By Jesper Lind

Första skarpa versionen av IE7

Nu verkar det närma sig det datum då Internet Explorer 7 kommer att släppas på marknaden. Idag meddelades det att IE7 Release Candidate 1 finns tillgänglig för nedladdning. Den officiella IEBloggen är het och det postas uppdateringar i stort sätt varje dag. Microsoft verkar ha lyssnat på webbutvecklarnas anmärkningar på brister och fixat en hel del buggar som har med CSS-rendereringen att göra. Bland annat 16 av de buggar som har rapporterats för IE6 på PositionisEverything.net.

I denna versionen har funktionalitet som avinstallerar föregående betaversioner automatiskt, lagts till. Det går dock fortfarande inte att köra IE6 parallellt med nya IE7. Som en eventuell lösning på detta verkar Microsoft ge bort Microsoft Virtual PC gratis. Tanken är att man ska installera IE6 i den virtuella datorn för att kunna testa hur webbsidor ser ut. Det kan ju vara en lösning på det problem jag skrivit om tidigare, men ska det inte kunna gå på något enklare sätt? Ett flexa-till-IE6-mode i själva läsaren eller andra lösningar efterlyses!

Det känns det som att IE7 bli ett stormsteg mot bättre stöd för CSS2-standarden på internet. Nu kommer det bli bra mycket enklare att skapa design som håller i alla moderna webbläsare.

By Jesper Lind

Lägg till appSettings värden

följande visar hur man kan lägga till appSettings till genom code behind.


Configuration config = ConfigurationSettings.OpenWebConfiguration("~");

AppSettingsSection appSettingsSection = config.AppSettings;

appSettingsSection.Settings["MinNyckel"] = "Värdet som ska sparas!";

config.Save();

By Jesper Lind

Förhindra blinkande bilder - IE6

Bilder som blinkar fast man inte vill det kan vara jobbigt.

Detta händer ofta när man har transparenta gifs som bakgrund på länkar. De kommer då att blinka när man drar pekaren över länken pågrund av att Internet Explorer 6 laddar om bilden varje gång. Det händer speciellt när användaren har ställt in "Uppdatera cache varje gång sidan besöks". En rätt vanlig inställning.

Här finns en bra guide på ämnet och om hur man kan förhindra det:
http://www.fivesevensix.com/studies/ie6flicker/

By Jesper Lind

Använda FTP med webbläsare

Jag glömmer ofta syntaxen för hur man loggar in på en FTP server genom en webbläsare. Detta är ett exempel. Byt ut Användarnamn, lösenord och domännamn (eller IP) mot dina egna uppgifter.

ftp://AnvändarNamn:Lösen@www.domännamn.se/

By Jesper Lind

Transaktioner med Asp.net

Här kommer jag skriva lite om hur man genomför databas transaktioner i Asp.Net. Alltså så man kan välja att genomföra eller att avbryta en uppdateringen i databasen beroende på andra faktorer. Exemplen är för SQL Server.

SqlTransaction trans = null;
try
{
conn = new SqlConnection ( . . . );
conn.Open();
trans = conn.BeginTransaction();
cmd = new Command();
cmd.Connenction = conn;
cmd.Transaction = trans;
cmd.ExecuteNonQuery();

}
catch(Exception objException)
{
if(trans!=null)
trans.Rollback();
}
finally
{
if(conn!=null)
conn.Close();
}

Mer läsning
Läs en artikel om hur man kan koppla en transaktion till en OleDbDataReader. http://www.c-sharpcorner.com/asp/Code/TransactionsInASPNETDPL.asp

By Jesper Lind

Ny tjänst från Microsoft underhåller datorn

Microsoft lanserar webbplatsen Windows Live Onecare Safety Scanner. Tjänsten söker igenom datorn efter virus och andra säkerhetshot, ökar datorns prestanda och är gratis att använda.

Besök hemsidan på nedanstående länk. Du måste använda Internet Explorer för att det ska fungera eftersom Actice-X kontroller installeras.

Windows Live Onecare Safety Scanner

By Jesper Lind

Ladda upp filer till server

Läs om hur man laddar upp bilder med FileUpLoad i Asp.Net C#.


<asp:Label id="lblMessage" runat="server">
<br />
<br />
<asp:FileUpLoad id="fuImage" runat="server" />

<asp:RegularExpressionValidator
id="fuValidator" runat="server"
ErrorMessage="Upload Jpegs and Gifs only."
ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.jpg|.JPG|.gif|.GIF)$"
ControlToValidate="fuImage">
</asp:RegularExpressionValidator>

<asp:Button id="buttonUpload" Text="Upload File" OnClick="buttonUpload_Click" runat="server" Width="105px" />

Lägg till följande funktion i klassfilen.

protected void buttonUpload_Click(object sender, EventArgs e)
{
if (fuImage.HasFile)
{

fuImage.SaveAs(@"C:\temp\" + fuImage.FileName);
lblMessage.Text = "Fil laddades upp: " + fuImage.FileName ;
}
else
{
lblMessage.Text = "Det fanns ingen fil i formuläret!";
}
}

Standarstorlek på uppladdning i FileUpload är 4MB. För att ändra på detta måste följande värde ändras i machine.config. Värdet anges i KB.

<httpRuntime maxRequestLength = "4096" />

Mer läsning
C-sharpcorner om FileUpload
Fredrik Normén - om hur man laddar upp flera filer åt gången
Artikel på aspnetresources.com om filuppladdning med exempel på hur man lägger till FileUpload kontroll genom javascript.

By Jesper Lind

Styla om länkar som knappar

Standardknapparna i html kan vara lite tråkiga. Jag finner mig ofta att använda länkar istället eftersom de vanliga <input type="submit" /> och <Button /> elementen. Det har helt enkelt för dåligt CSS-stöd för att kunna designas i någon större utsträckning. Ett alternativ är ju att använda en bild som knapp. Nackdelen är då att man måste skapa en ny bild för varje ny text man vill ha.

Jag bestämde mig istället för att försöka ändra utseendet på länkarna för att de ska likna knappar och här nedan ser du resultatet. Jag använder en tonad bild bakgrund och vänder på denna när man för markören över (hover).

Detta är ett exempel på en knapp

a.button, a.button:link, a.button:active, a.button:visited {

background-image: url('../images/button_back.gif');
padding:0 5px 0 5px;
background-position:50% 50%;
background-repeat:repeat-x;
border: 2px outset #cccccc;
color: #fff;
font-weight:bold;
text-decoration:none;}
a.button:hover
{
color: #fff;
background-image: url('../images/button_back_hoover.gif');
text-decoration:none; }

By Jesper Lind