# Razor / CSHTML
Author: [Borttaget]

Kollade lite på asp.net - [razor/CSHTML](http://www.asp.net/webmatrix/tutorials/1-getting-started-with-webmatrix-and-asp-net-web-pages).

Otroligt vackert och framför allt enkelt språk! Man kan integrera C# men behöver inte koda i C# i onödan.

Jag har aldrig hört talas som språket innan så jag sökte på google och hitta väldigt lite information om det. Tydligen ganska nytt?

Jag testade även lite och helt otroligt enkelt! Nästa så att PHP känns som slöseri med tid.

Någon som hört talas om detta språk?

Har större webbhotell stöd för detta? Såg fler som haft problem med publicering så sent som i år.

## Comment 1
Author: johan

Ja, Razor-syntaxen är helt oslagbar. Använder enbart det hela dagarna och kvällarna. :)

Just att det blir en så naturlig del av html-koden gör att det känns enklare att skapa html-vyer som fortfarande är läsbara.

Det finns inga som helst problem att lägga det på webbhotell. Det är bara att se till att filerna kommer med till bin-mappen och kopiera den. I Visual Studio gör man det enklast genom att skapa ett "deployable dependency" eller skapa en vanlig referens til ett par bibliotek och väljer att dessa ska "copy local". Sen är det bara att köra.

Jag har använt detta både hos Binero och Ballou utan problem.

Om du precis börjat titta på det och inte har stenkoll på C# har du förmodligen missat att du kan skapa egna extensions. Så på samma sätt som du t ex gör en textbox med @Html.Textbox() så kan man skapa egna sådana metoder som gör mer. Tänk dig t ex man ofta vill visa en avatar som länkar till en personlig sida så skulle man kunna göra en extension för det och sedan använda @Html.Avatar(user) i ens sida.

En annan sak som är sjukt skönt med ASP.NET MVC är validering. Du behöver inte skriva en enda rad javascript för att få unobtrusive client side validation. Det enda som krävs är att sätta reglerna på ens modell och sedan inkludera jquery validate i sidan.

Det kan se ut typ så här:

public class Post  
{

\[Required\]  
public string Subject { get; set; }

}

Det är allt som krävs för att vara säker på att subjekt-fältet måste vara ifyllt på en modell. Sedan valideras det på klientsidan om man har javascript och för säkerhets skull även på serversidan.

Man slipper med andra ord all form av  
if($("#subject").val() != "") {  
alert("du måste fylla i rubrik.");  
return false;  
}

och liknande på serversidan.

Man kan titta lite på www.aktieguiden.com. Den är byggd helt och hållet med c# och razor och ligger hos Binero och kör deras minst paket för företag.

## Comment 2
Author: [Borttaget]

#1

Tack för all info! Det verkar helt underbart. Är en del hemma på C# så det känns som ett givet språk nu när PHP börjar bli tråkigt.

Ska kika vidare på detta!

Det enda som krävs av server än att den kan hantera ASP.NET med andra ord?

## Comment 3
Author: johan

Ja. Tror kanske det krävs .net framework 3.5 eller 4.0, men stöder hotellet IIIS och .net, så brukar de ha den senaste versionen.

C# har en del features som jag hittills aldrig sett lika bra i andra språk. I synnerhet är LINQ det bästa som hänt.

Tänk dig t ex att du har en array med användare. nu vill du filtrera ut de som bor i Stockholm.

var users = (from u in users where u.Town == "Stockholm" select u);

I princip allt du är van att kunna göra i SQL med joins, filtrering, sortering, gruppering, etc kan du göra på alla former av arrays i c#. Och eftersom det är i minnet är det sjukt snabbt.

Det finns även LINQ for SQL som gör att du aldrig behöver skriva SQL-frågor, utan du kör med LINQ så översätter LINQ for SQL det automatiskt till SQL-frågor.

## Comment 4
Author: [Borttaget]

Haha det låter ju som det optimala språket!

Tror det kommer växa gigantiskt i framtiden! Känns som att jag kommer skrota PHP och börja med detta istället.

## Comment 5
Author: johan

Det är alltid farligt att döma något man inte använt så mycket själv, men i mina ögon så är PHP samma sak ASP Classic, medan ASP.NET MVC är modern, hjälpsamt och kraftfullt.

Men som sagt, jag har inte jobbat med PHP tillräckligt för att se dess styrkor från insidan. (men jag har jobbat med .net från dag 1)

## Comment 6
Author: [Borttaget]

Blir ju själv intresserad bara utav att läsa denna tråd.

Det enda jag tycker är tråkigt med windows server är hur läggar man upp andra filer än bildfiler samt pdf och zip?

Jag väljer linux server bara för att jag ska kunna dela med mig programvaror som jag har gjort. Så vet någon utav er hur man gör för att kunna ha en exe-fil liggandes på servern samt att det går att komma åt den och lada ned den från sidan man har byggt på servern?

Hört att IMAP är en lösning men förstår inte mycket utav det.

## Comment 7
Author: johan

IMAP har med mail att göra, det är nog inte det. Du kanske tänker på WebDAV?

Hur som helst. I IIS kan man behöva lägga upp fler mimetypes för att filer ska skickas rätt. Osäker på om det verkligen behövs för exe-filer, men så kanske det är.

Men rent generellt är det väl nästan bäst att lägga sådant på en ftp-server?

## Comment 8
Author: [Borttaget]

Okej, det är nog mime jag tänker på.

För jag har ju Binero så jag kan ju byta server och jag tänkte lägga upp en flash fil där en gång och det gick inte att ladda den från servern och jag har för mig att det var samma sak med exe filer.

Det vore lättast om allt kunde finnas på samma domän, annars måste jag skapa ett subdomän som är linux.
