Nu har jeg leget med ASP.NET i godt en uge - efter at have programmeret PHP/MySQL i næsten 3 år. Så efter at have banket mit hoved ind i de første mange mure med tilsvarende råb om, at det samme er fucking nemt i PHP vil jeg lige dele mine erfaringer ... ;-)
1) Nej. Som jeg har forstået det, så er ASP.NET bygget på præcis det samme framework som Windows applikationer skrevet i .NET gør. Det betyder, at du har al denne funktionalitet til rådighed (og det er ret massivt ...) og ellers har du altid muligheden for at lave dine egne moduler. Mulighederne er uendelige.
Dog tror jeg faktisk ikke man kan benytte variable variabler som ${"test".$i}, men så må man bare lege med arrays i stedet. De er også underholdende nok til man finder ud af, at for det der hedder arrays i Java og C#, så er det en lidt anden verden end arrays i PHP. Og så føler man sig hjemme igen når man opdager ArrayList ;-)
2) Du kan i hvert fald køre dem fint sammen. Jeg foreslår du kigger her:
http://www.mysql.com/articles/dotnet/ - Jeg hører fra nogen ''eksperter'', at ByteFX er ganske glimrende, og det virker da også fint for mig.
3) For det første har du valget mellem 3 sprog (med mulighed for udvidelser): C#, VB.NET og JScript. C# synes jeg er det klart mest interessante, da det i sin syntaks ligner Java meget og altså er et stærkt OOD sprog.
Codebehind giver dig en lækker adskillelse af kode og layout - det er sikkert muligt at gøre noget lignende i PHP, men ASP.NET er designet til det.
Noget som form-validering gøres utroligt lækkert og nemt - og desuden er ''viewstate'' (altså det brugeren har fyldt ind) automatisk husket - noget jeg synes kan være en pine i PHP.
4) Det kommer an på hvad du vil. ASP.NET giver nogen muligheder som du ikke har med PHP, men det er lidt en opgave at lære det. Hvis du i forvejen har programmeret en del og ikke har noget imod en lille kamp, så begynd. Skal du derimod vælge dit første sprog, så er PHP nok det klart nemmeste at begynde på.
5) Både og. Køb bøger - det er altid godt. På nettet finder du som oftest kun det du søger efter eller falder over ved et tilfælde - mange gange kan du få detaljer med i bøger som det kan være svært at finde online. Men den her giver et interessant overblik:
http://www.gotdotnet.com/team/student/academicreskit/ ... som et eksempel på at det kan tage lang tid at finde det man søger, så spildte jeg det meste af en dag på at finde ud af, at en corrupted viewstate skyldtes at mine usercontrols blev inkluderet i en Page og jeg derfor skulle kalde deres metoder fra Page_Init i stedet for Page_Load ... arrrrr, bare en af de detaljer alle glemmer af fortælle nybegynderne ...
6) Ja. Og det er tilmed utrolig nemt. Jeg har en enkelt side i mit nuværende projekt, der inkluderer usercontrols. Og selvom jeg troede den fase sluttede for mange år siden med Frontpage for mit vedkommende, så sidder jeg nu igen og laver formularer visuelt i Visual Studio's designer ...
7) Ja - til en hvis grad.
... og lige en lille advarsel. Som sagt er jeg kun godt en uge inde i .NET, men der er en vigtig forskel på PHP og .NET som jeg har forstået det. PHP er bygget med webudvikling for øje - og det klarer det sgu egentlig ret godt. Der er funktioner til det meste af hvad hjertet begærer. Som eksempel lykkedes det mig ikke at finde en metode til at vende en string i .NET - så den måtte man selv skrive. Selvfølgelig nemt, men som jeg kan se gælder det vist også for mere komplicerede funktioner. I GDlib kan du fint lave en resize med resampled - det har jeg ikke set om er direkte muligt med GDI+ (som det vist hedder). I stedet benyttede jeg en større statisk metode til formålet ...
Nå - nok snakken uvidenheder. ASP.NET er ret lækkert og selvom det har givet mig en del besværligheder, så tror jeg hurtigt jeg kan blive ret produktiv i det. Nok også mere end jeg var i PHP især hvad angår større projekter.