Jag ser 2 problem i det du efterfrågar. :OO
Det först är hur skall din applikation få reda på att något har hänt i databasen.
Här kommer några lösningar. :OO
1. Den enklaste är helt enkelt att du gör en poll var 30 sekund mot databasen och kollar om något har hänt. Om man är nervös för att det skall ta för mycket kräm av databasen, så kan man med hjälp av triggers, ändra i en separat tabell att något har hänt, och sedan kollar man mot den tabellen vad som har hänt, den tabellen kan innehålla: ID på posten, typ av aktion (update,Insert, Delete) och klockslag, samt en lite markering om du har kollat denna post eller ej tidigare.
2. Den andra lösningen som jag ser är att om du kör med SQL 2005 så skall det finnas event från databasen i ADO.NET som du skall kunna lyssna på, hur precisa dessa event är, vet jag inte eftersom jag aldrig har använt dem, men misstänker att du får ett event om något har hänt i en tabell, men att du inte vet riktigt vad. Vilket gör att denna lösning tillsammans med 1 gör att du slipper polla, samt att du vet vad du gjort. (y)
3. Du bygger helt enkelt ett API mot din databas och sköter alla kommunikation mot din databas via detta API, och när du gör förändring någonstans i databasen och går via API:et så kastar API ett event att något har hänt. Här kan du med hjälp av caching lyfta en del last från databasen till en API-services, eftersom denna alltid kan innehålla den senaste informationen i en post, och därför behöver man inte gå ner till databasen och efterfråga informationen. Det kräver dock att ALLA verkligen använder API när man vill göra något i databasen. Säkert riktigt overkill för dig, men rolig och lärande att bygga :birp
Så nu till det tråkiga, och det andra problemet. Alla dessa förslag är helt värdelösa eftersom du kör med ASP.NET och tappar ditt tillstånd vid varje sidanrop. x(
Du kan alltså inte sätta en timer i din kod som gör en kontroll var 30 sekund, utan du måste göra ett anrop till server var 30 sekund på valfritt sätt. Alternativ 2 och 3faller bort eftersom du helt enkelt inte kommer ha någon koppling till databasobjektet som kastar eventet, databasen kommer kasta sitt event, men du har ingen som lyssnar och kan opererar på eventet.
Så hur kan du lösa det smidigast. :q
Du kör alternativ 1, tillsammans med en AJAX-lösning som anropar en webservices som returnerar antigen att det är dags att ladda om sidan när något har hänt, eller ännu bättre allt som har hänt och med hjälp av JavaScript så uppdaterar du dina contentplaceholder med denna information, helt klart snyggaste lösningen. :e
- M