ããã«ã¡ã¯ãã¿ããªã
.Net Core 1.0ã§ã¯ãã¯ãã¹ãã©ãããã©ãŒã ã§ã¯å®è¡ã§ããªããããã·ãªã¢ã«åã®ãµããŒããå»æ¢ããããšèããŠããŸãã ïŒèšæ¶ããã®èšãæãïŒããã¯å®éã«ã¯ã©ãããæå³ã§ããïŒ BinaryFormatterã®Serializeã¡ãœãããšDeserializeã¡ãœããã䜿çšããã³ãŒãããŒã¹ã¯å®å
šã«éæšå¥šã«ãªããŸããïŒã³ãŒãããŒã¹ãprotobuf-netã«å€æããå¿
èŠããããŸããïŒ ãããšãç§ã¯èª€è§£ããŸãããïŒ
ããããšãã
-ãµã
ããã«ã¡ã¯@joshfree ãã¯ããæ®å¿µãªãããããæ··ä¹±ãåŒãèµ·ãããææžã§ããã ããã§ã®ææ¡ã®ãã¡ãJSON.NETã¯jsonã·ãªã¢ã«åãè¡ããprotobuf-netã¯ãã€ããªã·ãªã¢ã«åãè¡ããdatacontractserializerã¯xmlã·ãªã¢ã«åãè¡ããŸãã ããã«é¢ããåé¡ã¯ããã€ããªã·ãªã¢ã«åãå®è¡ãããå Žåã§ãã protobuf-netã¯åªããã©ã€ãã©ãªã§ãããéãããŠããŸãã Protobuf-netsãªããžããªããããµããŒããããŠããã¿ã€ãã¯æ¬¡ã®ãšããã§ãã
次ã®ãããªã«ã¹ã¿ã ã¯ã©ã¹ïŒ
ããŒã¿å¥çŽãšããŠããŒã¯ãããŠããŸã
ãã©ã¡ãŒã¿ã®ãªãã³ã³ã¹ãã©ã¯ã¿ãæã£ãŠãã
Silverlightã®å ŽåïŒå
¬éãããŠããŸã
å€ãã®äžè¬çãªããªããã£ããªã©
äžæ¬¡å
é
åïŒT []
ãªã¹ã/ IList
èŸæž/ IDictionary
IEnumerableãå®è£
ããAddïŒTïŒã¡ãœãããæã€ä»»æã®ã¿ã€ã
éå»ã«ã¯ãbinaryformatterãåžžã«ååšããŠãããããããã¯åé¡ãããŸããã§ããããããã¯ãã¯ãåœãŠã¯ãŸããŸãããïŒ protobuf-netã«ãããµããŒããããŠããªãã¿ã€ãã®ãã€ããªã·ãªã¢ã«åã®æšå¥šãããæ¹æ³ã¯äœã§ããïŒ èªåã§æ§ç¯ããŸããïŒ
ç§ã¯ãŸã ãããã®ãã¯ãããžãŒã®ãã¹ãŠã«ããªãã®åå¿è
ãªã®ã§ãäœãã®èŠç¹ãå®å
šã«èŠéããŠãããããããŸããã
ãŸããåæ£ã³ã³ãã¥ãŒãã£ã³ã°ïŒAzure ...ïŒãªã©ã®å¿ èŠã«å¿ããŠãäŸå€ã確å®ã«ã·ãªã¢ã«åïŒããã³é¢é£ãããã¹ãŠã®ããŒã¿ãä¿æïŒããããšã¯ã§ããŸããã
@cdrnetãã€ã³ãã¯ãOrleansã®ç·IIRCã®ãããªç·ã«ãšã£ãŠå€§ããªãã ããã§ãã
ããã«ã¡ã¯@SamuelCox ã移æ€ã¬ã€ãã³ã¹@joshfreeãææããããã«ãç§ãã¡ïŒã·ãªã¢ã«åããŒã ïŒã¯ãã€ããª
@cdrnetãš@ RichiCoder1 ããã£ãŒãããã¯ãããããšãã äŸå€ã®ã·ãªã¢ã«åã®è°è«ã«ã€ããŠã¯ãæªè§£æ±ºã®åé¡dotnet / coreclrïŒ2715ããããŸããã ããã«ãã£ãŒãããã¯ãè¿œå ããŠãã ããã åæ£ã·ã¹ãã ã§äŸå€ãã·ãªã¢ã«åã§ããããšãéèŠã§ããããšã«åæããŸãã çŸåšã.NET Coreã§ISerializableããªããšãå®å šãª.NETFrameworkã®ããã«äŸå€ãã·ãªã¢ã«åããããšã¯ã§ããŸããã
ããã«ã¡ã¯@zhenlan ãç§ã¯ããããæåã«èšåãã¹ã
äž»ãªäœ¿çšäŸã¯åæ£ã·ã¹ãã ã§ããªããžã§ã¯ãããã€ãé åã«ã·ãªã¢ã«åããŠãtcp / ipã§éä¿¡ã§ããããã«ããŸãã ããšãã°ãJSON.NETãä»ããŠãªããžã§ã¯ããJSONã«ã·ãªã¢ã«åãããã®æååããã€ãé åã«å€æããtcp / ipãä»ããŠéä¿¡ããããäžæ¹ã®ç«¯ã§ããã»ã¹å šäœãéã«ããããšãããããããäžè¬çã§ãããšæããŸãã ãã ããããã«ã¯ããã€ãé åã«ã·ãªã¢ã«åããŠããã€ãé åããç®çã®ãªããžã§ã¯ãã«éã·ãªã¢ã«åãããããã¯ããã«å€ãã®ãªãŒããŒãããããããŸãã
æ確åããŠããã@SamuelCoxã«æè¬ããŸãã ç§ã¯ããªãã®æžå¿µãä»ç解ããŠãããšæããŸãã ãã€ããªã·ãªã¢ã«åã¯ç·å¯ãªã·ã¹ãã ã§ãã XmlãJSONãªã©ãä»ã®ãããªãŒãã³ãªæšæºããŒã¹ã®ã·ãªã¢ã«åãæ€èšããããšããå§ãããŸãã çŸåšã¯å¿ èŠãªããããããŸããããå°æ¥ãç°ãªããã©ãããã©ãŒã éãŸãã¯ç°ãªãããã°ã©ãã³ã°èšèª/ã¹ã¯ãªããã§ã·ãªã¢ã«åããµããŒãããå¿ èŠãããå Žåã«åããŠãæè»æ§ãåäžããŸãã ããŒã¿ã®å€§ããã¯ããããŸãããããã€ããŒãã®ãµã€ãºãæ¬åœã«æžå¿µãããå Žåã¯ãããŒã¿å§çž®ãæ€èšã§ããŸããããã¯ãçŸåšå€ãã®ãµãŒããŒã«çµã¿èŸŒãŸããŠããæ©èœã§ãã
ç§ã¯äœãããããã©ãŒãã³ã¹ã®ãªãŒããŒãããã«ã€ããŠèããŠããŸããã ãªããžã§ã¯ããããã€ããªã«çŽæ¥ã·ãªã¢ã«åããã³éã·ãªã¢ã«åããã®ã«æ¯ã¹ãŠãå€ãã®ç¡é§ãªæäœã®ããã§ãã å°ãªããšã説æãåããã®ã§ããããéããããšãã§ããŠãããããšæããŸãã ããã§éãããŠãã4.6ãšã³ã¢1.0ã®éã«ã¯ãŸã ã®ã£ããããããšæããŸããããã®çç±ã¯ç解ããŠããŸãã
äŒè©±ã«å°ãé ããŸããããããã«ç§ã®2ã»ã³ãããããŸãïŒ
BinaryFormatterã®ãŠãŒãã£ãªãã£ã.NETãªã¢ãŒãã£ã³ã°ãšAppDomainsã«éå®ãããŠãããšèããã®ã¯ééãã ãšæããŸãã ïŒå»æ¢ãããïŒBinaryFormatterãæ°ãã察å¿ãããã®ãšåºå¥ããã®ã¯ãã¯ããŒãžã£ãŒããµãã¿ã€ãã埪ç°ã°ã©ããªã©ããããšããŸããã¯ãª.NETãªããžã§ã¯ããã·ãªã¢ã«åãããã®çŽç²ãªæ©èœã§ãã çŸåšã®ã¹ã¬ããã«ãªã¹ããããŠããä»ã®ã·ãªã¢ã©ã€ã¶ãŒã¯ãããããã¹ãŠãå®è¡ã§ããŸããã PrajnaãMobiusïŒå¥åSparkCLRïŒãªã©ã®Microsoftãããžã§ã¯ããå«ããå€ãã®æå 端ã®åæ£ãã¬ãŒã ã¯ãŒã¯ãæ©èœããããã«BinaryFormatterã«äŸåããŠããã®ã¯å¶ç¶ã§ã¯ãããŸããã ããã¯.NETã®äžçã«éã£ãããšã§ã¯ãããŸãããSparkã¯ã¯ããŒãžã£ãŒã®ã·ãªã¢ã«åã«å€ããŠé ãJavaãã€ããªã·ãªã¢ã©ã€ã¶ãŒã䜿çšããŠããŸãã
mbraceãã¬ãŒã ã¯ãŒã¯ã§äœ¿çšãããç¬èªã®FsPicklerã©ã€ãã©ãªãªã©ãBinaryFormatterã®æ©èœãè€è£œããä»ã®ïŒéãã€ããªåœ¢åŒã®ïŒã·ãªã¢ã©ã€ã¶ãŒããããŸãã ãã ããCoreCLRã¯å€ãã®äž»èŠãªAPIãéæšå¥šã«ããŠãããã©ã€ãã©ãªãCoreCLRã«ç§»æ€ããããšã¯éçŸå®çãªè©Šã¿ã§ãããšç§ã¯ä¿¡ããŠããŸãã
ããžãã¹ã®èŠ³ç¹ããã¯ãCoreCLRãåæ£ã³ã³ãã¥ãŒãã£ã³ã°/ããã°ããŒã¿ãã¡ã€ã³ã§JVMã®å®è¡å¯èœãªã¯ãã¹ãã©ãããã©ãŒã ã®ç«¶äºçžæã«ãªãã®ãèŠãã®ã¯çŽ æŽãããããšã§ãã ããã¯ãPOCOãšã¯ããŒãžã£ïŒãã€ããªãŸãã¯ãã®ä»ïŒã®ä¿¡é Œæ§ã®é«ãã·ãªã¢ã«åãµããŒããæäŸãããã©ãããã©ãŒã ãªãã§ã¯çºçããŸããã
peopeã«å®éã«.NETCoreã䜿çšããããã§ããããããšãSilverlightã®ããã«æéã®ç¡é§ã§ããïŒ äººã ã«å®éã«.NETCoreã䜿çšããŠãããããå Žåã¯ããããæ©èœãããŸãã ã·ãªã¢ã«åãå¿ èŠãªå Žåã¯ããããæ§ç¯ããŠãã ãã-ããã¯ããŒã¯ã¯ãããŸããïŒ ãããã¯å®éã«ããªãã®è£œåã䜿çšããŠãã人ã ã§ããã圌ãã®æèŠã¯ãã¹ãŠã®ãã€ã¯ããœããåŸæ¥å¡ã®éåçãªç¥æµãããã¯ããã«äŸ¡å€ããããŸãã ãããã®äººã ã¯ãMicrosoftãšã¯ç°ãªããå®éã«ã¯.NETäžã§ããã·ã§ã³ã¯ãªãã£ã«ã«ãªãã®ãæ§ç¯ããŠããããšãããããŸãã.NETCoreãäœãã«ãããå Žåã¯ããã®æçšæ§ãæãªãã®ããããªããã°ãªããŸããã å®å šãªæžãæããè¡ãããã«.NETãæšãŠãããã«æ±ãããã人ã¯èª°ãããŸããã§ãããæéã®çµéãšãšãã«ãå®å šãª.NETãã¬ãŒã ã¯ãŒã¯ã移æ€ããããšãã§ããã¯ãã§ãã ããªãã¯ããçµãã£ãŠããã ããã
https://github.com/dotnet/coreclr/issues/2715ãåç §ããŠ
fwiwã CSLA .NETã¯ãã¢ãã€ã«ãªããžã§ã¯ãã®æŠå¿µã«åºã¥ããŠãããããå®å šã«å¿ å®ãªã·ãªã¢ã«åã«äŸåããŠããŸãã
Silverlightãç»å ŽããBinaryFormatterãŸãã¯NetDataContractSerializerããªãã£ããšãã_and_ã«ã¯ãããã®åä»ãªåå°å¶éããã¹ãŠãããæå°éã®åå°ã䜿çšããBFãŸãã¯NDCSã«äŸåããªãç¬èªã®ã·ãªã¢ã©ã€ã¶ãŒãå®è£ ããããšã«ãªããŸããã
BF / NDCSã¯UWPãWinRTã.NET Coreãªã©ã§ç¢ºå®ã«å©çšã§ããªããããSilverlight以éã®äžçã§ã¯åé¡ãæ®ããŸãã
ãããã£ãŠãå®å šå¿ å®ãªã·ãªã¢ã©ã€ã¶ãŒãååšããå¿ èŠããããšããè°è«ããããšæããŸãããããã.NETã®ããŸããŸãªå身ãã¹ãŠã«ååšããå Žåã«ã®ã¿ãå®éã«åœ¹ç«ã¡ãŸãïŒå°ãªããšãimoïŒã
@rockfordlhotka @opinionmachine @eiriktsarpalisãã£ãšå€ãã®äººãåãããã«æããã®ãèããŠããããã§ãããããå°ãäžå¯§ã«@opinionmachineãšèšãããããã£ãšçç£çã«ãªããšæããŸããããããããç¬èªã®ãã®ã§ãã ãã®åé¡ã¯è§£æ±ºãããã®ã§ãcorefxããŒã ã¯ãã¯ããããç£èŠããŠããªããšæããŸãã @forkiãè¿°ã¹ãŠããããã«ã æ£ãããšããå§ãããŸã
ã·ãªã¢ã«åïŒããã³ã¢ããªãã¡ã€ã³ïŒãåé€ããããšã¯ã²ã©ãèãã ã£ãããšã«åæããå¿ èŠããããŸãã 決å®ãããèããããŠãããšã¯æ¬åœã«æããŸããã
ããããæ¬åœã«ç§ãåãããŠããã®ã¯ãMSãappdomainsãªã©ããµããŒãããããã«å¿ èŠãªã³ãŒãããªãªãŒã¹ãããã³ãã¥ããã£ã«ä»»ããŠã圌ããäœãããããå®è¡ããããšã§ãã
coreclrã.netã®ããµãŒããŒãããŒãžã§ã³ã§ãããšæ³å®ãããŠããããšãèãããšãå€ãã®ãµãŒããŒæ©èœãããã¢ã«æ®ãããŠããŸããã
é©åãªäŸïŒStackTrace / StackFrameã¯ãäžéšã®éçºè ã«ãã£ãŠã誀çšããããã»ãšãã©äœ¿çšãããªãã£ãããïŒMSã«ãããšïŒãcorefxããé€å€ããããšã決å®ãããŸããã ç§ã¯åœŒããïŒããããã®åçºã®åŸã§ïŒããã«ã€ããŠåœŒãã®æèŠã«éãããšä¿¡ããŠããŸãããããç§ã¯æ¬åœã«æå³ããŸããïŒ èª°ããã®ããšãèããŸããïŒ
䟡å€ã®ããããšãšããŠãç§ã¯å®éã«.netã³ã¢ã«æ¬åœã«æºè¶³ããŠããã.netã«ãšã£ãŠå€§ããªåé²ã ãšæããŸããããã©ãŒãã³ã¹ã®åäžã¯çŽ æŽããããç§ãæ°ã«ãããŠããæ©èœã®ã»ãšãã©ãã¹ãŠãåããŠãããã¯ãã¹ãã©ãããã©ãŒã ã§ãã ããã¯æ¬åœã«ç§ãæ±ããŠããå¯äžã®åé¡ã§ãã å¿ èŠã«å¿ããŠæ©èœãåé€ããããšã«ã¯å€ãã®äŸ¡å€ããããŸããæå°éã®ã¢ãããŒãã§æåãããã©ããã確èªããŠãã ããã .netãè¡ãã®ãšåãããããããã«ã§ããã¹ãã ãšèšã£ãŠããããã§ã¯ãããŸãããããã¯ã°ãããŠããã§ããããç§ã¯ãããã«ãªãã¶ã€ã³ã«å人çã«åæããŸããããããç§ãèšãããšããŠããã®ã¯MSãç¹å®ã®æ©èœãèœãšãããšã§éé£ãããã¹ãã§ã¯ãªããšããããšã§ãã
@SamuelCox ãããããšãïŒ :-)
ç¹°ãè¿ãã«ãªããŸãããAPIã¯å€ãã®çç±ã§.NETCoreã«ãããŸããã ãããã®ã®ã£ããã®ããã€ãã¯ç°¡åã«ä¿®æ£ã§ããŸãïŒãããŠç§ãã¡ã¯ããããä¿®æ£ããŠããŸãïŒã ä¿®æ£ãé£ãããã®ããããŸãã ããããç§ãã¡ã¯ããªããçŽé¢ããŠããåé¡ïŒã·ãªã¢ã«åã«é¢ãããã®ã¹ã¬ããã®ã»ããå šäœã®ãããªïŒã«ã€ããŠããªãããèãããã®ã§ãããªãã®ã·ããªãªã®ãããã¯ã解é€ããæ¹æ³ãèŠã€ããããšæããŸãã
åäžã®ãã¬ãŒã ã¯ãŒã¯ã®ããŒãžã§ã³éã§ã®ä»»æã®ãªããžã§ã¯ãã°ã©ãã®ãã€ããªã·ãªã¢ã«åã¯å°é£ã§ãã ç°ãªããã¬ãŒã ã¯ãŒã¯éã§ããã«å°é£ã§ãã ãããŠããé£ããããšã¯ãç§ãã¡ãä»äºãããã®ãé£ãããšããæå³ã§ã¯ãããŸãããã€ãŸãããã©ãããã©ãŒã ã®ä»ã®ç®æšïŒç§ãã¡å šå¡ãå ±æããŠãããšæãç®æšïŒãã€ãŸãã»ãã¥ãªãã£ãããã©ãŒãã³ã¹ãä¿¡é Œæ§ã«ããªãã®åœ±é¿ãåãŒããŠãããšããããšã§ãã
Json.NET + TypeNameHandling.All + PreserveReferencesHandling.All + MemberSerialization.Fieldsã䜿çšãããšãã»ãŒãã¹ãŠã®å Žæã«ã¢ã¯ã»ã¹ã§ããŸãã FormatterServices.GetUninitializedObjectã¯ãããŸããããã³ã³ã¹ãã©ã¯ã¿ãŒã䜿çšå¯èœã§ããå¿ èŠããããŸãã
FormatterServices.GetUninitializedObjectã¯ãããŸãã
ãããç§ãèããäžå¿çãªåé¡ã§ããå€éšãªãã¬ã¯ã·ã§ã³ããŒã¹ã®ã·ãªã¢ã«åãã¬ãŒã ã¯ãŒã¯ã¯é·ãéã®ããæ©ãããšãã§ããŸããããããã®ãã¬ãŒã ã¯ãŒã¯ãèšè¿°ã§ããããã«ããã«ã¯ããã®ç¹å®ã®APIãå¿ èŠã§ãã CoreCLRããŒã ãžã®ç§ã®æšå¥šäºé ã¯ããã®APIãã«æ»ãããšã§ãã
ããæç¹ã§ã.NETã³ãã¥ããã£ïŒåçšãŸãã¯ãã®ä»ïŒã¯ãMicrosoftãåžžã«æãæ¡ã£ãŠããããšã«äŸåããããšããããªããã°ãªããªãã§ãããã ããã«ã¯éåžžã«å€§ããªèŠä»¶ããããå©çšã§ããªãããšãããªãåããç¥ãããŠããå Žåã代æ¿æ段ãæäŸããããã®ã³ãã¥ããã£æŽ»åããªãã£ãã®ã¯ãªãã§ããïŒ Json.NETã¯ã³ãã¥ããã£ã®ä»£æ¿æ段ã§ãããç§ãã¡ã¯åžžã«ããã䜿çšããŠããŸãã ãœãŒã¹ã³ãŒãã¯ãªãã¡ã¬ã³ã¹ãœãŒã¹ã§ãå ¥æã§ããŸãã
ä»ã®ãã©ãããã©ãŒã ã§ãããŸãããããã§ã.NETã§ãããŸããããšç¢ºä¿¡ããŠããŸããç§ã®èŠæ¹ã§ã¯ãããã¯ãããžã§ã¯ããäœæãã絶奜ã®æ©äŒã§ãïŒéèŠãããããã§ãïŒããã®ç©ºçœãã³ãã¥ããã£ã®ä»£æ¿æ¡ã§åããæ©ã段éã§
@thecodejunkieãããã®ã§ããããããå®çŸããã«ã¯ãã©ã³ã¿ã€ã ã§é©åãªAPIãå ¬éããå¿ èŠããããŸãã
åèïŒããã¯.NET Coreã§åäœããŸãïŒ Type appDomainType = Type.GetType("System.AppDomain");
ã ãããŠãã¯ããããã¯ããªãã«ããããã®ããšããããŸããã....
ããã³ããšã³ããµãŒããŒã®å¿çæ§ã30ïŒ åäžããæå€§è² è·æã®12ã³ã¢ããæå€§è² è·æã®2ã³ã¢ã«æžå°ããredisãã£ãã·ã¥ãµã€ãºã1.7Gbãã350Mbã«æžå°ããAzureãã¹ãã£ã³ã°ãå šäœã§20ïŒ ïŒãããïŒæžå°ãããšèšã£ãŠãéèšã§ã¯ãããŸããããã£ãšæ¬åœã«ïŒ
ããªãã¯ãããBinaryFormatterã ãšæããŸããïŒ
netdatacontractserializerã䜿çšããŠããŸãã
BinaryFormatterã§ã¯.Net4.6.1ã®é床ãéåžžã«é ããšããçããæ¢ããŠããã«æ¥ãŸããã
ãããã®APIãæ»ã£ãŠããïŒã·ãªã¢ã«åïŒããšã¯ç§ã®ç解ã§ãã ããã¯çæ³çã§ã¯ãªããè匱ã§ããããšã«ããã€ãã®åé¡ããããŸãããå°ãªããšãæ¢åã®ã³ãŒããå®è¡ãç¶ããããšãã§ããã¯ãã§ãã
ã³ã¢ãã¬ãŒã ã¯ãŒã¯çšã®å¥ã®åçŽãªãªããžã§ã¯ãã·ãªã¢ã©ã€ã¶ãŒãèšèšããããšã«ã䟡å€ããããŸããããã軜éã§ãããã¯ãã¹ãã·ã³ããã³æœåšçã«ã¯ãã¹ããŒãžã§ã³ã®åé¡ã«å¯ŸããŠããå埩åããããŸãã
è匱æ§ã«å ããŠã»ãã¥ãªãã£ã®åé¡ããããŸãã
@blowdart WRTã»ãã¥ãªãã£ã httpsïŒ //blog.scrt.ch/2016/05/12/net-serialiception/ã®ãããªæå³ã§ããïŒ
ãããããããããšã ã Javaãä»å¹ŽçºèŠããŠããããã«ããã®äžã«åãå«ãã·ãªã¢ã«åãã©ãŒãããã¯å±éºã§ãã ã¯ã©ã¹å šäœã®è匱æ§ãåé€ããããããã€ããªã·ãªã¢ã«åãåé€ãããšãã¯éåžžã«æºè¶³ããŠããŸããã
@migueldeicaza @blowdart @SamuelCox
ã·ãªã¢ã©ã€ã¶ãŒã¯ãéä¿¡ããã ãã§ãªããåŠçäžã«ãå¿
èŠã§ãã
ãã€ããªã·ãªã¢ã©ã€ã¶ãŒã¯ãé©åã«å®è¡ããããšãåŠçäžã®æ°åäžã®ãªããžã§ã¯ããæ ŒçŽããå Žåã«ããã€ãã£ããªããžã§ã¯ãããŒãå
šäœãå®å
šã«äžåããŸãã
ãããåç
§ããŠãã ããïŒ
https://www.infoq.com/articles/Big-Memory-Part-2
ã·ãªã¢ã«åAPIã¯ãæ£åžžãªã¯ã©ã¹ã¿ãŒããã°ã©ãã³ã°ã«çµ¶å¯Ÿã«å¿
èŠã§ãã
ãªããžã§ã¯ãã€ã³ã¹ã¿ã³ã¹CLR->ããã¹ã-> CLRããã¬ããŒãããããšã¯éåžžã«äžäŸ¿ã§ããã倧ããªãªãŒããŒãããã§ãã
BinaryFormatterã¯éåžžã«é
ããããŒã¿ã°ã©ã ã巚倧ã§ãããããåé€ããã®ã¯ééãã§ã¯ãªããããããŸãããã
ããã¯ãå®å
šãªCLRã·ãªã¢ã«åã»ãã³ãã£ã¯ã¹ããµããŒãããNFX.Slim以å€ã®åžå Žã§å¯äžã®ã·ãªã¢ã©ã€ã¶ãŒã§ããã
詳现ãªé床ãšãµã€ãºã®ãã£ãŒããåç
§ããŠãã ããã
http://aumcode.github.io/serbench/
[OnSer / Deser]ãã¡ããªãŒã§ISerializableã¯ããã©ãããã©ãŒã å
ã®ãã¬ããŒããŒã·ã§ã³ã«éåžžã«æå³ããããŸãã
å€ãNETã®ããã«ãå¿
é ã§ã¯ãããŸããã ä¿ç®¡ããŠã¿ãŸãããã
å°ãªããšãè€éãªã³ã¬ã¯ã·ã§ã³ïŒã€ãŸãèŸæžïŒã§ããããµããŒãããŸããããã¯ãŸã£ããé£ããããšã§ã¯ãããŸããã
å
šå¡ã«JSONã䜿çšãããããšã¯ããã€ããªã·ãªã¢ã©ã€ã¶ãŒïŒBinaryFormatterã§ã¯ãªãïŒãããæéããããããã絶察ã«æªãèãã§ãã
誰ããããžãã¹ããžãã¯ã®ãªãTwitterã®ãããªã¢ããªãæ§ç¯ããŠããããã«èŠããŸããïŒ
@itadapterã«ã¯ãéžæåé¡ããããŸããããã¯ãJSON.Netãçºã§å¯äžã®ã·ãªã¢ã«åã²ãŒã ã§ã¯ãªããšããããšã§ãã MsgPackãProtobufãããã³Microsoftç¬èªã®BondããããŸãã ïŒç·šéïŒ2çªç®ã®ãªã³ã¯ã¯ProtobufãåŒã³åºããŸãïŒã Jsonã ããéžæè¢ã§ã¯ãããŸããã ãã ããèå³æ·±ãã»ãã³ãã£ã¯ã¹ïŒäŸå€ïŒã䜿çšããŠ.Netãªããžã§ã¯ããã·ãªã¢ã«åããããšã«ã¯ãŸã 倧ããªåé¡ããããŸãã
@ RichiCoder1
ã¯ãããã¡ããã 以äžã®ã°ã©ãã«ç€ºãããŠããããã«ãã€ãŸãJILã¯æéã®JSONã»ãªã©ã€ã¶ãŒã§ãããããã¹ãããŒã¹ã®ã·ãªã¢ã©ã€ã¶ãŒã¯ãããããã€ããªã®ãã®ã«è§Šããããšãã§ããŸããã Protobufã¯ãçã®ããªã¢ãŒãã£ãºã ãšè€éãªã°ã©ãããµããŒãã§ããªãããšãç ç²ã«ããŠãéåžžã«é«éã§ãã
ç§ãèšã£ãŠããã®ã¯ïŒ
人æ°ã®ããã·ãªã¢ã©ã€ã¶ãŒã瀺ããTypicalPersonãã®ãã³ãããŒã¯ïŒ
http://aumcode.github.io/serbench/Specimens_Typical_Person/web/overview-charts.htm
ãã®ã¹ã¬ããã®èª°ããæ°ä»ããŠããªãå Žåã«åããŠãISerializableãªã©ãå«ããã€ããªã·ãªã¢ã©ã€ã¶ãŒãcorefxã§å©çšå¯èœã«ãªã£ãŠããŸã
https://github.com/dotnet/corefx/tree/master/src/System.Runtime.Serialization.Formatters
@zhenlanç§ãæ³å®ããŠãã.NetStandard2.0äœæ¥ã®äžéšã§ããïŒ
@ RichiCoder1ã¯ããæ£è§£ã§ãã
@zhenlanã¯çŽ æŽãããã§ãïŒ
@zhenlanStandardã®ãã¬ãã¥ãŒã§äœ¿çšå¯èœãªSerializableå±æ§ãèŠã€ãããªãããã§ãã ç§ã¯ãããèŠéããŠããŸããïŒ
@justinhelgersonããã¯ããã«ããã¯ãã§ãã
ã¢ããŠã³ã¹ã®ããã°æçš¿ã®æ瀺ã«åŸã£ãŠã2.0 Preview1 SDKãã€ã³ã¹ããŒã«ããŸãããïŒ
.NET Coreãããžã§ã¯ããäœæããåŸãã¯ã©ã¹ã©ã€ãã©ãªãäœæããå Žåã¯.csprojãã¡ã€ã«ã«<TargetFramework>netstandard2.0</TargetFramework>
ãå«ãŸããã³ã³ãœãŒã«ã¢ããªãäœæããå Žåã¯<TargetFramework>netcoreapp2.0</TargetFramework>
ãå«ãŸããŠããããšã確èªã§ããŸããïŒ
ãšããã§ããã®ã¹ã¬ããã®å€ãã®äººã ã¯ãã€ããªã·ãªã¢ã©ã€ã¶ãŒã«èå³ãæã£ãŠããã®ã§ã.NET Core2.0ã®[Serializable]ã®çž®å°ã«ã€ããŠã®dotnet / corefxïŒ19119ã§ã®è°è«ã«èå³ããããããããŸããã ãæèŠãããããŸãããããã¡ããŸã§ãç¥ãããã ããã
@zhenlanè¿ éãªå¯Ÿå¿ããããšãããããŸãã NuGetãä»ããŠãã¬ãã¥ãŒãã€ã³ã¹ããŒã«ããŸãããã.csprojãã¡ã€ã«ãæåã§æŽæ°ããŸããã§ããã ãããããªãã¯ã§ããïŒ ã¹ã±ãŒã«ããã¯ã«ã€ããŠèªã¿ããŠãŒã¹ã±ãŒã¹ã«åœ±é¿ããå Žåã¯å ¥åãæäŸããŸãã
@justinhelgerson ãã¹ã±ãŒã«ããã¯ã®å€æŽã¯ãã¬ãã¥ãŒ1ã«ã¯ãããŸããïŒãŸã äœæ¥äžã§ãïŒïŒãããã€ãªãŒãã«ããŸãã¯å°æ¥ã®ãã¬ãã¥ãŒã§ããã«è©Šãããšãã§ããã¯ãã§ãã
æãåèã«ãªãã³ã¡ã³ã
peopeã«å®éã«.NETCoreã䜿çšããããã§ããããããšãSilverlightã®ããã«æéã®ç¡é§ã§ããïŒ äººã ã«å®éã«.NETCoreã䜿çšããŠãããããå Žåã¯ããããæ©èœãããŸãã ã·ãªã¢ã«åãå¿ èŠãªå Žåã¯ããããæ§ç¯ããŠãã ãã-ããã¯ããŒã¯ã¯ãããŸããïŒ ãããã¯å®éã«ããªãã®è£œåã䜿çšããŠãã人ã ã§ããã圌ãã®æèŠã¯ãã¹ãŠã®ãã€ã¯ããœããåŸæ¥å¡ã®éåçãªç¥æµãããã¯ããã«äŸ¡å€ããããŸãã ãããã®äººã ã¯ãMicrosoftãšã¯ç°ãªããå®éã«ã¯.NETäžã§ããã·ã§ã³ã¯ãªãã£ã«ã«ãªãã®ãæ§ç¯ããŠããããšãããããŸãã.NETCoreãäœãã«ãããå Žåã¯ããã®æçšæ§ãæãªãã®ããããªããã°ãªããŸããã å®å šãªæžãæããè¡ãããã«.NETãæšãŠãããã«æ±ãããã人ã¯èª°ãããŸããã§ãããæéã®çµéãšãšãã«ãå®å šãª.NETãã¬ãŒã ã¯ãŒã¯ã移æ€ããããšãã§ããã¯ãã§ãã ããªãã¯ããçµãã£ãŠããã ããã