AspMVC4 start101
-
Upload
rich-helton -
Category
Software
-
view
161 -
download
0
description
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