Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Razor-based MVC vs. Single Page Application in MVC 4

Tags:

I used to utilize MVC 3 Razor engine to render pages. Sometimes I had to use AJAX calls to transfer Razor-rendered HTML and inserting it into the page using JQuery. As new project is starting, we do consider to utilize MVC 4 Single Page Application framework which is new to us. I took the first glance at it which left me with mixed feelings: On the one hand it implies all your data are transferred by JSON and client does all the job to render them and encode some UI-related logic which is great for server and network performance. On the other hand the client (HTML+JavaScript) becomes much more heavy with a bunch of magic strings and hidden relations inside it which seems to be hard to maintain. We got used to VS intellisense, type-safed .NET server code to render pages which we have to exchange for client scripts and Knockout binding statements in case of SPA.

I wonder are any prons and cons of using SPA comparing to Razor, other that this obvious one I've mentioned here? Thanks

like image 832
YMC Avatar asked May 10 '12 01:05

YMC


People also ask

Which is better Razor pages or MVC?

From the docs, "Razor Pages can make coding page-focused scenarios easier and more productive than using controllers and views." If your ASP.NET MVC app makes heavy use of views, you may want to consider migrating from actions and views to Razor Pages.

What is the main difference between Razor pages and MVC?

Razor Page is similar to the HTML page but it loads data easily. A Razor Page is almost the same as ASP.NET MVC's view component. It has basically the syntax and functionality same as MVC. The basic difference between Razor pages and MVC is that the model and controller code is also added within the Razor Page itself.

Is Razor pages single page application?

Razor is a server based technology where SPA (Single Page Application) is an architecture approach used on the client (web browser). Both can be used together.

What is the difference between Razor and Cshtml?

razor helps you embed serverside code like C# code into web pages. cshtml is just a file extension. razor view engine is used to convert razor pages(. cshtml) to html.


1 Answers

Razor is a server based technology where SPA (Single Page Application) is an architecture approach used on the client (web browser). Both can be used together.

From a high level, SPA moves the rendering and data retrieval to the client. The web server becomes a services tier sitting in front of the database. An MVC pattern works best when using SPA. Frameworks like Knockout.js and Backbone.js can be used for this. The net results is a rich responsive desktop like experience.

To achieve this you'll need to be a descent javascript programmer or be willing to learn javascript.

Yes it's moving business requirements from C# into javascript. In Visual Studio there is limited intelli-sense for javascript. To have confidence in your javascript you'll need to lean on unit testing. The up side is the rich user experience (think gmail or google maps).

like image 145
Chuck Conway Avatar answered Sep 20 '22 16:09

Chuck Conway