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

طارق جهاد

الأعضاء
  • المساهمات

    188
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    17

كل منشورات العضو طارق جهاد

  1. مساء النور أخي الكريم طبعا xcode لا يعمل إلا على اجهزة الماك، او فعليا على نظام Mac OS X، سويفت او Swift هي لغة برمجة مرفقة مع xcode، لذلك انت بحاجة فقط ل xcode. على اجهزة الويندز انت بحاجة ل Virtual Machine يمكنك تحميلها من https://my.vmware.com/en/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0 بعدها انت بحاجة لتشغيل نسخة من نظام Mac OS على هذا الجهاز الافتراضي، يمكنك تحميل نسخة Serria من http://macdrug.com/download-macos-sierra-dmg-installer-iso-without-apple-store/ بعد ان تنتهي من هذه العمليات، يصبح لديك جهاز Mac افتراضي (الافضل ان يكون لديك جهاز mac حقيقي، خصوصا اذا كنت ترغب بالعمل الجدي على ios وليس لهدف التجريب فقط) اذا بعد الانتهاء تقوم بتنزيل xcode من App Store ضمن بيئتك الافتراضية الجديدة. بالتوفيق،،،
  2. هذا السؤال يتكرر دائما في جميع المواقع والمنتديات. وسأترك مجموعة روابط في الاسفل لبعض المواضيع في منتدى حسوب. بغض النظر عن لغة البرمجة او التقنية، الطريقة الافضل للاحتراف هي بالممارسة ثم الممارسة، والممارسة لا تأتي إلا بالعمل على مشروع حقيقي، حيث الالتزام بالوقت والمواصفات. اذا لم يتوفر مشروع بين يديك للعمل عليه، يجب محاولة وضع فكرة لمشروع معين، قد يفيدك او يفيد زملائك، والبدء بالعمل على تطبيقها. وأول مشكلة ستواجهنا هي اول خطوة نحو الاحتراف. فنقوم بالبحث عنها (يفضل باللغة الانجليزية ومواقع مثل stackoverflow.com)، ونكمل بعدها خطوة بخطوة ومشكلة بعد مشكلة، حتى يكون لدينا تطبيق مرضي نوعا ما. ونتابع بعدها في البحث عن مشاريع وعملاء سواء في محيطك او في منصات العمل الحر. المهم ان لا نتوقف ولا نتردد مهما كانت المهام المطلوبة. ماهى لغات البرجمة التى تعلمها يتيح لى العمل من المنزل؟ ما احتاجه قبل البدء بتعلم لغات البرمجة
  3. وعليكم السلام ورحمة الله. أولاً انت بحاجة لتعلم المنطق البرمجي، لانه مشترك بين جميع اللغات. (مثل المتغيرات، الدوال، الحلقات التكرارية، الجمل الشرطية...) وبعد ان تختار لغة معينة مثل سي شارب، انت بحاجة لتعلم النحو الخاص بها Syntax بالاضافة لنظرة عامة على البيئة. وبعدها تنتقل للتقنيات التي تدعهما هذه اللغة، مثل مع سي شارب يمكنك كتابة التالي: 1. تطبيقات سطح المكتب (Windows Forms, WPF, UWP) 2. تطبيقات الويب (ASP.NET Web Forms, ASP.NET MVC, ASP.NET Web Pages)، Silverlight, LightSwitch 3. خدمات الويب (WCF, Web API, SignalR) 4. تطبيقات الموبايل (Windows Phone) ومع Xamarin (Android, iOS) 5. الحوسبة السحابية (Microsoft Azure) بجميع ميزاته. 6. برمجة الألعاب مع Unity مع كل تقنية من التقنيات السابقة انت تستخدم سي شارب بكامل امكانياتها مع مواصفات معينة لكل تقنية، ولن تأخذ معك اي تقنية الكثير حتى تتعلمها اذا كنت جيدا في سي شارب. بالنهاية، نعم انت مجبر على تعلم اساسيات عمل الخوارزميات قبل الخوض بهذه التقنيات او غيرها، لانك بدونها وفي مشروع بحجم معين ستجد نفسك في مكانك بعد فترة معينة لأنك لم تستخدم الاساس الصحيح. لكن ولكي لا تفقد الحماسة يمكنك دمج المفاهيم هذه مع بعضها، بأن تبدأ بتطبيق امثلة صغيرة، ومن ثم دراستها بشكل مفصل وبعد فهمها انتقل لأمثلة أصعب. وحاول ايضا البحث عن نفس الأمثلة بأساليب مختلفة لترى اساس المنطق البرمجي ولتتضح لديك الفكرة اكثر. بالتوفيق،،،
  4. اخي الكريم حتى لو اخذت 100 دورة، بدون تطبيق عملي لا تساوي شيء، لا تنسى أن الدورات لا تعطيك مبادىء عمل التطبيقات، فهي تركز على الجزئيات المنفصلة. لذلك عليك بمتابعة سلسلة تطبيقية خطوة بخطوة. https://www.youtube.com/user/derekbanas/playlists في هذه القناة يوجد الكثير من السلاسل حول جافا واندرويد وغيرها. اختر المناسب لك. وهذه السلسلة تعلمك ربط تطبيق الاندرويد مع خدمات الويب، وهو ما ستحتاجة مستقبلا، يوجد نسخة جديدة من هذه السلسلة على موقع Lynda. المحاضر اسمه David Gasner ملاحظة: يجب ان تعتمد في مصادرك على اللغة الانجليزية
  5. بالتأكيد أخي ممكن. REST API، هي طبقة تغلف مجموعة العمليات المطلوبة على قاعدة البيانات، وتقدمها بشكل متوافق مع HTTP، ويمكن عملها بجميع اللغات بما فيها PHP. REST API، تعتمد بالدرجة الأولى على HTTP، بمعنى يتم تحديد نوع العملية المطلوبة (اضافة، تعديل، حذف، قراءة بيانات) حسب نوع Http Request POST, PUT, DELETE, GET والتطبيق الذي يستخدم REST API بالمعايير الصحيحة، يسمى RESTful كما يمكنك استخدام REST API ايضا، في بناء موقعك الالكتروني او اي تطبيق اخر.
  6. وعليكم السلام ورحمة الله. تتم عن طريق Web Service او Web API
  7. بالتأكيد اخي، جميع انواع input و select و textarea مخصصة لجمع البيانات وارسالها للسيرفر عن طريق form. معلومة على الهامش: يجب اعطاء نفس الإسم لكل checkbox ضمن نفس المجموعة من checkboxs ويتم استقبالها على السيرفر ك مصفوفة من القيم ويجب اعطاء نفس الإسم ايضا لكل radiobutton ضمن مجموعة radiobuttons حتى يتم اختيار واحد فقط، ويتم استقبالها على السيرفر كقيمة واحدة. بالتوفيق،،،
  8. بالتوفيق في عملك. الأمر في اختيار لغة البرمجة ومنصات العمل، يتوقف على اهتماماتك ورغبتك. نصيحتي الشخصية، اذا كنت تريد ان تمتهن هذا المجال، ابدء مع تكنولوجيا مايكروسوفت، ولغة السي شارب. فهي الأن تمكنك من كتابة جميع انواع التطبيقات بلغة واحدة تطبيقات وخدمات الويب + تطبيقات سطح المكتب + تطبيقات الموبايل! بالإضافة لخدمات الحوسبة السحابية وفي أي حالة من الحالات، يجب أن يكون لديك معرفة بأساسيات الويب، طبعا HTML, CSS, JavaScript، ويمكنك ايضا الاكتفاء بهذه التقنيات، والعمل في تصميم الويب، وتساعدك في إنشاء تطبيقات جوال هايبرد Hybrid، تعمل على جميع الأجهزة. في النقطة الاولى انت بحاجة لمزيد من الوقت لاتقان التقنيات اذا لم يكن لديك معرفة مسبقة بها، في النقطة الثانية تقنيات الويب اسرع في التعلم، ولا غنى عنها. ويمكنك الاكتفاء بها كما ذكرت. اخيراً اكرر نصيحتي بأن تلتزم بما تراه يوافق اهتمامك ورغبتك، فجميع التقنيات واللغات لها مجال عملها وهناك الكثير من الناجحين في كل تقنية منها. حاول الاطلاع على اكبر عدد منها واختيار المناسب لك. بالتوفيق،،،
  9. كلامك غير صحيح، ولا أعلم من اين اتيت بهذا الربط اخي الكريم. Class, Struct هما تمثيل لبنية بيانات معينة والفرق بينهما ان Class هو Reference Type بمعنى ادق (بيانات يتم تخزينها في الذاكرة العشوائية Heap)، بينما Struct هو بينة بيانات ايضا لكنه Value Type بمعنى ادق (بيانات يتم تخزينها في الذاكرة السريعة او المحدودة Stack) بينما Constructor هو دالة او ميثود رئيسية، يتم استدعائها عند انشاء Object جديد من Class او Struct مثلا لو كان لدي كلاس Student، واردت عمل Object جديد Student student = new Student(); Student هو الكلاس نفسه ;()Student هي استدعاء الـ Constructor الافتراضي ضمن كلاس Student يمكن للكلاس ان يحوي على اكثر من شكل من اشكال Constructor لتهيئة البيانات بقيم معينة. Student student = new Student("Ahmad", 20); هناك بعض الاختلافات بين Constructors كل من Class, Struct ربما اهمها ان Struct لا يحتاج إلى Constructor بدون قيم كما في المثال. لكن المبدأ واحد. بالتوفيق،،،
  10. وعليكم السلام ورحمة الله. اخي الكريم، اكبر الاخطاء التي يقع فيها الجميع، هو تقديم الفرص الوظيفية على التخصص، يعني اذا كان هناك وظائف لهذا التخصص فهو جيد. وهذا خطأ! عدم توفر فرص عمل لتخصص معين يعني ثلاثة أمور: 1. عدم الحاجة الكبيرة لهذا التخصص (سواء بسبب وجود بديل التكنولوجيا الحديثة، أو ان هذا البلد لا يحتاج لهذا التخصص، مثل تخصص هندسة البترول في اليابان على سبيل المثال). 2. عدد الخريجي اكبر بكثير من استيعاب البلد، مثل تخصص المعلمين بكافة الاختصاصات (او مهندسين البترول في السعودية الذين اصبح عددهم اضعاف المطلوب على سبيل المثال ايضا). 3. عدم وجود منافسين وجودة في هذا المجال مما يضطرنا لنكون مستوردين، بدل ان نكتفي ذاتيا. (وأعني في هذه النقطة بالتحديد التخصصات كهندسة البرمجيات) حيث ان العالم كله دون استثناء بحاجة هؤلاء. في امريكا وكندا تعتبر الوظيفة رقم واحد، لكن في بلادنا العربية ما زلنا نعاني من الضعف في هذا المجال. لكن الحاجة ماسة. وخصوصا لبرمجيات ذات جودة عالية. ربما شجعتني بالجواب على سؤالك، كوني احمل نفس التخصص، وقد عانيت من البحث عن وظيفة (وهي لم تكن طموحي اطلاقا) لكن للاسف ثقافتنا الاجتماعية بأن الحصول على وظيفة يعتبر قمة الانجاز بعد التخرج. وهذه ليست من قناعاتي. انا بحثت عن وظيفة في مجال البرمجيات ولم اجد! واضطررت للعمل مع فريق IT، لمدة ثلاثة اشهر لم استطع اكمال العمل رغم سهولته فقدمت استقالتي، وبدأت رحلتي في اختصاصي الذي احبه، والأن بفضل الله تعالى علي وعلى والدي، اصبح لدي شركة برمجيات خاصة (بعد رحلة ثلاث سنوات تقريباً) ولدينا العديد من العملاء الذين يثقون بنا، بل واصبحنا نعمل على مشاريعنا الخاصة التي قد نسوقها ونستفيد منها. واكثر ما قد يساعدك في ذلك هو سهولة انطلاق العمل مع شركة البرمجيات، فهي لا تحتاج لمعدات ثقيلة ولا لتجهيزات تحتية، بالاضافة لتنوع المصادر والمواقع التقنية على الانترنت التي تفيدك في رحلتك، وانت تعلم بالأمر اكيد. نصيحتي لك أن لا تضيع وقتك (وهي نفس النصيحة التي اسداها لي صديقي الهندي عندما كنت اعمل مع فريق IT). اجمع اوراقك، حدد امكانياتك، طموحك واهدافك، وابدأ بالعمل على مشاريع وتطبيقات صغيرة (وهي متوفرة حولك فقط ابحث جيداً) تزيدك خبرة ومعرفة بالعملاء. واذا كنت لا تزال تفضل العمل الوظيفي، بالتأكيد هناك فرص كثيرة، لكن الأمر يحتاج إلى مثابرة في العمل والبحث جنباً إلى جنب مع الصبر. بالتوفيق،،،
  11. وعليكم السلام ورحمة الله. قم بتثبيت الحزمة https://www.microsoft.com/en-us/download/details.aspx?id=22 أولا، ثم اعد عملية تثبيت SQL
  12. مرحباً المكتبات هي ببساطة Code تمت كتابته من قبل مطور او شركة، كما يمكنك كتابة مكتباتك الخاصة. المكتبات تهدف لتسهيل عملية تطوير التطبيقات بحيث انها تقدم البينة التحتية وربما تقدم اكثر من ذلك، بحيث لا ينطلق المطور من الصفر بل ينطلق من نقطة متقدمة. بالإضافة لكونها قابلة لإعادة الاستخدام في تطبيقات أخرى. كمثال: لنأخذ مكتبة التعامل مع الملفات IO، والحديث ينطبق هنا على أية لغة برمجة. تهدف مكتبة IO لتسهيل عملية قراءة الملفات والكتابة عليها وتعديلها وكل العمليات المرتبطة، فاذا كان لديك تطبيق يتعامل مع الملفات فانت بالتأكيد بحاجتها. بالنسبة للاستخدام: وكما ذكرت هي كود مسبق، بالتالي يعتمد على معرفتك بلغة البرمجة المكتوب بها تلك المكتبة. بعد الإطلاع على الشروحات المقدمة من مطور المكتبة نفسه. لو فرضنا اطار عمل مايكروسوفت وهو .NET Framework. هو عبارة عن مجموعة ضخمة من المكتبات ليس اكثر، تمكنك من تطوير تطبيقات الويب والموبايل وتطبيقات سطح المكتب وخدمات الويب وغيرها الكثير، وكل هذا موثق على العديد من مواقع مايكروسوفت. يتم ارفاق المكتبة ضمن الكود الخاص بنا بتعرفيها في أعلى ملف الكود، كمثال لغة ++C تستخدم include# للاشارة لمكتبة معينة، كمثال #include <iostream> #include <math> نلاحظ اننا بإمكاننا اجراء العمليات الرياضية المتقدمة مثل Sin Cos, Tang وغيرها، باستخدام المكتبة Math. لغة السي شارب #C: using System.IO بإمكاننا التعامل مع الملفات الان ضمن سي شارب لغة الجافا Java import java.swing.*; ضمن جافا بإمكاننا التعامل مع واجهات المستخدم ولغة البايثون ايضا تستخدم import للاشارة للملفات. لذلك في المرة القادمة عن المحاولة في تطوير تطبيق معين، يجب البحث اولا عن مكتبات تسهل علينا عملية التطوير. بالتوفيق،،،
  13. وعليكم السلام ورحمة الله وبركاته. سؤال جميل ومن واقعنا اليومي كمطورين، واتفق معك بكل ما قلته. سأحاول الكتابة بشيء من التفصيل كي يستفيد اكبر عدد ممكن من المطورين بداية دعني اعلق على مجموعة نقاط، ثم اعطيك وجهة نظري، والتي ستفيدك ان عملت عليها بشكل جيد: 1. PhoneGap تقنية جميلة في تطوير تطبيقات الجوال بشكل سريع وعلى جميع المنصات، وهو ليس بالضبط عمل موقع ويب وتحويله لتطبيق جوال، بالعكس هذا النوع من التطبيقات يسمى Hybrid أو هجين، يسمح لك بدمج تقنيات الويب مع التقنيات المخصصة لكل منصة، مثلا ( يمكنك استخدام الكاميرا، GPS, Contacts, Notifications) وغيرها الكثير وكله باستخدام جافا سكربت، وثق انها ستعمل جيدا على جميع المنصات، ولي تجربة جميلة معها. لكن يبقى هذا النوع من التطبيقات مفيد في حالات معينة وأخرى لا، خصوصا تلك التي تعتمد على الجهاز وعتاده مثل الالعاب والفيديو وغيرها. 2. مكتبات الجافا سكربت جميلة ومريحة (وكثيرة جدا) واهمها ربما AngularJS، ويمكن استخدامها مع تطبيقات الجوال، مثل تقنية Ionic، التي تعتمد على PhoneGap + AngularJS 3. لن ننسى شيء اسمه تطبيقات اندرويد وايفون، تكنولوجيا الويب قوية ويمكن توظيفها، ولكن لا يمكن التنبؤ بمستقبل التكنولوجيا، لا ننسى Nokia التي اختفت فجأة، وربما تختفي التكنولوجيا التي بين ايدينا اليوم لندخل عالم اوسع واشمل، فالأفضل حالياً الاستفادة من المصادر والتكنولوجيا المتوفرة بالشكل الأمثل. بالنسبة لوجهة نظري، وبعد تقسيم التطبيقات او الحلول البرمجية إلى ثلاثة اقسام رئيسية: 1. تطبيقات الويب 2. تطبيقات سطح المكتب 3. تطبيقات الجوال استطيع القول بأن تكنولوجيا مايكروسوفت هي الافضل في تغطية هذا الطيف الواسع، باستخدام لغة برمجة واحدة، مفاهيم متشابهة، وتقنيات متطورة جداً. كالتالي: 1. تطبيقات الويب: باستخدام ASP.NET طبعا هناك ثلاث تقنيات لها (WebForms, MVC, WebPages) الافضل بالتأكيد هي MVC، بالتالي تطوير تطبيق الويب باستخدام لغة سي شارب، وبنفس مفاهيم MVC يمكنك ايضا تطوير خدمات الويب مثل (Web API) والتي ستقوم التطبيقات الطرفية (Desktop, Mobile) لاحقا باستهلاكها. 2. تطبيقات سطح المكتب: باستخدام السي شارب مرة اخرة لكن مع تقنية جميلة مثل WPF، والتي تمكنك من انشاء تطبيق سطح مكتب بدرجة عالية جدا من الجمالية والكفاءة في حال تم استخدامها بالشكل الصحيح (احد الاشكال الصحيحة هو استخدام نمط التصميم MVVM) واذا لم تجربها من قبل، انصح الان بترك المقالة والبدء بها. 3. تطبيقات الجوال: كلمة السر في عالم البرمجة والتطبيقات هي تطبيقات الجوال، يمكننا ايضا تقسيمها إلى ثلاثة اقسام رئيسية: Native Application Hybrid Application Cross-Platform Application بالتأكيد لديك فكرة عن كل تقنية منها، والافضل بلا منازع من حيث الكفاءة هي تطبيقات Native، ومن حيث السرعة وتوفير الوقت والجهد هي تطبيقات Hybrid و Cross-Platform. لذلك علينا الاختيار؟ لكن ماذا لودمجنا Native مع Cross-Platform مع السي شارب؟ نحصل على التقنية الجميلة Xamarin نعم يمكنك تطوير تطبيق جوال واحد يعمل على جميع الأجهزة وبشكل Native، يعنى باستخدام جميع التقنيات الموجود في كل منصة وبنفس الكفاءة، وبلغة برمجة واحدة هي السي شارب، لا تنسى أن مايكروسوف قامت بشراء شركة Xamarin عام 2016 وطرحت هذه التكنولوجيا بشكل مجاني في النسخة الجديدة من Visual Studio الجميل في هذه التقنية انك تعمل ضمن Visual Studio ولا تغادره، والفكرة تقوم على أن تستخدم كود مشترك على المنصات الثلاث (Android, iOS, Windows Phone)، الكود المشترك يقصد به كود خدمات الويب وادارة البيانات وغيره، يبقى لديك العمل على كل منصة لتطوير الواجهات فقط، واستخدام الكود المشترك لقراءة وتنظيم البيانات، وقد تصل نسبة الكود المشترك إلى 60 او 70 بالمئة او ربما اكثر. لكن يبقى لديك جزء يجب ان تقوم بعمله على كل منصة، وهو ما يتطلب معرفة مسبقة بلغات تلك المنصات، لكن لن تغادر السي شارب انطلاقا من مبدأ في تقنية Xamarin يقول ( ما تستطيع عمله بلغة الجافا او Objective-C او Swift يمكنك عمله باستخدام السي شارب). لكن ماذا لو دمجنا Xamarin مع WPF ونمط التصميم MVVM، سنحصل على التقنية الجميلة ايضا Xamarin Forms، والتي من خلالها يمكنك تطوير الواجهات على جميع المنصات مرة واحدة باستخدام Xaml، او باستخدام سي شارب نفسها. والكود المشترك اصبح 100 بالمئة!!! بالتالي لغة واحدة لجميع طيف التطبيقات الواسع، ولا ننسى ان .NET اصبحت مفتوحة المصدر وتعمل على جميع انظمة التشغيل، واذا كان لديك جهاز ماك، قم بتثبيت نسخة Visual Studio for Mac. اخيراً او ان الفت الانتباه ان هناك توجه لتوحيد منصات العمل بل اصبح رغبة لدى الافراد والشركات على حد سواء، وهو ما تقوم به مايكروسوفت بشكل اكبر من باقي الشركات الأخرى. بالتوفيق،،،
  14. اتوقع سؤالك في استخدام Gmail، لان طريقة ارسال إيميل بواسطة ASP.NET سهلة وموجود العديد من الأمثلة. ليس بشرط ان تستخدم Gmail، الفكرة انه حتى ترسل إيميل يجب ان يتم ارساله من عنوان ايميل اخر، لذلك حتى تتمكن ASP.NET من ارسال ايميل لجهة معينة يجب ان يكون لديها صلاحية استخدام ايميل معين لترسل من خلاله، يمكنك استخدام اي عنوان بريد (بشرط ان تكون صاحب هذا البريد) لانه يطلب تزويد كلمة المرور، لان ASP.NET تحتاج لكلمة المرور حتى تتمكن من الدخول للايميل وإرسال الإيميلات نيابة عنك. بالنسبة للعملاء يمكنك الإرسال إلى أي نطاق ايميل موجود. ضمن MailMessage يوجد خاصية اسمها To وهي عبارة عن (List of String) يمكنك اضافة اي ايميل اليها، بمعنى يمكنك تحديد جهات الارسال باضافتها إلى هذه القائمة. فيما يتعمل ب Gmail والمنفذ 578 هي اعدادات خاصة ب Gmail، ولو استخدمك ايميل اخر يجب ان تتطلع اولا على الاعدادات المرفقة له، غالبا الايميلات تعمل على المنفذ 25. لو قمت بحجز دومين معين ومساحة معينة، ستجد هذه الاعدادات موضحة على موقع السيرفر المضيف. ملاحظة: اغلب الشروح تستخدم Gmail لانه اغلب المستخدمين لديهم حساب Gmail، لكن لو كان لديك موقع معين بالتالي ستحتاج لاستخدام ايميل الخاص بالموقع مثلا info@exmaple.com بالتوفيق،،،
  15. وعليكم السلام ورحمة الله. انت بحاجة مفهوم Master Page، وفيه يكون الهيكل العام المشترك للصفحة (القوائم وترويسة الصفحة وغيرها) في صفحة منفصلة، ويكون هناك قسم متغير مثل العمود الثاني في الصف الثالث. انت بحاجة للغة مثل PHP او ASP.NET لعمل هذه الطريقة، أما اذا كانت جميع الصفحات عبارة عن صفحات HTML بدون سيرفر، هنا يجب تكرار القوائم وHeaders, Footers بكل صفحة، لذلك حاولي بداية عمل كامل القوائم و Header, footer، والروابط العامة، وبعدها قومي بنسخ هذه الصفحة وتبديل الجزء المطلوب (جزء التسجيل، جزء المكتبة وغيره). بالتوفيق،،،
  16. وعليكم السلام ورحمة الله. الفروق كثيرة بسبب اختلاف مكان كل منها من حيث المفاهيم والاستخدام. OOP: مفهوم البرمجة الكائنية، عبارة عن مفاهيم عامة في طريقة تمثيل البيانات، وارتباطها مع بعضها البعض. عملية انشاء كلاس هي العملية الاساسية في OOP. Data Access Layer: المقصود بها فصل العمليات المتعلقة بالتواصل مع قاعدة البيانات (عمليات القراءة والتعديل والحذف وغيرها)، ووضعها في طبقة مستقلة، خلافات لبعض التطبيقات التي يتم دمج كود الاتصال مع قاعدة البيانات مع كود الواجهات، وهو ما يصعب عملية التطوير واكتشاف الاخطاء. MVC: نمط تصميم غير مرتبط ب ASP.NET فقط، بل موجود بكل التقنيات (مثل PHP وحتى Android)، لكن ضمن بيئة ASP.NET فيعتبر بديل ب Web Forms، وهو نمط جميل في تطوير تطبيقات الويب على ASP.NET MVC، ويقوم على فصل التطبيق إلى ثلاث اقسام رئيسية. Model: وهو يمثل هيكيلة البيانات وطبقة Data Access Layer، وما يسمى ب Business Logic، فهو بالتالي غير مرتبط بنوع تطبيقك سواء كان ويب او غيره. View: عبارة عن ألية العرض ل Model، بحيث نقوم بتمرير Model ل View معينة لتقوم بدروها بتوليد HTML المناسب، والذي سيتم ارسالة لاحقا للمستخدم. Controller: هو الرابط بين Model و View، فهوم يقوم بتلقي الطلبات من المستخدم (مثل طلب عنوان ويب معين، يقوم ال Controller بمعالجة هذا الطلب)، ثم يقرر ما النتيجة المطلوبة، هل هي صفحة HTML، او تنزيل ملف معين، أو Web Api وغيرها. بالتالي ليس من مهمة Controller العمليات البرمجية الحسابية او التواصل مع قاعدة البيانات، هو فقط وسيط، يأخذ البيانات من View ويمررها ل Model والذي سيقوم بالمطلوب، او يقرأ البيانات من Model معين ويقوم بتمرريها ل View لتقوم برسمها بشكل HTML. أخيراً أود القول: ان المفاهيم السابقة ليست حكرا على بيئة الدوت نت أو اي لغة برمجة أخرى، هي مفاهيم اساسية مع غيرها من المفاهيم، وهو ما يشكل ما يمسى ب هندسة البرمجيات. مفاهيم اخرى يمكن التعمق بها، على سبيل المثال وليس الحصر: Design Patterns Separation of Concerns Dependency Injection Parallel Programming - Multi-threading بالتوفيق،،،
  17. اخي الكريم. من جهتي لست خبيراً ب PHP، لكن اعطيك نصحية، اذا كان Laravel Framework، يقوم بالعديد من العمليات نيابة عنك، فأنت غير مطالب بالتعمق في PHP، إلا في حدود ما تحتاجه لإتمام عملك. بمعنى؛ لا تتعمق بأي مفهوم إلا في حالة احتجت ذلك المفهوم، وسيكون وقتها سهل عليك دراسته وفهمه ويمكنك التطوير علية أيضاً. اذكر عندما استخدمت ASP.NET Identity لاول مرة، لم أكن أعلم كيف تتم عمليات تسجيل المستخدمين وتسجيل الدخول والخروج وتغيير كلمة المرور وتأكيد الحساب وغيرها، فكانت ASP.NET Identity هي الحل الأمثل الذي اختصر علي الوقت والجهد. لاحقاً مع تطور المشاريع التي اعمل عليها، بدأت اتعمق بها وادرس كل تفصيلة، واضيف المزيد والمزيد من الخواص عليها، حتى صار عندي مكتبات خاصة بتنظيم حسابات المستخدمين. فإياك ان تستمع لمن يفضل البدء بالعمل من الصفر على استخدام Framework جاهز. لأن المطورين الذين انشأوا هذه Frameworks مروا بتجارب وخبرات اكبر من خبارتنا حتى توصولوا لضرورة انشاء Framework خاص يسهل عملية التطوير، وصدقني اذا قلت لك عند نقطة معينة من خبرتك ستجد نفسك في مكانهم قادر على عمل Framework مشابه، وشاهد على ضرورته في تسريع عملية التطوير. بالتوفيق،،،
  18. مرحباً أخي. نعم يوجد لغة عربية هي لغة الجيم، والدكتور الذي قام بإعدادها، كان دكتوري في كلية الهندسة المعلوماتية في سوريا. الموقع الرسمي للغة ج - الدكتور عمار سلكا بالتوفيق،،،
  19. div = division عنصر غير مرئي، يستخدم لاحتواء عناصر اخرى، ويعتبر العنصر الأساسي في عملية تقسم صفحات الويب. الميزة الأساسية له ان خاصية display الخاصة به هي block افتراضيا، والتي تعني سطر خاص بها. يمكن احتواء div داخل div اخرى إلى ما لا نهاية، فتكون الصفحة ككل عبارة عن div، وبداخلها مجموعة من div، يتم تنظيمها وعرضها باستخدام CSS اذا عملت سابقا على Windows Forms او WPF يمكنك التفكير ب div بشكل مشابه ل Panel بالتوفيق،،،
  20. من خصائص الفورم نفسه يوجد خيارين AcceptButton: اختيار الزر لربطه مع الحدث Enter CancelButton: اختيار الزر لربطه مع الحدث ESC
  21. وعليكم السلام اخي الكريم الطريقة الافضل، هي بإنشاء مصفوفة أو List وتضع فيها Forms، وعند فتح فورم جديد تمسح محتويات المصفوفة. شاهد المثال المرفق WindowsFormsApp1.zip
  22. Form2 form2 = new Form2(); form2.Show(); ضع الكود التالي عند الضغط على الزر
  23. مرحبا بك اخي الكريم، الأفضل ان تقوم بدارسة مبادىء البرمجة قبل الخوض في التقنيات مثل Unity أو ASP.NET وغيرها، والجميل ان مبادىء البرمجة في الغالب تنطبق على جميع اللغات. c# tutorial for beginners تجد في هذه السلسلة والقناه الكثير من السلاسل المفيدة للتعلم، هي باللغة الانجليزية، لذلك يجب عليك الاعتياد على التعلم من المصادر الانجليزية، لان المصادر العربية للأسف محدودة جداً. بالنسبة للشق الثاني من السؤال: حول معامل ++ ركز في المثال التالي. int x = 1; int y = 1; Console.WriteLine(x++); // output = 1 Console.WriteLine(++y); // output = 2 Console.WriteLine(x); // output = 2 Console.WriteLine(y); // output = 2 الفكرة الاساسية ان الفاصلة المنقوطة ; تعني انتهاء الجملة وبالتالي تنفيذها، في حالة المتغير x لا تتم الزيادة إلا بعد تنفيذ الجملة وهي الطباعة، وبالتالي سيتم طباعة قيمة x والتي هي 1، ثم ستتم عملية الزيادة بعد عملية الطباعة. في المتغير y الاسبقة لمعامل الاضافة ++ لذلك ستتم عملية الزيادة قبل الطباعة، لذلك النتيجة ستكون 2. لاحظ في السطرين الاخيريين، انه تمت عملية الزيادة للمتغيرين وكانت النتيجة 2، اذا الفرق فقط في توقيت تنفيذ عملية الزيادة. بالتوفيق،،،
  24. ضع هذا السطر ضمن <head></head> اذا كان لديك MasterPage يفضل وضعها فيها، لكي تطبق على باقي الصفحات.
×
×
  • أضف...