ASP.NET AJAX V1.0 Beta

André Henriksson's blogg läser jag att den första betan av ASP.NET AJAX V1.0. Det som innan kallades "Atlas". En väldigt glad nyhet, nu blir det äntligen till att börja prova på allvar med den nya spännande tekniken. Nu ska jag ta och installera det på mina en av mina maskiner med en gång. Releasen består av tre olika delar som går att ladda ner här.
  • "Core-biblioteket" som är basfunktionaliteten som du laddar ner här
  • "Extensions" som är utökningen som kan förändras med olika releaser som du laddar ner här
  • "Toolkit:et" som du laddar ner här

Läs även dokumentationen med instruktioner hur man installerar och använder exemplen.

By Jesper Lind

HTML i Outlook och sjukt jobbiga radbryt

Detta är ett irriterande problem som jag har haft ett tag utan att riktigt förstå varför. När jag skickar ut html-formaterade email så händer det ofta att bilder inte visas. Nu har jag forskat lite mer i det hela och börjat förstå lite mer vad som händer. Det hela verkar bero på att outlook klipper av rader lite här och var och lägger in mellanslag. Man kan läsa lite om det här och det finns en inställning i outlook:

Verktyg/Alternativ/E-postalternativ/"Ta bort extra radbrytningar i meddelande med oformaterad text"

Denna är som standard ikryssad men jag kunde inte se någon skillnad när jag kryssade ur den. Och detta är ju inget man kan kräva att användarna ska göra heller.

Men nu tillbaks till problemet. I nyhetsbreven anger jag länkade bilder som har relativ lång url. Dessa klipps av och ett extra mellanrum läggs på först på nästa rad. Ungfär så här:

<a href='http://someaddress.somedomain/product.aspx?pid=12><img src='http://www.someaddress.somedomain/images/someimage.JPG' bord
[här bryts koden mitt i ett html-attribut]er='0'></a>

Jag har testat mängder av ideer, försökt hårdkodat radbryten precis innan länkarna men inte kommit på den bästa lösningen (om det finns någon).

En lösning (nästan)
Det tips jag kan ge är att förkorta html koden så mycket som möjligt och använda kortformerna i CSS. En grej som kan hjälpa är att lägga in massor av space innan de html-taggar som bryts felaktigt. Typ 40-50 stycken space brukar lösa det mesta. Det hela känns väldigt slumpmässigt och minst sagt irriterande. Mailklienterna nu för tiden är helt enkelt inte riktigt redo för html.

Radbryt i maillänk
I mitt frenetiska sökande efter hur man kunde rundgå radbryten hittade jag en en sida med relaterad information. Tänkte jag sparar den här för den kan bli användbar. Det handlar om hur man gör radbryt i en "email länk", en sån som fyller i ämne och body själv. Då använder man ascii tecknena (%0D)=a carriage return och (%0A)=line feed.

<a href="mailto:someaddress@somedomain.com?cc=someotheraddress@somedomain.com&subject=some subject&body=Some body text.%0D%0ASome new line.">create email</a>

By Jesper Lind

Formatera valuta med decimaler i GridView

Jag stötte på lite problem när jag skulle formatera valuta i ett templatefield i en GridView. Decimalerna ändrade sig inte alls även fast jag var säker på att jag använt rätt formatering. Talet 0 visade sig som 0,0000 kr. Efter lite googlande hittade jag lösningen på mitt problem på The Ensoft blog. Man ska ange HtmlEncode="false" för att formateringen ska fungera.

Följande exempel visar en formatering med två decimaler.

<asp:BoundField HeaderText="Fraktkostnad" DataField="DeliveryCost" SortExpression= "DeliveryCost" HtmlEncode="false" DataFormatString="{0:c2}" />

Här finns en bra artikel ifall du vill läsa mer om hur man kopplar data med ASP.NET 2.0.

By Jesper Lind

Växelkurser med Web Service del 2

Jag skrev för ett tag sen om hur man kan lägga till en web service till sitt projekt och hämtar ut växelkurser.

Nu tänkte jag prova en annan tjänst från Webservicex.net. Exemplet hittade jag i den danska bloggen Walk the walk.

Instruktioner
Lägg till följande web service och ange net.webservicex.www som namnrymd: http://www.webservicex.net/CurrencyConvertor.asmx

Koden


<%@ Page Language="C#" Trace="false" validateRequest="false" EnableSessionState="True" EnableViewState="true" SmartNavigation="false"%>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Web.UI.WebControls" %>
<%@ Import Namespace="net.webservicex.www" %>
<script Language="c#" runat="server">
protected void Page_Load(object sender, EventArgs e)
{

if (!Page.IsPostBack)
{
DataTable dt = this.GetCurrencies();
ddlFromCurrency.DataSource = dt;
ddlFromCurrency.DataBind();
ddlTooCurrency.DataSource = dt;
ddlTooCurrency.DataBind();
}
}

protected void ddlTooCurrency_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlFromCurrency.SelectedValue.Length > 0)
{
double total = this.GetCurrency() * 100;
lblPrice.Text = total.ToString();
}
}

protected void ddlFromCurrency_SelectedIndexChanged(object sender, EventArgs e)
{
if (ddlTooCurrency.SelectedValue.Length > 0)
{
double total = this.GetCurrency() * 100;
lblPrice.Text = total.ToString();
}
}

private double GetCurrency()
{
CurrencyConvertor cc = new CurrencyConvertor();
return cc.ConversionRate((Currency)Enum.Parse(typeof(Currency), ddlFromCurrency.SelectedValue), (Currency)Enum.Parse(typeof(Currency), ddlTooCurrency.SelectedValue));
}

protected DataTable GetCurrencies()
{
DataTable dtCur = new DataTable("currency");
dtCur.Columns.Add("cur");

foreach (string name in Enum.GetNames(typeof(Currency)))
{
DataRow r = dtCur.NewRow();
r["cur"] = Enum.Parse(typeof(Currency), name);
dtCur.Rows.Add(r);
r = null;
}
return dtCur;
}
</script>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Real time curreny in ASP.NET</title>
<link rel="stylesheet" href="../example.css" type="text/css" />

</head>

<body>
<form runat="server">
<div id="content">
<b>Currency example using web service in ASP.NET</b>
<br /><br />

<table width="30%" border="1" cellpadding="2" cellspacing="0">
<tr>
<td>From currency</td>
<td><asp:DropDownList AutoPostBack="true" DataValueField="cur" DataTextField="cur" ID="ddlFromCurrency" runat="server" OnSelectedIndexChanged="ddlFromCurrency_SelectedIndexChanged" /></td>
</tr>
<tr>
<td>To Currency</td>
<td><asp:DropDownList AutoPostBack="true" DataValueField="cur" DataTextField="cur" ID="ddlTooCurrency" runat="server" OnSelectedIndexChanged="ddlTooCurrency_SelectedIndexChanged" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><asp:Label ID="lblPrice" runat="server" /></td>
</tr>
</table>

</div>
</form>
</body>
</html>

Länk till sida som visar kurser i real-tid

Fullständig lista över länder och betäckningar

AFA-Afghanistan Afghani
ALL-Albanian Lek
DZD-Algerian Dinar
ARS-Argentine Peso
AWG-Aruba Florin
AUD-Australian Dollar
BSD-Bahamian Dollar
BHD-Bahraini Dinar
BDT-Bangladesh Taka
BBD-Barbados Dollar
BZD-Belize Dollar
BMD-Bermuda Dollar
BTN-Bhutan Ngultrum
BOB-Bolivian Boliviano
BWP-Botswana Pula
BRL-Brazilian Real
GBP-British Pound
BND-Brunei Dollar
BIF-Burundi Franc
XOF-CFA Franc (BCEAO)
XAF-CFA Franc (BEAC)
KHR-Cambodia Riel
CAD-Canadian Dollar
CVE-Cape Verde Escudo
KYD-Cayman Islands Dollar
CLP-Chilean Peso
CNY-Chinese Yuan
COP-Colombian Peso
KMF-Comoros Franc
CRC-Costa Rica Colon
HRK-Croatian Kuna
CUP-Cuban Peso
CYP-Cyprus Pound
CZK-Czech Koruna
DKK-Danish Krone
DJF-Dijibouti Franc
DOP-Dominican Peso
XCD-East Caribbean Dollar
EGP-Egyptian Pound
SVC-El Salvador Colon
EEK-Estonian Kroon
ETB-Ethiopian Birr
EUR-Euro
FKP-Falkland Islands Pound
GMD-Gambian Dalasi
GHC-Ghanian Cedi
GIP-Gibraltar Pound
XAU-Gold Ounces
GTQ-Guatemala Quetzal
GNF-Guinea Franc
GYD-Guyana Dollar
HTG-Haiti Gourde
HNL-Honduras Lempira
HKD-Hong Kong Dollar
HUF-Hungarian Forint
ISK-Iceland Krona
INR-Indian Rupee
IDR-Indonesian Rupiah
IQD-Iraqi Dinar
ILS-Israeli Shekel
JMD-Jamaican Dollar
JPY-Japanese Yen
JOD-Jordanian Dinar
KZT-Kazakhstan Tenge
KES-Kenyan Shilling
KRW-Korean Won
KWD-Kuwaiti Dinar
LAK-Lao Kip
LVL-Latvian Lat
LBP-Lebanese Pound
LSL-Lesotho Loti
LRD-Liberian Dollar
LYD-Libyan Dinar
LTL-Lithuanian Lita
MOP-Macau Pataca
MKD-Macedonian Denar
MGF-Malagasy Franc
MWK-Malawi Kwacha
MYR-Malaysian Ringgit
MVR-Maldives Rufiyaa
MTL-Maltese Lira
MRO-Mauritania Ougulya
MUR-Mauritius Rupee
MXN-Mexican Peso
MDL-Moldovan Leu
MNT-Mongolian Tugrik
MAD-Moroccan Dirham
MZM-Mozambique Metical
MMK-Myanmar Kyat
NAD-Namibian Dollar
NPR-Nepalese Rupee
ANG-Neth Antilles Guilder
NZD-New Zealand Dollar
NIO-Nicaragua Cordoba
NGN-Nigerian Naira
KPW-North Korean Won
NOK-Norwegian Krone
OMR-Omani Rial
XPF-Pacific Franc
PKR-Pakistani Rupee
XPD-Palladium Ounces
PAB-Panama Balboa
PGK-Papua New Guinea Kina
PYG-Paraguayan Guarani
PEN-Peruvian Nuevo Sol
PHP-Philippine Peso
XPT-Platinum Ounces
PLN-Polish Zloty
QAR-Qatar Rial
ROL-Romanian Leu
RUB-Russian Rouble
WST-Samoa Tala
STD-Sao Tome Dobra
SAR-Saudi Arabian Riyal
SCR-Seychelles Rupee
SLL-Sierra Leone Leone
XAG-Silver Ounces
SGD-Singapore Dollar
SKK-Slovak Koruna
SIT-Slovenian Tolar
SBD-Solomon Islands Dollar
SOS-Somali Shilling
ZAR-South African Rand
LKR-Sri Lanka Rupee
SHP-St Helena Pound
SDD-Sudanese Dinar
SRG-Surinam Guilder
SZL-Swaziland Lilageni
SEK-Swedish Krona
TRY-Turkey Lira
CHF-Swiss Franc
SYP-Syrian Pound
TWD-Taiwan Dollar
TZS-Tanzanian Shilling
THB-Thai Baht
TOP-Tonga Pa'anga
TTD-Trinidad&Tobago Dollar
TND-Tunisian Dinar
TRL-Turkish Lira
USD-U.S. Dollar
AED-UAE Dirham
UGX-Ugandan Shilling
UAH-Ukraine Hryvnia
UYU-Uruguayan New Peso
VUV-Vanuatu Vatu
VEB-Venezuelan Bolivar
VND-Vietnam Dong
YER-Yemen Riyal
YUM-Yugoslav Dinar
ZMK-Zambian Kwacha
ZWD-Zimbabwe Dollar

Omdöme
Tjänsten från WebserviceX.NET verkar väldigt bra. När jag provade SEK till GBP fick jag kursen 7.29 för 100 svenska. Jämnförde med min resaomväxlare och där är kursen just nu 7.25. På x-rates.com är kursen 7.25937. Alla tjänster som jag använt hittills har skiljt sig från andra källor. Varför vet jag inte med marginalerna är ganska små och därför duger det bra till en ungefärlig omräkning.

Nu skulle det vara intressant att sätta ihop det hela med Asp.Net RegionInfo för att automatiskt läsa av vilken kurs som ska hämtas beroende på besökarens inställningar. Men det får bli i en senare artikel.

 

By Jesper Lind

IE7 är släppt

http://www.codeodyssey.se/upload/resource/blog/ie7_h2_rgb.png

Microsoft har släpp den nya version av Internet Explorer och den finns att ladda ner från deras hemsida. Ibörjan finns den bara tillgänglig på några få språk och inte svernska. Den 2 november kommer användare av XP att få den nedladdad genom den automatiska uppdateringensfunktionen.

Detta är den första större uppdateringen av webbläsaren sedan 2001 och en väldigt eftertraktad sådan. Utvecklare världen över har länge klagat det dåliga CSS-stödet på föregångaren IE6.

Finns att ladda hem här:
http://www.microsoft.com/windows/ie/

Mer läsning:
IDG - Internet Explorer 7 är här

By Jesper Lind

Stress leder till sämre kod

Okej - att man presterar sämre under stressade förhållanden när man arbetar med utveckling är ju ganska självklart. Och detta bör ju gälla de flesta yrkeskategorier och sysslor. Men tänkte i detta inlägg ge lite referenser till intressanta artiklar jag läst om ämnet nyligen. Kan vara bra att ha när chefen ger dig för många arbetsuppgifter samtidigt. Eller om man frilansar och har många "chefer" så är det extra viktigt att man ser till att man har kontroll över situationen. IDG.se skriver om många faktorer som skapar it-stress.

Vad gör it så stressande? - Det finns flera skäl. Ett är att vi arbetar med utrustning som sällan gör fel. Det är stressande därför att om något går fel, ligger ofta orsaken hos oss.

Microsoftevangelisten Dan König bloggar även om att ha många bollar i luften och vilka nackdelar det kan innebära.

"Om man jobbar i ett projekt så kan man ge detta projekt 100% av sin tid. Men jobbar man istället i två projekt så kan man inte ge vardera 50% utan det kommer att vara tid som förspills när man växlar mellan projektet så att man snarare jobbar 40% på varje projekt."

Sen tänkte jag även dela med mig med mitt egna mantra som jag fick av en god vän i stressens tider. Det fungerar alldeles utmärkt för att fokusera. Han sa ungefär så här fast på engelska.

- Tänk som en CPU, gör en sak i sänder

Detta var ju dock innan de flerkärniga processorerna kom ut på marknaden, men du fattar vad han menar...

By Jesper Lind

Ha konsekvens på dina länkar

Jag läste en notis på Användbarhet.se som jag instämmer med. Man utforma sina länkar konsekvent och inte blanda understrukna och icke-understrukna länkar. Detta lägger ett alltför tungt tolkningsjobb på användaren.

Menyer och länkar bör vara intuitiva och man ska förstå vad som går att klicka på utan att behöva testa allt. Understrykningar är ett bra sätt eftersom vi är så vana med att länkar ser ut så. Annars är ett annat bra sätt att ange länkar i en speciell utstickande färg.

By Jesper Lind

Gör webbplatser tillgängliga för alla

Tillgänglighet på webben är ett aktuellt ämne just nu och har varit det ett bra tag. Att ta del av innehåll och läsa text på en skärm är mycket mer ansträngande än att läsa en hederlig gammal bok. Det är därför av största vikt att man gör det så lätt som möjligt för besökarna att ta del av innehållet man vill kommunicera. Annars är risken att de lämnar webbplatsen utan att ens gett den en chans. Sverige är ett land som är känd för relativt bra handikappsanpassning i största allmänhet. Men på webben får svenska sajter väldigt dåligt betyg enligt en undersökning som konsultföretaget Funka Nu har genomfört på uppdrag av Internet World. 

- Kunskapen bland Sveriges sajtägare om tillgänglighet är fortfarande oväntat låg, säger Internetworlds chefredaktör Magnus Höij. Den dåliga tillgängligheten gör att företagen väljer bort stora kundgrupper och därmed stora intäkter.

Cap&Design skrev för ett tag sen artikeln "Tio dödssynder i webbmakeri – och hur du undviker dem" där man skriver om några av de vanligaste fallgroparna vid designarbetet för webben. En av dödssynderna de nämner känner jag väl till, nämligen att använda för liten typsnittstorlek. Designers gillar liten text för det blir mycket snyggare textblock. Det har länge varit populärt att ange fontstorleken i 10px Verdana som resulterar i en stort sätt oläslig text. Som tur är går trenden mot att tänka mer på användarna. Jag menar de flesta vill ju bara kunna ta del av informationen på enklast möjliga sätt. Att sen några få designers surfar in och tänker, "oj vilken stor och klumpig font de använt" kan man väl stå ut med. 

– Det måste vara skönt att läsa texten, säger Paul Collins. Det bästa är att följa ett grundläggande typografiskt regelverk, precis som du gör i tryckta tidningar och magasin. På webben händer det ofta att en designer skapar en väldigt tilltalande visuell upplevelse, men så går det inte att läsa texten!

Egentligen skulle jag vilja citera hela paragrafen om typografi på webben från Cap&Design för den är så fruktansvärt bra. Men det blir lite för långt så tänkte bara nämna en sak till om valet av typsnitt. Som jag skrivit om tidigare så finns det inte så många typsnitt som man kan använda på webben. Detta leder till att designers vill göra om stor del av texterna till gif-bilder så att de ska kunna använda sina favorittypsnitt. Visst är det tråkigt att man är så begränsad men det är fortfarande smartare att använda html-text i största utsträckning. Här kommer ett sista citat: 

– Frustrationerna över att det finns så få typsnitt att välja mellan på webben leder till exempel till att alldeles för mycket text görs som gif-bilder. Det är tidsödande för den som ska jobba med sajten, och dåligt för besökarna och tillgängligheten.

 För den som vill läsa mer om tillgänglighet kan jag rekommendera Anvandbart.se. Via den sidan hittade jag den här intressanta artikeln om hur en redesign gav 20% mer försäljning för en e-handelsajt. Något att tänka på för alla er som driver webbshoppar där ute på nätet.

By Jesper Lind

SEO-verktyg för Firefox

Tänkte tipsa om ett tillägg till Firefox som heter SEO for Firefox. Med detta får man extra statistik under länkarna i Google och Yahoo som visar parametrarna som PR, ålder, antal länkar, whois data och mycket mer. 

By Jesper Lind

Rättstavning med Firefox 2.0

Mozilla planerar att släppa Firefox 2 RC3 den 17 oktober och den slutgiltiga versionen strax därefter.

Hos Webbsnack läste jag en artikel om hur man får till svensk rättstavning med Firefox 2.0. Man använder ett tillägg skapat av Hasse Walanger och det finns att ladda hem på följande adress:

https://addons.mozilla.org/firefox/3064/

Uppdatering: Länken ovan fungerar inte längre. Läs mer om var man kan få tag på den svenska ordlistan.

 

By Jesper Lind