AspMVC4 start101

Post on 14-Jun-2015

161 views 0 download

Tags:

description

MVC4 Intro

Transcript of AspMVC4 start101

C# ASP.NET-MVC4Frameworks101

Sept 06, 2014By Rich Helton

ASP.NET MVC

Is Microsoft's framework in support of the Model-View-Controller, the most popular design pattern in the world for rapid development.Entity Frameworks are used heavily with ASP.NET MVC, but they are a completely separate framework that are used independently as well.

MVC Components

ASP.NET MVC benefits

Enables Test-Driven Development (TDD).Provides rapid development for developing

ASP.NET in Visual Studio.Supports IIS backend code for enhanced functionality. Provides clean separation of concerns(SoC) between different components.

Enhanced Software Quality

ASP.NET MVC supports the following features for quality:– Security – Has built-in security.– Extensibility – many extensible frameworks.– Testability – supports unit testing

What is TDD?

Test-Driven Development (TDD) is a software development process that relies on the repetition of a very short development cycle by utilizing automated test cases that defines new functionality and programming to the passing these tests.

Installation

We can use the http://www.microsoft.com/web/downloads/platform.aspx

Through the web installer

We can install some pieces to use through WPI:– SQL Express LocalDB Edition 11.0 for data– Visual Studio Express 2012 for coding– ASP.NET MVC 4 the framework– IIS Express for running and deployment

Creating a MVC 4 project

There are several templates

The Empty template

The Empty template does not generate any sample models and controllers:

The Basic template

The Basic template does not generate any sample models and controllers, but some starter pages:

The Internet template

The Internet template now offers basic account views, controllers and models, that can be plugged into a database.

Internet template tests

The Internet template now offers Unit testing into its home controller as well that was generated.

The Intranet template

The Intranet template is similar to the Internet template, except it is gearing its authentication towards Windows authentication. There are no separate account pieces, but a readme.txt describing how to setup authentication in IIS.

Internet basic walkthrough

Sept 06, 2014By Rich Helton

The Internet template

Lets start with an application that we call InternetMVC4App:

Running the App

Running the app from Visual Studio already gives us pieces:

Its all about routing

We will route through the pages, the route begins with the RouteConfig.cs, this defines the starting action to be the Index function in the HomeController.cs:

Controllers are always first

The Controller function is first, in this case, the Index function that returns values, in the form of models, for the pages. A controller can take in a HTTP request or model as needed.

Controllers call Views

The Controller will call views, here we have a layout for all pages that put in the scripts.

Starting a Register

Clicking on the Register link will bring us to the register function

in the AccountController.cs by the link <li><a href="/Account/Register" id="registerLink">Register</a></li>

Register Controller

The link will call the Register function:

Which in turn will call the Register View:

Register View

The Register View will populate the RegisterModel with username and password to pass to a Register function with the model:

Register Model

The associated RegisterModel, notice the data annotations to provide validation on the data:

Register data annotation

The data annotation ensures that the password is at least 6 characters:

Register function note

After a successful register, we will be logged in by way of the Register(RegisterModel model). This is an HttpPost from the page, meaning data is posted.

Just a touch of Controller security

Did you notice the [ValidateAntiForgeryToken], which is available functionality to block cross-site request forgeries and raise an error if the cookie value doesn't match the form value.There is a lot of security and validation functionality that MVC 4 provides.

The membership

Within the App_Data directory of this project is an MDF data file that contains the basic tables for registration. The values will be added as usernames are added:

Defining the default connection

Within the Web.config is where many of the configurations are defined, including the DefaultConnection connection

string:

Setting the Membershipdatabase

Sept 06, 2014By Rich Helton

Run aspnet_regsql.exe

Navigate to the following directory on the server: C:\Windows\Microsoft.NET\Framework\v4.0.30319. Locate "aspnet_regsql.exe", right click and run as

administrator.

Select the SQLExpress DB

We can select the local DB of SQLExpress.

The aspnetdb is created

An aspnetdb database will be created to store users and roles.

Change the connection string

We modify the connection string in web.config to point at SQLEXPRESS. See http://msdn.microsoft.com/en-us/library/jj653752(v=vs.110).aspx

Register the user again

We need to add a user to the new tables through the registration process.

The user is added in SQLEXPRESS

The new user is added to SQLExpress.

Adding Controllers

Sept 06, 2014By Rich Helton

So far...

Just a note, that so far, we have done almost no coding for our solution, but we have functionality for users and registration, as well as some basic pages.

We can add various components

We can add specific components using Visual Studio wizards for Views and Controllers.

Adding a controller

We get several templates to chose from when adding a controller

Controller Templates

Empty MVC controller MVC controller with read/write actions and views, using Entity Framework MVC controller with empty read/write actions Empty API controller API controller with read/write actions and views, using Entity Framework API controller with empty read/write actions

Empty controller

Just provides an Index() action

MVC read/write actions

Provides Index(), Create(), Edit(), and Delete() actions.

MVC with entities

We need to have an EF dbcontext and models define. See

http://www.slideshare.net/rhelton_1/entity-frameworks101

Address Table entity model

We add an Address table

MVC Entity Controller

We can now use the Controller with entities

MVC read/write actions with entities

Provides Index(), Create(), Edit(), and Delete() actions, now with an Address table in these functions.

Showing the access to the Address table

We can see the Address table being accessed in the actions.

Views were added

Views to match these actions to return the entities were added by default

We can add the MVCEntities...

We can add these views that were created to the _Layout.cshtml.

Which will add to the layout

The _Layout.cshtml will show the link.

The Index page

This Index page that was generated is already functional that we see when clicking the link. We didn't code much for this.

Empty WebApi controller

The empty web API controller will create a controller derived from the ApiController, which returns serialized data, such as a string, instead of the Controller interface which returns action results for views.

API controller with read/writes

This will create a sample template for Get(), Put(), Post( ), and Delete() functions using strings.

API controller with entity read/writes

This will create a sample, based on the entity selected, the template for Get(), Put(), Post( ), and Delete() functions using the entity, in this case the Address.

So far....

So far, we have added a lot of controllers, some who connect and pull data from the database.We still haven't coded much.

Adding Views

Sept 06, 2014By Rich Helton

We can add Views

We can create a view to automatically populate with a template of a model for various actions...

Views

When we create the view, it is just the view, and while it may put model information in the view, the controller still has to be created to match the view.

Done for now, more to follow

Sept 06, 2014By Rich Helton