Skip to content

Latest commit

 

History

History
136 lines (101 loc) · 6.51 KB

README.md

File metadata and controls

136 lines (101 loc) · 6.51 KB

This Guide helps for Users who wants to get start with .Net Framework Conversion to .Net Core.

Below are the high level substitutions for the packages/methods which are needs to be replace in .Net Core.

Quick Reference Guide to Understand the Core Migration

  1. I have used this link to convert first "web.config" file to "appsettngs.json".

    appsettings.json migrated Reference

  2. converted "BundleConfig.cs" file to "bundleconfig.json" file to create bundle and minification of static files like css, js and plugins.

  3. Updated "@Scripts" and "@Styles" to respective "" and "<script>" tags in cshtml files.

  4. Converted "@Html.RenderAction" to "@await Component.InvokeAsync" in cshtml pages.

    Html.RenderAction Reference

  5. Converted "ActionResult" to "IActionResult".

  6. Converted "Url.Encode" to "System.Net.WebUtility.UrlEncode".

  7. Converted "Context.Request.QueryString["CategoryId"]" to "Context.Request.Query["CategoryId"].ToString();"

    Need to check this if the above didn't work

  8. Converted "HtmlHelper" to "IHtmlHelper".

  9. Using Dependency Injection for appsettings.

    Add get and set in AppSettings.cs
    ---------------------------------
    public string ApiURL { get; set; }
    public string BaseURL { get; set; }
    	
    In Startup.cs
    -------------
    public IConfiguration Configuration { get; }
    
    public Startup(IConfiguration configuration)
    {
    	Configuration = configuration;
    }
    
    services.Configure<AppSettings>(Configuration.GetSection("appSettings"));
    
    Access the appsettings in view
    ------------------------------
    @using Microsoft.Extensions.Configuration
    @inject IConfiguration Configuration
    
    @Configuration["appsettings:BaseURL"].ToString();
    
    In Helpers
    ----------
    private readonly AppSettings _appSettings;
    
    	In Class Constructor
    	--------------------
    	public REST(IOptions<AppSettings> appSettings)
        {
            _appSettings = appSettings.Value;
        }
    	
    calling AppSettings
    -------------------
    _appSettings.ApiURL
    _appSettings.BaseURL
    
    
  10. Converted "System.Web.HttpContext.Current" to "HttpContextAccessor.HttpContext".

    For this we have to add a constructor
    -------------------------------------
    public static IHttpContextAccessor HttpContextAccessor;
    
        public AdminBaseController(IHttpContextAccessor httpContextAccessor)
        {
            HttpContextAccessor = httpContextAccessor;
        }
    
  11. Converted "Session["Trans"] = transact;" to "Session.SetObject("Trans", "transact");"

    Reference Note

    Created new SessionExtension helper class and imported it with "using" clause in controllers with help of below link,

    SessionExtension Reference

  12. Converted "Request.IsMobileDevice" to custom class as there is no package/method available in asp.net core.

    public static bool Check()
    {
    	bool IsMobile = false;
    	string userAgent = HttpContextAccessor.HttpContext.Request.Headers["User-Agent"];
    	Regex OS = new Regex(@"(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    	Regex device = new Regex(@"1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-", RegexOptions.IgnoreCase | RegexOptions.Multiline);
    	string device_info = string.Empty;
    	if (OS.IsMatch(userAgent))
    	{
    		device_info = OS.Match(userAgent).Groups[0].Value;
    	}
    	if (device.IsMatch(userAgent.Substring(0, 4)))
    	{
    		device_info += device.Match(userAgent).Groups[0].Value;
    	}
    	if (!string.IsNullOrEmpty(device_info))
    	{
    		IsMobile = true;
    	}
    
    	return IsMobile;
    }
    
  13. Converted "Request.UrlReferrer" to "uriReferer" by using below, RequestHeaders header = HttpContextAccessor.HttpContext.Request.GetTypedHeaders(); Uri uriReferer = header.Referer;

  14. Converted var RetData = Json(returnData); RetData.JsonRequestBehavior = JsonRequestBehavior.AllowGet; return RetData; To return Json(returnData, new Newtonsoft.Json.JsonSerializerSettings());

  15. Converted Session.Clear(); Session.Abandon(); Session.RemoveAll(); To HttpContext.Session.Clear();

  16. Converted "Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId", ""))" to "HttpContext.Response.Cookies.Append("ASP.NET_SessionId", "");"