@manhng

Welcome to my blog!

AdminLte Visual Studio Marketplace

March 14, 2022 22:53

AdminLte Visual Studio Marketplace (edit)

How to integrate AdminLTE with ASP.NET Core 3.1 (dotnettec.com)

  • AdminLTE
  • Font Awesome
  • Bootstrap
  • Bootstrap Datepicker
  • jQuery DataTables
  • Select2
  • Moment.js
  • DocumentFormat.OpenXml
  • EntityFramework
  • AutoMapper
  • Razor Pages
  • ASP.NET Identity
  • Serilog
  • Profile Picture
  • File Upload
  • Mail Service
  • Notifications
  • User and Role Management Module
  • User Seeding
  • Role Seeding

https://marketplace.visualstudio.com/items?itemName=DiomedesIgnacioDominguezUrena.N-LayerAdminLTENET

https://github.com/DiomedesDominguez/AdminLTE.NET

ASP.NET Core 3.1 in Visual Studio 2019

https://marketplace.visualstudio.com/items?itemName=GirishGodage.CoreAdminLTEStarter

User Seeding + Role Seeding

https://marketplace.visualstudio.com/items?itemName=MukeshMurugan.AdminLTEStarterKitAspNetCore

https://marketplace.visualstudio.com/items?itemName=c0shea.AdminLTETemplate

https://marketplace.visualstudio.com/items?itemName=Snyder9195.AdminLTE

AdminLTE + ASP.NET MVC + Angular

June 1, 2020 10:10

AdminLTE + ASP.NET MVC (edit)

https://github.com/go2ismail/AdminLTE-ASP-NET-MVC/

https://marketplace.visualstudio.com/items?itemName=c0shea.AdminLTETemplate

https://www.prishusoft.com/blog/Integrate-AdminLTE-theme-to-Angular-Project.html

AdminLTE + ASP.NET Core MVC

https://github.com/manhng83/AdminLTEWithASPNETCore

https://github.com/manhng83/AdminLTE-Starter-Kit

https://github.com/manhng83/AdminLTE.Core

https://github.com/manhng83/AdminLTE.MVC

https://github.com/manhng83/AspNetCore-DDD

https://github.com/manhng83/Boilerplate

https://manhng.com/blog/aspnet-5/

https://manhng.com/blog/starter-kit/ 

https://github.com/manhng83/EquinoxProject

https://github.com/manhng83/SimpleMultiTenant

https://stackify.com/writing-multitenant-asp-net-core-applications/

https://michael-mckenna.com/multi-tenant-asp-dot-net-core-application-tenant-resolution

Integrating AdminLTE with ASP.NET Core 3.1 – Detailed

https://www.codewithmukesh.com/blog/integrating-adminlte-with-aspnet-core/ (ASP.NET Core 3.1)

https://www.howtosolutions.net/2020/06/visual-studio-asp-net-mvc-project-installing-adminlte-dashboard-template/

How to Integrate AdminLTE with ASP.NET Core 3.1

Social Network for Programmers and Developers (morioh.com)

PureSourceCode | All technologies, only pure source code

How to integrate AdminLTE in an ASP.NET Core MVC

https://github.com/erossini/AdminLTEWithASPNETCore

How to integrate AdminLTE in an ASP.NET Core MVC and .NET 5 project

Integrating AdminLTE with ASP.NET Core | PureSourceCode

erossini/AdminLTEWithASPNETCore: How to integrate AdminLTE in an ASP.NET Core MVC and .NET5 project (github.com)

AdminLTE Starter Kit for ASP.NET Core

dotnet-express/AdminLTE-Starter-Kit: AdminLTE Starter Kit for ASP.NET Core (github.com)

AdminLTE converted to ASP.NET Core 2

moemura/AdminLTE.Core: AdminLTE converted to ASP.NET Core 2 (github.com)

iammukeshm/AdminLTE.MVC: We will learn about Integrating AdminLTE with ASP.NET Core 3.1 MVC or really any other Bootstrap based UI Frameworks completely from scratch. We will also go through about integrating Identity Authentication to our MVC Applicaiton. Also, you will gain quite a lot of practical knowledge on Views, Layouts, Partial Views, Conditional Rendering, Navigation Indicatior and much more. (github.com)

ASP.NET MVC 5 Training

https://www.c-sharpcorner.com/article/layouts-master-pages-in-Asp-Net-mvc-5-0-part-fourteen/

Top 20 GitHub-hosted projects of 2019

https://dev.to/areknawo/top-20-github-hosted-projects-of-2019-2f4f

Blog engine based on ASP.NET Core 3.1 and Twitter Bootstrap 4

https://github.com/danielpalme/MVCBlog

My Blog as an ASP.NET Core 3.1 Project http://wildermuth.com

https://www.palmmedia.de/Blog/2013/9/6/aspnet-mvc-4-blog-engine-based-on-twitter-bootstrap

https://github.com/shawnwildermuth/WilderBlog

I re-wrote my blog using a new stack of web technologies including:

  • ASP.NET Core 3.1
  • Entity Framework Core 3.1
  • Vue 2.x
  • Bootstrap 4
  • Azure Websites (Docker) and Azure Blob Storage

The ASP.NET Interns ship their project - A basic blog template for .NET Core

https://www.hanselman.com/blog/TheASPNETInternsShipTheirProjectABasicBlogTemplateForNETCore.aspx

A blogging engine based on HTML5 and ASP.NET

https://github.com/madskristensen/MiniBlog

ASP.NET MVC with Entity Framework and CSS

https://github.com/Apress/asp.net-mvc-w-entity-framework-css

ASP.NET Core Samples

https://github.com/dotnet/AspNetCore.Docs/tree/master/aspnetcore/data/ef-mvc/intro/samples/cu-final

ASP.NET MVC Core 2 project using CoreUI.io template

https://github.com/mvelosop/AspNetCore2CoreUI

AdminLTE + Select 2 + ASP.NET MVC 5

https://www.intertech.com/Blog/selecting-multiple-items-using-select2-in-mvc-5/

AdminLTE

https://codecanyon.net/tags/mvc

https://stackoverflow.com/questions/tagged/adminlte

https://adminlte-mvc5.azurewebsites.net/

ASP.NET Core 2.2 Roles And Memberships Customization Implemented Using Beautiful AdminLTE Template. C# as programming language and EF (Entity Framework) as ORM.

https://github.com/go2ismail/AdminLTE-Roles-And-Memberships-Example

Features:

  1. configuration over development (Identity configuration through appsettings.json)
  2. custom error handling (ex: 404 and 500 custom error page)
  3. user membership with dynamics roles management
  4. dbinitializer for data seed (ex: super admin user initialization)
  5. user registration and change password management
  6. basic profile management
  7. override identity user with custom column
  8. active / de-active member
  9. custom security service implemented through DI (dependency injection)
  10. xsrf / anti forgery token

Technical:

  1. C#
  2. EF (Entity Framework)
  3. jQuery
  4. Bootstrap
  5. Datatables.net
  6. crud
  7. toastr
  8. mssql

Development Tools & Environment

I'm using Visual Studio Community 2017 for the development tools on Windows 10 machine.

.Net Core Version

I'm using .Net Core 2.2

AdminLTE - ASP.NET Core 2.x

ASP.NET Example version of famous and beautiful AdminLTE control panel themes and template. http://adminlte-template.indotalent.com

https://github.com/go2ismail/adminlte-aspnetcore2-version

AdminLTE

AdminLTE - is a Free Premium Admin control Panel Theme Based On Bootstrap 3.x

the creator of AdminLTE is Abdulllah Almsaeed

follow this AdminLTE link for original HTML/JavaScript version.

ASP.NET Core 2 MVC Version

this repo, provide full ASP.NET Core 2 MVC version of AdminLTE, consisting all the demo pages provided by HTML/JavaScript version of AdminLTE such as:

  • Dashboard
  • Layout
  • Widgets
  • Charts
  • UI Elements
  • Forms
  • Tables
  • Calendar
  • Mailbox
  • Examples
  • Multilevel

Development Tools & Environment

I'm using Visual Studio Community 2017 for the development tools on Windows 10 machine. For this project, i'm using AdminLTE version 2.4.0.

AdminLTE ASP.NET Core 2 MVC Version Usage

You can Clone / Download the repo and then start building beautiful web app using this visual studio solution. From this project you can also learn how to:

  • work with controller
  • work with view
  • work with partial view
  • work with layout
  • work with JavaScript / jQuery
  • work with razor
  • create HTML helper extension

Simple CRUD Example

I have provide simple Ajax jQuery CRUD example

AdminLTE on this blog

https://manhng.com/archive/adminlte/

AdminLTE - FullCalendar

https://www.c-sharpcorner.com/article/asp-net-mvc5-full-calendar-jquery-plugin/

https://gunnarpeipman.com/using-fullcalendar-jquery-component-with-asp-net-mvc/

https://www.toshalinfotech.com/Blogs/ID/115/How-to-Integrate-Full-calendar-with-MVC-application

https://github.com/RobertHajbok/FullCalendarMVC

https://www.codeproject.com/articles/874283/event-calendar-in-asp-net-mvc-and-entity-framework

AdminLTE - ASP.NET MVC 5

AdminLTE - Free admin dashboard template based on Bootstrap 4 https://adminlte.io

https://github.com/ColorlibHQ/AdminLTE

ASP.NET MVC - Installing AdminLTE dashboard to replace Bootstrap template

https://www.howtosolutions.net/2017/05/visual-studio-asp-net-mvc-project-installing-adminlte-control-panel/

Building elegant applications with ASP.NET MVC Core 2 and Bootstrap 4 using CoreUI

https://www.coderepo.blog/posts/building-elegant-applications-aspnet-mvc-core-2-bootstrap-4-coreui/

ASP.NET Example Version of Beautiful AdminLTE Template https://adminlte-mvc5.azurewebsites.net/

https://github.com/go2ismail/AdminLTE-ASP-NET-MVC

I'm using Visual Studio Community 2015 for the development tools on Windows 10 machine. For this project, I'm using AdminLTE version 2.4.0.

It provides full ASP.NET MVC version of AdminLTE, consisting all the demo pages provided by HTML/JavaScript version of AdminLTE such as:

  • Dashboard
  • Layout
  • Widgets
  • Charts
  • UI Elements
  • Forms
  • Tables
  • Calendar
  • Mailbox
  • Examples
  • Multilevel

You can also learn how to:

  • work with controller
  • work with view
  • work with partial view
  • work with layout
  • work with JavaScript / jQuery
  • work with razor
  • create HTML helper extension

ASP.NET MVC 5 Development Training - 5 days

https://www.intertech.com/Training/Microsoft/Visual-Studio/MVC/ASP-NET-MVC-5-Development

https://cgeers.wordpress.com/2012/09/23/getting-started-with-twitter-bootstrap/

Description

In this course, students will learn to develop advanced ASP.NET MVC applications using .NET Framework tools and technologies. The focus will be on coding activities that enhance the performance and scalability of a web application. ASP.NET MVC will be introduced and compared with Web Forms so that students know when each should/could be used. This course will also prepare the students for exam 70-486.

Learning Objectives

After completing this course, students will be able to:

  • Describe the Microsoft Web Technologies stack and select an appropriate technology to use to develop any given application.
  • Design the architecture and implementation of a web application that will meet a set of functional requirements, user interface requirements, and address business models.
  • Create MVC Models and write code that implements business logic within Model methods, properties, and events.
  • Add Controllers to an MVC Application to manage user interaction, update models, and select and return Views.
  • Create Views in an MVC application that display and edit data and interact with Models and Controllers.
  • Run unit tests and debugging tools against a web application in Visual Studio and configure an application for troubleshooting.
  • Develop a web application that uses the ASP.NET routing engine to present friendly URLs and a logical navigation hierarchy to users.
  • Implement a consistent look and feel, including corporate branding, across an entire MVC web application.
  • Use partial page updates and caching to reduce the network bandwidth used by an application and accelerate responses to user requests.
  • Write JavaScript code that runs on the client side and utilizes the jQuery script library to optimize the responsiveness of an MVC web application.
  • Implement a complete membership system in an MVC web application.
  • Build an MVC application that resists malicious attacks and persists information about users and preferences.
  • Describe how to write a Microsoft Azure web service and call it from and MVC application.
  • Describe what a Web API is and why developers might add a Web API to an application.
  • Modify the way browser requests are handled by an MVC application.
  • Describe how to package and deploy an ASP.NET MVC web application from a development computer to a web server for staging or production.

Audience

This course is intended for professional web developers who use Microsoft Visual Studio in an individual-based or team-based, small-sized to large development environment. Candidates for this course are interested in developing advanced web applications and want to manage the rendered HTML comprehensively. They want to create websites that separate the user interface, data access, and application logic.

Prerequisites

Before attending this course, students must have a minimum of two to three years of experience developing web-based applications by using Microsoft Visual Studio and Microsoft ASP.NET, proficiency in using the .NET Framework, and some familiarity with the C# language.

Course Outline

Delegates, Anonymous Methods, and Lambdas

  • Understand four ways to use delegates
  • Anonymous methods with the delegate keyword
  • Lambda shorthand notation
  • Using Lambdas in ASP.NET MVC 5

Extension Methods, Anonymous Types, and Dynamic Types

  • Understanding extension methods
  • Using extension methods in ASP.NET MVC 5
  • Understanding Anonymous Types
  • Using Anonymous Types in ASP.NET MVC 5
  • Understanding the dynamic keyword
  • Using dynamic Types in ASP.NET MVC 5
  • Introduction to the Task Parallel Library (TPL)
  • Using the TPL in ASP.NET MVC 5

Introduction to LINQ

  • Understand the motivation behind LINQ
  • Visual Studio LINQ support
  • Debugging LINQ query expressions
  • Work with query operators and query expressions
  • Program with LINQ to Objects
  • Understand deferred and immediate execution
  • Know the role of the System.Linq.Enumerable type
  • Know the role of the System.Func delegate type
  • Understanding the query operators / delegates / lambda relationship

Introduction to ASP.NET MVC 5

  • ASP and ASP.NET WebForms
  • One ASP.NET in VS 2013
  • Web Standards and REST
  • JavaScript and Ajax
  • The MVC Design Pattern
  • Unit Testing
  • Managing Dependencies

ASP.NET MVC Architecture

  • ASP.NET Platform
  • Controllers, Models, and Views
  • URL Routing
  • Controller Actions
  • Razor View Engine
  • Extensibility

Defining the Model

  • Persistence Ignorance
  • Repository Pattern
  • Object Relational Mapping (ORM)
  • Entity Framework
  • Using an IoC Container

Routes and URLs

  • Introduction to Routing
  • Defining Routes
  • Route Evaluation
  • The Controller Factory
  • Constraints
  • Exempting URLs
  • Constructing Outgoing URLs
  • Unit Testing Routes

Controllers and Actions

  • IController, ControllerBase, and Controller
  • Defining Actions
  • Action Selectors
  • Action Filters
  • HTTP Verbs
  • HttpContext and RouteData
  • Maintaining Testability
  • Returning Data with ActionResult
  • Parameters and the Model Binder
  • Asynchronous Action Methods

Views

  • View Engines
  • Templates and Scaffolding
  • Bootstrap Framework
  • Razor Syntax
  • ViewData and ViewBag
  • Strongly-Typed Views
  • Layout Pages
  • Custom Sections
  • Partial Views
  • Child Actions
  • Using a ViewModel Object

HTML Helpers

  • Basic Helpers
  • Strongly-Typed Helpers
  • Creating Custom Helpers
  • Declarative Helpers

Data Validation

  • Data Annotations
  • Validation HTML Helpers
  • ModelState
  • IValidatableObject
  • Client Side Validation

Authentication and Authorization

  • ASP.NET Identity
  • Using Windows Authentication
  • Building a Custom Account Controller
  • Configuring Forms Authentication
  • Using the Authorize Attribute
  • Authentication Filters
  • OAuth2 and OpenID

Ajax

  • Controller Actions for Ajax
  • Ajax Helpers
  • Unobtrusive Ajax
  • Ajax with jQuery

Web API 2

  • Using HTTP as an Application Protocol
  • Content Negotiation
  • Routing
  • Attribute Routing
  • ApiController
  • MediaTypeFormatters
  • Cross Origin Resource Sharing (CORS)
  • Open Web Interface for .NET (OWIN)
  • Web API OData

Building a Rich Client-Side UI

  • jQuery UI
  • jQuery Templates

Mobile Clients

  • CSS 3 Media Queries
  • Responsive vs. Adaptive
  • Mobile-Specific Views
  • Using a View Switcher

Customizing and Extending ASP.NET MVC

  • ASP.NET MVC Pipeline
  • Advanced Routing
  • Custom Global Filters
  • Customizing MVC Code Templates
  • Creating a Custom Controller Factory

Deployment

  • Server Requirements
  • Configuration Options

AdminLTE

May 6, 2020 21:31

AdminLTE (edit)

https://www.backblaze.com/blog/how-to-get-your-first-1000-customers/

CoreUI Pro Bootstrap Admin Template

https://coreui.io/

AdminLTE 3

https://adminlte.io/

AdminLTE 2

https://adminlte.io/themes/AdminLTE/index2.html

AdminLTE 2.4

https://adminlte.io/docs/2.4/installation

AdminLTE 2.3

https://adminlte.io/themes/AdminLTE/documentation/index.html

Free Online HTML Editor

https://froala.com/online-html-editor/

Multi languages website

https://octobercms.com/blog/post/building-responsive-multi-language-website-blog-and-static-pages

https://blog.weglot.com/9-tips-for-designing-a-multi-language-website/

Bootstrap Toggle - Toggle Switch - Bootstrap Button Toggle (On/Off Switch)

https://bootsnipp.com/snippets/Q0d6E (Bootstrap 4) (HAY HAY HAY)

https://bootsnipp.com/snippets/v7x77 (Bootstrap 3) (HAY HAY HAY)

https://www.geeksforgeeks.org/how-to-create-toggle-switch-by-using-html-and-css/ (HAY HAY HAY)

https://www.w3schools.com/howto/howto_css_switch.asp 

https://www.bootstraptoggle.com/ (HAY HAY HAY)

Switch Languages in Menu Items

https://jsfiddle.net/mttkchfc/4/ (HAY HAY HAY)

https://www.cssscript.com/demo/switch-languages-ease-languageselector/

https://github.com/ColorlibHQ/AdminLTE/blob/master/pages/examples/language-menu.html

https://forum.pinegrow.com/t/bootstrap-4-multilingual-site-menu/1720

https://bootsnipp.com/snippets/mprMM

https://stackoverflow.com/questions/53021813/html-two-language-option-with-button-without-having-to-redirect-to-different-pa

Switch Language in DataTables

https://datatables.net/examples/basic_init/language

https://stackoverflow.com/questions/26487765/bootstrap-datepicker-set-language-globally

https://stackoverflow.com/questions/13342494/how-to-change-language-for-datatable

DataTables

https://quickadminpanel.com/blog/how-to-customize-datatables-6-most-requested-tips/

AdminLTE Advanced

February 17, 2020 14:39

AdminLTE Advanced (edit)

HTML, CSS, JavaScript - Frontend

https://adminlte.io/docs/2.4/js-control-sidebar

https://css-tricks.com/how-to-disable-links/

https://css-tricks.com/almanac/properties/p/pointer-events/

https://stackoverflow.com/questions/28083708/how-to-disable-clicking-inside-div

https://stackoverflow.com/questions/639815/how-to-disable-all-div-content

$(selector).find('*').unbind('click');

Selector:

https://www.freecodecamp.org/news/back-to-basics-demystifying-css-and-jquery-selectors-12d75946b8b7/

https://www.java67.com/2016/09/10-example-of-jquery-selectors-for-web.html

https://jquerytipsntricks.wordpress.com/2013/12/23/prevent-click-event-on-certain-child-element-using-jquery/

https://kamranahmed.info/blog/2014/08/18/event-bubbling-and-how-can-it-be-prevented/

https://www.tutorialspoint.com/How-to-select-ALL-children-in-any-level-from-a-parent-in-jQuery

https://www.kidsil.net/2011/05/jquery-click-excluding-child/

Security:

ASP.NET Core MVC: ASP.NEThttps://studymash.com/our-courses/web-development/build-real-world-web-application-in-asp-net-core-and-mvc/?tab=tab-curriculum

Become an ASP.NET Core Developerhttps://www.linkedin.com/learning/paths/become-an-aspnet-core-developer

ASP.NET Core Group Rules: 

https://mvc.daypilot.org/open-source/

EF Core: https://www.yogihosting.com/category/ef-core/?ref=hackr.io (HAY HAY HAY HAY HAY)

ASP.NET MVC: https://blog.udemy.com/asp-net-mvc-tutorial/

ASP.NET MVC: http://www.tutorialsteacher.com/mvc/asp.net-mvc-tutorials

ASP.NET MVC: http://www.tutorialspoint.com/asp.net_mvc/

https://www.quora.com/Should-I-learn-ASP-Net-MVC-or-ASP-Net-Core (HAY HAY HAY)

https://www.bestdotnettraining.com/csharp-online-training (HAY HAY HAY)

https://www.quora.com/Which-is-a-better-approach-to-learn-first-ASP-NET-MVC-or-ASP-NET-with-C

C# is the mandatory skill if you want to be a web application developer in ASP.NET or ASP.NET MVC.

Here are the concepts in C#

  • Strong knowledge of OOPS, popular Design Patterns(Factory, Facade, Adapter, Iterator, Observable, Chain of responsibility, Proxy, Command and Singleton ) and SOLID principle
  • Generic Collection frame work List, IEnumerable, IEnumerator, IQueryable,ICollection.
  • Basic knowledge about disposable mechanism, garbage collection.
  • Basics of reflection, Task parallel library
  • LINQ ( With Entity framework/ any collection)

Prerequisite:

  • C#
  • Fundamental knowledge of HTML.
  • Fundamental Knowledge of CSS.
  • Go ahed don't worry about asp. Net webforms but make sure to have knowledge about.
  • Client and server state management techniques:
    • Query string
    • Session
    • ApplicationState
    • Cookies

Top C# Language Online Courses:

#1 C# Programming Course

#2 C# Intermediate: Classes, Interfaces and OOP

Top ASP.NET Online Courses:

#1 .NET Programming

#2 ASP NET Core (ASP.NET 5),MVC 6,C#,Angular4 & EF Crash Course

Learn to build and deploy fast and secure web applications with ASP.NET MVC 5

Course Link: The Complete ASP.NET MVC 5 Course

What Will You Learn?

  • Understand the MVC architectural pattern
  • Implement CRUD operations
  • Build forms with server-side and client-side validation
  • Build RESTful services using ASP.NET Web API
  • Use powerful jQuery plug-ins
  • Implement authentication and authorization using ASP.NET Web API
  • Use Entity Framework to query or update data
  • Understand and apply security best practices
  • Build and deploy applications
  • Create and customize build configurations
  • Manage client / server dependencies
  • Test APIs using PostMan
  • Use AutoMapper

Requirements to take this course:

  • C# (at a minimum lambda expressions, LINQ)
  • Basic familiarity with web development (HTML, CSS, JavaScript, jQuery)

ASP.NET MVC is a server-side web framework for building dynamic, data-driven web applications. Since its first release in 2009, it has gained a lot of popularity amongst developers using Microsoft technologies. If you want to get employed as a web developer at a company that utilizes Microsoft technologies, you need to master ASP.NET MVC.

By the end of watching this course, you'll be able to:

  • Implement CRUD operations
  • Build forms with validation
  • Build RESTful services using ASP.NET Web API
  • Use Entity Framework code-first workflow to build a model
  • Implement security, authentication and authorization using ASP.NET Identity
  • Use powerful jQuery plugins
  • Optimize application's performance
  • Build and deploy your applications
  • And much more...

How can I become a better ASP.NET MVC Developer?

https://www.quora.com/How-can-I-become-a-better-Asp-net-Mvc-developer/answer/Jay-Prakash-214

Practice makes a man perfect..!!! You know this right, it’s universal truth. If you want to became master in ASP.NET MVC, you have to do practice, lot of practice.

Apart from that I can tell you which fields are major in MVC and you have to be more concentrate on that.

  • What is MVC? - It stands for Model View Controller.Model is where we define our classes, objects, properties that will hold values to be displayed to the user.View is the User Interface or the final output that will be shown to the user.Controller is the first point that is executed when we hit a url. It basically forms the link between model and view and based on the url it determines which view is supposed to be displayed to the user.
  • Folder Structure in MVC - Some important folders to look out to, when we create an MVC applicationApp_Start - This folder contains some configuration files for the entire MVC application. BundleConfig.cs, FilterConfig.cs, RouteConfig.cs are some files inside these folders. Please go in depth with these.Models - Normally all model (class) files are grouped inside this folder.Controllers - Normally all controllers are grouped inside this folder.Views - Views are clubbed inside this folder.
  • Routing - A very important concept which is the root of MVC. For eg:- http://localhost:1111/Employee/G... url is hit. Routing determines, based on the url, which controller to call and which method inside that controller to execute. In above example “Employee” is the controller and “GetEmpList” will be the method mentioned inside Employee controller that needs to executed. Also, routing allows a user to create their custom user-friendly urls. These configurations are specified in RouteConfig.cs file.
  • Validations - MVC provides various attribute based validations that can be applied directly over the property inside your model. Also dig into how these validations are invoked on the html page.

For eg:-[Required] public string Genre { get; set; }

  • Bundling and Minification - Again very important concepts. As the name suggests bundling means to create a bundle. Let’s say, you have few related js files you want to use in your application. You mention them in your html page. So, when application is executed, these files are one by one loaded. It means, more server working. So you create a bundle of these files and specify that bundle in your html page. Run the application and your files are loaded in one go. Minification is your min.js or min.css files. They are created once you apply bundling. So please go through how to create bundle and use it in your page. The file for this is BundleConfig.cs.
  • Razor - This is your view page. The extension in MVC is cshtml. Simpler to use than web forms. The syntax usage is very easy compared to web forms.
  • Action Results - ActionResult is an abstract class and there are 12 types of different results derived from it. These results define the type of output that will be shown to the user. Please go in detail through them. Specially JsonResult as this will play a vital role in sending data to view using ajax.
  • Knockout usage with MVC. - One of the many ways to display data from controller to view. The core knockout need not be known, but just the way to bind data from controller to view.
  • ViewBag, ViewData, TempData - How to pass dynamic data between requests or from one entity to other? Hence, Presenting to you these three ways. Please go in depth with them.
  • ViewModel - A concept that binds your model and view such that any change in the model reflects in the view and vice versa.
  • Action Filtering - For example, when the user clicks a link, a controller and the corresponding action method is called. Sometimes, we want to perform certain logic before an action is called or during an action method is executing or after the method is done executing. Hence, MVC provides ActionFilters for that. It provides methods to process logic, in between action method executing and after action method is done executing. We can also create Custom Action Filters. Please go through all these points.
  • Other Filters - AuthorizationFilter, ResultFilters, ExceptionFilters are some more filters which are provided by MVC and useful. Please go in depth with these.
  • Entity Framework - An easy way to communicate with MVC and your database. You can map your application and your database using Entity Framework and call store procedures/ functions using it. Also, any changes in the database can be easily reflected in your application by just updating the edmx. Please go through, how to use stored procedures and functions using Entity Framework.
  • Areas - It allows you to group your different modules under separate folders each having their own MVC structure. For eg:- We are covering two functionalities in our application. Accounts and Invoice. So we create two areas with these names. They have their own MVC folder structure where you can add their respective models, views and controllers. It’s for easy maintenance. However, the main thing here is to know, how to call controller/view of one area from other area. Please dwelve on how to create areas and call/transfer data in between areas.

BEST BEST BEST

Programming languages have come a long way in terms of being easy to learn and understand.

C# is a versatile programming language, and after learning it, you can apply your skills to a variety of things. The .NET framework includes hundreds of libraries for working with the file system, managing security.

If you are looking forward for Online MVC Course I strongly reccomend to join these online programme . With these training you can build an endless variety of applications, from web apps to mobile apps, REST APIs, and more.

  1. Tutorials Teacher

Key Topics covered in this are:

  • Data types, classes, and variables
  • Switches and loops
  • Strings and arrays
  • Stream I/O

2. Lynda.com – Learning C#

Key Topics covered in this are:

  • Working with loops
  • Building functions
  • Catching errors
  • Managing resources with the garbage collector

3. C# Station

Key Topics covered in this are:

  • Expressions, Types, and Variables
  • Namespaces
  • Introduction to Classes
  • Indexers and Attributes
  • Working with Nullable types

4. Deccansoft -C# Training

Key Topics covered in this are:

  • Key Topics:.NET Framework
  • Concepts behind CLR (Common Language Runtime)
  • Building a standard GUI for Windows based applications using WinForms.
  • Developing scalable applications using multithreading features of .NET

5. edX – Programming with C#

Key Topics covered in this are:

  • The C# syntax
  • C# language fundamentals
  • Object oriented programming
  • The .NET Framework concept

6. Microsoft Virtual Academy – C# fundamentals for absolute beginners

Key Topics covered in this are:

  • Creating and understanding your first C# program
  • Understanding Data types and Variables
  • Understanding Arrays
  • Working with Strings
  • Learning how to work with Date and Time data

7. Udemy – C# Programming projects for beginners

Key Topics covered in this are:

  • Practicing loops, arrays, and structures
  • Start coding beginner projects immediately
  • Thinking like a programmer
  • Using the right approach

You can read here best online tutorials for Asp.Net Online Course

HAY HAY HAY HAY HAY

https://www.quora.com/Which-is-the-best-source-to-learn-ASP-NET-with-C-MVC-online-from-scratch

The best tutorials to learn ASP.NET and C# are from Microsoft Virtual Academy (MVA).

Microsoft Virtual Academy provides free, online training to help Developers, IT and Data Professionals, and students learn the latest technology, build their skills, and advance their careers.

And during studying courses in MVA you will have tests for each level and points you finish also finally can gain a certificate after course completion.

Sample of my Certificates from MVA in ASP.NET MVC.

Also after learning and finishing tutorials , you can check free .NET open source projects to try to develop a project by yourself.

Below several examples for MVC open source projects to check their ideas in several types of applications (Games, Social Network, Advanced Business applications and more ... )

  • Games applications:
    CHESS GAME : Free open source Chess game developed with MicrosoftASP.NET MVC4.
  • Chat applications:
    Real-time chat applications : Real-time web application with ASP.NETSignalR 2 and ASP.NET MVC 5.
  • Advanced Business applications:
    Applications that manage special business for any organization (University, Company, Hospital, Restaurants ... ), with advanced technical project architecture (Multi layer or N-Tier architecture, Generic repository, Multi language support, Multi country support,  Web services and with Database )
    1. Pro-Dinner application : Application to host dinners with multi language support, developed with MVC5.
      Life Demo for Pro-Dinner.
      Project architecture for Pro-Dinner.
    2. More free open source project with ASP.NET MVC to download

https://www.quora.com/What-are-the-best-resources-to-learn-asp-net-MVC

https://www.quora.com/What-is-the-best-online-tutorial-for-learning-C-net-and-ASP-NET-MVC-4

Good Good Good

Udemy reached out to me and asked me if I would be interested in writing a beginner's tutorial on ASP.NET MVC. It can be found here (ASP.NET MVC Tutorial).

I'm also active writing about ASP.NET MVC on my web site (http://www.danylkoweb.com/) with more advanced topics.

https://hackr.io/tutorials/learn-asp-net (HAY HAY HAY HAY HAY)

I will strongly recommend you to follow kudvenkat video tutorials. This channel is really god of ASP.NET , C# and lot more things like MVC, ADO.NET, SQL, WCF, Bootstrap, Angular.

You can also find tutorials on blogpost Sql server, .net and c# video tutorial.

He teach step by step. You will find tutorials easy to understand. He covers all the basics of every topic. Once you start watching, you will know beauty.

Many Windows software solution companies taught this tutorials to their freshers.

https://www.quora.com/What-is-the-best-way-to-study-ASP-NET-MVC

https://www.quora.com/Is-there-any-ASP-NET-MVC-scheduler-open-source

https://www.quora.com/What-are-the-different-ways-to-secure-the-ASP-NET-MVC-application

https://www.quora.com/What-is-the-best-book-for-asp-net-MVC

https://www.quora.com/Why-is-ADO-NET-not-preferred-in-ASP-NET-Core-MVC-applications

https://www.softprodigy.com/expert-opinion-on-the-future-of-asp-net-web-development-solutions-as-a-server-side-technology/

Training: https://www.dotnettricks.com/training/masters-program/mvc-angular

Dynamic Themes

https://www.codeproject.com/Articles/32847/ASP-NET-MVC-Dynamic-Themes

https://cpratt.co/how-to-change-the-default-asp-net-mvc-themet/

Sample Admin Template

http://mvcadmintemplate.azurewebsites.net/

https://github.com/jrocket/MVC-Bootstrap-3-Admin-Template

https://github.com/puikinsh/Bootstrap-Admin-Template

Open Source

https://www.findbestopensource.com/product/go2ismail-adminlte-asp-net-mvc (HAY HAY HAY HAY HAY)

AdminLTE Questions

https://stackexchange.com/search?q=AdminLTE

https://stackoverflow.com/questions/tagged/adminlte

https://stackoverflow.com/tags/adminlte/

https://stackoverflow.com/tags/adminlte/new

AdminLTE Expand or Fullscreen Boxes

https://stackoverflow.com/questions/37785701/adminlte-expand-or-fullscreen-boxes

AdminLTE + Angular

https://www.prishusoft.com/blog/Integrate-AdminLTE-theme-to-Angular-Project.html

AdminLTE 2.4.x Demo: https://adminlte.io/themes/AdminLTE/index2.html

AdminLTE 2.0.4 into ASP.NET MVC 5: https://github.com/eralston/AdminLteMvc

https://www.nuget.org/packages/AdminLteMvc/

AdminLTE 2.4.0 into ASP.NET MVC 5: https://github.com/go2ismail/AdminLTE-ASP-NET-MVC

https://www.howtosolutions.net/2017/05/visual-studio-asp-net-mvc-project-installing-adminlte-control-panel/ (HAY HAY HAY)

AdminLTE 2.4.9 into ASP.NET MVC 5: https://github.com/c0shea/AdminLTE-Template

https://marketplace.visualstudio.com/items?itemName=c0shea.AdminLTETemplate

AdminLTE into ASP.NET MVC 5 (VN)

https://sharecode.vn/source-code/adminlte-project-template-aspnet-mvc-5-19751.htm

AdminLTE 2.4.9 into ASP.NET Core MVC:

https://codinginfinite.com/setting-up-admin-template-asp-net-core-mvc/

https://codinginfinite.com/creating-admin-panel-asp-net-core-mvc-tutorial/

CSS: Word Break

-ms-word-break: break-all;
word-break: break-all; overflow-wrap: break-word; word-wrap: break-word;

https://css-tricks.com/snippets/css/prevent-long-urls-from-breaking-out-of-container/

Bootstrap Sidebar

https://github.com/BlackrockDigital/startbootstrap-simple-sidebar

AdminLTE Tutorials

Tutorial Part 1  

Tutorial Part 2 

Tutorial Part 3

AdminLTE Treeview not working properly (HAY HAY HAY)

https://stackoverflow.com/questions/54956246/adminlte-2-4-5-treeview-not-working-properly-after-refresh-only-it-is-working-in

$(document).on('turbolinks:load', function(){
  $(Selector.data).each(function () {
    Plugin.call($(this));
  });
});

AdminLTE Box Collapse Trigger Event Listener (HAY HAY HAY)

https://stackoverflow.com/questions/38399553/adminlte-box-collapse-trigger-event-listener

box_content
.slideUp(_this.animationSpeed, function () { box.addClass("collapsed-box"); box.trigger('collapsed',[box, element]); }); box_content.slideDown(_this.animationSpeed, function () { box.removeClass("collapsed-box"); box.trigger('expanded',[box, element]); });

AdminLTE: Sidebar & Top Navbar (HAY HAY HAY)

https://stackoverflow.com/questions/51297099/adminlte-how-to-collapse-sidebar-but-not-top-navbar

AdminLTE Menu (HAY HAY HAY)

See: https://stackoverflow.com/a/46256226/7353073

This works for AdminLTE Sidebar Menu and also for Sidebar Menu Treeview

/* add active class and stay opened when selected */
var url = window.location;

// for sidebar menu entirely but not cover treeview
$('ul.sidebar-menu a').filter(function() {
    return this.href == url;
}).parent().siblings().removeClass('active').end().addClass('active');

// for treeview
$('ul.treeview-menu a').filter(function() {
    return this.href == url;
}).parentsUntil(".sidebar-menu > .treeview-menu").siblings().removeClass('active').end().addClass('active');

AdminLTE with iFrame (HAY HAY HAY HAY HAY):

https://weituotian.github.io/AdminLTE-With-Iframe/

https://gitee.com/feiybox/AdminLTE-With-Iframe/

https://gitee.com/VensonYang/AdminLTE-With-Iframe/

https://github.com/nvmanhifi/AdminLTE-With-Iframe

https://gitee.com/nvmanhifi/AdminLTE-With-Iframe/

Live text search function:

http://www.designchemical.com/blog/index.php/jquery/live-text-search-function-using-jquery/

http://www.designchemical.com/lab/jquery/demo/jquery_demo_live_comment_search.htm

Live menu search:

https://github.com/ColorlibHQ/AdminLTE/issues/798

Sidebar:

https://adminlte.io/docs/2.4/sidebar

https://stackoverflow.com/questions/49447184/hide-text-of-title-in-sidebar-collapse-in-adminlte

https://stackoverflow.com/questions/49750474/sidebar-menu-title-not-showing-properly-in-adminlte

JS Box Refresh:

https://adminlte.io/docs/2.4/js-box-refresh

Treeview-menu in Sidebar:

https://github.com/tannakartikey/AdminLTE/commit/44434ac54021744bfffe908810248f181690cb5d

Hover dropdown menu

https://github.com/ColorlibHQ/AdminLTE/issues/339

AdminLTE with iFrame:

https://weituotian.oschina.io/adminlte-with-iframe/

Angular 7:

https://www.c-sharpcorner.com/article/integrating-theme-in-angular-72/

React:

https://github.com/zksailor534/react-adminlte-dash

Dynamic Menu AdminLTE

https://seegatesite.com/create-dynamic-modal-dialog-form-in-adminlte-bootstrap-template/
https://seegatesite.com/tutorial-build-point-of-sale-with-php-pdo-mysql-and-jquery-part-1
https://seegatesite.com/dynamic-menu-adminlte-and-dashboard-page-tutorial-build-point-of-sale-with-php-pdo-mysql-and-jquery-part-2/
https://seegatesite.com/create-dynamic-sidebar-multilevel-menu-in-adminlte-with-mysql-php-and-pdo/
https://seegatesite.com/creating-dynamic-sidebar-menu-with-mysql-and-adminlte-bootstrap-template/
https://seegatesite.com/how-to-create-user-permissions-view-to-dynamic-sidebar-menu-adminlte/
https://seegatesite.com/tutorial-create-dynamic-sidebar-menu-on-mysql-node-js-express-adminlte-for-beginner/

ASP.NET MVC + AdminLTE

March 31, 2018 00:14

ASP.NET MVC + AdminLTE (edit)

ASP.NET MVC Application with a Custom Layout (Login screen)

https://code.msdn.microsoft.com/ASPNET-MVC-Application-b4b0dc3f

A NuGet package for integrating Admin LTE 2.0.4 into ASP.Net MVC 5

https://github.com/eralston/AdminLteMvc (AdminLTE version 2.0.4)

ASP.NET Example Version of Beautiful AdminLTE Template

https://github.com/go2ismail/AdminLTE-ASP-NET-MVC (AdminLTE version 2.4.0)

Tutorials & Samples on adding Charts into ASP.NET MVC Applications

https://canvasjs.com/docs/charts/integration/asp-net-mvc-charts/ (Chart)

CRUD Operations in ASP.NET MVC Using AJAX and Bootstrap

https://dzone.com/articles/crud-operation-in-aspnet-mvc-using-ajax-and-bootst

AdminLTE +  ASP.NET MVC 5 + Net Framework 4.8

https://github.com/DiomedesDominguez/AdminLTE.NET

ASP.NET MVC 5 Scaffolding

https://github.com/robinli/MVC5-Scaffolder

ASP.NET MVC 5 SmartCode Scaffolding (HAY HAY HAY)

https://github.com/neozhu/MVC5-Scaffolder

https://www.bbsmax.com/A/kvJ3LkNp5g/

http://www.matools.com/lang-en/blog/190137840

https://www.cnblogs.com/neozhu/p/8744414.html

https://blog.csdn.net/weixin_34235457/article/details/94016484

https://blog.csdn.net/sd7o95o/article/details/78519238

https://blog.csdn.net/weixin_34080951/article/details/94523127

ASP.NET MVC 5 Scaffolding

https://github.com/tzhsweet/MVC5-Scaffolder

ASP.NET Web API Attribute Routing

https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/create-a-rest-api-with-attribute-routing#controller-code

AdminLTE Template

https://github.com/weituotian/AdminLTE-With-Iframe (HAY HAY HAY)

https://github.com/tzhsweet/MVC5-Scaffolder (HAY HAY HAY) - Demo: http://longle.azurewebsites.net/

Demo: https://weituotian.oschina.io/adminlte-with-iframe/index2.html

Demo: https://weituotian.github.io/AdminLTE-With-Iframe/

Preview on github: https://weituotian.github.io/AdminLTE-With-Iframe/pages/index_iframe.html

Preview on oschina: http://weituotian.oschina.io/adminlte-with-iframe/pages/index_iframe.html

https://www.c-sharpcorner.com/article/dashboard-application-with-asp-net-mvc-5-and-jquery/ (HAY HAY HAY)

https://github.com/cyberzilla/dycms (HAY HAY HAY) - How can I implement Tab Pages in AdminLTE?

rrpuz7 x7rns4 9wly7m61z

https://www.quora.com/Where-can-I-find-free-ASP-NET-dashboard-templates (Where can I find free ASP.NET Dashboard templates?)

https://marketplace.visualstudio.com/items?itemName=c0shea.AdminLTETemplate (AdminLTE version 2.4.9)

https://marketplace.visualstudio.com/items?itemName=DiomedesIgnacioDominguezUrena.N-LayerAdminLTENET (AdminLTE version 2.4.9)

https://awesomeopensource.com/projects/adminlte (AdminLTE version 2.4.9)

http://hjnilsson.github.io/country-flags/ (Country flags)

https://vimeo.com/125426951 (IdentityManager with ASP.NET Identity)

https://github.com/eralston/AdminLteMvc/ (AdminLTE version 2.0.4)

https://www.youtube.com/watch?v=xnncfeFv108 (AdminLTE in ASP.NET Core MVC)

Good resources

https://www.jerriepelser.com/blog/5-weeks-of-aspnet-weekly-tools-and-libraries-part-1/

https://www.jerriepelser.com/blog/5-weeks-of-aspnet-weekly-tools-and-libraries-part-2/

https://www.jerriepelser.com/blog/5-weeks-of-aspnet-weekly-tools-and-libraries-part-3/

AdminLTE Downloads

https://github.com/almasaeed2010/AdminLTE/archive/v2.4.10.zip

https://github.com/almasaeed2010/AdminLTE/archive/v2.4.9.zip

https://github.com/almasaeed2010/AdminLTE/archive/v2.4.5.zip

https://github.com/almasaeed2010/AdminLTE/archive/v2.4.0.zip (HAY)

AdminLTE Guide

https://adminlte.io/themes/AdminLTE/documentation/index.html

https://www.howtosolutions.net/2017/05/visual-studio-asp-net-mvc-project-installing-adminlte-control-panel/ (HAY)

AdminLTE + MVC 5
https://github.com/go2ismail/AdminLTE-ASP-NET-MVC
https://github.com/c0shea/AdminLTE-Template (HAY)
https://code.msdn.microsoft.com/ASPNET-MVC-Application-b4b0dc3f/
https://github.com/Magik3a/Multi-Language-API

Patient Management
https://github.com/Magik3a/PatientManagement_Admin

Design and Print Stickers

https://github.com/Magik3a/DesignAndPrintStickers
jQuery file upload, iTextSharp, Html Agility Pack, Cropper v2.3.3 - jQuery image cropping plugin

Easy Admin Dashboard with MVC
http://prabathsl.blogspot.com/2016/04/easy-admin-dashboard-with-mvc.html

Admin Dashboard
https://www.nuget.org/packages/Admin_Dashboard/
Install-Package Admin_Dashboard -Version 1.0.0

AdminLTE
https://github.com/almasaeed2010/AdminLTE

CMS MVC5
+ AdminLteMvc (https://github.com/eralston/AdminLteMvc)
+ Mvc CMS (https://github.com/jwmcpeak/Building-a-CMS-With-ASP.NET-MVC5)
+ Mr CMS (https://github.com/MrCMS/MrCMS)
+ MVCwCMS (https://github.com/valgen/mvcwcms)
+ Umbraco (https://github.com/umbraco/Umbraco-CMS)
+ sBlog.Net (https://github.com/karthik25/sblog.net)
+ N2CMS (https://github.com/n2cms/n2cms)
+ Better CMS
+ Piranha CMS (https://github.com/PiranhaCMS/Piranha)
+ BlogEngine.NET (https://github.com/rxtur/BlogEngine.NET)
+ Awesome (https://github.com/quozd/awesome-dotnet)

CMS MVC6
+ AdminLte .NET Core (https://github.com/moemura/AdminLTE.Core)
+ Awesome .NET Core (https://github.com/thangchung/awesome-dotnet-core)

Ecommerce MVC5
+ NopCommerce (https://github.com/nopSolutions/nopCommerce)

Ecommerce MVC6
+ SimplCommerce (https://github.com/simplcommerce/simplcommerce)

Scheduler
+ Quartznet (https://github.com/quartznet/quartznet)
+ FluentScheduler (https://github.com/fluentscheduler/FluentScheduler)
+ Hangfire (https://www.hangfire.io/)

Search
+ ElasticSearch (https://github.com/elastic/elasticsearch-net)

Templates
+ Boilerplate (https://github.com/ASP-NET-Core-Boilerplate/Templates)
+ MVC Bootstrap (https://github.com/steve-haar/MVC-Bootstrap)

Code review checklist

December 27, 2017 10:09

Code Review Checklist (edit)

https://www.guru99.com/asp-net-web-api-interview-questions.html

https://www.fullstack.cafe/blog/asp-net-web-api-interview-questions

AdminLTE.Core (HAY HAY HAY)

https://www.udemy.com/course/complete-aspnet-core-21-course/

Implementing CQRS Pattern with Vue.js & ASP.NET Core MVC

https://www.codeproject.com/Articles/5262285/Implementing-CQRS-Pattern-with-Vue-js-ASP-NET-Core

https://www.c-sharpcorner.com/article/implementing-cqrs-pattern-with-vue-js-asp-net-core-mvc/

Implementing CQRS Pattern with Vue.js & ASP.NET Core MVC

https://codeload.github.com/ColorlibHQ/AdminLTE/zip/v2.4.18 (HAY HAY HAY)

https://github.com/moemura/AdminLTE.Core (HAY HAY HAY)

https://github.com/moemura/AdminLTE.Core/releases/tag/2.0.1

https://github.com/dotnet-express/AdminLTE-Starter-Kit/releases

https://github.com/dotnet-express/AdminLTE-Starter-Kit/releases/tag/v0.8.0

https://github.com/go2ismail/adminlte-aspnetcore2-version

https://github.com/shehryarkn/Dynamic-User-Defined-Dashboards-Asp-Net-Core

https://github.com/shehryarkn/Asp-net-Core-Project-with-Admin-Template-Setup

Code Review

Checklist: https://www.michaelagreiler.com/code-review-checklist/

Google: https://blog.fullstory.com/what-we-learned-from-google-code-reviews-arent-just-for-catching-bugs/

Microsoft: https://www.michaelagreiler.com/code-reviews-at-microsoft-how-to-code-review-at-a-large-software-company/

Code Guide

https://www.cybersecuritycourses.com/course/dev544-secure-coding-in-net-developing-defensible-applications/ (HAY HAY HAY)

https://niccs.us-cert.gov/training/search/sans-institute/secure-coding-net-developing-defensible-applications (HAY HAY HAY)

Code Quality & Secure

1. Readability a.k.a. ‘Understandability’ (Khả năng đọc hoặc Khả năng hiểu được)
2. Maintainability (Bảo trì)
3. Security (Bảo mật)
4. Speed and Performance (Tốc độ và hiệu suất)
5. Documentation (Tài liệu)
6. Reinventing the Wheel (Phát minh lại bánh xe)
7. Reliability (Độ tin cậy)
8. Scalability (Khả năng mở rộng)
9. Reusability (Tái sử dụng)
10. Patterns (Mẫu)
11. Test Coverage and Test Quality (Phạm vi kiểm tra và chất lượng kiểm tra)
12. Fit for Purpose (Phù hợp cho mục đích)

https://www.enosecurity.com/training-tutorials-courses/secure-coding-in-asp-net-training/ (Tranining)

Audience / Target Group:

  • .NET Application Developers
  • C# Programmers
  • ASP.NET Developers
  • Managers, Architects and Technologists involved in deploying .NET applications

Topics: 

  • General Web Application Security Concepts
  • .NET Framework Security Features
  • Input Validation & Encoding
  • Input Driven Attacks
  • Validation Best Practices
  • Output Encoding
  • Common Authentication Weaknesses
  • Authorization Best Practices
  • Controlling Application Access
  • Password Security
  • Session Hijacking & Trapping
  • Protecting User Sessions & Tokens
  • Canonicalization Problems
  • Parameter Manipulation
  • Encryption, Confidentiality & Data Protection
  • Cookie-Based Attacks
  • Protecting Application Variables
  • Error Handling & Logging
  • Attacking via Error Messages
  • Secure Logging & Error Handling
  • Server Configuration & Code Management
  • Common App Server Misconfigurations
  • Protecting Application Code
  • XML Web Services
  • Overview of WSDL, SOAP & AJAX Security
  • Web Service Attacks
  • AJAX Pitfalls
  • Web Service Best Practices
  • Application Threat Modeling
  • Application Context
  • Identifying Attacks, Vulnerabilities & Countermeasures
  • Threat Modeling Tools
  • Cache Control Issues
  • SSL Best Practices

https://forums.asp.net/t/1926690.aspx?Secure+Coding+best+practices+guideline

https://download.microsoft.com/documents/uk/msdn/security/The Developer Highway Code.pdf

http://www.evoketechnologies.com/blog/code-review-checklist-perform-effective-code-reviews/

https://nyu-cds.github.io/effective-code-reviews/01-intro/

https://nyu-cds.github.io/effective-code-reviews/02-best-practices/

https://nyu-cds.github.io/effective-code-reviews/03-checklist/

Security Code Review

https://www.owasp.org/images/2/2e/OWASP_Code_Review_Guide-V1_1.pdf

RESTful API Lifecycle Management

https://dzone.com/refcardz/restful-api-lifecycle-management

LINQ

https://msdn.microsoft.com/en-us/library/bb308959.aspx

Code Review Checklist & Guidelines for CSharp Developers

https://www.codeproject.com/Reference/593751/Code-Review-Checklist-and-Guidelines-for-Csharp-De

Code Review Guidelines

https://www.codeproject.com/Articles/524235/Codeplusreviewplusguidelines

Assign Severity to Review Finding

The severity to find issues with code should go as below. Reviewer must focus on issues with High severity first and then to Medium severity and then Low severity issues.

    1. Naming Conventions and Coding style = Low
    2. Control Structures and Logical issues = Medium or High
    3. Redundant Code = High
    4. Performance Issues = High
    5. Security Issues = High
    6. Scalability Issues = High
    7. Functional Issues =High
    8. Error Handling = High
    9. Reusability = Medium

https://weblogs.asp.net/tgraham/44763

In my previous blog post, we discussed about “10 Simple Code Review Tips for Effective Code Reviews”. Now, let’s take this topic further and explore the code review checklist, which would help to perform effective code reviews to deliver best quality software. 

This code review checklist also helps the code reviewers and software developers (during self code review) to gain expertise in the code review process, as these points are easy to remember and follow during the code review process. 

Let’s first begin with the basic code review checklist and later move on to the detailed code review checklist. 

Basic Code Review Checklist

Let’s discuss about the basic code review checklist, which can be very handy if you are a beginner in code reviews and/or during initial code reviews.

 

While reviewing the code, ask yourself the following basic questions:

  1. Am I able to understand the code easily?
  2. Is the code written following the coding standards/guidelines?
  3. Is the same code duplicated more than twice?
  4. Can I unit test / debug the code easily to find the root cause?
  5. Is this function or class too big? If yes, is the function or class having too many responsibilities?

If you feel that the answer is not satisfactory to any of the above questions, then you can suggest/recommend code changes.

Detailed Code Review Checklist

The following code review checklist gives an idea about the various aspects you need to consider while reviewing the code:

1. Code formatting

While going through the code, check the code formatting to improve readability and ensure that there are no blockers:

a) Use alignments (left margin), proper white space. Also ensure that code block starting point and ending point are easily identifiable.

b) Ensure that proper naming conventions (Pascal, CamelCase etc.) have been followed. 

c) Code should fit in the standard 14 inch laptop screen.  There shouldn’t be a need to scroll horizontally to view the code. In a 21 inch monitor, other windows (toolbox, properties etc.) can be opened while modifying code, so always write code keeping in view a 14 inch monitor.

d) Remove the commented code as this is always a blocker, while going through the code. Commented code can be obtained from Source Control (like SVN), if required.

2. Architecture

a) The code should follow the defined architecture.

  1. Separation of Concerns followed
    • Split into multiple layers and tiers as per requirements (Presentation, Business and Data layers).
    • Split into respective files (HTML, JavaScript and CSS).
  1. Code is in sync with existing code patterns/technologies.
  2. Design patterns: Use appropriate design pattern (if it helps), after completely understanding the problem and context.

3. Coding best practices

  1. No hard coding, use constants/configuration values.
  2. Group similar values under an enumeration (enum).
  3. Comments – Do not write comments for what you are doing, instead write comments on why you are doing. Specify about any hacks, workaround and temporary fixes. Additionally, mention pending tasks in your to-do comments, which can be tracked easily.
  4. Avoid multiple if/else blocks.
  5. Use framework features, wherever possible instead of writing custom code.

4. Non Functional requirements

a) Maintainability (Supportability) – The application should require the least amount of effort to support in near future. It should be easy to identify and fix a defect.

  1. Readability: Code should be self-explanatory. Get a feel of story reading, while going through the code. Use appropriate name for variables, functions and classes. If you are taking more time to understand the code, then either code needs refactoring or at least comments have to be written to make it clear.
  2. Testability: The code should be easy to test. Refactor into a separate function (if required). Use interfaces while talking to other layers, as interfaces can be mocked easily. Try to avoid static functions, singleton classes as these are not easily testable by mocks.
  3. Debuggability: Provide support to log the flow of control, parameter data and exception details to find the root cause easily. If you are using Log4Net like component then add support for database logging also, as querying the log table is easy.
  4. Configurability: Keep the configurable values in place (XML file, database table) so that no code changes are required, if the data is changed frequently.

b) Reusability

  1. DRY (Do not Repeat Yourself) principle: The same code should not be repeated more than twice.
  2. Consider reusable services, functions and components.
  3. Consider generic functions and classes.

c) Reliability – Exception handling and cleanup (dispose) resources.

d) Extensibility – Easy to add enhancements with minimal changes to the existing code. One component should be easily replaceable by a better component.

e) Security – Authentication, authorization, input data validation against security threats such as SQL injections and Cross Site Scripting (XSS), encrypting the sensitive data (passwords, credit card information etc.)

f) Performance

  1. Use a data type that best suits the needs such as StringBuilder, generic collection classes.
  2. Lazy loading, asynchronous and parallel processing.
  3. Caching and session/application data.

g) Scalability – Consider if it supports a large user base/data? Can this be deployed into web farms?

h) Usability – Put yourself in the shoes of a end-user and ascertain, if the user interface/API is easy to understand and use. If you are not convinced with the user interface design, then start discussing your ideas with the business analyst.

5. Object-Oriented Analysis and Design (OOAD) Principles

  1. Single Responsibility Principle (SRS): Do not place more than one responsibility into a single class or function, refactor into separate classes and functions.
  2. Open Closed Principle: While adding new functionality, existing code should not be modified. New functionality should be written in new classes and functions.
  3. Liskov substitutability principle: The child class should not change the behavior (meaning) of the parent class. The child class can be used as a substitute for a base class.
  4. Interface segregation: Do not create lengthy interfaces, instead split them into smaller interfaces based on the functionality. The interface should not contain any dependencies (parameters), which are not required for the expected functionality.
  5. Dependency Injection: Do not hardcode the dependencies, instead inject them.

In most cases the principles are interrelated, following one principle automatically satisfies other principles. For e.g: if the ‘Single Responsibility Principle’ is followed, then Reusability and Testability will automatically increase.

In a few cases, one requirement may contradict with other requirement. So need to trade-off based on the importance of the weight-age, e.g. Performance vs Security. Too many checks and logging at multiple layers (UI, Middle tier, Database) would decrease the performance of an application. But few applications, especially relating to finance and banking require multiple checks, audit logging etc. So it is ok to compromise a little on performance to provide enhanced security.

Tools for Code Reviews

  1. The first step while assessing the code quality of the entire project is through a static code analysis tool. Use the tools (based on technology) such as SonarQube, NDepend, FxCop, TFS code analysis rules. There is a myth that static code analysis tools are only for managers.
  2. Use plug-ins such as Resharper, which suggests the best practices in Visual studio.
  3. To track the code review comments use the tools like Crucible, Bitbucket and TFS code review process.

Conclusion

The above code review checklist is not exhaustive, but provides a direction to the code reviewer to conduct effective code reviews and deliver good quality code. Initially, it would take some time to review the code from various aspects. After a bit of practice, code reviewers can perform effective code reviews, without much effort and time. If you would like to become an expert code reviewer, this code review checklist serves as a great starting point. Happy Code Reviewing!

Categories

Recent posts