Note: All text has been abstracted from the Concepts article - .NET Framework versus .NET Core (José Carlos Macoratti- link link )
The.NETFrameworkisusedtodevelopWindowsapplicationsusingWindowsForms,WPF,andWebapplicationsusingASP.NETMVC..NETCoreisopen-sourceandcross-platformandsupportsUWPandASP.NETCorelibraries.UWPisusedtocreateWindows10applicationandASP.NETCoreisusedtocreateWebapplicationsforWindows,LinuxandMac.
XamarinisaframeworkforcreatingnativeapplicationsforAndroid,iOSandWindowsPhone.
Wecangroupandcomparethemainfeaturesof.NETCoreand.NETFrameworkasshowninthetablebelow:
ComparingthefeaturesbetweenthetwoFrameworkswecanmakesomeconsiderationsastowhichframeworktousetostartthedevelopmentofaproject.
Considerusingthe.NETFramework,takingintoaccountthefollowingfactors:
Youwillnotneedcross-platformsupportforyourapplication;
Youneedastableenvironment;
Youneedtomakefrequentupdates;
Youarealreadyworkingonanapplicationthatthe.NETFrameworkwillextenditsfunctionality;
Youalreadyhaveateamwithexperienceinthe.NETFramework;
YouneedVisualBasicsupport
YouwillcreateWindowsFormsorWPFdesktopapplications
YouwilldevelopASP.NETWebFormsapplications
YouneedtousethefeaturesofWCF,WFandWorflowServices
You'reafraidofnewthings;
Considerusing.NETCoreif:
YouwanttotargetyourapplicationsonWindows,LinuxandMacoperatingsystems;
Youarewillingtomakeadjustmentsandupdatessince.NETCoreisnotyetmature;
Youarewillingtolearnnewthingsandwanttobeintheforefront;
WhenshouldInotuseormigrateto.NETCore?
Yourcurrentapplicationisinproductionandusesthe.NETFramework
You'vealreadystarteddevelopingagreatcorporateproject
YouwillneedstablefeaturesoftheEntityFramework6,WCF,andWorkFlowFoundation
AndwhentouseXamarininsteadof.NetCore?
Ifyouwanttogetthebestperformanceandaniceuserinterface,thewaytogois"native", where Xamarin is one of the options as well as Objective-C / Swift and Java. But if you need to reach at least two platforms (iOS and Android), then Xamarin is may be the best possible choice for creating cross-platform native applications.
Note: There is also Xamarin Forms that allows you to create cross-platform native applications. It provides a cross-platform toolkit with pages.
What if I want to port .NET Framwork applications to .NET Core?
In this case, consult the documentation that explains the process at this link: link