![]() |
استفسار خاص للمبرمجين - نسخة قابلة للطباعة +- نادي الفكر العربي (http://www.nadyelfikr.com) +-- المنتدى: عـــــــــلــــــــــوم (http://www.nadyelfikr.com/forumdisplay.php?fid=6) +--- المنتدى: حـاسوب و شبكـات (http://www.nadyelfikr.com/forumdisplay.php?fid=85) +--- الموضوع: استفسار خاص للمبرمجين (/showthread.php?tid=5308) الصفحات:
1
2
|
استفسار خاص للمبرمجين - قارع الأجراس - 04-28-2008 لكل المبرجين الرجاء المساعدة لدي استفسار حول برنامج موسوعة ويكبيديا رابط تحميلها التالي http://reg.kiwix.org/download/ar/moulin_ar_1.0.iso ماهي لغة البرمجة التي يجب تعلمها من أجل إنشاء برنامج مشابه ؟ وماهي البرامج المساعدة في ذلك ؟ ببساطة المسألة كالتالي المعطيات لدينا مجموعة صفحات html المطلوب جمع الصفحات في البرنامج ، البحث في عناوين الصفحات ، البحث داخل الصفحة ، اضافة هامش وتعليق حول جزيئة معينة للرجوع اليها . البرهان ؟؟؟؟؟؟؟؟؟؟ استفسار خاص للمبرمجين - Albert Camus - 07-24-2008 مساء الفل يا قارع الأجراس الموسوعة التي وضعت رابطها مبرمجة بلغة PHP . وعندما تقوم بعمل موسوعة مشابهة فلن تعرض صفحات HTML من الأصل. ولكن ملفاتك ستكون منتهية بالأحرف: php كما أن المحتويات التي يتم عرضها في هذه الموسوعة يتم الحصول عليها من قاعدة بيانات. ولا يتم كتابتها في الصفحة مباشرة. بل يتم تخزينها في قاعدة بيانات. وعندما تستخدم لغة php فغالبا ما سوف تستخدم قاعدة بيانات MySql معها. وليس بالضرورة أن تكون هذه هي اللغة التي يجب عليك تعلمها حتى تنشيء برنامجا مشابها. بل يمكنك فعل نفس الموسوعة بواسطة لغة C# وتنطق هكذا ( سي شارب ) وبالإنجليزية C Sharp . وعندما تتعلم هذه اللغة التي أنشأتها شركة ميكروسوفت . فالخطوة التالية هي تعلم تقنية ASP.NET . وغالبا عندما تستعمل ASP.NET فإنك سوف تستعمل معه قاعدة بيانات Microsoft Sql Server 2005 . والخيار الأخير هو الأغلى من حيث تكلفة الاستضافة ، ولكنه الأقوى من وجهة نظري بسبب أن ميكروسوفت وفرت مكتبة ضخمة من الـ classes ( هي كلمة تدخل ضمن مفهوم برمجة الكائنات أو Object Oriented Programming ). وهذه المكتبة الضخمة توفر الكثير من العمل على المبرمج وتجعل المشروع ينتهي في وقت أقصر. ومكتبة الكلاسات هذه موجودة في حزمة .NET Framework . فلو سلكت هذا الطريق فأول ما عليك هو تعلم لغة C# بغض النظر عن برمجة الوب (لأنه باستطاعتك أن تبرمج تطبيقات ويندوز عادية باستخدام هذه اللغة ). وبعدها تبدأ في تعلم كيفية برمجة تطبيقات الوب باستخدام لغة C# وهذه هي تقنية ASP.NET ثم تتعلم استعمال Microsoft Sql Server 2005 . أما إذا سلكت الطريق الأول فعليك أولا إتقان كتابة وتصميم الصفحات باستعمال التقنيات التالية : HTML CSS وبعدها تنتقل لتعلم لغة PHP ثم تتعلم كيفية التعامل مع MySql . ثم عليك أن تمضي الكثير من الوقت بعدها في دراسة كيفية سد الثغرات الأمنية التي قد تنشأ عن البرمجة بهذه اللغة والتعامل مع البيانات من خلالها. ( وهو شيء اختصرته عليك ميكروسوفت لأن تقنية .NET تقوم بتولي مهمة سد الثغرات بشكل قوي جدا حتى مع جهل المبرمج المبتديء بهذه الثغرات ). ويفضل لو تعلمت أيضا Javasctipt و درست كيفية عمل ملفات XML . كما أود أن ألفت نظرك إلى وجود تطبيقات ويكي مجانية يمكنك أن تقوم بتحميلها ثم تعمل لها install على سيرفر ما، وتصبح لديك ويكي جديدة خالية المحتوى وجاهزة لأن يقوم الناس بالتسجيل فيها والكتابة دون حاجة كبيرة لأن تتعلم أي برمجة. وهذه الخيار هو الأسوأ والأضعف ولكنه موجود. لأنه لا يعطيك نفس التحكم والقوة التي ستحصل عليها عندما تكون خبيرا بالبرمجة وخباياها، وبالتالي هو أكثر خيار سيريحك وفي نفس الوقت أقل خيار يمكنك من خلاله الحصول على ما تريده تماما. وهذا الموقع يقدم العديد من تطبيقات الويكي (وغير الويكي ) الجاهزة الاستعمال : http://opensourcecms.com/ انتظر حتى يكتمل تحميل الصفحة ثم اختر Wiki من القائمة التي على يسارك. وعندها سوف ترى العديد من تطبيقات الويكي الجاهزة الاستعمال. مع عروض لها ولينكات التحميل. وهي تقريبا كلها تعمل بواسطة php - MySql . استفسار خاص للمبرمجين - قارع الأجراس - 07-30-2008 بعد يأس طال أمده ، بدده البرت بنفحةِ من علمه . عزيزي ، لم أفكر في إنشاء موقع ويكبيدي أو ما شابه . وكما هو معلوم فإن برنامج مولان اصدر خصيصاً لمن لا يمتلك اتصال شبكي ، وشدني في برمجته سرعته وسرعة نتائج البحث كونها قاصرة على عناوين الصفحات ، بالإضافة إلى ميزة الإشارات والبحث داخل الصفحات وإمكانية تحميل تحديثاته . وهي ميزات لا تتوافر عليها البرامج الجاهزة الخاصة بإنتاج الكتب الإلكترونية بمختلف صيغها كـ: eBook Workshop ، ebookmaker و KeeBook Creator وتنشئ بصيغة exe وميزة البعض في تعامله مع صفحات ويب ديناميكية. powerchm و WinCHM وتنشئ بصيغة chm " من أمثلتها الموسوعة العربية العالمية " وجميع هذه البرامج تتعامل مع صفحات الـ html ، فساورني اعتقاد بانه قد تم سحب موقع ويكبيديا ومن ثم تسخير بعض لغات البرمجة لإخراجه بهذا الشكل المائز والاستثنائي . حينها فكرت في استفسار أهل الاختصاص فطرقت جاهداً اكثر من باب ، لكن لا جواب . استبشرت خيراً عندما رأيت ردك " فأن يأتي متأخراً خيراً من ان لا يأتي " بيد أن الاستبشار بدأ بالتضاؤل ، لا سيما بعد قراءتي له . ومع ذلك فإن قيمة مادفعني للإستفسار تحفزني على سهر الليالي . في البدء سأنزل قوالب الويكا الجاهزة واري هل تفئ بالغرض . وإن كان ولا بد فإني افضل الطريقة الاولي حيث أن بدأت بطريقة مشابه لها لكنها بدائية قليلاً وهي تكوين قاعدة بيانات بواسطة الاكسس ومن ثم التعامل مع هذه القاعدة بالفيجوال لكني مازالت أقرأ عن هذا الفيجوال ، كما ان قاعدة الاكسس لم استطع حتي هذه اللحظة إدراج صور مع البيانات ، واستلهمت هذة الطريقة بمصادفتي قبل اسبوع لبرنامج الموسوعة الطبية الخاصة بمجلة اللؤلؤة الطبية ، وتواصلت مع مبرمج الموسوعة لكن لم يصلني رد حتي الآن لذا خمنت ان يكون تعامل مع قاعدة الاكسس بواسطة لغة الفيجوال نت . شكراً لاهتمامك ، ولردك الذي سأقرؤه مرارا حتى أصل الخطوط واستبين الأفضل ، ويبدو أنه لا مفر من دورة قصيرة في نظم المعلومات أو تقنيتها لا أدري ايهما أصح . استفسار خاص للمبرمجين - سهيل - 07-30-2008 مكتوب على الموقع Array As stated above, Wikimedia by moulin is two very different projects: * A software project. In order to distribute this content, we had to develop a custom platform based on a lot of open-source technologies. The result itself is GNU GPL code to which anyone can participate (See Group and Code). To enhance quality and ensure sustainability, we set up a partnership with Kiwix, the software behind the WikipediaOnDvd project. * A distribution project. Distributing the software is really hard. One have to burn CDs, mail them, install them and train at least one «teacher». Our strategy is to leverage partnerships with local organizations which would conduct those actions. Unfortunately, we can't reach every organization working in the field ; that's why we maintain this website and give talks in various places. So, Spread the news: Wikimedia by moulin exists and works ! Use it ![/quote] يعني كود البرنامج متاح للاستخدام أو للتعديل . يعني تستطيع استخدام الكود في إنشاء موسوعة مشابهة أو إذا كانت عندك المعرفة الكافية تستطيع تعديل الكود بما يناسب حاجتك. تحياتي استفسار خاص للمبرمجين - Albert Camus - 07-30-2008 مرحبا يا قارع الأجراس. إذن أنت لا تريد عمل Web Site مثل ويكيبيديا. وهذا هو ما فهمته من مداخلتك الأولى. أنت تريد عمل برنامج يعمل في بيئة ويندوز، ويقوم بعرض المقالات مع إمكانية البحث فيها وغير ذلك من الأمور التي يتم بها معالجة النصوص. هنا عليك تعلم برمجة تطبيقات الويندوز. وعليك تعلم كيفية التعامل مع قواعد البيانات أيضاً. هناك برنامج جميل جدا رأيته واستعملته من قبل اسمه "الموسوعة الشاملة". هذه موسوعة إسلامية عبارة عن برنامج مجموع فيه مئات الكتب من الأمهات . مع إمكانيات هائلة من حيث معالجة نصوص تلك الكتب. تخيل مثلاً أنها تتيح لك الإشارة إلى كتاب على هيئة ملف وورد .doc ثم تقوم هي بأخذ الكتاب وتقسيمه إلى صفحات ووضعه في قاعدة البيانات وفهرسته أيضاً. ويمكنك أن تضع أنت بيانات فهرس الكتاب لاحقاً ثم وضعه في القسم المناسب له. وبهذا تصبح مكتبك زادت كتاباً. وأعتقد انه يمكنها أيضا ان تقبل كتباً على هيئة ملفات .html . كما انها تتيح لك وضع علامة على أية صفحة تريد. ووضع تعليقك الخاص بك على تلك العلامة. وبهذا عندما تغلق البرنامج وتفتحه مرة أخرى، سوف تقدر على العودة إلى أي صفحة في أي كتاب عن طريق العلامات التي وضعتها فيه من قبل، وتشاهد تعليقك الذي كتبته على تلك الصفحة والمرفق بهذه العلامة. شيء رائع فعلاً. هذا غير إمكانات البحث المبسطة والمعقدة وإمكانات الفهرسة. وغير ذلك من الإمكانات التي لا أتذكرها الآن. ولكنها كثيرة فعلاً . أنا وضعت فيها موسوعة ول ديورانت كلها بهذه الطريقة. وموسوعة المسيري. فأصبحت لدي إضافة إلى الكتب المتوفرة مع الموسوعة أصلاً ، مكتبة هائلة من المعلومات النصية. يمكنك ان تحملها من هنا http://www.almeshkat.net/books/open.php?cat=37&book=2287 و الرابط السابق يتيح لك تحميلها بالكتب المرفقة داخلها. ويمكنك أيضاً أن تحملها "مفرغة" من أي كتاب، عبارة عن برنامج فقط، ثم تقوم أنت بملئها بالكتب التي تريدها. ومن هنا يمكنك تحميل النسخة المفرغة منها لكي تعمل عليها كما تشاء : http://www.almeshkat.net/books/open.php?cat=37&book=2288 هذه الموسوعة تعتمد على قاعدة بيانات أكسس. ويمكنك أن تعمل شيئا مشابها لها إذا تعلمت تقنية Microsoft .NET وهذه هي الخطوات التي يتعين عليك اتباعها إذا سلكت هذا الطريق: 1- تعلم لغة #C 2- تعلم كيفية برمجة تطبيقات الويندوز بلغة #C 3- تعلم كيفية ربط تطبيق الويندوز مع قاعدة بيانات. سواءً أكسس ، أو Microsoft Sql Server 2005 . أكسس هي الأقل تعقيداً ولا تحتاج سوى أن يكون برنامج الأكسس موجوداً على جهاز المستخدم. أي أنك لن تتعب المستخدم بتعليمات معقدة تجبره على أن يعمل سيرفراً متكاملاً على جهازه حتى يشتغل برنامجك. وإنما يكتفي فقط بتنزيل برنامج أكسس حتى ينزل الـ ODBC Driver الخاص به على جهازة بشكل تلقائي، وبدون حاجة لأن يكون ذلك المستخدم عارفاً بأي تفاصيل فنية عن أي شيء. فقط عليه أن ينزل الميكروسوفت أوفيس. وانتهى الأمر عند هذا الحد، سوف يعمل برنامجك معه بشكل سليم تماماً. وسوف يحتاج إلى تنزيل ملف يسمى Microsoft .NET Framework 2.0 على جهازه. وهذا الملف أيضا لا يحتاج معرفة فنية من المستخدم النهائي لبرنامجك. وإنما يمكن تضمينه من ضمن خطوات الـ Install التي سوف تحصل تلقائياً من خلال برنامجك. وذلك عندما تقوم أنت بإصداره على ملف Setup . يمكنك أيضاً اتباع طرق أخرى ولغات أخرى لعمل مثل هذا التطبيق. ولكني أفضل هذا الخيار. والآن انس تلك الوصلة التي أعطيتك إياها والخاصة بتطبيقات الويكي. فهي غير مناسبة لما تريد عمله. فتلك تطبيقات Web . حيث كنت أحسب أنك تريد عمل صفحة إنترنت مثل الويكيبيديا. وذلك طريق آخر تماماً غير الذي تريده أنت ، ألا وهو عمل تطبيق ويندوز لا يعتمد على أي اتصال شبكي ويكون Offline . وملحوظة أيضا: إن الدورة التي تحسب أنها ستكون قصيرة لن تكون قصيرة أبداً :D. فأنا أمضيت حوالي سنة كاملة ولا زلت حتى اللحظة أدرس في لغة #C ، غير أنني ذهبت نحو تعلم تقنية ASP.NET لصناعة صفحات وب بهذه اللغة. ولست متخصصاً في تطبيقات الويندوز. ولا زلت كل يوم أتعلم أشياء جديدة في هذه التقنية وفي لغة #C . وقد قرأت آلاف الصفحات بدون أي مبالغة في هذه اللغة فقط. وحضرت دورات تزيد على ثمانين ساعة في مركز ميكروسوفت متخصص ودخلت حوالي 5 امتحانات أونلاين معتمدة من ميكروسوفت . ولا زلت أعتبر معرفتي بها متواضعة. فعليك أن تكون ذا نفس طويل إذا كنت تريد سلوك هذا الطريق. وأتمنى لك التوفيق (f) استفسار خاص للمبرمجين - Albert Camus - 07-30-2008 مساء الفل مرحبا سهيل. Array يعني كود البرنامج متاح للاستخدام أو للتعديل . يعني تستطيع استخدام الكود في إنشاء موسوعة مشابهة أو إذا كانت عندك المعرفة الكافية تستطيع تعديل الكود بما يناسب حاجتك. تحياتي [/quote] هذا صحيح. ولكن ما قصدته أنا بعبارة "هذا هو الخيار الأسوأ والأضعف" ليس أن الكود غير قابل للتعديل. فأنا أعرف تصريح الـ GPL وأعرف أنه يعطيك الكود لكي تعدل فيه كما تشاء وتستخدمه في أغراض تجارية. ما قصدته هو أنك عندما تأتي لتطبق هذا فعلياً، فإن الناتج النهائي لن يكون أبداً بنفس الدقة والتحكم الشديد الذي تحصل عليه عندما يكون المنتج من عمل يديك من الصفر حتى النهاية. مثلاً أنا أحببت عمل صفحة مرة وفكرت في الإستعانة بالـ Joomla . ولكني عدلت عن هذا بسبب أن العميل كان يريد مني أن أضيف خيار "تاريخ عيد الميلاد" وخيار "رقم التليفون" (الإجباري الذي يتعين على المستخدم كتابته وإلا فلن يستطيع التسجيل) إلى خيارات تسجيل المستخدم. يحيث أنه يتم تسجيلها في حقول خاصة بها في قاعدة البيانات الخاصة بأي مستخدم جديد يتم تسجيله. على أن يتم عمل حسابات محددة عليها لاحقاً . فقد نحتاج إلى عمل حسابات محددة على تاريخ عيد الميلاد لفعل شيء ما بخصوص ذلك المستخدم عندما يحين عيد ميلاده. كما أردت أنا وضع تطبيق CAPTCHA في تلك الصفحة لحماية نظام التسجيل من الـ Spamming BOTs . ووجدت أنني سوف امضي وقتاً طويلاً جدا في محاولة تعديل الـ Module وصنعه مرة أخرى كيفما أريد ثم اختبار هل سيعمل بشكل سليم مع Joomla أم لا. ووجدت أنها عملية سوف تستغرق الكثير من الوقت لأن الـ Joomla ليست مشروعي أنا منذ البداية وعلي أن أدخل في تفاصيل كثيرة خاصة بها سوف تأخذ وقتاً إضافياً فوق ما أريد عمله. وهكذا أغلقتها وبدأت مشروعاً جديداً على الفيجوال استديو ، وفي خلال يومين كنت منتهياً من كل هذه التفاصيل ومن قاعدة البيانات وكان التطبيق يعمل 100% كما تخيلته وكما حلم به العميل. إضافة إلى أنني أصبحت متحكماً في كل Pixel سوف تظهر في كل صفحة من صفحاته ويمكنني معرفة وتغيير أي مقدار ذرة في تلك الصفحات. هذا هو ما قصدته. خيار الـ Open Source رائع وممتاز ومناسب في حالات محددة (اعتيادية) ولا تستدعي تدخلاً جراحياً عميقاً لتغيير أشياء حساسة . ولهذا هي مناسبة للمشاريع الـ Generic التي يجري فيها عمل نفس الشيء كل يوم، ولا يمانع العميل والمستخدم من أخذ الأشياء بشكلها البسيط والرضا بمستوى معين من الخدمة لا يدخل إلى العمق مثل الأشياء التي ستعملها أنت بيديك كمبرمج محترف. على الأقل هذا رأيي الشخصي. أراكم بعد حين استفسار خاص للمبرمجين - Albert Camus - 07-30-2008 شيء آخر على فكرة يا قارع الأجراس. أنت لا تضع الصورة مباشرة داخل قاعدة البيانات. أنت تقوم بإنشاء فولدر إلى جانب التطبيق الذي تبرمجه. وليكن مثلا اسمه /images/ وتضع الصور داخل الفولدر. وتضع الـ Path فقط في قاعدة البيانات الذي يشير إلى هذا الفولدر. ثم تخبر التطبيق أن يحضر الصورة الموجودة في هذا الـPath ويضعها إلى جانب المقالة في المكان الفلاني. وأيضاً أردت أن أقول لك أنك غير مجبر على أن تقوم بنقل النصوص والصور من ملفات الـ HTML وأن تضعها داخل قاعدة بيانات بالضرورة. أنت هنا تقوم بعمل برنامج ويندوز، وبالتالي لديك خيارات أكثر مني كمبرمج وب. فيمكنك أن تترك ملفات الـHTML كما هي وتخصص فولدر لتضع فيه الصور المرفقة بها. وتجعل برنامجك يقوم بفتح متصفح داخلي Local Browser فقط ليتم عرض هذه الملفات عليه بشكل مباشر. أما قاعدة البيانات في هذه الحالة فسوف تصبح قاعدة بيانات فهرسية فقط. لتنظم بها الأشياء لا أكثر. أي أنها لن تحتوي كما اقترحت عليك في المشاركة السابقة على النص الكامل لكل مقال وعلى مكان الصور الملحقة به. ولكنها ستصبح بسيطة جدا بحيث تحتوي على التقسيمات الأساسية للمواضيع Categories. واسم ملف الـ HTML وعنوان المقالة التي يحتوي عليها وانتهى الأمر على هذا. وعندما تقوم بعمل محرك بحث لتبحث في عناوين المقالات، فسوف تستعين بهذا الحقل البسيط الموجود في قاعدة البيانات لتبحث في عنوان المقالة ثم تعرضها عن طريق إيجاد ملف الـHTML ووضعه للمستخدم في تطبيق الويندوز الذي يحتوي على هذا المتصفح الداخلي. ويمكنك حتى أن تقوم بالبحث العميق داخل النصوص الموجودة في ملف الـHTML باستخدام شيء يسمى StreamReader ، مخصص لقراءة محتويات أي ملف والبحث في محتوياتها. ( شيء سوف تتعلمه عندما تتعلم لغة #C ) . هل ترى؟ هذه الفكرة مختلفة عن فكرة أنك تقوم بأخذ كل شيء من ملف الـ HTML ثم تضعها في قاعدة بيانات وترمي ملف الـHTML بعدها. وأعتقد أنها ستجعل تطبيقك ينتهي بشكل أسرع. ولكن عندها سيكون عليك أن ترفق جميع ملفات الـHTML مع الصور من ضمن ملف الـSetup الخاص بتطبيقك. ويمكن أن نقوم بالتفكير في المزيد من الطرق . المهم حتى تصل إلى هذه النتيجة... هو أن تقوم بالخطوات التي كتبتها لك من قبل وسأكتبها ثانية حتى أكون بهذا قد رددت على سؤالك الأساسي في الموضوع (ماهي لغة البرمجة) : 1- تعلم لغة #C 2- تعلم كيفية برمجة تطبيقات الويندوز باستخدام لغة #C 3- تعلم كيفية ربط تطبيق الويندوز مع قاعدة بيانات أكسس. وعندها سيمكنك فعل أي شيء تريده. برنامج موسوعي أو غير ذلك من البرامج. بالتوفيق مرة أخرى (f) استفسار خاص للمبرمجين - Albert Camus - 07-31-2008 هههههههه ..لقد جئت مرة أخرى :D ولكن فكرتك حلوة وجديرة بالتفكير. لقد خطر على بالي شيء فقط وأحببت أن أقوله لك . وهي فكرة أنه يجب على المستخدم أن يحمل برنامج أكسس حتى يستطيع تشغيل البرنامج الخاص بك. ممكن أيضا نستغني عن هذه الفكرة بأن نصمم قاعدة البيانات الفهرسية البسيطة التي اقترحتها عليك في مشاركتي الأخيرة على ملف XML بدلا من تصميمها على ملف أكسس أو أي قاعدة بيانات. ونتعامل مع ملف الـ XML كأنه قاعدة بيانات بالضبط. وهكذا نستغني تماما عن أي حاجة للاعتماد على أي برنامج قاعدة بيانات خارجي. ويصبح المستخدم جاهزاً لاستعمال البرنامج سواء كان يمتلك ميكروسوفت أكسس على جهازه أم لا. وهذا يحتاج منك إلى تعلم كيفية عمل ملفات XML أيضاً. يمكن أن يكون هذا الموضوع (موضوع الـ XML ) بسيطاً إذا أخذته ببساطة، ويمكن أن يصبح أكثر الموضوعات تعقيداً على الإطلاق لو أحببت الدخول فيه إلى العمق. هناك عشرات الكتب من آلاف الصفحات تتحدث عن الـ XML فقط. وعلى الرغم من ذلك ، فيمكنك أن تتعلم الـ XML في خمس دقائق لو أحببت عمل ملف (على السريع) لتستخدمه بخفة في برنامجك. شيء عجيب أليس كذلك؟ أن يكون هناك تقنية يمكن تعلمها فوراً واستخدامها الآن ... وفي نفس الوقت يمكن أن لا تنتهي من تعلمها أبداً لو أحببت الدخول في تفاصيلها وأصولها. عموماً ضع فكرة الـ XML هذه في الاعتبار.. لأنها سوف تساعدك على استقلالية تطبيقك وتحرره من الاعتماد على أكسس وغير أكسس. والاستقلالية دائماً جميلة... خصوصاُ إذا كانت في متناول اليد. عموماً انا أحاول أن اعطيك أفكاراً "خام" وأعمل معك Brain Storming وأنت خذ هذه الأفكار وشكلها كما تشاء إلى اللقاء:) استفسار خاص للمبرمجين - Albert Camus - 07-31-2008 We meet again MR. Anderson :54454: استكمالا للأفكار التي أطرحها هنا.. بعض النصائح أود أن أسجلها هنا يا قارع الأجراس.. بعض الكتب تبدأ معك بأن تحاول تعليمك كيف تصنع برامج ويندوز باستخدام الفيجوال استديو مباشرة. هكذا خبط لزق. هذه ليست الطريقة الصحيحة للبداية. هناك شيء أريد التشديد عليه. أولا: تجاهل تماما فكرة أنك سوف تصنع تطبيقات ويندوز أو تطبيقات وب. وابدأ في تعلم لغة #C فقط هكذا لوحدها. بعيدا عن تطبيقات الويندوز أو الوب. اللغة اسمها الكامل: Visual C Sharp وأنت ستعمل بها على برنامج من إنتاج ميكروسوفت. اسمه : Visual Studio.NET التكنولوجيا التي تعتمد عليها هذه اللغة اسمها تكنولوجيا الدوت نت Dot Net Framework ما هي هذه التكنولوجيا وما أهميتها بالنسبة للبرمجة بالـ #C ؟ هذا أمر يطول شرحه وسوف تدرسه في الكورسات التي سأذكرها لك لاحقاُ. في هذا البرنامج (فيجوال استديو) يمكنك أن تقوم بتصميم وبرمجة تطبيقات كاملة بلغة (سي شارب). ثانيا: لغة #C تعتمد على مباديء الـ Object Oriented Programming . وصدقني لا يمكنك أن تتعلم الـ Object Oriented Programming من الكتب. ولا بد أن تأخذ هذه المباديء عن شيخ:) وأقصد ب"شيخ" أستاذ معتمد من ميكروسوفت وفاهم ومبرمج محترف ، ومعلم متمكن ، يشرح لك مبادي الـ OOP وهي أحرف نختصر بها كلمة Object Oriented Programming . وأفضل كورس في هذا المجال هو المقدمة في لغة #C وهو كورس معتمد من ميكروسوفت. ورقمه (2124) وتفاصيله في الوصلة التالية: http://www.microsoft.com/learning/en/us/sy...2124Cfinal.mspx هذه هي :
استفسار خاص للمبرمجين - Albert Camus - 07-31-2008 كمان فكرة أخرى... لأنني وجدتك تلقى صعوبة بين مصطلحي نظام المعلومات وتكنولوجيا المعلومات. نظام المعلومات Information System يمكن تعريفه بأنه دورة حياة المعلومات. بدءاً من جمع المعلومات - ثم تخزين المعلومات - ثم معالجة المعلومات من تنظيم وتصنيف وتخلص من معلومات قديمة - ثم تقديم المعلومات كمنتج - ثم تلقي المردود أو الاستجابة من الناس على هذا المنتج وهو ما يمكن أن نقول عنه الـ Feedback ، والـ Feedback هذا هو بداية معلومات جديدة يتم جمعها من جديد لنذهب مرة أخرى إلى بداية دورة الحياة هذه. (يمكنك أن ترسمها على شكل دائرة بحيث يتجه سهم من كل مرحلة إلى المرحلة الآخرى ، ثم عودة إلى المرحلة الأولى من المرحلة الأخيرة Feedback ). أما تكنولوجيا (أو تقنية) المعلومات Information Technology ، فهي الطريقة الفنية التي سوف نستخدمها نحن والتي يتم بها المرور في مراحل دورة حياة المعلومات هذه. من حيث التخطيط لهذه الدورة والبدء في "خلق" "كائناتها" الفعلية وعناصرها الملموسة التي ستمر في مراحلها المختلفة. فكما أن هناك حياة (نظام) فهناك ولا بد أحياء (كائنات) ولا بد أن يكون هناك طريقة (تقنية/تكنولوجيا) يتم بها التخطيط للحياة وكيفية مرور الكائنات فيها وخروجهم منها. والتكنولوجيا تختلف كثيراً باختلاف المهنة التي يتم فيها استخدام نظام المعلومات. ولكن نظام المعلومات يبقى هو هو في جميع الأحوال. التقنية هي التي تختلف باختلاف المهنة. فمثلا الإعلامي يتعامل مع نظام المعلومات بالكاميرا الديجيتال وأساليب معالجة الفيديو والمونتاج (إلخ) وهذه هي تقنية المعلومات التي يستخدم بها الإعلامي نظام المعلومات في دورة حياته المتكاملة والكائنات هي ملفات الفيديو والصور التي تنتج عن هذا العمل الإعلامي. والمكتبي يستخدم الفهرسة والتصنيف والترفيف وخدمة الإعارة والتخلص من المواد القديمة. وهذه العلوم هي تقنية المعلومات الخاصة بالمكتبي والتي يتعامل من خلالها مع دورة حياة المعلومات (نظام المعلومات).. والكائنات هي الكتب والوثائق التي تولد وتنمو وتموت في النهاية. والمبرمج يستخدم لغة البرمجة والتقنيات المدمجة بها في إخراج برنامج جديد يتم به معالجة المعلومات. وهكذا يتعامل المبرمج مع نظام المعلومات في دورة حياته. والكائنات هي البرامج نفسها. ولغة الـ #C مثلا نفسها تحتاج إلى تقنيات حتى يمكن استخدامها. فهناك "تقنية" تسمى ASP.NET وهي : الوسيلة التي يمكن من خلالها استخدام لغة الـ #C من أجل إنتاج صفحات Web . فاللغة نظام بشكل عام. سواء كانت لغة كمبيوترية أو لغة من لغات الإنسان. اللغة نظام معلومات بحد ذاتها..أياً كانت تلك اللغة..لها دورة حياة تولد داخلها كائنات وتنمو تلك الكائنات وتزيد وتنقص وتموت وتولد غيرها وهكذا..هذه طبيعة أي لغة. والوسيلة التي تستخدم بها هذه اللغة تقنية ( في هذه الحالة الـ ASP.NET ). وفي حالة اللغات الإنسانية..تعتبر الكتابة مثلا تقنية. والكلام يعتبر تقنية أخرى. وسائل لاستخدام نظام المعلومات الذي هو اللغة البشرية. والكائنات في حالة اللغة الإنسانية هي الكلمات نفسها التي تولد جديدة تماماً وتنمو من خلال استخدامها في المحادثة اليومية أو في الأدبيات وغير ذلك، وتموت بالتقادم وتندثر من اللغة تماماً فلا تصبح موجودة إلا في كتب التاريخ والآثار فقط ..وتولد كلمات (كائنات) غيرها... وهكذا.. وفي لغة الـ #C مثلا فإن ميكروسوفت تقوم بإلغاء عدة كلمات من اللغة في إصدارها الجديد وتضع بدلاً منها كلمات أخرى وهكذا تولد الكائنات وتموت في نظام معلومات (لغة) #C . وفي حالة تقنية ASP.NET مع لغة #C فإن الكائن هو المنتج الذي سيولد وينمو ثم يموت ( في هذه الحالة الـ Web Site ). وهناك عدة تقنيات أخرى ملحقة بلغة #C مثل تقنية الـ ADO.NET وهي التي تمكنك من استخدام لغة الـ #C في الإتصال بقاعدة البيانات والتعامل معها. والتقنية الكبرى التي هي Microsoft Dot Net Framework والتي تندرج تحتها كل التقنيات الأخرى الصغيرة والتي من ضمنها ASP.NET و ADO.NET وغيرهما خدمة للغة الـ #C وغيرها من اللغات مثل Visual Basic.NET . فالمصطلحين كما ترى عامين ويشملان الكثير من المهن التي تعتبر المعلومات وتداولها ومعالجتها محوراً لها. وطبعاً من ضمنها البرمجة. وكثيراً ما يتم إطلاق مصطلح "نظام المعلومات" على قواعد البيانات الخاصة بمؤسسة ما. والسبب في هذا أن دورة حياة المعلومات في قاعدة البيانات تكون أوضح ما تكون عليه فيها أكثر من أي مهنة أخرى تتعامل مع المعلومات. ولهذا تجد من يتعاملون مع قواعد البيانات مثل الأوراكل والأكسس وMS Sql Server وغيرها من "تقنيات" قواعد البيانات هم أكثر الناس استعمالاً لمصطلح "نظام المعلومات" . لأن هيكلية النظام ودورة حياته وكائناته تبدو أكثر شفافية ووضوحاً أمام عيني أخصائي قواعد البيانات أكثر منها في أي مهنة أخرى. ... أراكم بعد حين |