Fable: نظام الدعم. IO.Path

تم إنشاؤها على ٣٠ يناير ٢٠٢١  ·  3تعليقات  ·  مصدر: fable-compiler/Fable

وصف

قد يكون من الجيد أن يكون لديك تطبيق بديل لـ System.IO.Path في Fable. لقد كتبت واحدة قوية جدًا في Fable.System.IO . ربما يكون دمج هذا في جوهر Fable سلعة صافية؟

ظننت أنني سألت هذا بالفعل في مكان ما ، لكن لا يمكنني العثور عليه بعد الآن. السبب في كونها مكتبتها الخاصة بالفعل هو أنني اعتقدت أن alfonsogarciacaro ستأخذ وجهة نظر مفادها أنه من الأفضل بشكل عام إبقاء تطبيقات BCL API بعيدة عن Fable نفسها وفي مكتبات منفصلة لتقليل نفقات المشرف على Fable نفسها - وعند هذه النقطة ، السؤال يصبح سواء كان هذا يستحق هذه التكلفة أم لا. قد يكون ، قد لا يكون ، لكنني اعتقدت أنني سأطرحه!

الشيء الوحيد الذي يجعل هذا الأمر صعبًا هو حقيقة أن Fable.System.IO يستخدم كاشف النظام الأساسي (حاليًا يتم اكتشاف النظام الأساسي من npm ؛ ولكن في عملية التبديل إلى Shmew's F ​​# فقط Fable.Extras ). لذلك إذا كان على Fable استيعاب هذه الشفرة بشكل صحيح ، فسيتعين عليها إما أن تأخذ نوعًا ما من التبعية (أو مضمنة) على كاشف النظام الأساسي ، أو ستختار فقط سلوك البيئة المراد محاكاته (Windows مقابل مسارات Unix).

FWIW ، لدي تغطية كاملة لاختبار الوحدة هنا .

التعليق الأكثر فائدة

مرحباjwosty! هذا عمل رائع قمت به مع Fable.System.IO أتفهم رغبتك في رؤية هذا مدمجًا في Fable ، لكنني ما زلت حريصًا جدًا في محاولة تحويل المزيد من واجهات برمجة تطبيقات .NET. يعد المسار مفيدًا ، لكنني أفترض عند إضافة أي دعم لنظام System.IO ، سيحاول الأشخاص استخدام الملف أيضًا. يمكن تشغيل Javascript في بيئات متعددة: المتصفح ، nodejs ، الهاتف المحمول ... ومحاولة دعم إدخال / إخراج الملف في كل هذه تعد كبيرة جدًا (بالنسبة لي). لدينا بالفعل مشكلة في التسلسل الثنائي لأن btoa غير مدعوم في Node: /

أيضًا ، لا تحتوي مكتبة الخرافات على تبعيات ، لذلك سيتعين علينا تضمين اكتشاف النظام الأساسي في قاعدة الرموز الخاصة بنا. لقد فعلنا بالفعل شيئًا من هذا القبيل للأرقام العشرية والأرقام الطويلة ، ولكن بالإضافة إلى ذلك تسبب في مشكلة في أحجام الحزم (كما هو الحال في https://github.com/thoth-org/Thoth.Json/pull/96 والذي استغرق مني وقتًا طويلاً ندرك) نحن نحاول بالفعل إزالة كود js الخارجي هذا وننتقل إلى مكتبة f # fable-fable كاملة.

Fable.System.IO رائع وأعتقد أن هذه هي الطريقة التي يجب اتباعها لمطوري .NET الذين يريدون استخدام واجهات برمجة تطبيقات مألوفة في بيئة JS: مكتبة تشبه ما اعتادوا عليه ، ولكنها تقدم تلميحات فورية في IDE حول ما يتم دعمه والاختلافات في النظام الأساسي.

ال 3 كومينتر

مرحباjwosty! هذا عمل رائع قمت به مع Fable.System.IO أتفهم رغبتك في رؤية هذا مدمجًا في Fable ، لكنني ما زلت حريصًا جدًا في محاولة تحويل المزيد من واجهات برمجة تطبيقات .NET. يعد المسار مفيدًا ، لكنني أفترض عند إضافة أي دعم لنظام System.IO ، سيحاول الأشخاص استخدام الملف أيضًا. يمكن تشغيل Javascript في بيئات متعددة: المتصفح ، nodejs ، الهاتف المحمول ... ومحاولة دعم إدخال / إخراج الملف في كل هذه تعد كبيرة جدًا (بالنسبة لي). لدينا بالفعل مشكلة في التسلسل الثنائي لأن btoa غير مدعوم في Node: /

أيضًا ، لا تحتوي مكتبة الخرافات على تبعيات ، لذلك سيتعين علينا تضمين اكتشاف النظام الأساسي في قاعدة الرموز الخاصة بنا. لقد فعلنا بالفعل شيئًا من هذا القبيل للأرقام العشرية والأرقام الطويلة ، ولكن بالإضافة إلى ذلك تسبب في مشكلة في أحجام الحزم (كما هو الحال في https://github.com/thoth-org/Thoth.Json/pull/96 والذي استغرق مني وقتًا طويلاً ندرك) نحن نحاول بالفعل إزالة كود js الخارجي هذا وننتقل إلى مكتبة f # fable-fable كاملة.

Fable.System.IO رائع وأعتقد أن هذه هي الطريقة التي يجب اتباعها لمطوري .NET الذين يريدون استخدام واجهات برمجة تطبيقات مألوفة في بيئة JS: مكتبة تشبه ما اعتادوا عليه ، ولكنها تقدم تلميحات فورية في IDE حول ما يتم دعمه والاختلافات في النظام الأساسي.

يتم الإغلاق كما لدينا Fable.System.IO كبديل رائع لمحاولة إضافة المزيد من بدائل BCL (غير الكاملة). شكرا مرة أخرى على هذا jwosty!

شيء أكيد. يمكنني بالتأكيد فهم هذا المنطق!

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات