ما هي قاعدة البيانات التي تنصح باستخدامها مع تطبيق C# (.NET)؟

StackOverflow https://stackoverflow.com/questions/174059

  •  05-07-2019
  •  | 
  •  

سؤال

أقوم بتطوير خطة مشروع صغيرة ووصلت إلى نقطة أحتاج فيها إلى تحديد نظام قاعدة البيانات المحلي الذي سأستخدمه.

سيتم تخزين بيانات الإدخال على خادم الويب (الاستضافة - MySQL DB).تتمثل الفكرة في بناء عملية لتنزيل جميع البيانات الضرورية (على سبيل المثال عند منتصف الليل) ومعالجتها.ومع ذلك، سيكون هناك العديد من المدخلات ومراحل المعالجة، لذلك أحتاج إلى استخدام نوع من قاعدة البيانات المحلية لتخزين المنتج شبه الخاص بالتطبيق

ما هو نظام قاعدة البيانات المحلي الذي توصي به للعمل مع تطبيق C# (.NET)؟

يحرر:يجب أن يتم تصدير المنتج النهائي (المعلومات) بسهولة مرة أخرى إلى Hosting MySQL DB.

كما ذكر ويل في إجابته - نعم، أنا أؤيد الأداء وراحة الاستخدام.

هل كانت مفيدة؟

المحلول

وأنا أريد أن أقول مايكروسوفت SQL 2005 إكسبريس، كما أنه (تقريبا) ويأتي كخيار واضح عند وضع في .NET.

ولكن كل هذا يتوقف على ما سابقة المهارات ديسيبل لديك. إذا كنت تعرف الخلية وكما قلت من قبل، يجب أن تصدر البيانات مرة أخرى إلى الخلية. لماذا لا تستخدم الخلية على طول الطريق؟

نصائح أخرى

سريعة وقذرة سأذهب معها الإصدار المضغوط لخادم SQL. إنه تطبيق قيد التنفيذ لـ Sql Server، لذا فهو لا يتطلب منك تثبيت أي تطبيقات أخرى.

في الماضي، كنت تستخدم قاعدة بيانات Access لهذا النوع من الأشياء.لكن قواعد بيانات Access ضربة نوعا ما.

لن يستغرق تحميل بياناتك النهائية مرة أخرى إلى خادم الإنتاج الكثير.إذا كنت تبحث عن حل يعمل على أتمتة هذه العملية، فربما تحتاج إلى النظر في استضافة مثيل MySql محليًا واستخدام أي خدمات النسخ المتماثل التي يوفرها.

وأقول يذهب مع SQL Server Edition ضغط. انها حقيقية على غرار النسخة الكاملة في مهب من SQL Server و قد بنى VS2008 دعما لتصميم الجداول، الاستعلام عن غيرها (لديها إدارة ستوديو 2008 أيضا الدعم لذلك). الجانب السلبي أكبر هو أنك تخسر على الإجراءات المخزنة، ولكن الاتجاه الصعودي هو كبيرة كما ليس هناك حاجة لتركيب أي شيء على الجهاز المستخدمين المحليين، ويعمل بسرعة حقيقية لاختيار البيانات. حتى برودة، هو أنه مع SQL المعادن، يمكنك إنشاء ملف DBML واستخدام LINQ تماما كما تفعل مع SQL Server.

وماذا عن استخدام db4o؟ انها OODB يمكنك تضمين في التطبيق الخاص بك. كما يدعم تكرار . تحرير: والجانب ملاحظة - في بلدي الحالي مشروع الحيوانات الأليفة باستخدام db4o لدي خط (C # 3.5):

IList<Users> list = Persistence.Database.Query<Users>(u => u.Name == "Admin");

وعن طريق قوي التعبير مكتوب امدا للحصول على (كسول) قائمة الكائنات من قاعدة البيانات. ويستخدم أيضا مؤشرات لاسترداد قائمة بسرعة.

والدعم MS SQL خادم يأتي من خارج منطقة الجزاء دون أي برامج أو الإعداد الأخرى المطلوبة. أيضا، MS SQL خادم اكسبرس مجانا.

ويمكنك إنشاء البرامج النصية التي من شأنها أن تصدير البيانات إلى / من الخلية.

وو"واضح" الاختيار سيكون MS SQL خادم اكسبرس. VS وصافي كلا يعتمد عليه أصلا، وإذا كنت قد تجربة معها بالفعل (لDB الرئيسي)، كنت بالتأكيد يميل إلى التمسك به (أو إصدار صريح به).

ولكن هذا بالتأكيد ليس نهاية خياراتك. يمكنني استخدام سكليتي الكثير عن التطبيقات عبر منصة وتطبيقات الويب. انها العين اتيرينجلي السرعة وأنه لا تدمج بشكل جيد من خلال System.Data.SQLite - وإن لم يكن كما بإحكام كما MS SQL خادم.

وهناك أيضا نسخة مدمجة من SQL Server الذي يقارن بشكل جيد لسكليتي.

واختيار أي شيء هو متاح، ولكن قانون ضد اجهات فقط، وبهذه الطريقة يمكنك بسهولة التبديل بينهما.

لإنتاج، وأقول إما MS SQL للمشاريع الكبيرة، (أو التعبير عن المستوى المتوسط) ببساطة بسبب التكامل الوثيق مع VS وسكليتي للمشاريع الصغيرة.

ونظرا للوصف، أعتقد أن سكليتي سيكون خيارا جيدا، لأنه أبسط أدنى النفقات العامة /.

لا أعرف قاعدة بيانات جيدة قيد التشغيل ومتوافقة تمامًا مع MySQL.مع أخذ ذلك في الاعتبار، لديك ثلاثة خيارات:

  1. اختر شيئًا مثل SQLlite أو Access أو SQL Server Compact.تكمن المشكلة في أنه سينتهي بك الأمر بكتابة بعض منطق التحويل المعقد باستخدام أي من هذه الأشياء وسيتعين عليك كتابة جميع استفساراتك مرتين.
  2. قم بتثبيت MySQL محليًا.ثم عليك أن تتحمل وجود خادم قاعدة بيانات كامل يعمل على نظامك المحلي.أنت بالتأكيد تريد تجنب ذلك بالنسبة لأي شيء ستشحنه إلى العميل، ولكن لاستخدامك الخاص قد يكون الأمر جيدًا.لحسن الحظ، لا يستخدم MySQL الكثير من الموارد مثل بعض خوادم قواعد البيانات الحديثة الأخرى، لكن هذا لا يزال أقل من المثالي.
  3. قم بالتبديل إلى إصدار SQL Server Express على الخادم واستخدم SQL Server Compact على العميل.إنها رخيصة مثل MySQL (وربما أرخص، حيث أنه من المفترض أن تشتري MySQL لأي استخدام تجاري).مع الأخذ في الاعتبار أنك تستخدم C# من جانب العميل، فقد ترغب في استخدامه مع ASP.Net من جانب الخادم أيضًا.وإذا كنت تستخدم جانب خادم ASP.Net، فليس من الصعب العثور على مضيف يقدم SQL Server Express.الآن أصبحت قواعد البيانات الخاصة بك متوافقة مع الكتابة وأي استعلام تكتبه لعميلك مضمون للعمل مع خادمك أيضًا.

IMO، إحدى نقاط القوة الكبيرة في مكدس قاعدة بيانات MS (باستثناء الوصول) هي أن لديها حلًا متوافقًا لكل ما تفعله على طول الطريق بدءًا من سطح المكتب وحتى مجموعات مراكز البيانات المتعددة.إذا تغير حجم تطبيقك أو كنت بحاجة إلى شحن البيانات بين فئتين مختلفتين من التطبيق، فسيتم الاهتمام بطبقة قاعدة البيانات الخاصة بك.

ولقد تم القيام ببعض التجارب في الآونة الأخيرة وعلى الرغم من أنني كنت أيضا أوصي SQL خادم 2005 (اكسبرس إذا لزم الأمر) لأنه يعمل من خارج منطقة الجزاء على الرغم SQL سيرفر 2008 هو جديد وRTM'd الآن.

وSQL Server كما ذكرتها أكثر ... وسيكون لي السبب يكون كوس يمكنك استخدام عنصر تحكم مصدر لدمج حالات الاختبار من C # لقاعدة البيانات ....

وتأسيس فريق (TFS) هو من هذا القبيل واحد من مايكروسوفت مع واجهة المستخدم الرسومية ...

وبما أن الإجابة على هذا بالفعل. يجب أن أذكر عند العمل مع لغات CLR، يحدد CLR / الإطار الصافي التكامل MS SQL خادم 2005/2008 بصرف النظر عن بقية. التالية مقتطفات من هنا .

<اقتباس فقرة>   

وباستخدام لغات مثل Visual   صافي الأساسي وC #، يمكنك الاستفادة   على التكامل CLR لكتابة التعليمات البرمجية التي   يوجد منطق أكثر تعقيدا وأكثر   مناسبة للمهام الحوسبة.   بالإضافة إلى ذلك، فيجوال بيسك NET و C #   عرض قدرات وجوه المنحى   مثل التغليف، والميراث،   وتعدد الأشكال. يمكنك بسهولة   تنظيم الكودي المخصص إلى طبقات و   مساحة الأسماء، مما يعني أنه يمكنك   أكثر سهولة تنظيم والحفاظ على الخاص   استثمارات متاحة عندما كنت تعمل   مع كميات كبيرة من التعليمات البرمجية. ال   القدرة على منطقيا وطبيعيا   تنظيم الشفرة في المجالس و   النطاقات هي فائدة كبيرة أن   تمكنك من العثور على وصلة أفضل   قطع مختلفة من التعليمات البرمجية بشكل كبير   تنفيذ قاعدة البيانات.

لما وصفته أنت، بالتأكيد MS SQL خادم. أداء جيد، وأدوات جيدة. مجانا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top