اذهب إلى المحتوى

لوحة المتصدرين

  1. أحمد رضا5

    أحمد رضا5

    الأعضاء


    • نقاط

      5

    • المساهمات

      149


  2. Mustafa Suleiman

    Mustafa Suleiman

    الأعضاء


    • نقاط

      4

    • المساهمات

      13224


  3. عبدالباسط ابراهيم

    • نقاط

      3

    • المساهمات

      4898


  4. عمر قره محمد

    عمر قره محمد

    الأعضاء


    • نقاط

      3

    • المساهمات

      4096


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 03/16/23 في كل الموقع

  1. هل للبرمجه عمر معين ..؟ انا 37 عاما فهل انا متأخر مع العلم انا شاطر في الويندوز ؟ انا اتعلمت HTML و CSS فهل هذا مفيد وهل يمكن ان اعمل بهم فقط واكمل دراستي وانا اعمل ..؟؟
    1 نقطة
  2. السلام عليكم و رحمة الله و بركاته , اريد أن اسأل عن ملف package-lock.json : عندما ارفع المشروع على GitHub هل يجب أن ارفعه مع المشروع مثل ملف package.json ؟ أم يمكنني الاستغناء عنه و تثبيته مجددًا اثناء تشغيل المشروع مثل ملف node_modules , و شكرًا لكم
    1 نقطة
  3. مسالخير.. لدي بعض الاستفسارات لانشاء website ووضعه على Domain ليصبح جاهز للعمل والتفاعل هل يكفي بناء المشروع ضمن اطار عمل جانغو بدون اطار خاص بال frontend قاعدة البيانات كيف يتم العمل عليها ..
    1 نقطة
  4. لا, لا يوجد أي مشاكل وهناك الكثير من المواقع القائمة بهذا الشكل بالتوفيق.
    1 نقطة
  5. شكرا لك.. إذا قمت بإنشاء الواجهة بواسطة بوتستراب و html .. css .. javascript فقط هل هذا يعمل أي مشكلة عند استضافته؟؟
    1 نقطة
  6. لا، لإنشاء موقع ويب جاهز للعمل والتفاعل مع المستخدمين، يجب عليك بناء الجزء الخلفي (Backend) والجزء الأمامي (Frontend) بالإضافة إلى استضافة الموقع على دومين معين. بناء المشروع ضمن إطار عمل Django سيكون كافياً للجزء الخلفي من الموقع، حيث يسمح Django بإنشاء موديلات قاعدة البيانات وعرض البيانات للمستخدمين بطريقة مرتبة وسهلة. أما بالنسبة للجزء الأمامي، فيمكن استخدام إطار عمل خاص بالـ Frontend مثل React أو Vue أو Angular، ويتيح هذا الإطار عمل واجهة المستخدم وتحويل البيانات بشكل مرئي وسهل للمستخدم أو يمكنك انشاء واجهة ابسط باستخدام HTML و CSS وJavaScript فقط. أما بالنسبة لقاعدة البيانات، فيمكن استخدام أي نوع من أنواع قواعد البيانات المدعومة من قبل Django، مثل PostgreSQL و MySQL وغيرها. ويتم العمل عليها باستخدام ORM (Object-Relational Mapping) الخاص بـ Django. بعد الانتهاء من تطوير الموقع، يمكنك استضافته على خدمة استضافة الويب، مثل AWS أو Heroku أو Digital Ocean، أو أي خدمة استضافة أخرى متاحة، ويجب تأكد من تحديث إعدادات DNS لدومين الموقع للإشارة إلى خدمة الاستضافة المستخدمة.
    1 نقطة
  7. هل في اي طرق عشان اخلي font-size متجاوبة اكثر وتلقائيا مع الصفحة؟ جربت vw/vh/% لكنها توصل لنقطة تصير كبيرة اكثر من اللازم او صغيرة اكثر من اللازم اما clamp() و steps لم افهمها حاليا فقط على الاقل لا اريد ان استخدم media query بجنون كل ما خرب علي التصميم https://www.fluid-type-scale.com/
    1 نقطة
  8. المشكلة تحدث بسبب استخدام useState بطريقة خاطئة. في هذا الكود ، تم استخدام حالة qty المحلية لجميع العناصر في cartItems. لذلك ، عند تحديث qty لأي من العناصر ، ستتأثر جميع العناصر الأخرى بقيمة qty الجديدة. لحل هذه المشكلة ، يمكنك استخدام حالة qty المحلية لكل عنصر على حدة. يمكنك تحقيق ذلك عن طريق تحويل qty إلى مصفوفة من القيم في حالة useState وتخزين القيم بناءً على معرف العنصر. إليك الكود المعدل: import React, { useState } from 'react' function calculateTotal(cartItems) { let total = 0; for (let i = 0; i < cartItems.length; i++) { const price = parseInt(cartItems[i].price); const qty = cartItems[i].qty; if (!isNaN(price)) { total += price * qty; } } return total; } function Cart({ cartItems, setModal, removeFromCart, addToCart }) { const [qtyArray, setQtyArray] = useState( cartItems.map((cartItem) => ({ id: cartItem.id, qty: 1 })) ) const handlePlus = (index) => { setQtyArray((prevState) => prevState.map((item, idx) => idx === index ? { ...item, qty: item.qty + 1 } : item ) ) } const handleMinus = (index) => { setQtyArray((prevState) => prevState.map((item, idx) => idx === index ? { ...item, qty: item.qty - 1 } : item ) ) } return ( <div className='cart-modal'> {cartItems.length === 0 ? ( <h1 className='empty-cart'>Your Cart Is Empty</h1> ) : ( cartItems.map((cartItem, index) => { const qtyIndex = qtyArray.findIndex( (item) => item.id === cartItem.id ) const qty = qtyArray[qtyIndex].qty return ( <div className='cart-product' key={index}> <img src={cartItem.image} alt='' /> <div className='cart-product-info'> <h3 className='cart-price'>{cartItem.price}$</h3> <div className='quantity'> <button type='button' className='plus' onClick={() => handlePlus(qtyIndex)} > + </button> <h4 className='qty'>{qty}</h4> <button type='button' className='minus' disabled={cartItem.qty <= 1} onClick={() => handleMinus(qtyIndex)} > - </button> <button type='button' className='remove'> <i className='fa-solid fa-trash' onClick={() => removeFromCart(cartItem.id)} ></i> </button> </div> <h2 className='total'>{cartItem.price * qty}</h2> </div> </div> ) }) )} <div className='cart-summary'> <h2className='cart-summary-title'>Total: {calculateTotal(cartItems)}$</h2> <button type='button' onClick={()=>setModal(false)}>CLOSE</button> </div> </div> ) } export default Cart
    1 نقطة
  9. المشكلة تحدث لأن كل العناصر تتحكم في نفس الحالة qty. لحل المشكلة جرب تعديل الكود للشكل التالي، حيث ننشئ مكون جديد خاص بالعنصر الداخل ونضيف حالة qty لكل عنصر على حدى : import React,{useState} from 'react' function Cart({cartItems, setModal, removeFromCart, addToCart}) { return ( <div className='cart-modal'> { cartItems.length === 0 ? <h1 className='empty-cart'>Your Cart Is Empty</h1> : cartItems.map((cartItem,index) => ( <ItemComponent cartItem={cartItem} key={index} />)) } <div className="cart-summary"> <h2 className='cart-summary-title'>Total: {}$</h2> <button type='button' onClick={()=>setModal(false)}>CLOSE</button> </div> </div> ) } const ItemComponent = ({cartItem , removeFromCart})=>{ let [qty, setQty] = useState(1) return( <div className="cart-product"> <img src={cartItem.image} alt="" srcSet="" /> <div className="cart-product-info"> <h3 className='cart-price'>{cartItem.price}$</h3> <div className="quantity"> <button type='button' className='plus' onClick={()=>setQty(qty++)} >+</button> <h4 className='qty'>{qty}</h4> <button type='button' className='minus' disabled={cartItem.qty <= 1} onClick={()=>setQty(qty --)} >-</button> <button type='button' className='remove'> <i className="fa-solid fa-trash" onClick={()=>removeFromCart(cartItem.id)}></i> </button> </div> <h2 className='total'>{cartItem.price * qty}</h2> </div> </div> ) } export default Cart
    1 نقطة
  10. يجب اضافة package-lock.json إلى ملفات المشروع اثناء رفعه على GitHub وذلك من اجل الاسباب التالية : وصف تمثيل واحد لشجرة التبعية بحيث يضمن أعضاء الفريق وكذلك عمليات النشر و وعمليات التكامل المستمر أن تقوم بتثبيت نفس التبعيات تمامًا. يقوم بتوفير وسيلة للمستخدمين "للسفر عبر الزمن" إلى الحالات السابقة للوحدات node_modules دون الحاجة إلى الالتزام بالدليل نفسه. لتسهيل رؤية أكبر للتغييرات الشجرية من خلال عرض الاختلافات في مصدر قابل للقراءة. يحسّن عملية التثبيت من خلال السماح لـ npm بتخطي الحزم الفرعية المتكررة للحزم المثبتة مسبقًا.
    1 نقطة
  11. لا يوجد جواب أفضل، فالأمر يعتمد على احتياجاتك وتفضيلاتك. والفرق بين الطريقتين كالتالي الطريقة الأولى إذا قمت بتشفير الصورة بتشفير base64 وحفظها في قواعد البيانات، فإن هذا يزيد من حجم البيانات ويستهلك مساحة أكبر على القرص. كما أنه يؤثر سلبًا على أداء قواعد البيانات وسرعة استجابة التطبيق. ومع ذلك، فإن هذه الطريقة تسهل نقل ونسخ الصور دون الحاجة إلى ملفات خارجية يساعد على تقليل عدد طلبات HTTP، خاصة للصور الصغيرة. كما أنه يجعل تضمين الصور في ملفات CSS أكثر سهولة. فإن هذه الطريقة تجعلك تفقد بعض المزايا مثل استخدام قواعد بيانات أو خدمات متخصصة في تخزين هذه الأنواع من الملفات (مثل Amazon S3) أو تقديم الصور عبر شبكة توزيع المحتوى (CDN) بطريقة مطابقة الطريقة الثانية إذا قمت بحفظ اسم الصورة فقط في قواعد البيانات وجلبها باستخدام API برابط الملف في الخادم فإن هذا يقلل من حجم البيانات ويحسن من أداء قواعد البيانات. كما أنه يسمح بضغط وتحسين جودة الصور دون التأثير على تشفير base642. ومع ذلك، فإن هذه الطريقة تتطلب إدارة الملفات على مستوى نظام الملفات والتأكد من تزامنها مع قواعد البيانات فإن هذا يسمح بتخزين المؤقت للصور على مستوى المستعرض . كما أنه يسهل تغيير أو حذف أو نقل الصور دون التأثير على قواعد البيانات. ومع ذلك، فإن هذه الطريقة تزيد من عدد طلبات HTTP، خاصة للصور الكثيرة أو الكبيرة. كما أنها تتطلب مزامنة بين نظام الملفات وقواعد البيانات فإن هذا يسمح لك باستخدام قواعد بيانات أو خدمات متخصصة في تخزين هذه الأنواع من الملفات (مثل Amazon S3) أو تقديم الصور عبر شبكة توزيع المحتوى (CDN) بطريقة مطابقة قي الأخير يمكنك المقارنة بينهما وأختيار الحل المناسب بالنسبة لك
    1 نقطة
  12. هناك عدة طرق يمكن استخدامها لجعل حجم الخطوط متجاوبًا مع الصفحة بطريقة تلقائية وأكثر دقة. لكن أفضلها في رأي استخدام rem ولكن بطريقة مختلفة حيث يجب القيام بالتالي: يتم تعيين حجم الخط الأساسي (الخط الجذري) إلى 62.5% بدلاً من 100%. html { /* 62.5% of 16px browser font size is 10px */ font-size: 62.5%; } .some-element { /* 1.2 * 10px = 12px */ font-size: 1.2rem; } يعني ذلك أن حجم الخط الأساسي يكون يساوي 10 بدلاً من 16 بكسل (الحجم الافتراضي لحجم الخط على متصفحات الويب). وذلك لأن 16 يقسم على 2.5 يساوي 6.4، و 6.4 بدلاً من 10 سيعني أن الأحجام المستخدمة بعد ذلك ستكون أسهل للتحكم بها بشكل نسبي، حيث ستستخدم نسبة بين الحجم الجديد والحجم الأساسي بنسبة نسبية سهلة الاستخدام مثل rem أو em أو بالنسبة المئوية. ويتيح ذلك أيضًا تعديل حجم الخط بشكل سريع وسهل. أمثلة: body { font-size: 1.6rem; } h1 { font-size: 4.8rem; } وهكذا بالنسبة لبقية التصميم، وستجد أن الأمر أصبح أسهل من ذي قبل في إنشاء التصاميم المتجاوبة.
    1 نقطة
  13. هناك العديد من الطرق لجعل حجم الخط يتناسب مع أحجام الشاشات المختلفة، ولكن الطريقة الأكثر شيوعًا هي استخدام وحدة الـ "rem" بدلاً من وحدة الـ "px" أو "em". تعتمد وحدة "rem" على حجم الخط الأساسي الذي تم تعيينه على الجسم (body) في صفحة الويب، وبالتالي فإن حجم الخط يتناسب مع حجم الشاشة بشكل أكثر ديناميكية. لتحديد حجم الخط باستخدام وحدة "rem"، يمكنك استخدام القيمة النسبية لحجم الخط بدلاً من القيمة الثابتة في الوحدات الأخرى. مثلاً، إذا كان حجم الخط الأساسي (font-size) ضمن الوسم (body) 16 بكسل، فيمكنك استخدام القيمة "1.5rem" بدلاً من "24px" لتعيين حجم الخط في عنصر معين. بالإضافة إلى ذلك، يمكن استخدام الـ CSS media queries لتغيير حجم الخط بناءً على حجم الشاشة، على سبيل المثال، يمكنك تعيين حجم الخط ليكون أكبر على الشاشات الكبيرة وأصغر على الشاشات الصغيرة. هناك أيضًا العديد من المكتبات والأدوات المتاحة على الويب التي تمكنك من جعل حجم الخط يتناسب مع أحجام الشاشات بشكل أسهل، مثل Bootstrap و Google's Material Design وغيرها من مكتبات CSS التي تسهّل عليك التحكم بالخطوط والتنسيقات.
    1 نقطة
  14. جرب استخدام الـ em أو rem وبدلاً من تغيير القياسات لكل عنصر على حدا باستخدام الـ media query، تقوم بتغيير الـ font-size للأب فقط. حيث أن em هي قياس الـ font-size للعنصر الأب المباشر، بينما الـ rem هي قياس الـ font-size للعنصر الـ root للصفحة.
    1 نقطة
  15. بالطبع أنت قادر على فعل ذلك من خلال C++، ولكن الأفضل والأسهل استخدام جافاسكريبت وتقنيات الويب لتحقيق ما تريده. باستخدام HTML و CSS لتصميم واجهة المستخدم الخاصة بك واستخدام جافاسكريبت لإضافة المنطق والتفاعل في الصفحة. والأسهل استخدام مكتبات مثل React أو Vue.js لإنشاء واجهة المستخدم بشكل أسرع وأسهل وأكثر تنظيمًا. بالإضافة إلى ذلك، يمكن استخدام أدوات تحويل HTML إلى PDF مثل jsPDF لتصدير الصفحة كملف PDF.
    1 نقطة
  16. الإحتمال الأكبر لهذه المشكلة هو حجم البيانات التي تقوم بجلبها حيث أنك تقوم بجلب بيانات جميع المنتجات 'https://fakestoreapi.com/products' لذلك يمكنك تجربة جلب عدد محدد من المنتجات عن طريق ال limit كما في الكود التالي const fetchProducts = async () => { const response = await fetch('https://fakestoreapi.com/products?limit=5') const data = await response.json() setProducts(data) } قم بقراءة توثيق ال API للمزيد من المعلومات
    1 نقطة
  17. من الممكن أن يكون السبب في البطء هو عدد العناصر الكبير التي يتم جلبها من الخادم، وهذا يؤدي إلى تحميل الصفحة بشكل بطيء. وللتخفيف من هذه المشكلة، يمكنك تطبيق بعض التحسينات على رمز الاستدعاء والاستجابة لجعل الصفحة تحمل بسرعة أكبر. 1- استخدام pagination : يمكن استخدام التقسيم إلى صفحات لعرض عدد قليل من العناصر في كل صفحة. 2- إضافة صفحة تحميل: يمكن إضافة صفحة تحميل مؤقتة تظهر أثناء جلب البيانات من الخادم لتحسين تجربة المستخدم. 3- استخدام useCallback : لتحسين الأداء ، يمكنك استخدام useCallback لتجنب إعادة تشغيل الدالة fetchProducts عند تحديث الحالة الأخرى في التطبيق. 4- تحسين البيانات المستلمة: يمكنك تحسين البيانات التي تم جلبها من الخادم لجعلها أصغر حجمًا وتحميلها بشكل أسرع. 5- استخدام useMemo : لتجنب إعادة جلب البيانات من الخادم في كل مرة يتم فيها إعادة تقديم المكون، يمكن استخدام useMemo لتخزين البيانات وتجنب إعادة جلبها بشكل غير ضروري. مع تطبيق هذه التحسينات، يمكن تحسين أداء التطبيق وتقليل البطء الملاحظ عند جلب البيانات من الخادم.
    1 نقطة
  18. لتصميم برنامج باستخدام بيئة تطوير فيجوال ستوديو مع قاعدة بيانات SQL Server، يجب الحصول على التراخيص التالية: ترخيص فيجوال ستوديو: يجب عليك الحصول على ترخيص لاستخدام بيئة تطوير فيجوال ستوديو. يمكنك الحصول على هذا الترخيص من موقع مايكروسوفت. ترخيص SQL Server: إذا كنت تستخدم SQL Server كقاعدة بيانات لبرنامجك، فيجب الحصول على ترخيص لاستخدام SQL Server. يمكنك الحصول على ترخيص من موقع مايكروسوفت أو من موردي البرمجيات. ترخيص Windows Server: إذا كنت تستخدم Windows Server كنظام تشغيل لخادم SQL Server، فيجب الحصول على ترخيص لاستخدام Windows Server. يمكنك الحصول على ترخيص من موقع مايكروسوفت أو من موردي البرمجيات. يجب أن تتأكد من الامتثال لجميع القوانين واللوائح المتعلقة بحقوق الملكية الفكرية وحقوق الاستخدام المرتبطة بتراخيص برامج مايكروسوفت.
    1 نقطة
  19. يمكن لمستخدمي SQL Server الاتصال في نفس الوقت عن طريق واجهات الإدخال بشكل متزامن، والحد الأقصى لعدد المستخدمين المسموح لهم بالاتصال في الوقت نفسه يعتمد على عدة عوامل، مثل: 1- نوع الإصدار: يختلف الحد الأقصى لعدد المستخدمين المسموح لهم بالاتصال في الوقت نفسه حسب إصدار SQL Server. على سبيل المثال ، يمكن لإصدار SQL Server Express السماح بحد أقصى لـ 10 مستخدمين متزامنين ، بينما يمكن لإصدار SQL Server Enterprise السماح بعدد 32,767. يعني هذا أن SQL Server يسمح بأقصى عدد من الاتصالات المتزامنة للمستخدمين بقيمة 32,767 في الإصدارات القياسية والمعتادة من SQL Server. وهذا يشمل إصدارات SQL Server Standard وWeb وExpress وDeveloper. 2- الاستخدام المتوقع: يعتمد الحد الأقصى لعدد المستخدمين المسموح لهم بالاتصال في الوقت نفسه على الاستخدام المتوقع للنظام. إذا كان يتوقع استخدام النظام من قبل عدد كبير من المستخدمين المتزامنين ، فسيتم زيادة الحد الأقصى لعدد المستخدمين. نظرًا لأن عدد اتصالات المستخدمين هي خيار ديناميكي (يتكون ذاتيًا) دون تدخل منك، يقوم SQL Server بضبط الحد الأقصى لعدد اتصالات المستخدمين تلقائيًا حسب الحاجة، حتى الوصول للحد الأقصى المسموح به. على سبيل المثال ، إذا كان هناك 10 مستخدمين مسجلين الدخول فقط ، يتم تخصيص 10 كائنات اتصال مستخدم. في معظم الحالات، لا يتعين عليك تغيير قيمة هذا الخيار. القيمة الافتراضية هي 0 ، مما يعني أن الحد الأقصى (32،767) من اتصالات المستخدمين مسموح به. 3- قدرة الخادم: يمكن لقدرة الخادم أن تؤثر على الحد الأقصى لعدد المستخدمين المسموح لهم بالاتصال في الوقت نفسه. إذا كان لديك خادم بمواصفات عالية وذاكرة ومعالج قوية ، فسيتمكن الخادم من معالجة مزيد من الاتصالات المتزامنة. ومن المهم ملاحظة أن هذا الحد الأقصى هو لعدد الاتصالات المتزامنة فقط، ولا يشمل عدد المستخدمين الفعليين أو عدد الاستفسارات التي يقومون بها. وبما أن هذا العدد يعتمد على عدة عوامل، مثل حجم الذاكرة وسرعة المعالج وحجم قاعدة البيانات وحجم الاتصالات وغيرها من العوامل الفنية والأدائية، فإنه من المهم تقييم الموارد المتاحة واحتياجات النظام وحمولة العمل لتحديد الحد الأقصى الفعلي لعدد المستخدمين المتزامنين في الإصدار المستخدم من SQL Server. ولا يمكن تجاوز هذا الحد الأقصى لعدد المستخدمين في SQL Server. إذا تجاوزت الحد الأقصى لعدد الاتصالات المتزامنة، فسوف تتلقى رسالة خطأ ولن تتمكن من الاتصال حتى يتوفر اتصال آخر. ولكن هناك حلول بديلة للسماح لمزيد من المستخدمين بالإتصال. حيث يمكنك تثبيت المزيد من النسخ instances في الخادم. وكل نسخة تدعم SQL Server 32,767 اتصالًا، ويمكن تشغيل 50 نسخة لكل عقدة node، لذا يصبج الحد الأقصى لعدد اتصالات العميل لكل عقدة هو 32767 * 50. ويمكن أيضًا استخدام عدة خوادم SQL مرتبطة في ترتيب معين لتحديد عدد الاتصالات (حسب القسم أو الموقع) واستخدام تكرار المزامنة (MERGE replication) للحفاظ على جميع النسخ محدثة.
    1 نقطة
  20. تحتاج إلى ترخيص لاستخدام برنامج فيجوال استوديو وقاعدة بيانات SQL Server بالنسبة إلى قاعدة بيانات SQL Server يتم تقديم SQL Server في إصدارين رئيسيين لاستيعاب الميزات الفريدة ومتطلبات الأداء والسعر للمؤسسات والأفراد: الإصدار Enterprise Edition مثالي للتطبيقات التي تتطلب أداءً حرجًا في الذاكرة وأمانًا وتوافرًا عاليًا. يوفر الإصدار القياسي إمكانات قاعدة بيانات كاملة الميزات لتطبيقات الطبقة المتوسطة وسوق البيانات. نماذج ترخيص SQL Server 2022 الترخيص لكل core الترخيص على الخادم + CAL ترخيص مكونات SQL Server 2022 ويوجد العديد من نماذج التراخيص الأخرى لذلك يفضل الإطلاع عليها وإختيار النموذج الذي يناسبك بالنسبة لبرنامج فيجوال استوديو إصدارات Visual Studio ، يوجد حاليًا أربعة إصدارات مستخدمة ؛ Visual Studio Code Visual Studio Community Visual Studio Professional Visual Studio Enterprise Visual Studio Code و Visual Studio Community مجانيين ، فإنهما يختلفان تمامًا عن الآخرين.. للحصول على مقارنة كاملة الميزات بين Community, Professional وEnterprise قم بالذهاب لموقع microsoft من خلال هذا الرابط
    1 نقطة
  21. نعم، تحتاج إلى ترخيص لاستخدام برنامج فيجوال استوديو وقاعدة بيانات SQL Server. يمكن شراء تراخيص Visual Studio من مايكروسوفت، وتحتاج أيضًا إلى شراء ترخيص SQL Server من مايكروسوفت لاستخدام قاعدة بيانات SQL Server. ويتوفر SQL Server بعدة إصدارات تختلف في التكلفة والميزات المتاحة، وتتراوح بين الإصدارات المجانية والإصدارات المدفوعة المتقدمة. لذلك يجب عليك اختيار الإصدار الذي يناسب احتياجاتك وميزانيتك. ترخيص Visual Studio يتوفر على عدة إصدارات، ويمكن شراؤها عن طريق الاشتراك في خدمة MSDN أو شراء ترخيص مستقل. تختلف التكلفة والميزات المتاحة في كل إصدار. على سبيل المثال، يوفر إصدار Visual Studio Community الذي يمكن تنزيله مجانًا، ميزات تطوير التطبيقات الأساسية ويمكن استخدامه في مشاريع الشركات الصغيرة، بينما يوفر إصدار Visual Studio Enterprise ميزات تطوير التطبيقات المتقدمة ويستخدم بشكل أساسي في المشاريع التي تتطلب فريق تطوير كبير وميزانية كبيرة. أما بالنسبة لترخيص SQL Server، فهناك إصدارات مختلفة متاحة، تختلف في التكلفة والميزات المتاحة. يمكن شراء ترخيص SQL Server من خلال الاشتراك في برنامج Software Assurance للمؤسسات أو الشراء المباشر من مايكروسوفت. يمكن أيضًا استخدام إصدارات مجانية مثل SQL Server Express و LocalDB، ولكن تختلف الميزات المتاحة وهناك قيود على حجم قاعدة البيانات وعدد المستخدمين المتزامنين.
    1 نقطة
  22. يمكن لـ SQL Server أن يتعامل مع عدد كبير جدًا من المستخدمين المتصلين في نفس الوقت، ولكن الحد الأقصى لعدد المستخدمين المسموح بهم يعتمد على إصدار SQL Server وعلى تكوينات الخادم والموارد المتاحة للنظام. في SQL Server 2019 و SQL Server 2017 Enterprise Edition، يمكن الآن دعم حتى 100,000 اتصال متزامنًا. ومن المهم الإشارة إلى أن الحد الأقصى لعدد المستخدمين ليس العامل الوحيد الذي يؤثر على أداء قاعدة البيانات، فهناك عدة عوامل تؤثر على قدرة الخادم على التعامل مع عدد كبير من المستخدمين، مثل سرعة المعالج والذاكرة وسرعة التخزين ومساحة القرص المتاحة.
    1 نقطة
  23. العدد الأقصى الافتراضي هو 32,767، و لكن يمكنك تعديل هذا الخيار عن طريق القيام بتنفيذ ال query التالية: USE AdventureWorks2012 ; GO EXEC sp_configure 'show advanced options', 1; GO RECONFIGURE ; GO EXEC sp_configure 'user connections', 325 ; GO RECONFIGURE; GO مثلا هنا قمنا بالتعديل ليصبح العدد الأعظمي هو 325.
    1 نقطة
×
×
  • أضف...