2. 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.
4. 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.
5. 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
6. 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.
7. Installation
We can use the
http://www.microsoft.com/web/downloads/platform.aspx
8. 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
11. The Empty template
The Empty template does not generate any sample
models and controllers:
12. The Basic template
The Basic template does not generate any sample
models and controllers, but some starter pages:
13. The Internet template
The Internet template now offers basic account views,
controllers and models, that can be plugged into a database.
14. Internet template tests
The Internet template now offers Unit testing into its home
controller as well that was generated.
15. 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.
18. Running the App
Running the app from Visual Studio already gives us pieces:
19. 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:
20. 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.
21. Controllers call Views
The Controller will call views, here we have a layout for all
pages that put in the scripts.
22. 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>
23. Register Controller
The link will call the Register function:
Which in turn will call the Register View:
24. Register View
The Register View will populate the RegisterModel with
username and password to pass to a Register function
with the model:
25. Register Model
The associated RegisterModel, notice the data annotations
to provide validation on the data:
26. Register data annotation
The data annotation ensures that the password is at
least 6 characters:
27. 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.
28. 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.
29. 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:
30. Defining the default
connection
Within the Web.config is where many of the configurations
are defined, including the DefaultConnection connection
string:
32. Run aspnet_regsql.exe
Navigate to the following directory on the server:
C:WindowsMicrosoft.NETFrameworkv4.0.30319.
Locate "aspnet_regsql.exe", right click and run as
administrator.
34. The aspnetdb is created
An aspnetdb database will be created to store users and roles.
35. 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
36. Register the user again
We need to add a user to the new tables through the
registration process.
37. The user is added in
SQLEXPRESS
The new user is added to SQLExpress.
39. 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.
40. We can add various
components
We can add specific components using Visual Studio wizards
for Views and Controllers.
41. Adding a controller
We get several templates to chose from when adding a
controller
42. 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
48. MVC read/write actions with
entities
Provides Index(), Create(), Edit(), and Delete() actions,
now with an Address table in these functions.
49. Showing the access to the
Address table
We can see the Address table being accessed in the actions.
50. Views were added
Views to match these actions to return the entities were
added by default
51. We can add the
MVCEntities...
We can add these views that were created to the
_Layout.cshtml.
52. Which will add to the layout
The _Layout.cshtml will show the link.
53. 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.
54. 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.
55. API controller with
read/writes
This will create a sample template for Get(), Put(), Post( ),
and Delete() functions using strings.
56. 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.
57. 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.
59. We can add Views
We can create a view to automatically
populate with a template of a model for various actions...
60. 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.
61. Done for now, more
to follow
Sept 06, 2014
By Rich Helton