• الإعلانات

    • فيصل الحربي

      تسجيل عضوية جديدة في المنتدى   01/31/2016

      السلام عليكم ورحمة الله وبركاته  عزيزي العضو الجديد :  حاليا رسالة الإيميل لتأكيد صحة إيميلكم تذهب للبريد العشوائي ( جاري حل المشكلة )  فإذا لم تجد رسالة التحقق من إيميلكم في صندوق الوارد لديكم إتجه للبريد العشوائي ( JUNK)  وقم بتفعيل إشتراككم من هناك   

bashmohandes

المشرفين القدامى
  • عدد المشاركات

    3,178
  • تاريخ الانضمام

  • تاريخ اخر زياره

كل شيء نشر بواسطة bashmohandes

  1. السلام عليكم و رحمة الله و بركاته. هذا مشروع قمنا به كمجموعة من المطورين المصريين و العرب للارتقاء بمستوى صناعة البرمجيات في مصر و العالم العربي عن طريق فتح قنوات لتبادل الخبرات و المناقشة المفتوحة, و ننافش مواضيع عدة بشكل دوري عن طريق عدة اساليب 1- الراديو الصوتي على الانترنت, Podcast مقدم من أعضاء الفريق الذي اشرف أن أكون أحدهم. 2- اللقاء الأسبوعي المفتوح من خلال Google+ Hangout و هو اسبوعياً يوم السبت الساعة 8م بتوقيت القاهرة. و نجتمع فيه مع مجموعة المطورين العرب لمناقشة موضوع كل أسبوع.   للمزيد من المعلومات و لتحميل و مشاهدة المحتوى الصوتي و المرئي يمكنك متابعة موقعنا http://www.AskDeveloper.com   كما يمكنك متابعة صفحتنا على الفيسبوك http://facebook.com/askdeveloper   أيضاً يمكنك الاشتراك في الراديو عن طريق iTunes https://itunes.apple.com/us/podcast/ask-developer-podcast/id627390638 أو عن طريق Stitcher  http://www.stitcher.com/podcast/ask-developer-podcast أو متابعتنا من خلال SoundCloud https://soundcloud.com/askdeveloper   أيضاً يمكنك متابعة قناتنا على يوتيوب http://www.youtube.com/user/bashmohandes   يمكنك مشاهدة أو استماع الى مئات الساعات من المحتوى العربي التقني و المشاركة فيه بنفسك و طرح أسئلتك و استفتساراتك و خبراتك. انضم الينا عن طريق أي وسيلة من السابق ذكرها.     أمثلة لبعض المواضيع التي تم طرحها في الاسابيع السابقة   أمن المعلومات - Software Security     Software Testing     Javascript & Node.js     البرمجة لغير المحترفين - كيف تصبح مبرمج     كيف تصبح مبرمج ويب     الشركات الناشئة -Start ups     و العديد من المواضيع سواء مسموعة أو مرئية.
  2. Bill Gates هو شخص عبقري أكثر مما تتخيل :) و هذا لايمنع أنه محظوظ أيضاَ باعترافه هو شخصياً, لكنه حاد الذكاء و يتمتع بقدرة رهيبة على حل المشاكل المعقدة, يكفي أنه عندما قرر أن يتقاعد و يريح أعصابه فهو يحارب مرض الملاريا و يكاد يقضي عليه تماماً.  أنصحك بقراءة كتاب Outliers The Story of Success للمؤلف Malcolm Gladwell 
  3. حضرتك ممكن تفلسف الموضوع كما تريد, لكن الواقع واقع, هل هذا المنتدى به نفس حجم المشاركات و التفاعل الذي كان عليه من عدة سنوات؟ على العلم أنا عضو بهذا المنتدى من عام 2005 و أعرف مدى الاختلاف في التفاعل الذي حدث في خلال الثمان سنوات السابقة. 
  4. هذه المنتديات حالات خاصة و ذكرتها بالتحديد لحصر الحالات النادرة التي لا زالت المنتديات فيها فعالة و غالباً تكون مواقع متخصصة للغاية في مجالات محدودة و بها العديد من الخبراء في المجال. لكن في حالة هذا المنتدى المفترض أنه منتدى عام في البرمجة و التقنيات المختلفة فهو ليس منتدى من نوع خاص. و الدليل ادخل أي قسم من الاقسام و شاهد نوعية الأسئلة و الاجابات (ان وجد)
  5. لهذا قلت ما ندر هناك منتديات نتجت من مجتمعات قوية على الأرض مثلاً XDA Developers للمهتمين ببرمجة الأجهزة المحمولة. لكن هذه منتديات تعد على أصابع اليد الواحدة.
  6. المنتديات عموماً الا ما ندر في طريقها للاندثار. الشبكات الاجتماعية و المواقع المتخصصة مثل StackOverflow و فاعليتها في البحث و التصويت على الاجابات و مستوى الأعضاء و تنوع المواضيع جعل المنتديات من آثار الحقبة الأولى من الانترنت.
  7. نافشنا مواضيع مشابهة في لقائتنا الاسبوعية. على سبيل المثال كيف تصبح مبرمج - البرمجة لغير المتحرفين   كيف تصبح مبرمج ويب   يمكنك متابعة العديد من المواضيع التقنية من هنا http://www.AskDeveloper.com
  8. بسم الله الرحمن الرحيم مقدمة أرى أن الجميع يطلب أسئلة حول الADO.net و أخرون يقدمون دروساً حول الADO.net ... هل هو بهذه الصعوبة؟؟؟ الصراحة في رأيي الADO.net حفظ أكثر منه برمجة فأنت تحاول حفظ خطوات كتابة أكواده أكثر من مجرد تعلمه ... و هنا تبدأ مشكلة تكرار كتابة الأكواد .... ماهي مشكلة تكرار كتابة الأكواد؟؟ هي اعادة كتابة كود ينفذ نفس الوظيفة عشرات المرات في مشاريع مختلفة بدون محاولة الاستفادة من أنه لا يتغير من مشروع لآخر أو يتغير غيراً طفيفاً ما هو الحل؟؟؟ الحل يكون دائماً في طريقتين ... الأولى تستخدم في حالات التكرار المتشابه 100% فهو تسلسل معين من الأكواد يتغير فيه فقط أسماء المتغيرات و في هذه الحالة يكون الحل هو عمل Wrapper لهذا الكود و الWrapper بالمعنى الحرفي هي الغلاف.. أي أننا نقوم بعمل DLL يحوي هذا الكود في شكل منسق و سهل مجرد Function Call بحيث يسهل العمل في المستقبل ..... و هذه الحالة تناسب الADO.net بقوة الطريقة الثانية هي عمل Code Generators و هي في حالات التشابه الجزئي في الأكواد و نسبة التشابه تحدد مدى تعقيد الكود و هذه الحالة ليست نطاق دراستنا الآن و ان كنت سأتطرق لها قريباً ان شاء الله .... عودة الى الADO.net ببساطة الADO.net يحاول تقسيم استخدام الDatabase الى قسمين أو طريقتين الأولى هو الConnection Oriented أو الطريقة المتصلة و الطريقة الثانية هي ال Connectionless Oriented أو الطريقة المنقطعة (التعريب صعب فلا تضحك من فضلك :lol: ) كما أنه يوجد تقسيم أخر من حيث طبيعة العملية نفسها بمعنى أنه قسم العمليات الى Queries و NonQueries و Scalar حيث الQueries هي استرجاع قيم و سجلات من قاعدة البيانات (مثال جمل الSelect) ... و الNonQueries هي تغيير في الData المسجلة أو تعديل في شكل البناء الداخلي للجداول مثل عمليات (Update, Delete, Insert, Alter, Create ..etc) أما الScalar فهي عملية قراءة و لكن ذات طبيعة Summarization أو اختصار للبيانات بعمل عملية محددة عليها مثل حساب المجموع أو المتوسط أو العدد ... الخ و من هنا ظهرت الScenarios أو المواقف الثابتة المملة في الADO و سنحاول سرد الأكثر شيوعاً 1- بداية الConnection و هذا جزء ثابت دائماً و لهذا سأكتبه مرة واحدة ... SqlConnection conn = new SqlConnection("my Connection String"); 2- قراءة Records من الDatabase باتجاه ثابت (قراءة فقط) باستخدام الDataReader ----- من نوع Connection Oriented SqlCommand command = new SqlCommand("Select * From tblUsers", conn); try { conn.Open(); SqlDataReader reader = command.ExecuteReader(); while(reader.Read()) { Console.WriteLine(reader["ColumnName"]); } } catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); } 3- قراءة Data Bulk أو كمية من الData خبطة واحدة (باستخدام الDataSet) ----- من نوع Connectionless Oriented SqlCommand command = new SqlCommand("Select * From tblUsers", conn); SqlDataAdapter adapter = new SqlDataAdapter(command); DataSet ds = new DataSet(); try { conn.Open(); adapter.Fill(ds); } catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); } //Do Whatever You want with the dataset 4- اجراء عمليات تعديل أو حذف أو اضافة ------------ SqlCommand command = new SqlCommand("Delete From tblUsers Where Username='bashmohandes'", conn); try { conn.Open(); command.ExecuteNonQuery(); } catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); } 5-اجراء عمليات على الStored Procedure في حالة Stored Procedure تقرأ معلومات و هذه هي الStored Procedure Create Procedure sptblUserGetAll AS Select * From tblUser و هذا الكود يقوم بالقراءة منها (Connection Oriented Mode) SqlCommand command = new SqlCommand("sptblUserGetAll", conn); command.CommandType = CommandType.StoredProcedure; try { conn.Open(); SqlDataReader reader = command.ExecuteReader(); while(reader.Read()) { Console.WriteLine(reader["ColumnName"]); } } catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); } و هذا الكود في حالة الConnectionLess Oriented SqlCommand command = new SqlCommand("sptblUserGetAll", conn); command.CommandType = CommandType.StoredProcedure; SqlDataAdapter adapter = new SqlDataAdapter(command); DataSet ds = new DataSet(); try { conn.Open(); adapter.Fill(ds); } catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); } //Do Whatever You want with the dataset 6- استدعاء StoredProcedure تقوم بعمليات تعديل على الData في هذا المثال عملية الحذف Create Procedure sptblUserDeleteBySID @SID Int AS Delete From tblUser Where SID = @SID فتلاحظ أن هذه الStoredProcedure تحتاج الى Parameter من نوع int و يكون كود تنفيذها SqlCommand command = new SqlCommand("sptblUserDeleteBySID", conn); command.CommandType = CommandType.StoredProcedure; command.Parameters.Add("@SID", 10); try { conn.Open(); command.ExecuteNonQuery(); } catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); } 7- عمل Query من النوع العددي Scalar مثل عد الUsers في الTable SqlCommand command = new SqlCommand("Select count(*) as num_of_users From tblUsers", conn); int number; try { conn.Open(); number = (int)command.ExecuteScalar(); } catch(SqlException ex) { Console.WriteLine(ex.Message); } finally { conn.Close(); } و هناك بعض السيناريوهات الأخرى و لكن ماسبق كان أشهرها و أكثرها استخداماً و ما كان حاضراً في ذهني الآن و ستجد أنك ستعيد كتابة هذه الأسطر مئات المرات كلما احتجت لتنفيذ هذه العمليات ------- تضييع وقت و الحل بسيط و لن يأخذ منك ثواني ماذا لو كتبت هذه الاسطر كfunctions في class واحدة سيكون العمل أبسط كثيراً و يسهل عملية اعادة الاستخدام و تكون هذه الclass تتبع هذا الInterface public interface MyADO {  void Open();  void Close();  SqlDataReader ExecuteReader(string SQL);  DataSet ExecuteDataSet(string SQL);  object ExecuteScalar(string SQL);  int ExecuteNonQuery(string SQL);  SqlDataReader ExecuteStoredProcedureReader(string spName, SqlParameter[] parameters);  int ExecuteStoredProcedureNonQuery(string spName, SqlParameter[] parameters); } و أعتقد أنك ستشعر بالفرق عندما تكتب الCode بهذه الطريقة MyAdoClass myAdo = new MyAdoClass(); DataSet ds = myAdo.ExecuteDataSet("Select * from tblUsers"); كما أن عمليات مثل اكتشاف الأخطاء و تصحيحها ستكون سهلة جداً أرجو أن يكون الدرس سهل و مفيد و أن تكون الفكرة قد وصلت بوضوح و قريباً دروس في المواضيع المتقدمة ان شاء الله
  9. بسم الله الرحمن الرحيم إذا كنت مبتدئاً في ال#C و تنوي المضي قدُماً فيها فهذا الموضوع موجه لمساعدتك في هذا و نرجو أن يفيدك ستجد هنا كل ما تحتاج اليه من كتب أو مقالات أو أكواد بسيطة أو وصلات لمواقع مساعدة تدعمك في طريقك البداية مع Visual Studio.net (الخطوة الأولى للمبتدئين) للزميل abdelwahed تعلم ال#C بالصوت و الصورة للزميل معتز شمس, تم تصحيح هذا اللينك. محاضرة Power Point لAndres Hejlsberg مصمم اللغة يشرح فيها المبادئ الأساسية للغة.. مقالة C# FAQ's و تحوي كل الأسئلة الشهيرة و اجاباتها و التي تواجه المبتدئين محـاضرة أخرى للمبتدئين في اللغة و تشرح الفروق بين ال #C و اللغات الأخرى مثل ال ++C و ال Java مكتبة الأكواد ستجد أشهر الأكواد الأساسية في ال #C مجموعة رائعة من الSamples تضم 101 Sample مقدمة من Microsoft للمبتدئين كيف تقوم بعمل تحزيم Installer لبرامجك شرح بالصور تثبيت Visual Studio.net بالصور مقــالات الأستــاذ خضر الترزي عن الdotnet دروس في البرمجه بلغة C#2005, تعلم خطوة بخطوة , مع الإجابة عن أي سؤال و سيتم تباعاً وضع وصلات جديدة تُفيدك برجاء عدم إضافة أي ردود شُكر أو استفسارات في هذه المشاركة و الاكتفاء بتقديم و صلات أو تحميل مرفقات مفيدة للمبتدئين مع شرح بسيط
  10. استخدم الonline version فهي أكثر تحديثاً, أنا عن نفسي توقفت عن تثبيت الMSDN على الجهاز ففي 99% من الوقت أكون متصل بالانترنت و لا حاجة لحجز 3 جيجا للMSDN على الجهاز
  11. يا اخي لو لا تعرف لا تفتي في ما لا تعرف, كل لغات الدوت نت في النهاية لها compiler مثل أي لغة و هو مجاني و يأتي مع ال.net framework فمثلاً مترجم ال#C اسمه csc.exe و مترجم الvb اسمه vbc.exe و كلها لها مجموعة من الأوامر التي تتحكم في المترجم من الاخر يمكنك استخدام notepad في كتابة Windows Application و عمل الترجمة بالcsc
  12. مشروع عمل جماعي Blog - Asp.net Mvc

    لم انسحب و لكن هذا الاسبوع انتقلت من كندا الى الولايات المتحدة و انهاء الاوراق مع ضغط العمل يجعل لا وقت لأي شئ
  13. قررت شركة Microsoft بالتعاون مع مجموعة تطوير jQuery أن تقوم الأولى بادراج jQuery كجزء أساسي من ASP.net على المدى البعيد, و على المدى القريب في اصدارات ASP.net MVC التالية, كما تعهدت Microsoft بدعم jQuery تحت مظلة الدعم المدفوع PSS الخاص بمنتجات مايكروسوفت كما أن النسخ التالية من Visual Studio و ASP.net ستضمن دعم كامل سواء للintellisense لjQuery أو مجموعة Controls جديدة مبنية على jQuery روابط الخبر من على مدونة Scott Guthrie و موقع jQuery و مدونة Scott Henselman و فيما يلي بعض لقطات لدعم الintellisence لjQuery في VS
  14. اذا كنت تريد استخدام Linux فحاول أن تستغني عن الModem بأن تستخدم DSL او أي طريقة اخرى فتعريفات الModem على Linux مشكلة كبيرة لأن أغلب الmodems في الأسواق هي Winmodems
  15. المشكلة ليست في Windows أو Linux ال4GB هي حدود ال32bit address range فطالما أنت تستخدم Windows 32bit أو Linux 32bit فلن يستطيع أي منهما استخدام ذاكرة أكبر من 4 GB اذا أردت ذاكرة أكبر عليك أن تغير الجهاز كله الى 64bit و هنا سيكون الحد 128GB من الذاكرة
  16. Enum.parse

    هذا شرح مبسط للFlags http://weblogs.asp.net/wim/archive/2004/04/07/109095.aspx و هذه الصفحة من MSDN http://msdn.microsoft.com/en-us/library/sy...sattribute.aspx بالنسبة للسطر الاخر فعندما تفهم الجزء الأول ستفهم بالتالي هذا السطر فهو يحول من الstring "red, yellow" الى الenum
  17. لا يمكن ان تكون مبرمج بدون قراءة هذا الكتاب

    ما اسم الكتاب؟
  18. فقط غير الconnection string و اجعله يشير الى السيرفر الاخر. ستجد جزء في الconnection string اسمه server او data source و ستجد قيمته تشير الى . أو (local) غيرها بوضع اسم السيرفر أو رقم الIP أو الdomain
  19. أعتقد هذه أسلاك الbus كان يوجد مثلها في كندا, فهم يستخدمون الكهرباء لتشغيل الbus للتوفير كما أنه أنظف
  20. بالنسبة للRemote desktop فقد تم تحديثه كجزء من SP3
  21. الService Packs في العادة تقدم مميزات و تحسينات كثيرة, فعلى سبيل المثال تم اضافة الWireless Networks في XP SP2 بحيث يمكنك استخدام معظم الWireless Network Adapters المدمجة في الأجهزة دون الحاجة الى استخدام التعريفات التي تأتي مع الجهاز
  22. اذا كنت تريد التعمق في الدوت نت اقرأ كتاب #CLR via C ففيه فصل كامل عن الGC
  23. عبارة في السي شارب لم أفهمها

    اقرأ أكثر حتى تستطيع الاستمرار, و اذا وجدت القراءة غير مجدية, انصحك بأن تحاول مع الكورسات
  24. خلاصة القول توجد معايير قياسية و لكن لا توجد متصفحات تدعم المعايير القياسية, و المشكلة أن بعض القواعد في المعايير مكتوبة بطرق مطاطة بحيث أن كل متصفح فهمها بطريقة مختلفة. الحل دائماً يأتي بهذه الوسيلة 1- ابدأ تصميمك على FireFox عدله و طوره, ثم جرب على IE 2- أغلب الظن ستجد فروق و لكن بسيطة يمكن حلها, و ستجد أن بعض الHacks تساعد مثل علامة ! في الcss بمعنى أنك اذا كتبت style مثل width:10px!width:15px; فان الFireFox سيقرأ القيمة الأولى في حين أن الIE سيقرأ القيمتين و ستلغي الثانية الأولى و هنا يمكنك عمل بعض التعديلات على أساس المتصفح. 3- يمكنك استخدام css frameworks مثل Yaml.de 4- اذا وصلت لمرحلة من المشاكل التي تمنعك من الاستمرار ستدخل في حل أكثر تعقيداً و هو عمل ملفcss لكل متصفح و تقوم بقراءة نوع المتصفح و تحميل الملف المناسب, توجد أكواد javascript جاهزة, ضعها في الMasterpage و ستقوم هي بالباقي