NETCore + AdminLTE (edit)
https://manhnguyenv.blogspot.com/
Install-Package Dynamic.NET.AdminLTE.ProjectTemplates
https://github.com/Coldairarrow?tab=repositories (HAY HAY HAY)
https://github.com/jdanylko?tab=repositories (HAY HAY HAY)
https://www.scoop.it/topic/asp-net-mvc-by-jonathan-danylko
Jonathan Danylko
Full-Stack Web Architect w/ 25 years of exp. in Microsoft Technologies
https://github.com/jdanylko?tab=activity
- https://www.danylkoweb.com/Blog/integrating-microsoft-identity-authorization-into-a-menu-system-IV
- https://www.danylkoweb.com/Blog/enhancing-the-menu-system-with-claims-JV
- https://www.danylkoweb.com/Blog/building-a-menu-system-in-aspnet-mvc-CX
- https://www.danylkoweb.com/Blog/real-world-refactoring-post-ing-in-thincontroller-project-KL
- https://www.danylkoweb.com/Blog/real-world-refactoring-di-in-thincontroller-project-KJ
- https://www.danylkoweb.com/Blog/the-skinniest-aspnet-mvc-controllers-youve-ever-seen-part-2-Q2
- https://github.com/jdanylko/MenuDemo
- https://github.com/jdanylko/ThinController
https://libs.garden/csharp/go2ismail/AdminLTE-ASP-NET-MVC (HAY HAY HAY)
1. Application Caching
2. Optimize Your Images
3. Use Sprites
4. ETags
5. Bundle/Minify JavaScript/CSS
6. Compression/Zip
7. Minified HTML
8. Use AJAX When You Can
9. Minimize Database Calls
10. Use third-party services where they make sense
https://dzone.com/articles/10-ways-to-speed-up-your-aspnet-mvc-application
https://stackify.com/asp-net-performance-tuning/
https://www.c-sharpcorner.com/UploadFile/8a67c0/8-steps-make-your-Asp-Net-mvc-website-faster/
- Dotnet Memory Profiler
- Fiddler
- FireBug
- Google Page Speed Test
- Web Page Test
https://www.danylkoweb.com/Blog/how-ajax-is-like-pepper-ME
https://www.danylkoweb.com/Blog/10-extremely-useful-net-extension-methods-8J
https://www.danylkoweb.com/Blog/my-top-5-aspnet-mvc-actionfilters-AD
https://www.danylkoweb.com/Blog/aspnet-mvc-data-driven-css-sprites-A6
https://www.danylkoweb.com/Blog/please-adjust-your-personal-expectation-meter-9B
https://www.danylkoweb.com/Blog/aspnet-mvc-use-entity-framework-to-return-multiple-result-sets-from-a-generic-repository-PW
https://www.danylkoweb.com/Blog/aspnet-mvc-data-layer-access-your-data-layer-through-unique-requests-PV
https://www.danylkoweb.com/Blog/real-world-refactoring-switch-statement-to-a-class-hierarchy-9G
https://www.danylkoweb.com/Blog/top-10-books-every-net-developer-should-own-QG
https://www.danylkoweb.com/Blog/10-ways-to-speed-up-your-aspnet-mvc-application-EL (HAY HAY HAY)
https://www.danylkoweb.com/Blog/make-your-website-scream-by-adding-a-simple-cache-layer-to-your-repositories-QD (HAY HAY HAY)
ASP.NET MVC 5 + AdminLTE + jQuery DataTables
https://github.com/go2ismail/AdminLTE-ASP-NET-MVC (HAY HAY HAY)
https://github.com/EminemJK/AdminLTE.Net.Web (HAY HAY HAY)
https://github.com/EminemJK/Banana (HAY HAY HAY) - The collection of CRUD helpers for Dapper
https://manhng.com/archive/adminlte/
https://manhng.com/blog/jquery-datatables
ASP.NET Core MVC + AdminLTE
https://github.com/go2ismail/adminlte-aspnetcore2-version (HAY HAY HAY)
https://github.com/go2ismail/AdminLTE-Roles-And-Memberships-Example (HAY HAY HAY)
https://github.com/go2ismail/ASP.NET-CORE-2-MVC-AdminLTE-CRM-Order-Management (HAY HAY HAY)
ASP.NET Core MVC + AdminLTE + jQuery DataTables
https://github.com/moemura/AdminLTE.Core (HAY HAY HAY)
https://github.com/CodAffection/Asp.Net-Core-MVC-CRUD-with-EF-Core (HAY HAY HAY)
https://github.com/omansak/ASP.NET-CORE-MVC-Sample-Registration-Login (HAY HAY HAY)
https://dottutorials.net/dynamic-user-defined-dashboards-asp-net-core-tutorial/
Setup AdminLTE Template in an Empty ASP.NET Core MVC Project
How to use AdminLTE 2 in an existing ASP.NET Core Project
https://codinginfinite.com/setting-up-admin-template-asp-net-core-mvc/ (HAY HAY HAY)
https://codinginfinite.com/creating-admin-panel-asp-net-core-mvc-tutorial
https://github.com/shehryarkn/Asp-net-Core-Project-with-Admin-Template-Setup (HAY HAY HAY)
http://kuttsun.blogspot.com/2018/03/aspnet-core-adminlte.html (HTML+CSS+JS)
HTML + CSS + JS + Bootstrap CRUD
http://urmaul.com/blog/fontawesome-icons-for-common-buttons/
https://learncodeweb.com/php/php-crud-in-bootstrap-4-with-search-functionality/
https://gist.github.com/maxgfr/a4792eb5f7da1537500bf28e247517f5 (HAY)
https://gist.github.com/maxgfr (GOOD)
https://yoong.vn/vi/optimize-aspnet-mvc-application-performance
Tập trung 5 điểm sau:
A. Use the Application Initialization plugin
C. Disable the idle-timeout (under IIS Reset)
E. Fixing slow initial load for IIS
How do you improve your ASP.NET MVC application performance?
https://docs.microsoft.com/en-us/aspnet/mvc/overview/performance/
https://www.codeproject.com/Tips/1080065/Improve-the-Performance-of-ASP-NET-MVC-Web-Applica
https://www.codeproject.com/Tips/1052064/Tips-Optimize-ASP-NET-MVC-Application-Performance
https://www.codeproject.com/Tips/1045511/Glimpse-Part-Easy-Debugging-ASP-NET-MVC-Applicatio (Glimpse - Performance Profiler)
https://www.codeproject.com/Tips/1046623/Glimpse-Part-Performance-Profiler (Glimpse - Performance Profiler)
https://forums.asp.net/t/2138830.aspx?How+to+speed+up+loading+of+MVC+site
https://devnet.kentico.com/articles/mvc-site-too-slow-caching-to-the-rescue
https://www.hanselman.com/blog/EyesWideOpenCorrectCachingIsAlwaysHard.aspx
Caching
https://docs.microsoft.com/en-us/dotnet/standard/collections/thread-safe/how-to-add-and-remove-items
https://github.com/dotnet/extensions/tree/master/src/Caching
Steve Souders - High Performance Web Sites
A compiled list of possible sources of improvement are below:
General
- Make use of a profiler to discover memory leaks and performance problems in your application. personally I suggest dotTrace
- Run your site in Release mode, not Debug mode, when in production, and also during performance profiling. Release mode is much faster. Debug mode can hide performance problems in your own code.
Caching
- Use CompiledQuery.Compile() recursively avoiding recompilation of your query expressions
- Cache not-prone-to-change content using OutputCacheAttribute to save unnecessary and action executions
- Use cookies for frequently accessed non sensitive information
- Utilize ETags and expiration - Write your custom ActionResult methods if necessary
- Consider using the RouteName to organize your routes and then use it to generate your links, and try not to use the expression tree based ActionLink method.
- Consider implementing a route resolution caching strategy
- Put repetitive code inside your PartialViews, avoid render it xxxx times: if you end up calling the same partial 300 times in the same view, probably there is something wrong with that. Explanation And Benchmarks
Routing
-
Use Url.RouteUrl("User", new { username = "joeuser" }) to specify routes. ASP.NET MVC Perfomance by Rudi Benkovic
-
Cache route resolving using this helper UrlHelperCached ASP.NET MVC Perfomance by Rudi Benkovic
Security
- Use Forms Authentication, Keep your frequently accessed sensitive data in the authentication ticket
DAL
- When accessing data via LINQ rely on IQueryable
- Leverage the Repository pattern
- Profile your queries i.e. Uber Profiler
- Consider second level cache for your queries and add them an scope and a timeout i.e. NHibernate Second Cache
Load balancing
-
Utilize reverse proxies, to spread the client load across your app instance. (Stack Overflow uses HAProxy (MSDN).
-
Use Asynchronous Controllers to implement actions that depend on external resources processing.
Client side
- Optimize your client side, use a tool like YSlow for suggestions to improve performance
- Use AJAX to update components of your UI, avoid a whole page update when possible.
- Consider implement a pub-sub architecture -i.e. Comet- for content delivery against reload based in timeouts.
- Move charting and graph generation logic to the client side if possible. Graph generation is a expensive activity. Deferring to the client side your server from an unnecessary burden, and allows you to work with graphs locally without make a new request (i.e. Flex charting, jqbargraph, MoreJqueryCharts).
- Use CDN's for scripts and media content to improve loading on the client side (i.e. Google CDN)
- Minify -Compile- your JavaScript in order to improve your script size
- Keep cookie size small, since cookies are sent to the server on every request.
- Consider using DNS and Link Prefetching when possible.
Global configuration
-
If you use Razor, add the following code in your global.asax.cs, by default, Asp.Net MVC renders with an aspx engine and a razor engine. This only uses the RazorViewEngine.
ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine());
-
Add gzip (HTTP compression) and static cache (images, css, ...) in your web.config <system.webServer> <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/> </system.webServer>
- Remove unused HTTP Modules
- Flush your HTML as soon as it is generated (in your web.config) and disable viewstate if you are not using it <pages buffer="true" enableViewState="false">