d 3 يناير، 2018 – الصفحة 13 – مدونة الفريق

اليوم: 3 يناير، 2018

  • [فيديو] بدايتك لبرمجة تطبيقات على Windows Phone

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

  • احمي موقعك من الاختراق: هجوم SQL Injection

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

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

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

    فعلى سبيل المثال لو قمت بكتابة الأمر التالي في موقعك:-

     

    
    String str="Select count(*) from users where username=' " + txtuser.Text + " ' and password=' " + txtpassword.Text + " ' ";
    Int x;
    SqlCommand cmd=new SqlCommand(str,con);
    X=(int) cmd.ExecuteScalar();
    If (x>0){
    FormsAuthentication.RedirectFromloginPage(txtuser.Text,false);
    }
    else{
    lblMsg.Text="Login attempt failed";
    }
    Con.Close();
    
    

     

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

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

    ‘ or 1=1 – –
    فتصبح جملة الاستعلام كالتالي وذلك لأن – – تقوم بحذف جميع ما بعدها :
     
    
    Select count(*) from users where username = ' ' or 1=1 --
    
    وهنا الشرط سيتحقق حيث 1 = 1 والطرف هذا مسبوق ب ( أو )

    أترى خطورة الأمر…أنت الآن قدمت موقعك للمخترق على طبق من ذهب

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

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

    فلحماية موقعك من هجوم ال SQL Injection، يتطلب منك فقط تحسين أسلوبك البرمجي بإتباع التالي:

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

    •   لا تستخدم أبدا طريقة تمرير قيم المستخدم مباشرة في جملة الاستعلام كما في المثال الذي طرحته سابقا، ولكن يجب عليك استخدام الوسيطات ( SQL Parameters) أو الإجراءات المخزنة (Stored Procedures)

    ولنكتب المثال السابق بطريقة آمنة ولكن لا تنسى قبل استخدام الوسيطات التحقق من القيم الممررة:

     

    
    String str="Select count(*) from users where username=@username and password= @password";
    cmd.Parameters.AddWithValue("@username", txtuser.Text);
    cmd.Parameters.AddWithValue("@password", txtpassword.Text);
    Int x;
    SqlCommand cmd=new SqlCommand(str,con);
    X=(int) cmd.ExecuteScalar();
    If (x>0){
    FormsAuthentication.RedirectFromloginPage(txtuser.Text,false);
    }
    else{
    lblMsg.Text="Login attempt failed";
    }
    Con.Close();
    
    

     

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

     

    
    CREATE PROCEDURE sp_getUser
    @username varchar(200) = NULL AS
    DECLARE @sql nvarchar(4000)
    SELECT @sql = ' SELECT [name], [address] ' + ' FROM [USERS] Where [username] = "' + @username + ""
    EXEC (@sql)
    

     

    في هذا المثال يتم أخذ قيمة المتغير @username مباشرة من المستخدم ويدمج مع النص @sql والدالة EXEC تستخدم لتعطي النص كوسيط لتنفيذ الاستعلام وهذا الإجراء قابل للاختراق بالرغم من أخذ قيمة المستخدم كوسيط

    فالمشكلة تكمن في أن الوسيط بدلا من أن يكون هو النص المستخدم للبحث من خلاله في الاستعلام سيكون جزء من الاستعلام نفسه

    ولجعل هذا الإجراء أكثر أمنا بالشكل التالي:
     

     

    
    CREATE PROCEDURE sp_getUser
    @username varchar(200) = NULL
    AS
    DECLARE @sql nvarchar(4000)
    SELECT @sql = ' SELECT [name], [address] ' + ' FROM [USERS] Where [username] = '
    SELECT @sql = @sql + ' [username] LIKE @username'
    EXEC sp_executesql @sql, N'@username varchar(200)', @username
    

     

    •   لا تستخدم حساب المدير للاتصال بقاعدة البيانات بل استخدم حساب محدود.

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

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

    الآن وبعد توضيح طريقة هجوم ال SQL Injection وإعطاءك الحلول اللازمة لتفادي هذا الهجوم والحفاظ على موقعك بشكل آمن

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

     

  • تعرف على SQL CE 4.0

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

    SQL CE لا يحتاج لتنصيب أي نظام إدارة قواعد بيانات أو برنامج أو خدمة في النظام من أجل التعامل مع قواعد البيانات طالما أن إطار العمل دوت نت 4 موجود أو ببساطة يمكنك نسخ المكتبات الخاصة يـ SQL CE  إلى مجلد bin الموجود في تطبيق الـ ASP.NET. لا يوجد هناك أي حاجة لتنصيب أي تطبيق و لا داعي للحصول على سماحيات مدير النظام “administrator”, إنما عليك نسخ تطبيق الويب إلى بيئة الاستضافة فقط.

  • لماذا يظهر خطا 404 في المواقع التي تستخدم asp.net routing

    إن  asp.net routing مفهوم جديد في الدوت نت 4 ، رغم وجود بدايات له في الإصدار 3.5.1 ،  وعند العمل على الخادم المحلي localhost ستعمل معاك هذه التقنية بدون أدنى مشاكل ، ولكن عند الرفع على الاستضافة ، ستجد ظهور مشكلة
    404 – File or directory not found.
    واجهتني هذه المشكلة في كل مرة أرفع مواقعي ، وقررت أن أضع الحل حتى لا يتغلب به إخوة مرة أخرى ، لانني في كل مرة ، كنت أفتح ملف الإعدادات القديم Web.Config  وأنسخ ما وضعته مرة أخرى
    الحل يكمن في التأكد من أن HTTP Redirection ، منصبة على خادم الاستضافة Hosting Server ، وهنا أغلبنا لا يملك الوصل إلى الخادم Server ، وإنما لديه لوحة تحكم عادية ، وغالبا ما تكون هذه الميزة مفعلة في الخادم، وإن أكملت باقي الخطوات ولم تنجح ، قم بمراسلة شركة الاستضافة لتفعلها لك

    الخطوة الثانية ، يتوجب عليك ن تكون بإضافة هذه الوسوم إلى ملف الإعدادات Web.config  ، كالتالي

           <system.webServer>
    <modules runAllManagedModulesForAllRequests="true">
    <remove name="UrlRoutingModule"/>
    <add name="UrlRoutingModule" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </modules>
    <handlers>
    <add name="UrlRoutingHandler" preCondition="integratedMode" verb="*" path="UrlRouting.axd" type="System.Web.HttpForbiddenHandler, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </handlers>
    </system.webServer>

    أيضا لا تنسى من وجود المواصفة targetFramework="4.0" في وسم الإعدادات compilation بهذا الشكل

         <compilation targetFramework="4.0" />      

    بإذن الله ستعمل معاك الأمور الآن بشكل تمام إذا كانت الشيفرة المكتوبة صحيحة ، أيضا في بعض الأحيان ، كان يتوجب علي أن أغير المزود من asp.net 4.0 classic إلى asp.net 4.0 Integrated pipeline
  • هندسة البرمجيات: المنهجيات

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

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

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

    اثناء سير البرنامج من بدايته الى نهايته يمر في عدة مراحل كما اتفقنا، هذه العملية تسمى دورة حياة المشروع software life cycle
    في دورة حياة المشروع هنالك مجموعة عمليات وأنشطة وفعاليات ومهام تقسم وتوزع، طريقة سير هذه المهام تسمى نموذج model

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

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

    منطقيا أول نموذج استخدمه البشر او المبرمجون هو نموذج اللا نموذج، أي العمل بدون وجود نموذج، وهو ما يمكن أن نطلق عليه نموذج ابني وصلح او كوّد وصلح build and fix , code and fix
    build and fix
    وحين الحديث عن هذا النموذج حيث لا طريقة علمية مستخدمة فمن البديهي ان تكون مزاياه أنه يمكنك العمل مباشرة، ولا تحتاج الى تخطيط، لا يحتاج إلى تدريب أو دورات خاصة، كذلك لا تحتاج إلى قواعد للسير عليها، أنت المدير وأنت المحلل، وأنت المبرمج، وأنت مختبر النظام، ولكن حين الحديث عن عيوب هذا المنهج، فحدث ولا حرج، سأقول بعضها، وأترك لكم الباقي، صعوبة صيانة النظام، وصعوبة تطويره مستقبلا، صعوبة فهم النظام من قبل مبرمج آخر إذا أردت أن تسلمه المشروع…. إلخ.

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

    لعل الصورة ما زالت مشوشة لديك ولكن في المرات التالية ستتضح الصورة أكثر إن شاء الله

  • هندسة برمجيات : from z to Agile الجزء الأول

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

    نبدأ بسؤال بسيط ما هو ال Software
    الإجابة سهلة : هو برنامج
    النتيجة : الإجابة خطأ

    البرنامج هو Program ، أما ال Software فله قصة أخرى.

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

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

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

    قرر مهندسوا البرمجيات أن ال Software ليس مجرد برنامج ، ولكنه نظام بمعنى أوسع، له العديد من الأجزاء، لعل آخرها هو الكود، ولربما لا يكون الكود منها أحيانا.

    فقبل عملية بدء البرمجة، يجب أن يكون هنالك فترة جمع المتطلبات، وفهمها وتحليلها، وكتابتها، ومراجعتها … إلخ
    وهذه تسمى عملية التوثيق Documntation ، وهي أساسية في دورة حياة صناعة البرنامج أو النظام، فبدونها سيعمل المبرمج أي كلام، وسيكتب كود قد لا يكون مناسب للمشكلة القائمة.
    أيضا هنالك عملية إدارة المشروع Management، وتحديد وقت البداية ووقت النهاية والمدخلات والموارد.
    ومن تحديد الموارد، هنالك الموارد البشرية، واختيار الفريق، سواء كان المبرمجين أو المصممين، أو محللي النظام … إلخ.
    أيضا هنالك عدة آليات أثناء كتابة الكود، وبعد كتابته مثل Quality Assurance ، و عملية الاختبار Testing ، أيضا حتى بعد تسليم المشروع هنالك فترة الصيانة، والتي تعتبر من ضمن الSoftware

    إذا ما هو ال Software
    هو مجموع كل من التوثيق، وإدارة المشروع، والكود، وفحص الجودة والكفاءة، وكافة الاختبارات، وفترة الصيانة

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

    قام مهندسوا البرمجيات، بوضع خطط وآليات حول كيفية سير ال Software ( سأطلق عليه الآن البرنامج )
    وهذه الخطط لضمان النجاح الأمثل لدورة حياة البرنامج، وتضمنت العديد من الآليات والنماذج.

    سميت هذه الآليات بالنماذج Models ، بها خطة دقيقة وعمليات معينة يجب أن يسير عليها المشروع لضمان نجاحه

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


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

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

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

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

  • أبدع وانشر مع Deep Zoom Composer بدون كتابة حرف برمجي واحد

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

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

    إذا لم تصلك الفكرة كاملة فوق تستطيع رؤية هذه الأمثلة لكي تتضح لك

    صورة كبيرة
    نفسهاعلى موقع يقدم الخدمة مجانا
     صورة كبيرة

    صور متفرقة مجمعة  ويمكن تشغيل حركتها
    صور مجمعة
    نفسها على موقع يقدم الخدمة مجانا
    صور مجمعة

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

    لكي تبدأ في عمل مشروعك الخاص يتوجب عليك تحميل البرنامج من هذا الرابط :Deep Zoom Composer Download
    مع العلم أن هذا الإصدار يستخدم السيلفر لايت الإصدار الثالث.

    افتح البرنامج وقم بإنشاء مشروع جديد

    ستظهر لك نافذة العمل

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

    لننتقل إلى المرحلة الثانية

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

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

    أما على اليمين (فالمستطيل الأزرق) يظهر لك الصور وترتيبها، وتستطيع بالنقر على رمز ( العين ) إخفاء صور أو إظهارها في المشروع،

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

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

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

    الآن عملية النشر ، اضغط على مرحلة (Export) من أعلى البرنامج وستظهر لك الصورة التالية:

    حيث في اليسار الشكل النهائي للنشر وفي اليمين خيارات النشر
    اضغط على(المستطيل الأصفر)Custom  وستظهر الخيارات التالية:

    Output type
    – Images: حيث ستصدر كمجموعة من الصور.

    – Silverlight Deep Zoom وهو الخيار الذي سنعمل عليه وستتصدر الصور على هيئة  كائن سيلفر لايت ، حيث يمكنك نشرها في أي مكان تريده ويلزم مشغل سيلففر لايت بحجم 4 ميغابايت لكي تعمل عليه، ولا أتوقع وجود كمبيوتر الآن بدون هذا المشغل كضرورة وجود مشغل الفلاش على سبيل المثال.

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

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

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

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

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

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

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

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

    وفق الله الجميع

  • Silverlight 5


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

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

    وهذا سرد بالجديد بالتفصيل:

      تحسين دعم الوسائط المتعددة وواجهة الاستخدام:

    1- تحسين دعم  للفيديو H.264 ، وذلك للمعالجات العادية والسريعة ، حيث لن يصبح
    هنالك فرق في الأداء بين الإثنين وذلك باستخدام GPU .
    2- TrickPlay  سيمكنك من تشغيل الفيديو بسرعات مختلفة ، وكذلك تسريع العرض
    الأمام أو الخلف.
    3- تحسين عرض الصوت مع الفيديو
    4- تحسين دعم الطاقة عبر وقف السيلفرلايت أثناء عدم استخدام الكمبيوتر والدخول في
    وضع السبات
    5- التحكم عن بعد بالوسائط

    6- إدارة الحقوق الرقمية للوسائط المتعددة.

      التعديلات في بيئة العمل

    1- Fluid user interface  ستمكنك من بناء تطبيقات تعرض بشكل أسلس  من
    السابق 

    2- التعديلات على النصوص كالتالي
       

        – دعم الأعمدة المتعددة للنصوص حيث سيمنك ذلك من الالتفاف حول
    العناصر.
        – تحسين دعم نقاء النصوص مهذا مثال

        – تحسين أداء دعم خلفية النصوص.
        – تحسين دعم OpenType .

    3- تحسن الطباعة عبر Postscript vector printing  ، حيث يمكن المستخدم من 
    إنشاء التقارير والمستندات وامكانية معاينتها قبل الطباعة، بل وطباعة أجزاء معينة
    مما يعرض على الشاشة.
    4- دعم النقر المزدوج وإضافة أداة Combobox المفضلة لدي .
    5-  تحسين Model View ViewModel (MVVM) ، وكذلك تحسين دعم Databinding .
        – إمكانية إضافة breakpoints  أثناء  binding
        – Implicit DataTemplates ، لإنشاء قوالب على مستوى المشروع.
        – Binding in style setters .
        – إضافة الحدث DataContextChanged  لتمكين التحقق من صحة شيفرة
    الزامل

    6- تحسين دعم الشبكة و Windows Communication Foundatio
        –  دعم background thread  لتحسين أداء الشبكة.
        –  دعم WS-Trust ، حيث تشفير الرسائل وإضافة صلاحيات على
    التواصل بين الشبكات.
    7- التحسينات في السيلفر لايت 5
        –  تحسين XAML parser ، حيث اصبحت الزامل تفتح أسرع في وقت
    العمل، وكذلك أسرع في وقت التنفيذ
        – دعم فعلي لأنظمة تشغيل 64 بت

    8- تحسينات الرسوم
        – GPU تسرع دوال الرسم الثلاثي الأبعاد، وذلك للحصوص على دعم مرئي
    أفضل في تطبيقات الويب.

        – Immediate mode graphics API ، تمكنك من عرض rendering 
    مباشر على GPU.
        – يمكن تمكين مسارع العتاد Hardware acceleration في المتصفح
    Internet Explorer 9.

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

    10- تحسين دعم HTML  داخل السيلفرلايت

    11- تسهيلات للقراءة والكتابة من مجلد الصور والفيديو في جهاز المستخدم.

    12- دعم مباشرة للوصل إلى تطبيقات Microsoft Office، وبعض التطبيقات الأخر من جهاز
    المستخدم ،

    13- دعم كامل للوحة المفاتيح في وضع ملء الشاشة.

    14- وهذه ميزة أيضا رائعة ، حيث يمكنك استدعاء كود غير مدار من خلال السيلفرلايت.

    15- إمكانية عرض أكثر من نافذة في مشروعك

    16- •Microsoft Visual Studio profiling يدعم الآن متابعة الذاكرة ، المعالج ،
    مسارات التنفيذ.

    17- دعم •Visual Studio Team Test.

  • حل مشكلة: عدم إمكانية تعديل قاعدة البيانات في فيجوال ستوديو 2010

    عند استخدام الفيجوال ستوديو 2010 ستواجه مشكلة، أنك لو حاولت التعديل على أي جدول في قاعدة البيانات من خلال Server Explorer فإنك لن تستطيع وسيتطلب الأمر إنشاء جدول من جديد، ولكن الحل بسيط وهو كالتالي:

    هذه المشكلة نفسها موجودة في SQL Server 2008 Management Studio وتطرقت لها سابقا

    وحل المشكلة في فيجوال ستوديو 2010 هو نفسه

    هذا هو نص رسالة الخطأ

    Saving changes is not premitted…..

    .

    والحل بسيط وهو يجب عليك تعطيل الخيار الموضع في نهايةالرسالة

    سواء في فيجوال ستوديو 2010 أو سكول سيرفر 2008 فالحل هو نفسه، اذهب إلى خيارات ثم اتبع ما في الصورة، وارفع الصح عن الخيار الموضح

     

     

     

    بالتوفيق للجميع مع فيجوال ستوديو 2010