Microsoft’s web application framework implements the model–view–controller (MVC) pattern which gives developers a powerful way to build functional applications rapidly and without having to compromise quality.
Powerful bespoke web applications
Or to put it another way, ASP.NET MVC helps good coders write business applications quickly and to a high standard.
Application development platform
360 Systems use ASP.NET MVC when we are writing business applications that integrate into intranets, SharePoint or Websites.
What is it
MVC is a standard design pattern that types of application benefit from. Microsoft have used these design practices to create a solution around ASP.NET. MVC helps to separate the concerns of the development throughout the life cycle such as Accessing the data from a database, performing application logic, and then presenting the processed data to the end user.
Simplified Web Development Experience
Microsoft have made it much simpler to produce HTML pages which are compiled from application code via the ‘Razor’ Syntax. This has opened up additional opportunities for Web Designers thanks to its more simplistic approach.
Testing
Testing is also important on the Microsoft stack. The ‘holy grail’ of testing is a fully automated testing environment, that is able to check for issues quicker than any human, and even quicker than the web browser is able to view the web page. In the development world we call this Unit Testing. The development environment utilizing allows for the set up Tests which ensures:
- many bugs are found at build time, making for a more stable release
- the team can develop fast whilst checking for many different issues knowing almost instantly that nothing has been broken
- that the solution works correctly
There are often times where we need to test the web pages that are being displayed to end user. Microsoft have a solution for this called Coded UI which allow us to simulate thousands of requests from different accounts and all over the world. It also includes ‘macro’ like functionality allowing us to record certain tasks and test for them multiple times or in the future on a newer release.
Extensibility + Reusability
ASP.NET MVC is highly extensible. If you were using some older technologies, if something didn’t work as you wanted it t, a developer would have to produce a ‘work around’ which often do not result in the most elegant of code and efficiencies.
In ASP.NET MVC, if something doesn’t work the way we would like it to then we can ‘extend’ the core solution and make it work to our requirements. Don’t like the limited scope of Windows Authentication? Prefer to change how and where it stores User Accounts? Want Row Level permissions (something only the very latest SQL Server 2016 supports)? Extending our application on top of ASP.NET MVC allows us to achieve all this.
Code Reuse
Nobody wants to reinvent the wheel. Code can live in Libraries which allow us to re-use heavily developed and maintained snippets in future applications, allowing us to focus on your business problem. On top of this, there is a vast .net community which publish code for reuse purposes. These developers often are considered experts in their areas, sharing their code with others to make development better.
How We Use It
Microsoft provide templates to begin development of an ASP.Net MVC application. We consider this to be great start to any development project but felt that we could improve it further in house to optimise development, performance and improve capabilities to say the least. We developed the our VS Framework which includes out the box, all of the core MVC services that Microsoft provide and then some. This is our own code which is actively maintained and developed. Some additional features that we have which don’t exist in the core solution:
- extensive logging framework
- configurable mailing functionality with a HTML template engine
- mixed authentication Windows authentication & session based authentication (Username and Password)
- multiple VS framework applications can share the same login
- input templating – allowing forms to be created much faster
The framework is an actively developed application, and is designed to be flexible and maintainable.
The ASP.NET MVC framework provides the following features:
- Separation of application tasks (input logic, business logic, and UI logic), testability, and test-driven development (TDD). All core contracts in the MVC framework are interface-based and can be tested by using mock objects, which are simulated objects that imitate the behavior of actual objects in the application. You can unit-test the application without having to run the controllers in an ASP.NET process, which makes unit testing fast and flexible. You can use any unit-testing framework that is compatible with the .NET Framework.
- An extensible and pluggable framework. The components of the ASP.NET MVC framework are designed so that they can be easily replaced or customized. You can plug in your own view engine, URL routing policy, action-method parameter serialization, and other components. The ASP.NET MVC framework also supports the use of Dependency Injection (DI) and Inversion of Control (IOC) container models. DI enables you to inject objects into a class, instead of relying on the class to create the object itself. IOC specifies that if an object requires another object, the first objects should get the second object from an outside source such as a configuration file. This makes testing easier.
- Extensive support for ASP.NET routing, which is a powerful URL-mapping component that lets you build applications that have comprehensible and searchable URLs. URLs do not have to include file-name extensions, and are designed to support URL naming patterns that work well for search engine optimization (SEO) and representational state transfer (REST) addressing.
- Support for using the markup in existing ASP.NET page (.aspx files), user control (.ascx files), and master page (.master files) markup files as view templates. You can use existing ASP.NET features with the ASP.NET MVC framework, such as nested master pages, in-line expressions (<%= %>), declarative server controls, templates, data-binding, localization, and so on.
- Support for existing ASP.NET features. ASP.NET MVC lets you use features such as forms authentication and Windows authentication, URL authorization, membership and roles, output and data caching, session and profile state management, health monitoring, the configuration system, and the provider architecture.