I came across quite a few startups in the IT services sector whose prime business is developing websites either as intranet or public website. After talking to them I felt most of them were re-inventing the wheel for every project. I decided to write an article that explains the list of components that a website can have so that the startups can have these components ready and just integrate it into their new projects. I am writing this as a guideline to develop projects in ASP.NET or ASP.NET MVC. I think developers can find the equivalent features in PHP or Java or Ruby On Rails.

  • Membership – Use ASP.NET membership (other open source providers) to design the following modules.
    • Login – Use the basic authentication and also implement multi-factor authentication like tracking geo-location of login IP address etc.
    • Registration (Include EULA acceptance)
    • Password Change
    • Manage Users
    • Manage Roles
    • Manage Permissions
  • Data Access Layer
    • Identify the ORM that you are planning to use for each database type like SQL Server, MySql and Oracle.
    • Audit trail feature to track changes to records in database.
  • Logging
    • Exception Logging
    • Event Logging
    • Information Logging
  • Caching
  • SMTP Module to send out key communications via email.
  • Analytics integration (majority of the site are now using Google Analytics)
  • SEO module – Screens which help the user to manage the Title, Meta Description and Meta Keywords
  • Content Managment System – Allow user to edit HTML contents in some ares of the page.
  • Dependency Injection Container – It is better to use DI containers because it will help you to test db changes for backward compatibility with code.
  • Unit Tests – For some standard operations.

Good luck with these tips.