《2019年当我们在谈.NET Core跨平台时我们在谈什么.pdf》由会员分享,可在线阅读,更多相关《2019年当我们在谈.NET Core跨平台时我们在谈什么.pdf(41页珍藏版)》请在三个皮匠报告上搜索。
1、.NET Core 2019China.NET Conf 2019当我们在谈.NET Core跨平台时我们在谈些什么?一个问题针对.NET Standard生成的程序集为什么能够跨平台执行?三篇文章历史、现状与未来历史枷锁复用之殇全新布局历史、现状与未来历史枷锁复用之殇全新布局.NET Framework=FCL+CLRFramework LibraryWindows FormsASP.NETWPFWCFWFData ServicesADO.NETEntity FrameworkLINQBasic Class Library(BCL)Common Language Runtime(CLR)Ap
2、plication Model(AppModel)Basic Class Library(BCL)Common Language Runtime(CLR)发展的历程不断膨胀的BCL1.01.12.03.03.54.04.54.5.14.5.24.64.7Application Model(AppModel)Basic Class Library(BCL)Common Language Runtime(CLR)“裁剪”的必要性Application Model(AppModel)Basic Class Library(BCL)Common Language Runtime(CLR)Applica
3、tion Model(AppModel)Common Language Runtime(CLR)BCL“跨平台”的.NET Framework.NET FrameworkWindows PhoneSilverlightWindows Store.NET Micro FrameworkMono完全独立,各自为政Application Model(AppModel)Basic Class Library(BCL)Common Language Runtime(CLR)历史、现状与未来历史枷锁复用之殇全新布局复用的难题Shared CodeShared Project 源代码复用Shared.shp
4、rojFoo.csBar.csApp1.csprojApp2.csprojBCL(Windows Phone)BCL(Silverlight)C#C#C#Baz.csC#Foo.csC#Bar.csC#Baz.csC#Foo.csC#Bar.csC#Baz.cs更加理想的复用方式 程序集复用Shared.dllPCL(Portable Class Library)PCL ProfilesACBDProfile 4(A+D)Profile 2(A+B)Profile 3(A+C)Profile 1(A)问题1:程序集不一致Foundation,Version=1.0.0.0,Culture=ne
5、utral,PublicKeyToken=b03f5f7f11d50a3aShared.dllApp1App2Foundation,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3aFoundation,Version=1.0.0.0,Culture=neutral,PublicKeyToken=c05f5f6f71d50t3tRetargetable AssemblyShared.dllFoundation.dll(Retargetable)AssemblyFlagsAttributeAttributeUsage(A
6、ttributeTargets.Assembly,Inherited=false)public sealed class AssemblyFlagsAttribute:Attributepublic int AssemblyFlags get;public AssemblyFlagsAttribute(AssemblyNameFlags assemblyFlags);Flagspublic enum AssemblyNameFlagsNone=0,PublicKey=1,EnableJITcompileOptimizer=0 x4000,EnableJITcompileTracking=0 x