Ett litet tips bara till dig, (vet dock inte hur pass bra det fungerar mot asp) men kolla in angularjs. Det underlättar ganska mycket när du ska visa ut saker till klienten.
Finns en del färdiga starters så att säga, där dom har gjort hela grunden samt några exempel.
Jag har en webbplats som har mååånga år på nacken.
Sidan är idag med frames med meny i sidoframe till vänster och innehåll till höger
klassisk asp med en massa asp-sidor för att spara och validera data.
en del formvalidering med javascript.
Vidare så är större delen av sidans design gjord med tabeller vilket knappt var ultimat för tio år sedan då sidan skapades.
jag har börjat titta på lite mer moderna lösningar och vill skriva om hela min sida. Problemet är att ju mer jag läser desto fler lösningar finns det för
att lösa olika typer av problem och jag har lite svårt att se bästa användningsområdet för respektive lösning.
Klart är ju iallafall att designen skall göras med css3, html5 och javascript. sidan är ju väldigt databasdriven där större delen av innehållet är formulärdata av något slag. Genom användningen av riktiga asp.net kontroller känns det
som att jag får mycket gratis tack vara state och annat. vidare så gör det ju ingenting att jag kan skriva mycket av koden i code-behind i C#, ett språk som jag kan bra.
största frågetecknen jag har är hur jag skall hantera dynamiskt innehåll, dvs dynamiska menyer, dynamisk formulärdata och annat.
Jag kan ju skapa kontroller med javascript (jquery) eller vid olika event i code behind skapa och lägga till/ta bort kontroller. Jag kan använda ajax eller ej.
vidare så är jag osäker på bästa sättet att skapa kontroller. skall jag returnera data från script och låta
javascript skapa elementen med hjälp av datat eller skall jag returnera html-element med data.
jag skulle ju helst vilja använda webside-metoder för att hämta och spara data, då kan jag skriva det mesta i c# som jag är van vid men jag vet inte om
jag kan använda sådana metoder med ajax och javascript. testade att göra några scriptsidor likt följande och det fungerar ju bra.
<%
' lite databasanrop och loopar
' returnerar sträng med html som jag byggt upp av resultatet
response.wite("<p>lite text</p>")
%>
testade även att skapa lite element i code behind för exempelvis en meny vid page_load like detta:
// hämta data från databas här och skapa en datatabell
// loopa datatabell och skapa element
int i=0;
while(i < test.Rows.Count)
{
DataRow row = test.Rows[i];
ulElement.ID = (string)row["module_name"];
ulElement.InnerHtml = (string)row["module_name"];
this.Controls.Add(ulElement);
navigationDiv.Controls.Add(ulElement);
i++;
}
och det går ju också bra.
Behovet jag har där jag är lite fundersam är bland annat följande:
- filarkiv där jag kan bläddra i mappar och då visa filer i respektive mapp (sparat i databas). är idag en tabellstruktur med bilder för mappar och filer samt namn och storlek på filerna
- ladda comboboxar beroende av värden i andra comboboxar (sparat i databas) likt länder och städer - sidan laddas idag om och alla formulärfält måste populeras med det som de innehöll innan sidladdningarna
- Bygga upp en huvudmeny utefter användarrättigheter sparade i databas (behöver endast laddas en gång per inloggning egentligen) - masterpage kan nog vara bra för huvuddesignens skull men då laddas ju
menyer varje gång om jag inte på nåt sätt håller reda på den mellan sidladdningar. vet inte om det spelar roll
- bygga upp undermenyer utefter användarrättigheter (sparade i databas) som är olika på olika "undersidor". görs idag med klassisk asp där menyer ligger i include-filer för att underlätta vid underhåll.
All input på arkitektur med ovan nämnda språk och metoder är välkomna och då främst för de fyra ovanstående frågorna
Gärna vad jag inte bör göra om ni har input på det. Jag har inte varit inne i webvärlden på ca tio år utan har kodad desktop-applikationer med c# och winforms/xaml sedan dess.