onsdag 31 mars 2010

Repeater i aspx är värdelöst

Jag har prövat Repeater Class i aspx. Den imponerar inte. Tanken är väl att det ska vara ett enkelt sätt att göra en lista med data från en databas. Och visst fungerar det bra om uppgifterna bara ska skrivas ut i en tabell. Man använder SqlDataSource för att koppla tabellen till databasen och sedan repeater för html-taggar och funktionen Eval som hämtar fälten i databasen.

Men nästan alltid vill man ju göra någon modifiering. Ska man ändra utseendet på ett datum räcker det inte att skriva Eval utan man ska skriva DataBinder.Eval(Container.DataItem, "Changedate", "{0: yyyy-MM-dd}")

Mycket värre blir det om man vill översätta en kod till en förtydligande text. Det är så hejdlöst komplicerat att det inte ryms här, men exemplet på MSDN är tydligt.

Nej då är det mycket enklare att lägga en label på sidan, t.ex. <asp:Label ID="Tabell" runat="server"></asp:Label> och sedan skapa tabellen i code behind.

tisdag 30 mars 2010

OpenStreetMap is the next Web

Openstreetmap är ett nytt kartorienterat Wikiprojekt där vi alla kan vara med och lägga till saker av intresse. Jag ha lyckats lägga till en del servicefunktioner i mitt närområde. Editorn behöver ingen förklaring. Det fungerar på det sätt man tror. Men det finns flera editorer att välja mellan.

Men det finns också en "text"-wiki för nybörjare. Jag har inte läst i den än, men jag ska.

Här är en framtidsbild;


Här är hur OpenStreetMap ser ut i Android:


Mannen bakom World Wide Web ser OpenStreetMap som "the next Web":

Google Campfire One: Google Marketplace

Slå dig gärna ned vid Google lägerbrasa och lyssna på hur Google bygger en programvarubank baserad på Google apps på samma sätt som man tidigare gjort för Android och som Apple gjort för iPhone. Det tar en timma, men jag tycker att det var värt det.

lördag 27 mars 2010

Test av Google Gadgets

Har gjort ett litet avbrott för att titta på Google Gadgets. Vad är det?

Simple to build

Built-in JavaScript libraries make it easy to create gadgets that include tabs, Flash content, persistent storage, dynamic resizing, and more. Use the Google Gadgets Editor to build gadgets quickly and easily.
Det påstår i alla fall Google. So lets get started. Bra kortfattad beskrivning och en länk till Google Gadgets Editor. Väl där så finns det en editor med demokod. Kul. Jag ändrar den, sparar den någonstans i molnet och klickar på publicera. Då kommer det lätt absurda meddelandet "Violation is not allowed for this file". Jaha, är "violation allowed" för andra filer?

Det som skulle hänt vid klick på Publish var att en undermeny skulle synas. Men det gör det inte. Dessutom finns det ett uppenbart fel i koden: xmlversion ska vara xml version, alltså med mellanslag. När jag bytes från Google Chrome till Firefox fungerar det. Det är tydligt att Google inte lyckats anpassa sin editor till sin egen webbläsare. Svagt!

När jag sparar demokoden med min ändring så kommer det ett ganska så utförlig varning. Demokoden måste alltså kompletteras med en hel del innan den är körbar
  • Author attribute is missing or undefined.
  • Author email attribute is invalid or undefined.
  • Height attribute must be defined.
  • Width attribute must be defined.
  • Description attribute is missing or undefined.
  • Thumbnail attribute must be defined and set to a valid image URL.


lördag 20 mars 2010

Resizing Textarea

Nej, det gick inget bra att utgå från C#-corners text och kod. Möjligen beror det på att jag kan C# för dåligt. Jag hade tänkt och ge upp och i stället ha en statisk textbox, men så hittade jag Javascript Tutorial - Resizeable Textboxes.
Det såg först enkelt ut, men så visade det sig att den artikeln hänvisar till en annan artikel och kod som är betydligt mer omfattande: Javascript - Draggable Elements. Och den hänvisar till slut till ytterligare text/kod: Javascript Objects - A Useful Example.

Det är många år sedan jag skrev JavaScript och då bara väldigt lite, då dessa artiklar kan vara kul att titta närmre på. Jag startar en ny sida i VWD och börjar med A Userful Example. Det första exemplet fungerar utan problem. (Jag publicerar dem inte här då Blogger är så dåligt på att formatera text.)

Det enda lite speciella är uttrycket "this", t.ex. "this.red". Här är en utförlig förklaring. Ska se om jag kan hitta en bättre. I övrigt kan jag ser att variabler inte behöver deklareras och att en funktion kan ha egna funktioner.

Tyvärr kan jag inte se hur man debuggar Javascript i VWD. Till slut hittade jag ett tillägg till FireFox som FireBug och installerade det. Det tar lite tid att komma underfund med det, men kommer underlätta förståelsen av de Javascript jag arbetar med.

FireBug startas med F12 och visas i en slags frame. Sedan gäller det att aktivera de funktioner man vill använda genom att klicka på menyvalen och sedan välja från en dropdown.

Efter att ha följt flödet med debuggern blir slutsatsen att det behövs väldigt mycket kod för att skriva ut några tecken på skärmen.

onsdag 17 mars 2010

Åter till Textboxen

Åter till c#-corner och hans förslag till hur man gör en textbox så att användaren ska kunna ändra storleken. Steg 1 är att omge asp:TextBox med asp:Panel.

        <asp:Panel ID="PanelText" runat="server" >
        <asp:TextBox ID="Body2" runat="server" CssClass="noborder" TextMode="MultiLine" Height="100%" Width="100%">Text i Body2
        </asp:Panel>
        <cc1:ResizableControlExtender
            ID="ResizableControlExtender1"
            runat="server"
            TargetControlID="PanelText"
            HandleCssClass="handle"
            Enabled="True"
            OnClientResizing = "OnClientResizeText">
        </cc1:ResizableControlExtender>

tisdag 16 mars 2010

Ny Visual Studio Express

Såg just att Microsoft har publicerat Visual Web Developer Express Beta 2. Så nu installerar jag den. Det ska blir spännande. Systemet kräver 2,3 Gb disk.

Under tiden kan jag meddela att jag fortfarande inte har lyckats att skapa en Textbox där användaren kan ändra storleken. Har hittat en sida c# Corner som ev har en lösning. Vill inte testa den lösning när installationen av Web Developer rullar. Så det blir en kaffe:

Installation sprack! 

Orsaken är att Silverlight 3 SDK inte kunde installeras. Och nu måste datorn startas om...

Installeraren har varit vänlig nog och lägga en genväg på skrivbordet, men när jag klickar på den ska jag Enter the location of Microsoft Visual Web Developer 2010 Express beta 2. Hur ska jag veta det? Varför lagrades inte den uppgiften i genvägen? Så jag får anger att installationen ska göras om från start. 

Ev måste Microsoft Silverlight 4 Tools for Visual Studio 2010 Beta 2 installeras separat. Här är en alternativ beskrivning av Silver Tools, inkl SDK, installeras.

Det har också kommit ett Visual Studio 2010 and .NET Framework 4 Training Kit, men kan inte titta närmare på det då det ska installeras och installationen av VWD pågår fortfarande.

Installationen funkade inte denna gång heller. Felet nu är att Visual Studio Express Prerequisites x64 inte kunde installeras. Ska jag köra om igen eller använda Microsoft Web Platform Installer 2.0? Jag prövar det senare.

Det gick inte alls. Där fanns inte den nya versionen med, Har nu kört om Repair/Reinstall ett par gånger - med samma resultat. Hittar ingen lösning på nätet heller. Det ser ut som om att det är för tidigt att pröva Beta 2. Och det är ju inte så konstigt. Det brukar jag vara för tidigt att pröva Microsofts programvaror även ett år efter skarp release. 

Till råga på allt så har bredbandet från Bredbandsbolaget slutat att funka. Nu kör jag på Telia Mobilt Bredband vilket fungerar som synes. Men då jag valt "På gång" för 179 kr/mån så går det lite långsamt, 2 Mbit/sek i stället för 8 Mbit/sek (nominellt vill säga). Och volymen är begränsad till 5 Gb. Det går åt snabbt när man ska ladda hem stora utvecklingsystem flera gånger.

Ändra storleken på textbox

Jag har sökt länge efter hur användaren kan ändra textrutans storlek. Lösningen fanns närmare än jag trodde. Det som satte mig på spåret var programming.top54u.com/. Det här är stegen:
  1. Öppna sidan i VWD
  2. Dra Server Manager från Ajax Extensions i Toolbox till sidan
  3. Dra Panel från Standard i Toolbox till sidan.
  4. I Design mode klicka på Add Extender och välj Resizeable Control Extender
  5. Lägg till lite parametrar till Panel: Height="50px" Width="125px" Style="border: solid 1px #000" ScrollBars="Auto"
  6. Lägg till parametrarna till ResizableControlExtender: TargetControlID="Panel1"             HandleCssClass="handle" Enabled="True"
HandleCssClass är en style som innehåller symbolen som användarna tar tag i när textrutans storlek ska ändras:
.handle
{
width:16px;
height:16px;
background-image:url(images/HandleGrip.png);
overflow:hidden;
cursor:se-resize;
}
Så långt fungerar det. Nu gäller det att kunna visa text i panelen och sedan läsa den för att kunna uppdatera databasen. 

söndag 14 mars 2010

Så har det gått en månad igen...

Det är svårt att få tiden att räcka till för att utveckla systemet. Dessutom är det väldigt svårt att komma på var jag var när det blev en paus. Hur man man kommer igång igen.

Men jag vet som märks hur jag kommer igång med min utvecklingsblogg. Alltid något. Jag har också klurat ut att jag använder FileZilla som FTP-program.  Det visar sig att FileZilla har kommit med en ny version sedan sist, men det är inga stora saker som har ändrats..

Blogger har fått fler designmallar. Om det går det att läsa på Blogger Buzz. Blogger har också en Lab-webb som många andra Google-produkter. Den heter Blogger in draft. Där finns mer om hur man gör designmallar och dessutom en artikel om förbättringar i Bloggers editor, men det gäller bara några detaljer. I en kommentar frågar någon varför Google inte kan använda editorn i Docs. Det vore ett lyft. Det finns en Blogger-avdelning på YouTube som nog är värd att besöka igen när det finns tid.

Sedan gäller det att starta Utvecklingssystemet med det långa namnet: Microsoft Visual Web Developer 2008 Express Edition Version 9.0.30729.1 SP som använder Microsoft .Net Framework Version 3.5. SP1 med  SQL. På denna sida finns också en länk till Web App Gallery. Jag har installerat wiki-applikationen ScrewTurn på utvecklingssystemet och det verkar fungera bra.

Så gäller det att öppna mitt webprojektet System9 och undersöka om utvecklingsversion stämmer med den publicerade versionen på www.server42.se.

Nu visar det sig att jag måste logga in till det publicerade systemet. Och inloggningsuppgifterna har jag inte noterat. Inte heller kan de beställas från systemet. Jag startar därför Microsoft SQL Server mangement Studio och finner att den inte kan hitta SQL-servern hos webbhotellet www.space2u.se. Det där har hänt förr. Svaret finns nog i maildatabasen.

-------------------------------------
Nja det var inte så enkelt. Det visade sig att jag har tilldelats ett nytt ipnr och det måste registreras hos Space2u. Efter mycket snabbt hjälp så är ändringen gjord och kontakten med databasen fungerar.

Men jag kommer nästan inte ihåg hur programmet används. Så här går det till. Klicka på databasens namn i Object Explorer, sedan på tabellens namn, Query, Design Query in Editor, markera tabell, markera önskade fält, klicka ok. Nu ser jag användarnamn och lösenord.

Vid inloggning i publika versionen kommer felmeddelandet: Server Error in '/' Application. Vid inloggning i utvecklingssystemet: Det finns ingen användare med de uppgifter du angav.
  
Det senare problemet var enkelt att fixa, men vad beror det första på?Jo, i den nya versionen finns funktionen dokument och jag hade inte skapat en publik tabell för dokumenten. När jag gjorde det glömde jag att registrera fältet ChangeDate och obegripligt nog går det inte att tillföra det fältet efter att jag sparat tabellbeskrivningen. Får kolla runt lite om hur man gör sånt på bästa sätt.


Ett sätt är att exekvera en SQL-sats:
ALTER TABLE document
ADD ChangeDate datetime;
Men det går faktisk att göra ändringen utan T-SQL. Pinalkumar Dave på SQLAuhtority beskriver väldigt bra hur man gör.

Och därmed visas den tomma listan över dokument när man klickar på Dokument i menyn. Nästa steg blir att kunna skapa nya dokument. Jag passar på och publicerar "Om" för denna funktion också.