Microsoft SQL Server 2008 Service Pack 1

كعادة شركة مايكروسوفت دعم منتجاتها وتحديثها أولا بأول، قامت شركة مايكروسوفت بطرح الحزمة الخدماتية الأولى من التعديلات والإضافات الجديدة لمزود قواعد بياناتها Microsoft SQL Server 2008

واحتوت هذه الحزمة على تعديلات كثيرة من أهمها
1- تغيير اسم خدمة المزود عند تثبيته حيث كان SQLEXPRESS.
2- تسريع تنفيذ جمل تحتوى على OPTION statement حيث كانت بالسابق بطيئة.br />
أما باقي الإصلاحات والإضافات فأنها للخدمات الاضافية الأخرى أو للغات كالصينية وهي ليست بذات أهمية لنا.

ببالنسبة لنا نحن مستخدمو Microsoft Visual Studio 2008 فإنه يتطلب أن تقوم بالتحديث إلى الحزمة الأولى منه وهذا رابط تحميلها :  Microsoft Visual Studio 2008 Service Pack 1 وهذا الرابط بحجمه الكبير شامل كل التعديلات لكافة الإصدارات والملحقات والمنصات، لذلك أنصح ممن لديهم خطوط إنترنت بطيئة بتحمل النسخة المصغرة وهي ستقوم بتثبيت اللازم فقط من الإنترنت وهي عبر هذا الرابط  Microsoft Visual Studio 2008 Service Pack 1 (Installer)

وفي الختام أضع بين أيديكم رابط تحميل الحزمة وهو أهم ما في الأمر

Microsoft SQL Server 2008 Service Pack 1

Microsoft SQL Server 2005 Service Pack 3

قامت شركة مايكروسوفت بطرح الحزمة الثالثة من التعديلات والإضافات الجديدة لمزود قواعد بياناتها Microsoft SQL Server 2005

وذلك لحل بعض المشاكل البسيطة التي تم التبليغ عنها، وبنظري فهذه المشاكل ليست ذات أهمية إلا للمبرجين الذين يستخدمون خدمات المزود المتقدمة

ويمكنكم تحميل الحزمة عبر هذا الرابط:

Microsoft SQL Server 2005 Service Pack 3

وضع الكتابة: اكتب بالاتجاه الذي تريده

هل واجهت يوما معضلة في كتابة نصوص في الموقع عموديا، أو بالمحاذاة التي تريدها !! وبحثت في كل الحلول ولم تجد ما يرضيك فلجأت عندها لحلول نلجأ لها دائما كالخدع لحل العقبات البرمجية، قد تكون استخدمت صورا وكتبت عليها-كما خطر ببالي- أو تكون لجأت لحلول أخرى وتمنيت عندها لو أن امكانيات الأوفيس في التنسيق متاحة جميعها في الويب.

 

ولكن تم حل مشكلة اتجاه الكتابة بإضافة خصائص جديدة للأنماط CSS  ورأيت ذلك أثناء مطالعتي للمزايا الجديدة في انترنت اكسبلورر 8 IE8

حيث تم إضافة الخاصية writing-mode للتحكم باتجاه الكتابة كما بالصورة

حيث ترى الأوضاع الجديدة في محاذاة النص والتي لم نكن نعهداها سابقا

مثال على الاستخدام :

<div style="writing-mode: tb-rl">كتابة أفقية</div>

كتابة عمودية
الحمد لله

 

مع امكانية تغيير الاتجاه حسب القيمة باللون الأحمر في المثال بأحد القيم من الصورة مثل : tb-rl،rl-tb...

مع الانتباه إلى أن أغلب القيم هذه لن تعمل بشكل صحيح في المتصفحات القديمة لأنه لم تكن مدعومة

وفي الختام أحب بأن أضيف الوسوم التي تسمح  بهذه الخاصية وهي :

A, ABBR, ACRONYM, ADDRESS, B, BIG, BLOCKQUOTE, BUTTON, CAPTION, CENTER, CITE, CODE, currentStyle, CUSTOM, DD, DEL, DFN, DIR, DIV, DL, DT, EM, FIELDSET, FONT, FORM, hn, HR, I, INPUT, INPUT type=button, INPUT type=file, INPUT type=password, INPUT type=reset, INPUT type=submit, INPUT type=text, INS, ISINDEX, KBD, LABEL, LEGEND, LI, MARQUEE, MENU, OL, OPTION, P, PLAINTEXT, popup, PRE, Q, RT, RUBY, runtimeStyle, S, SAMP, SMALL, SPAN, STRIKE, STRONG, style, SUB, SUP, TD, TEXTAREA, TH, TT, U, UL, VAR, CSSCurrentStyleDeclaration Constructor, CSSRuleStyleDeclaration Constructor, CSSStyleDeclaration Constructor

أدوات التحقق ( Validation Controls )

من المميزات الرائعة التي قدمتها ASP.NET لمطوري المواقع هي أدوات التحقق

لذلك دعنا نرى ما هي هذه الأدوات وما هي الفائدة منها ؟

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

فالتحقق هي قواعد يتم تطبيقها على البيانات المدخلة من قبل المستخدم

وقد قدمت لنا ال ASP.NET خمس أنواع من أدوات التحقق التي تتميز كل منها بوظيفة معينة تختلف عن غيرها والتي وفرت الوقت الكثير لمطوري المواقع فباستخدامها لا تحتاج إلى كتابة سطر برمجي واحد بعكس لغات الويب الأخرى المختلفة التي تطلب برمجة عمليات التحقق باختلاف أنواعها ووظائفها

x-          وسنقوم باستعراض كل نوع على حدة بشكل مفصل وأول نوع فيها هو:

  • RequiredFieldValidator

وهذه الأداة مهمتها التأكد من أن المستخدم قام بإدخال قيمة في المكان المراد أو لا

ولتوضيح ذلك سنعطي مثالا

وهو بعمل جدول من سطرين وعمودين ووضع مربع نص وزر وأداة التحقق RequiredFieldValidator بالشكل التالي مع إعطاء اسم الأداة التي سيتم إجراء التحقق عليه لخاصية ControlToValidate التابعة لأداة التحقق والتي ستكون هنا TextBox1 وأيضا إدخال النص الذي تريده في خاصية ErrorMessage وهي رسالة الخطأ التي تظهر للمستخدم في حال لم يدخل قيمة في مربع النص مع ترك خاصية Text فارغة  :

بعد ذلك قم بتنفيذ الصفحة وتجربة الحالتين : الأولى بإدخال قيمة في مربع النص والضغط على الزر وفي هذه الحالة لن تظهر رسالة الخطأ والثانية بترك مربع النص فارغ والضغط على الزر وفي هذه الحالة تظهر رسالة الخطأ تعلمك بوجوب إدخال قيمة معينة

وأريد أن أقوم بالتنبيه على أمر مهم ألا وهو التأكد من أن خاصية CausesValidation التابعة للزر تأخذ القيمة True وذلك لإنجاز عملية التحقق عند الضغط على الزر

  • النوع الثاني من أدوات التحقق وهو: CompareValidator

وهذه الأداة مهمتها المقارنة بين قيمتين إما من خلال المقارنة بين قيمة مدخلة في مربع نص وقيمة مدخلة في مربع نص آخر أو بمقارنة قيمة مدخلة في مربع نص مع قيمة ثابتة

وأيضا سنعطي مثالا كسابقتها لتوضيح الفكرة وطريقة استخدامها

وهنا سنقوم بتوضيح الفكرة الأولى وهي بمقارنة قيمة مدخلة في مربع النص الأول مع قيمة مدخلة في مربع النص الثاني

وسيكون ذلك بعمل جدول من 3 سطور وعمودين وإضافة مربعين نص وزر وأداة التحقق CompareValidator بالشكل التالي :

ويلزمنا الاهتمام بالخصائص التالية التابعة لأداة التحقق :

ControlToValidate: وتحتوي اسم الأداة التي سيتم التحقق من البيانات المدخلة به

ControlToCompare: وتحتوي اسم الأداة التي سيتم مقارنته مع الأداة الآخر والذي تم تحديده في الخاصية السابقة

ErrorMessage: وتحتوي على رسالة الخطأ التي ستظهر للمستخدم في حال اختل شرط التحقق

Operator: وهي لتحديد العملية التي على أساسها سيتم التحقق بين القيمتين إما بالتساوي أو غيرها

Type: وهي لتحديد نوع البيانات المدخلة التي سيتم التحقق منها إما أعداد صحيحة أو نص أو غيرها

ولتوضيح الفكرة الثانية وهي بمقارنة قيمة مدخلة في مربع نص مع قيمة ثابتة وذلك بإضافة مربع نص واحد وزر وأداة التحقق وسنهتم بنفس خصائص أداة التحقق التي تم ذكرها عند توضيح الفكرة الأولى مع فارق بسيط وهو أننا هنا لن نهتم بالخاصية ControlToCompare ولكن اهتمامنا سينصب على الخاصية ValueToCompare والتي من خلالها سيتم إدخال القيمة الثابتة بناء على نوع البيانات الذي قمت بتحديده في الخاصية Type

بعدها قم بالتجربة والتنفيذ ورؤية النتائج بنفسك

  • النوع الثالث من أدوات التحقق هو : RangeValidator

وهذه الأداة مهمتها التحقق من أن القيمة المدخلة واقعة تحت مدى معين

لنعطي مثالا لتوضيح الفكرة : سنقوم بإضافة مربع نص وزر وأداة التحقق بالشكل التالي

والاهتمام بالخصائص التالية لها وهي :

ControlToValidate و ErrorMessage و Type: وتم شرحها سابقا ويلزمنا هنا أيضا خاصية MaximumValue وهي لتحديد القيمة القصوى التي لا يمكن أن يتعداها المستخدم عند إدخال قيمة معينة في مربع النص وخاصية MinimumValue وهي لتحديد القيمة الدنيا التي يجب أن يلتزم المستخدم بالبدء منها عند تحديده للقيمة المدخلة في مربع النص

  • النوع الرابع من أدوات التحقق هو: RegularExpressionValidator

وهذه الأداة مهمتها التأكد من صحة صياغة أو شكل القيمة المدخلة يعني على سبيل المثال مربع النص الخاص بالبريد الإلكتروني ، فنحن نعلم أن البريد الإلكتروني يتبع صيغة ثابتة في الكتابة لا يمكن تغييرها ولمنع المستخدم من كتابة أي نص عشوائي في خانة البريد الإلكتروني والتزامه بالصيغة المعروفة له يتم استخدام أداة التحقق هذه ولتوضيح ذلك ، سنضع مربع نص وزر وأداة التحقق وتحديد الصيغة الثابتة التي سيتم التحقق من خلالها من الخاصية ValidationExpression بالإضافة إلى خاصية ControlToValidate و ErrorMessage والتي تم شرحها في أدوات التحقق السابقة

  • النوع الخامس والأخير من أدوات التحقق هو: CustomValidator

لنفترض أننا نريد التحقق من أن القيمة المدخلة تقبل القسمة على العدد 5  ، هنا لا نستطيع استخدام أيا من أدوات التحقق السابقة لأن لا أحد منها يقدم هذه الخدمة ، لذلك لغة ال ASP.Net أضافت هذه الأداة لإتاحة الفرصة أمام مطور المواقع بالتحقق من خلال الأمر الذي يريده والتي لا توفرها أيا من أدوات التحقق الأخرى ولكن يتطلب هنا استخدام Jscript أو VBScript لكتابة الدالة التي من خلالها سيتم التحقق ولنطبق مثالا لتوضيح الفكرة:

في البداية أضف مربع نص وزر وأداة التحقق إلى صفحة الويب وبعدها في صفحة السورس أضف الكود التالي بين بداية ونهاية head tag

  <script language=JavaScript>

        function validateNumber(oSrc, args) {

           args.IsValid = (args.Value % 5 == 0);

        }

    </script>

وبعدها نعطي اسم الدالة لخاصية ClientValidationFunction التابعة لأداة التحقق وبعدها تستطيع تنفيذ الأمر

  • وإذا كنت قد جربت جميع الأمثلة السابقة على نفس صفحة الويب ، فلابد أنك لاحظت أمرا غريبا ألا وهو في حال عدم إدخال قيمة معينة للأداة الخاص يإحدى أدوات التحقق الأربعة والتي تبدأ من الأداة الثانية فإن رسالة الخطأ الخاصة بأداة RequiredFieldValidator ستظهر والسبب أن تلك الأدوات لا تعمل مع القيم الفارغة فهي لا تعتبرها قيما ولحل هذا الأمر وجد ما يسمى  بال validationGroup وهي تعني وضع كل عدة كونترولز مع بعضها في مجموعة ويكون بإعطاء نفس اسم المجموعة للخاصية validationGroup لكل الأداةز التي ستتبع تلك المجموعة
  • وأيضا لإظهار جميع رسائل الخطأ الموجودة في الصفحة في مكان واحد يتم استخدام الأداة validationSummery ويتم اعطاء قيمة لخاصية التكست التابعة للكونترولز التي سيجرى عليها عملية التحقق ولتكن * وبعدها قم بالتنفيذ بالشكل التالي :

ويمكنك أيضا إظهار رسائل الخطأ في صندوق حوار وذلك بإعطاء الخاصية showSummery القيمة False بينما يتم إعطاء الخاصية showMessageBox القيمة True بالشكل التالي:

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

استخدام مصادقة ASP.NET في تطبيقات سطح المكتب

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

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

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

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

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

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

الخطوة الأولى تكمن في تكوين قاعدة البيانات لمصادقة الويب وهذا باستخدام أداة aspnet_regsql والتي يمكنك استدعاءها من موجه أوامر الفيجوال ستوديو أو من هذا المسار C:\Windows\Microsoft.NET\Framework\v2.0.50727
واختيار قاعدة البيانات المعنية لكي يتم تجهيز الجداول والدوال وباقي ما يتعلق بالمصادقة.

الخطوة الثانية تكون بإنشاء تطبيق جديد ليتم تجربة الأمر عليه ويتم إضافة المرجع System.Web من خلال الضغط بالزر اليمين للماوس على اسم التطبيق واختيار Add Reference
visual studio add new item

visual studio add Reference
وبهذه الخطوة تكون قد أضفت المكتبة أو المرجع المسؤول عن الوصول للقاعدة بنظام مصادقة الويب من اتصال ودوال .

لتوفير العناء من استيراد فضاء الأسماء في كل شيفرة كالتالي:
Improts System.Web.Secutity

أفضل استيراد فضاء الأسماء في كل المشروع وذلك من خلال خصائص المشروع.

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

وكالمعتاد يجب الذهاب لملف إعدادات المشروع وحيث كان في برمجة الويب اسمه web.config هنا اسمه app.config.

قم بإضافة هذه الوسوم آخر ملف الإعدادات وإن لم يكن موجود بشكل افتراضي ملف الإعدادات قم بإضافة ملف جديد عبر إضافة عنصر جديد واختيار Application Configuration File واترك مسماه الافتراضي app.config .
الوسوم هي:
<system.web>   <membership>
    <providers>
      <remove name="AspNetSqlMembershipProvider"/>
      <add name="DevelopersSqlMembershipProvider"
          type="System.Web.Security.SqlMembershipProvider,System.Web,
           Version=2.0.0.0, Culture=neutral,
           PublicKeyToken=b03f5f7f11d50a3a"
           connectionStringName="ConnStr"
           enablePasswordRetrieval="false"
           enablePasswordReset="false"
           requiresQuestionAndAnswer="false"
           applicationName="/"
           requiresUniqueEmail="false"
           passwordFormat="Hashed"
           maxInvalidPasswordAttempts="3"
           minRequiredPasswordLength="4"
           minRequiredNonalphanumericCharacters="0"
           passwordAttemptWindow="10"
           passwordStrengthRegularExpression="" />
    </providers>
  </membership>
</system.web>

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

visual studio web.config

الآن كل شيء جاهز واعتبر نفسك مبرمج ويب وابدأ بعملك المعتاد دون تردد.

كبداية العمل نحتاج لإنشاء بعض المستخدمين وبعض الصلاحيات وذلك عبر

إنشاء مستخدمين :

Membership.CreateUser( UserName,Password)

Membership.CreateUser( "Khalil","Khalil")

أو أن ترسل أي عدد من الوسيطات للدالة كإرسال كافة الوسيطات

Dim status As MembershipCreateStatus
Membership.CreateUser( "Khalil","Khalil")

Membership.CreateUser("admin@developers.ps","Password","Email","Password question","Password answer", True ,status)

والفئة MembershipCreateStatus تشير إلى نجاح أو فشل محاولة إنشاء مستخدم جديد ويمكن كتابة قيمة status لعرض المشكلة سواء كان الخلل في كلمة المرور أو البريد أو حتى لو كان خطأ عام .

والآن حان وقت إنشاء الصلاحيات وكما أسلفت فالأمر هو نفسه الدارج في بيئة تطوير المواقع، وذلك عبر استخدام الفئة Roles.

ولإنشاء صلاحية عليك باستدعاء الدالة CreateRole أما تعيين مستخدم لهذه الصلاحية فسيكون من خلال استدعاء الدالة AddUserToRole بهذا الشكل:

Roles.CreateRole("Developer")
Roles.AddUserToRole("Khalil", "Developer")

ممكن فحص أن المستخدم موجود مسبقا في صلاحية معينة عبر

If Roles.IsUserInRole("Khalil", "Developer") Then
   MessageBox.Show ("Is a developer.")
Else
   MessageBox.Show ("Is not a developer.")
End If

visual studio

يمكن التحقق من المستخدم عبر

If Membership.ValidateUser("Khalil", "Khalil") Then
    MessageBox.Show("User validated.")
Else
    MessageBox.Show("User invalid!")
End If

visual studio



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


أكون قد استعرضت كيفية إنشاء مستخدمين وصلاحيات وتعيين صلاحيات للمستخدمين بدون أن يكلف الأمر دقائق معدودة، والجميل كالمعتاد أن مايكروسوفت لم تنسى شيء وجعلت التكامل في بيئتها أمر يفوق التوقع، ومنها بتوفير مصادقة ASP.NET واستخدامها في تطبيقات سطح المكتب بكل سهولة.

بيئة عمل ASP.NET

بيئة عمل ASP.NET

من المهم أن تعرف كيف يمكنك التعامل مع بيئة عمل لإنشاء المواقع بكل سهولة ويسر، وأفضل بيئة لهذا الغرض هي Microsoft Visual Studio ، والتي تقول مايكروسوفت عنها أنها أقوى بيئة تطوير في العالم.

توفر مايكروسوفت عدة نسخ منها منها ما هو مجاني مثل الويب ديفيلوبر ، أو ما هو مدفوع مثل الفيجوال ستوديو بكافة اصداراته.

== كيف يمكنني إنشاء موقع ؟

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



ستظهر أمامك شاشة يتم من خلالها اختيار مكان حفظ المشروع واللغة المستخدمة وبالنسبة لل location سنظل على خيار File system وذلك لأن السيرفر المستخدم هنا هو السيرفر المحلي وهو ال IIS وموجود على جهازك وليس جهاز آخر كما هو موضح في الصورة

.



لاحظ بدء إنشاء المشروع ثم :



- 1 منطقة العمل :
وفيها يتم إدراج الأدوات وترتيبها ووضع الصور والنصوص أو بمعنى آخر واجهة الصفحة

- 2 صندوق الأدوات :

وهو يحتوي على الأدوات اللازمة للعمل مثل الزر

والقائمة المنسدلة وهم مقسم إلى أجزاء منها الأدوات العامة وأدوات التعامل مع قواعد

البيانات وأدوات التحقق والملحقات والمزيد.


- 3 نافذة المشروع:

وهي تحتوي على محتويات المشروع من صفحات

وفئات ومجلدات وباقي أنواع الملفات.

- 4 نافذة الخصائص:

لكل أداة أو لكل محتوى خصائص يمكن التحكم بها وتعديلها من هذه النافذة.

- 5 التحويل بين ال Markup وواجهة العمل، وهنا ال  Markup تعني ال XHTML وأدوات ال

ASP.NET مع بعضها البعض .

- 6 الصفحات المفتوحة حاليا.
7 - بدء تنفيذ المشروع.

ملاحظة : تستطيع إظهار أي نافذة في حال اختفاؤها من قائمة view

وبعد أن قمت بإنشاء موقع والتعرف على بيئة العمل، سنقوم بعمل أول مشروع بسيط وهو عبارة عن صفحة بها زر وصندوق نص وأداة عنوان ( ليبل( وعند النقر على الزر سيتحول عنوان الليبل بنفس نص الصندوق النصي.

الآن سأقوم بإنشاء

جدول وجعله في المنتصف من قائمة Layout  ثم بعدها Insert Table بالإمكان الضغط على تاب (Tab) من لوحة المفاتيح للانتقال لسطر جديد

ثم اسحب وإفلت زر وهو رقم3 في الصورة وليبل رقم 2

وصندوق نصي رقم 1 وسأقوم بترتيبها


ما الذي سيحدث؟؟

عند النقر على الزر سيتحول اسم الليبل إلى نفس النص المكتوب في صندوق النص وأيضا سيكتب في بداية الصفحة تم بنجاح

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

الخطوات:

1- قم بالنقر في أي منطقة فارغة في منطقة العمل واكتب الكود التالي

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'

فقط السطرين اللذان في الأسفل يجب أن تدخلهم

أنت أما الباقي فإن البرنامج سينشئهم

Button1.Text= " موافق "

Label1.Text = " "

== ما الذي قمت بفعله ؟؟

الذي قمت بفعله هو التالي في حدث بدء تنفيذ الصفحة فإن هذه الشيفرة ستجعل نص الزر " موافق " بدلا من Button وأيضا ستجعل نص الليبل فارغ

2- ثم قم بالنقر المزدوج على الزر واكتب الكود التالي


Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click


Label1.ForeColor = Drawing.Color.Red
If TextBox1.Text <> "" Then
Label1.Text = TextBox1.Text
Response.Write("تم بنجاح")
Else
Response.Write("فشل")
Label1.Text = "أنت لم تدخل نص"
End If

End Sub




ما الذي يفعله الكود؟؟؟

كل هذه الشيفرة سيتم تنفيذها فور النقر على الزر

السطر الثاني يقوم بتغيير لون خط الليبل إلى اللون الأحمر بدلا من الافتراضي الأسود

ثم نشترط التالي

إذا كان الصندوق النصي غير فارغ فليعمل

التالي

يحول عنوان الليبل إلى نفس نص الصندوق النصي

يكتب في بداية الصفحة "تم بنجاح"

وإلا ( أي إذا كان فارغ ) يحدث التالي

يصبح عنوان الليبل "أنت لم تدخل نص"وأيضا يكتب في بداية الصفحة"فشل"

الآن قم بتنفيذ المشروع إما باستخدام CTRL+F5 بدون أن يقوم بالتنقيح أو بالضغط على F5

لوحدها بالتنقيح أو عن طريق المثلث الأخضر في الصورة الثالثة رقم 7 وسنجرب عند ادخال نص وعند كونه فارغا.

أنت ( المستخدم) تقوم بالنقر على الزر فيرسل المتصفح كائن من نوع request إلى السيرفر فيقوم السيرفر والموجود عليه الخادم IIS بالنظر إلى كود ال

ASP.NET الموجود أصلا في حدث النقر ثم يقوم بترجمته إلى كود بناءا على المعطيات HTML ويرسله إلى المتصفح لكي يفهمه وتسمى بعملية الاستجابة response


ما الذي يقوم بعمله الفيجوال استوديو؟؟ صفحة ال ASP.NET عبارة عن صفحة XHTML عادية وبها بعض الإضافات بأسط مفهوم وهي أدوات asp.net.

انقر الآن على تاب source في رقم 5 بالصورة الثالثة من أعلى

سترى ما يوفر علينا كتابته الفيجوال استوديو من كود xhtml و أدوات ASP.NET

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

مقدمة حول ASP.NET للمبتدئين

من منا لم يسمع ب ASP.NET بعد من مطوري المواقع؟!! ، فالجيل القادم سيكون للغات البرمجة التي تزيل العبء عن كاهل المطورين وتختصر الوقت عليهم ، ولذلك سأعرض هنا بعض الأسئلة التي يسألها أغلب من يريد البدء بتعلم هذه اللغة ، وستكون بقدر المستطاع بسيطة وسهلة الفهم

======= ما هي ال ASP.NET

ASP.NET هي لغة برمجية ( مبدئيا ) من شركة مايكروسوفت موجهة لتطوير المواقع.

 

======= قصة حياة ASP.NET :

القصة بكل اختصار، من بداينها كانت هنالك ASP بدون دوت نت و هي عبارة عن في بي سكريبت

وكانت مليئة بالمشاكل وبطيئة وبها عيوب كثيرة لست هنا بصدد ذكرها.

وبعد صدور الدوت نت قامت مايكروسوفت بتطوير ال ASP وجعلها ضمن إطارها وموجهة لتطوير المواقع فالإصدار الأول كان في 2002.

ثم في ال 2003 نزلت ASP.NET 1.1.

في ال 2005 نزلت ASP.NET 2.0.

في ال 2008 نزلت ASP.NET 3.0 و ASP.NET 3.5

وسيصدر في عام 2010 ASP.NET 4.0


======= ما الذي يميز ASP.NET عن غيرها

-- سريعة لأنها تترجم ولا تفسر

-- آمنة حيث هنالك آليات معينة تخفف من اختراق المواقع المبرمج بها

-- مكتبة أكواد ضخمة وهي بلا شك مكتبة الدوت نت

-- أدوات جاهزة كثيرة وعديدة

-- بيئة تطوير متكاملة وهي بدون أدنى شك الفيجوال ستوديو

    والكثير الكثير وهو ما لا يكفي ذكره هنا

-- تكامل وتعدد اللغات

فأنت تستطيع أن تبرمج ASP.NET بالكثير من اللغات ولكن أهمها

Visual Basic .Net

C#.Net

J#.Net

Iron Python


في نهاية الأمر تتحول ال asp.net إلى html التي يفهمها المتصفح ولغة خاصة يفهمها السيرفر فلا بأس من استخدام أية لغة من اللغات السابقة في صياغة شكل الكود (syntax)  فكل يختار حسب ذوقه وخبرته.

وهو سبب عدم اقتراب الكثيرين ممن هم على عجلة من أمرهم من ASP.NET، لأنها تحتاج إلى تعلم لغة قبلها.


======= كيف أبدأ بالعمل على ASP.NET :

بإمكانك أن تكتب كود ASP.NET في مفكرة مثله مثل أي لغة تطوير مواقع

ولكنك تحتاج إلى خادم (IIS).


أو كما هو مفضل استخدام الفيجوال استوديو من مايكروسوفت.

Microsoft Visual Web Developer Express 2008

وهو مجاني وبامكانك تحميله من مايكروسوفت

http://msdn.microsoft.com/vstudio/express/downloads/


======= ما معنى أن لغة ASP.NET غير مجانية

بالنسبة لك كمبرمج وتريد أن تنشئ موقع وتستضيفه فلا بأس عليك

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


وأما إذا أردت أن تعمل سيرفر استضافة وندوز فهنا تحتاج للنقود لأن نظام التشغيل لمايكروسوفت ونظام قواعد البيانات وووو كلها تحتاج لنقود لتركيبها على سيرفرك

بعكس أنظمة وبرامج اللينكس الرخيصة أو غالبا مجانية


وهنا أريد أن أعدل الفكرة الخطأ عند الجميع بأن ال ASP.NET غير مجانية

بالنسبة للمستخدم فلا فرق لديه فهو سيتشري مساحة بنقود

ولكن الفرق عند صاحب السيرفر .


======= الخادم IIS

متصفح الإنترنت مثل الإنترنت اكسبلورر أو الموزيلا فايرفوكس أو النت سكايب لا يفهم إلا HTML

بمعنى آخر لو كتبنا كود ASP.NET في الفرونت بيج أو في المفكرة وحاولنا أن ننفذه.... لن يعمل والسبب كما ذكرت بالسطر الأعلى .


وهنا نحتاج إلى برنامج أو كما يسمى بالخادم وهو يقوم بتحويل كود ASP.NET إلى HTML

وهو ما يحدث فعلا في البي أتش بي

الخادم IIS لل ASP.NET

وخادم الأباتشي لل PHP


الصفحة التي تبرمجها... ترسل للسيرفر

ويقوم الخادم بتحويلها إلى كود HTML وإرسالها للمستخدم ( للمتصفح ).


كيف أقوم بتنصيب الخادم IIS :؟؟؟

الخادم مجاني وهو موجود ضمن اسطوانة الوندوز اكس بي

طريقة التنصيب كالتالي

ابدأ

إعدادات

لوحة التحكم

إضافة أو إزالة البرامج

إضافة إزالة مكونات وندوز ( من اليسار)

ثم اختر خدمات معلومات الإنترنت IIS

وضع اسطوانة الوندوز واتركه ينصب الخادم.


ولكن إذا استخدمت الفيجوال استوديو 2005 أو 2008 فلن تحتاج لهذا الخادم لأنه مرفق معها خادم صغير يسمى كاسيني وهو يغني عن الخادم IIS

مرفق فيديو شرح


======= ما الذي أحتاج إليه بالاضافة إلى بيئة التطوير :

يلزمك مشغل قواعد البيانات SQL Server، فهو مطلوب لاستخدام قواعد البيانات .


======= ما هي أنواع قواعد البيانات التي بإمكاني استخدامها مع ASP.NET :

جميع الأنواع التي تحلم بها

Mysql

MS SQL SERVER : MSDE , 2000, 2005, 2008

MS Access

Oracle

XML كقاعدة بسيطة

والتي لم اذكرها يمكن استخدامها أيضا


======= إذا كان لدي مشروع ASP.NET : كيف أقوم بتشغيله؟

يجب تنصيب نسخة المنصة المتوافقة مع المشروع

سواء 1 أو 1.1 أو 2.0

ثم وضع المشروع في المجلد  Inetpub\wwwroot

ومن ثم تفعيل المجلد إما من الخادم أو من خصائص المجلد ثم مشاركة ويب ثم مشاركة المجلد


ملاحظة

يجب أن تكون لديك خلفية عن احدى اللغات التي ذكرتها بالأعلى قبل البدء في ASP.NET وذلك لنعم بحياة سعيدة


 

أفضل طريقة لتعلم لغة برمجة واحترافها

أتعرف ...أعتقد أنه عند قراءتك للعنوان .... للوهلة الأولى سيتبدى في ذهنك السؤال التالي: هل فعلا هناك طريقة جيدة ومثالية لتعلم لغة برمجة وأيضا احترافها؟؟


أنا أقول لك وبكل ثقة نعم . ولم لا !! فالأمر ليس مستحيلا ولكن الأمر يحتاج بعض الاجتهاد والصبر لتنل ما تريد...إذا لنبدأ رحلتنا معا لتكتشف كيف يمكنك فعل ذلك ولتصل إلى الاحتراف الذي تتمناه.


ولكن قبل أن أبدأ....أنت تعرف أن كل أمر نراه ولا نعرفه نجده صعبا . وأحيانا نقنع أنفسنا باستحالة تعلمه في يوم من الأيام. ولكن في حال تعلمناه...يصبح سهلا جدا بالنسبة لنا حتى أننا نستهين به أحيانا ولا نتذكر كيف أننا كنا نعتبره صعبا أو مستحيلا في يوم من الأيام.


الآن أخبرني :

إن كان لديك الرغبة في تعلم أمر معين في الحياة...مثل تعلم اللغة الإنجليزية أو قيادة السيارة أو تصليح الأجهزة الكهربائية وغيرها...ماذا تفعل ؟؟


الجواب بسيط وأنت تعرفه جيدا .... ستخبرني بأنك ستقرأ كتبا عن الأمر الذي تريد تعلمه وبعدها ستحاول تطبيق ما قرأته لإتقانه يعني إن أردت تعلم اللغة الإنجليزية ستقوم بتعلم قواعد اللغة ومعانيها لكي تستطيع تكوين الجمل وبعد ذلك التحدث بها وبالاستمرار في ذلك ستحترف اللغة وستتكلم بها بطلاقة


إذا...أنت تعرف الطريقة التي بها يمكنك تعلم لغة برمجة واحترافها....فتعلم لغة برمجة ستكون بنفس الطريقة التي تتعلم بها أي أمر آخر في حياتك.


في البداية ستقوم بالبحث عن أفضل اللغات والتي تحمل الكثير من المزايا والإمكانيات الرائعة والتي ستلبي احتياجاتك في الحياة العملية. ولن أخبرك بها فيجب أن تقوم باكتشافها بنفسك لأنك في النهاية ستعتبرها وجهة نظر مني لا أكثر.أنت لديك عقل وتستطيع التفكير وبناء على قراءتك لمساوئ ومميزات كل لغة ستقرر أي لغة الأفضل لك .


الآن لديك اللغة التي تريد تعلمها ولديك الرغبة القوية لذلك وأنا أؤكد على الرغبة كثيرا لأنه بدونها لن تكمل مشوارك في التعلم


ستقوم بعد ذلك بقراءة كتب لتعلم قواعد اللغة ولا تقم بالقراءة كأنك تقرأ قصة أو مجلة للتسلية ولكن يجب عليك القراءة وتطبيق ما تقرأه بالموازنة فما نقرأه ننساه بسرعة ولكن ما نطبقه عمليا يظل محفورا في أذهاننا


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

Dim x as integer

ويتم كتابة نفس الأمر بلغة السي شارب بهذه الطريقة

Int x;

والأمر متشابه عند باقي لغات البرمجة وقس هذا الأمر على غيرها من الأوامر البرمجية..

من هنا نستنتج أنك بتعلم لغة برمجة ...تستطيع الانتقال بسهولة إلى أي لغة أخرى


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


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


سيتطلب منك البحث كثيرا عبر الإنترنت لحل مشاكلك وهو أفضل مرجع لك للوصول إلى ما تتمناه ولا عيب بأن تطلب المساعدة بمن هو أكثر خبرة منك ومع حل كل مشكلة ستكتسب معرفة جديدة وبالمداومة على ذلك ستصبح خبيرا وسترى نتائج تعلمك.


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


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


ترى أنت تتساءل لماذا أتكلم بهذه الثقة الكبيرة وكأنني مررت بهذه التجربة...أقول لك نعم..

أنا أتكلم من تجربتي الشخصية التي مررت بها ...وإلى الآن أتعلم أمورا جديدة في حياتي...فنحن مهما تعلمنا ستظل أمورا كثيرة لا نعرفها وسنظل نتعلم إلى الأبد.


ومن يريد التعلم يبدأ من اليوم ولا يؤجل ذلك للغد وتمنياتي بالتوفيق لكل من سيبدأ باكرا

 

بــرمـج العــالــــم

لقد أصبح المبرمجون جزء لا يتجزأ من حياة البشرية. ولا يستطيع أي شخص كان أن ينكر هذا الواقع، ولن نستطيع تصور هذه الحضارة الدقيقة بأجزائها المعتمدة على الأجهزة والآلات بدون هؤلاء المبرمجين،

ومن وجهة نظري عالم هؤلاء المبرمجين الخاص عالم رائع حيث يحكمه المترجم بقوانينه ( Compiler ) ،فكل من يخالف القوانين يعاقب فورا، بل يتوجب عليه أن يصلح خطأه على الفور إذا أراد الاستمرار،   بصدق عالم رائع بقوانين صارمة.


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


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

أنت طوال يومك تبرمج، فمثلا تقول :

إذا استيقظت باكرا سأذهب إلى الجامعة وإلا سأكمل نومي، با الله ألا تشبه هذه جملة IF الشرطية ؟

بلى، إنها هي.


ثم ترجع إلى البيت وأثناء الطريق تقول :

اختر حالة الغذاء

١ في حالة كان كبسة : سأكل وأملأ معدتي ثم أنام

٢ في حالة كان مفتول : سأكل قليلا

٣ في حالة كان ملوخية : لن آكل منها

٤ أخرى : سأفكر في الأمر


أليست هذه Select Case أو switch ؟


ألسنا كائنات مصرحة من فئة إنسان ؟

ألسنا نحن الكائنات لنا أسماء وشروط في التسمية ولنا خصائص وطرق وأفعال وأحداث ولنا نقطة بداية إنشاء في ذاكرة العالم إلى أن ننتهي ونمحى من الذاكرة.


ولكن لماذا هذه الأمور والعيوب تحصل في العالم ؟!!!

طالما أننا نبرمج فأين المشكلة


المشكلة ليست في المنطق البرمجي واستخدام الصيغ البرمجية Syntax


المشكلة في أمرين:

1- الكومبايلر
2- لغة البرمجة نفسها


ولننظر الآن للكومبايلر

تخيل لو أن الكومبايلر سمح لك بالقسمة على صفر، أو سمح لك بأن تحجز متغير باسم محجوز مسبقا أو سمح لك باستخدام دوال غير موجودة مسبقا.


أو أن نفس الكومبايلر لم ينفذ الشرط الثاني في   الجملة الشرطية أو قام بحذف متغير من الذاكرة بدون سبب.

عندها سيختل برنامجك ولن تستطيع البرمجة بالشكل المطلوب.

وهذا ما يحدث الآن

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


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


عندها سنحصل على برنامج مثل دولنا بكومبايلر سيفشل في النهاية.


ونأتي للمشكلة الثانية وهي لغة البرمجة

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


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


هنالك بعض اللغات من شدة التهاون ومن باب الانفتاح كل شيء جائز بها،  حتى أنك تستطيع أن تصل لمؤشر (Pointer ) أية فتاة من دون مقدمات، في حين نجد بعض اللغات والتي تصرم في قوانينها، وتنفذها تسمح لك بالوصول الآمن للمؤشر عن طريق التفويض (Delegate ) وهذا بالذهاب للمحكمة والاعتراف بهذا أمام العالم وعندها لا مجال للخوف.


بل وأكثر من ذلك بأن تعطيك هذه اللغة مسارات تنفيذ متعددة (Multithreading ) بحيث تسمح لك بأربع مسارات تنفيذ، في حين اللغة التي تعطيك وصول مباشر للمؤشر لا تعطي سوى مسار تنفيذ واحد عند الرغبة بالتعامل الآمن، ولكم أعزائي المبرمجين تصور عالم بمسار تنفيذ واحد، سيبقيك هذا المسار - إذا كانت برامجك تريد المزيد –   مشغول البال ومقيد، وإمكانيات برنامجك محدودة إذا كنت لا تستطيع الاعتماد على مسار واحد لتمضية بقية هذه الحياة إلى الوصول للمسارات الحقيقة في الآخرة.


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

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


حتى مبادئها ليست مفهومة ومعقدة من كثر الإضافات والتعديل، فكل يضيف ويعدل ليشتري به ثمنا قليلا.


هناك لغات أخرى تعبد الحجر، وهناك عبدة النار، وهناك عبدة البقر ، ولك أن تتصور كيف أن مبرمجين يعتمدون على البقر لبرمجة برنامج يعمل على الكمبيوتر !!!!!!!!


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


هذه اللغة التي شهد كافة عظماء البشرية بأنها من خالق هذا الكون وتسمو لتكون لغة البشرية جمعاء، فهي صالحة لكل زمان ومكان وبها من الإمكانيات ما يكفي لاستمرارها دائما.


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


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


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


قد تتساءلون ، كيف عرفت هذا ؟!

الأمر بسيط فلغتي التي تسير حياتي وتنظم تفكيري والتي أخبرتكم عن مزاياها وإمكانياتها وفوائدها الرائعة أخبرتني بهذا ،

فمع الإسلام ..... برمج العالم بأفضل نظام حياة.

هل هذا صحيح Visual Studio 2010 و .NET Framework 4.0 !!

لم يلحق الكثير من مطوري الدوت نت من التعرف على كافة الجديد في منصة العمل الإصدار  2.0 من مزايا وتقنيات ، ولم يلحق أغلب المطورون من التعرف على شيء ضئيل مما طرحته مايكروسوفت في إصدارها الأخير الإصدار 3.5 .. وحقيقة بدء تطوير منصة جديدة بمزايا ومفاهيم جديدة .. أمر مرعب بدون أدنى شك .

 
منذ قرابة الشهر أعلنت مايكروسوفت عن نسخة منتجها الجديد في مجال التطوير تحت مسمى Visual Studio 2010 and the .NET Framework 4.0.
حيث قامت مايكروسوفت بالأمس بطرح أول نسخة CTP  يستطيع الجميع تحميلها والعمل عليها .
وركزت مايكروسوفت في هذه النسخة على خمسة نقاط وهي :
 
1-     riding the next-generation platform wave
دعم لأنظمة التشغيل الجديدة بخصائصها العديدة .
2-     inspiring developer delight
تحسينات وتسهيلات للمطورين في بيئة العمل أو في منصة التشغيل للقيام بالأعمال في وقت أقل ومجهود أقل .
3-     powering breakthrough departmental applications
دعم مواصلة بناء وتطوير تطبيقات أفضل للمؤسسات .
4-     enabling emerging trends
دعم التقنيات والمنتجات والأدوات الجديدة كالمعتاد في كل إصدار جديد .
5-     democratizing ALM (application life-cycle management)
تطبيق نظام سير المشروع بأسلوب ALM كما كنا نتمنى أن تدعمه مايكروسوفت ، وبهذا الأسلوب يكون هنالك فصل ووضوح لكل مرحلة في سير البرنامج ، من المبرمجين إلى مدراء المشاريع إلى إخراج المشروع وتجربته .
 
 
Visual Studio Team System 2010 سيحتوي على عارض بنية للمشروع
 
 
Visual Studio 2010 ( الاسم الكودي Rosario ) سيدعم 5 مخططات عمل diagrams ، وسيحتوي أيضا على آلية جديدة لتنقيح بعض أنواع الأخطاء المزعجة والتي كانت بالسابق تتطلب وقتا أطول وهذا يعود إلى أسلوب سير المشروع ALM .
 
 
 ورغم الكثير من الأنباء عن الإضافات الجديدة في بيئة التطوير ، إلا أنني لم أقرأ شيء مفيد حقا ويعطي للمطورين تصور عن الجديد في .NET Framework 4.0 مثل ما هو الجديد في C# 4  ، هل يا ترى ستحتوي على الكثير من الإضافات كما احتوى الإصدار الثاني منها ؟؟
 
ولكن ماذا حول الويب ؟!! ، أعتقد أن الجميع قد انبهر من الإضافات العديدة والمتنوعة في ASP.NET 2.0  من طرق وأساليب وأدوات وشيفرات جديدة أزاحت الحمل عن كاهل المطورين ، في هذا الصدد قرأت أن مايكروسوفت ستدعم JQuery  بشكل أوسع وتمكن لها intellisense كالجافا سكريبت .
 
وقد قامت مايكروسوفت بإنتاج شعار جديد وعصري يناسب هذه المنصة الجديدة وصراحة الشعار أعجبني
 
سأقوم إن شاء الله بتحميل النسخة الجديدة وأوافيكم بما هو جديد ، لأنني بصراحة لم أرتاح على الفيجوال استوديو 2008 كثيرا فهو أتعبني بمحرره الغير جيد كفاية كمحرر سابقه 2005 رغم التعديلات والإضافات الجديدة إليه
يمكن تحميل النسخة الجديدة بحجم 7 جيجا على هذا الرابط لمن يرغب بذلك
 
 
 
 
نسأل الله أن يكون هذا الإصدار فاتحة خير للجميع كسابقه