Saturday, February 22, 2014

برمجة متقدمة سي شارب الاكواد الغير معالجة او الغير أمنة C# - Unsafe Codes

 الاكواد الغير معالجة او الغير أمنة

  Unsafe Codes

 الاكواد الغير معالجة او الغير أمنة  Unsafe Codes

تسمح لغة السي شارب باستخدام متغيرات المؤشرات في أكواد السي شارب . الكود الغير معالج هو كود يستخدم المؤشرات كمتغيرات,

المؤشر:

المؤشر هو متغير قيمته هي لعنوان لمتغير أخر.لاستخدام المؤشرات فيجب تعريفها قبل استخدامها مثلها مثل أي متغير.

الصيغة العامة لتعريف المؤشرات في سي شارب

type *var-name;

التالي تعريفات صحيحة للمؤشرات

int    *ip;    /* pointer to an integer */
double *dp;    /* pointer to a double */
float  *fp;    /* pointer to a float */
char   *ch     /* pointer to a character */

المثال التالي يستخدم المؤشرات باستخدام محدد الوصولunsafe

using System;
namespace UnsafeCodeApplication
{
    class Program
    {
        static unsafe void Main(string[] args)
        {
            int var = 20;
            int* p = &var;
            Console.WriteLine("Data is: {0} ",  var);
            Console.WriteLine("Address is: {0}",  (int)p);
            Console.ReadKey();
        }
    }
}

ناتج الكود السابق المؤشرات

Data is: 20
Address is: 99215364


استعادة البيانات ذات القيمة باستخدام المؤشرات

لاستعادة البيانات ذات القيمة نستخدم الدالة tostring
using System;
namespace UnsafeCodeApplication
{
   class Program
   {
      public static void Main()
      {
         unsafe
         {
            int var = 20;
            int* p = &var;
            Console.WriteLine("Data is: {0} " , var);
            Console.WriteLine("Data is: {0} " , p->ToString());
            Console.WriteLine("Address is: {0} " , (int)p);
         }
         Console.ReadKey();
      }
   }
}

ناتج مثال المؤشرات السابق

Data is: 20
Data is: 20
Address is: 77128984

تمرير المؤشرات كمتغيرات للدالة


using System;
namespace UnsafeCodeApplication
{
   class TestPointer
   {
      public unsafe void swap(int* p, int *q)
      {
         int temp = *p;
         *p = *q;
         *q = temp;
      }

      public unsafe static void Main()
      {
         TestPointer p = new TestPointer();
         int var1 = 10;
         int var2 = 20;
         int* x = &var1;
         int* y = &var2;
         
         Console.WriteLine("Before Swap: var1:{0}, var2: {1}", var1, var2);
         p.swap(x, y);

         Console.WriteLine("After Swap: var1:{0}, var2: {1}", var1, var2);
         Console.ReadKey();
      }
   }
}

ناتج مثال المؤشرات السابق


Before Swap: var1: 10, var2: 20
After Swap: var1: 20, var2: 10

الوصول لعناصر المصفوفة باستخدام المؤشرات

للوصول لعناصر المصفوفة باستخدام المؤشرات  كما في الس يلس بلس فانك بحاجةلاستخدام fixed keyword.


using System;
namespace UnsafeCodeApplication
{
   class TestPointer
   {
      public unsafe static void Main()
      {
         int[]  list = {10, 100, 200};
         fixed(int *ptr = list)

         /* let us have array address in pointer */
         for ( int i = 0; i < 3; i++)
         {
            Console.WriteLine("Address of list[{0}]={1}",i,(int)(ptr + i));
            Console.WriteLine("Value of list[{0}]={1}", i, *(ptr + i));
         }
         Console.ReadKey();
      }
   }
}

ناتج مثال المؤشرات السابق


Address of list[0] = 31627168
Value of list[0] = 10
Address of list[1] = 31627172
Value of list[1] = 100
Address of list[2] = 31627176
Value of list[2] = 200

لاستخدام الكود الغير امنة عليك تفعيله كالتالي في بيئة فيجوال استديو


  1.  افتح قائمة Project properties 
  2.  ثم اضغط على التبويب Build .
  3.  اختر التالي  "Allow unsafe code".



<<السابق الدالة الغير معروفة


التالي  المعالجة المتعددة >>
---------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------

Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,Business Analysis
Al alami st
gaza -jabaliaGaza Strip
Palestine
ahmed.almahallawi@gmail.com
DOB: 05/10/1984
by +Ahmed Almahallawi 
29/3/2014

No comments

Sunday, February 16, 2014

أساسيات قواعد البيانات التعابير SQL - Expressions

أساسيات قواعد البيانات التعابير 

SQL - Expressions

أساسيات قواعد البيانات التعابير SQL - Expressions

التعابير  SQL - Expressions

التعابير عبارة عن تعليمة  مكونة من  قيمة أو أكثر ومن المشغلات ودوال الا اس كيو ال والتي تستخدم للوصول لقيمة ما حسب الصيغة التي تريد.


بفرض أن الصيغة التالية لدينا

SELECT column1, column2, columnN 
FROM table_name 
WHERE [CONDITION|EXPRESSION];

التعابير المنطقية SQL - Boolean Expressions

SELECT column1, column2, columnN 
FROM table_name 
WHERE SINGLE VALUE MATCHTING EXPRESSION;

بفرض أن لدينا الجدول التالي جدول الزبائن

SQL> SELECT * FROM CUSTOMERS;
+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+
7 rows in set (0.00 sec)

مثال على التعبير المنطقي

SQL> SELECT * FROM CUSTOMERS WHERE SALARY = 10000;
+----+-------+-----+---------+----------+
| ID | NAME  | AGE | ADDRESS | SALARY   |
+----+-------+-----+---------+----------+
|  7 | Muffy |  24 | Indore  | 10000.00 |
+----+-------+-----+---------+----------+
1 row in set (0.00 sec)

SQL - Numeric Expression التعابير الرقمية

الصيغة العامة

SELECT numerical_expression as  OPERATION_NAME
[FROM table_name
WHERE CONDITION] ;

مثال على التعابير الرقمية

SQL> SELECT (15 + 6) AS ADDITION
+----------+
| ADDITION |
+----------+
|       21 |
+----------+
1 row in set (0.00 sec)

مثال على التعابير الرقمية باستخدام دالة العد

SQL> SELECT COUNT(*) AS "RECORDS" FROM CUSTOMERS; 
+---------+
| RECORDS |
+---------+
|       7 |
+---------+
1 row in set (0.00 sec)

SQL - Date Expressions تعابير التاريخ

مثال تعابير التاريخ حسب  سيرفر SQL

SQL>  SELECT CURRENT_TIMESTAMP;
+---------------------+
| Current_Timestamp   |
+---------------------+
| 2009-11-12 06:40:23 |
+---------------------+
1 row in set (0.00 sec)

مثال دالة الحصول عل التاريخ

SQL>  SELECT  GETDATE();;
+-------------------------+
| GETDATE                 |
+-------------------------+
| 2009-10-22 12:07:18.140 |
+-------------------------+
1 row in set (0.00 sec)

Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,SQL
Al alami st
Gaza -jabaliaGaza Strip
Palestine
Marital Status: Single 
DOB: 05/10/1984

14/2/2014
No comments

Thursday, February 13, 2014

السحابة الالكترونية - تخطيط السحابة المحوسبة Cloud Computing Planning

السحابة الالكترونية - تخطيط السحابة المحوسبة

 Cloud Computing Planning

التخطيط للسحابة المحوسبة Cloud Computing Planning

قبل التخطيط لعملية نشر التطبيقات على السحابة المحوسبة يجب ان تاخذ بعين الاعتبار احتياجات المنظمة الحالية والمستقبلية فالتالي هي أغلب المشاكل التي يجب أخذها بعين الاعتبار.
  1. في السحابة المحوسبة Cloud Computing يجب أخذ الاعتبارات لبيانات أمنة واحتياجات الخصوصية
  2. في السحابة المحوسبة Cloud Computing  يجب أخذ اعتبارات الميزانية المالية.
  3. في السحابة الحوسبة Cloud Computing يجب أخذ اعتبارات نوع السحابة المحوسبة هل سحابة محوسبة خاصة - سحابة محوسبة عامة - سحابة محوسبة مهجنة.
  4. في السحابة المحوسبة Cloud Computing اخذ بالاعتبار النسخ الاحتياطي للبيانات.
  5. في السحابة المحوسبة Cloud Computing أخذ بالاعتبار تدريب المستخدمين.
  6. في السحابة المحوسبة Cloud Computing أخذ بالاعتبار نوع لوحة التحكم والتقارير التي تنتجها السحابة.
  7. في السحابة المحوسبة Cloud Computing احتياجات وصول المستخدم.
  8. في السحابة المحوسبة Cloud Computing أخذ بالاعتبار طريقة تصدير البيانات.
لتلبية جميع هذه المتطلبات، فمن الضروري أن يكون هناك تجميع للخطط. هنا في هذا الدرس ، سوف نناقش مختلف مراحل التخطيط التي يجب أن تمارس من قبل المنظمة قبل نقل العمل بالكامل إلى السحابة المحوسبة. سيتم وصف كل من هذه المراحل التخطيط في الرسم  التالي:

السحابة الالكترونية - تخطيط السحابة المحوسبة Cloud Computing Planning

استراتيجية مرحلة التخطيط Strategy Planning Phase

  1. القيمة المقترحة للسحابة المحوسبة Cloud Computing.
  2. استراتيجية التخطيط للسحابة المحوسبة Cloud Computing.

القيمة المقترحة للسحابة المحوسبة Cloud Computing.

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

  1. تبسيط إدارة تقنية المعلومات 
  2. خفض تكاليف التشغيل والصيانة 
  3. احتياجات تطوير  جودة الخدمة.
  4.  استضافة خارجية منخفضة التكلفة
  5. جودة عالية الخدمة عند الاستعانة بالمصادر خارجية.


استراتيجية التخطيط للسحابة المحوسبة Cloud Computing.

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

  1. تطوير معمارية الأعمال.
  2. تطوير معمارية تكنولوجيا المعلومات.
  3. تطوير متطلبات جودة الخدمة.
  4. تطوير خطة التحول.

1- تطوير معمارية الأعمال Business Architecture Development

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

2- تطوير معمارية تكنولوجيا المعلومات IT Architecture Development

في هذه الخطوة، سوف نحدد التطبيقات التي تدعم عمليات الأعمال والتقنيات اللازمة لدعم التطبيقات ونظم البيانات.

3- تطوير متطلبات جودة الخدمة Requirements On Quality Of Service Development

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

4- تطوير خطة التحول Transformation Plan Development

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

مرحلة نشر السحابة المحوسبة Cloud Computing Deployment Phase

في هذه المرحلة سوف نركز على خطوتين التالية:


  1. مزود السحابة  المحوسبة  Cloud Computing Provider
  2. الصيانة والخدمات الفنية Maintenance and Technical Service

مزود السحابة  المحوسبة  Cloud Computing Provider

وتشمل هذه الخطوة اختيار مزود السحابة على أساس اتفاق مستوى الخدمة (SLA)، والذي يحدد مستوى الخدمة التي يقدمها المزود.

الصيانة والخدمات الفنية Maintenance and Technical Service

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


  التالي تقنيات السحابة المحوسبة >>>




Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX,SQL
Al alami st
Gaza -jabaliaGaza Strip
Palestine
Marital Status: Single 
DOB: 05/10/1984
13/2/2014
No comments

Wednesday, February 12, 2014

أساسيات البرمجة برمجة المواقع بي اتش بي الكوكيز او الكعكات PHP Cookies

 الكوكيز او الكعكات PHP Cookies

 الكوكيز او الكعكات PHP Cookies

ماهي الكوكيز أو الكعكات  PHP Cookies ؟

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

الخطوات التالية التي تتم لحفظ المعلومات عن طريق الكوكيز

  1. سكريبت السيرفر يرسل مجموعة من الكوكيز الى متصفح المستخدم .مثلا اسم المستخدم او العمر او رقم المستخدم الى اخره.
  2. يقوم المتصفح بحفظ المعلومات على جهاز المستخدم في صورة  كوكيز.
  3. في المرة التالية عندما يقوم المستخدم بتطلب الصفحة للموقع يقوم المتصفح بارسال الكوكيز الي السيرفر فيقوم السيرفر بتعريف المستخدم مثل الدخول التلقائي للموقع.

بنية الكوكيز

يتم ارسال الكوكيز عبر برتوكول http header ويمكن ايضا ارسال البيانات عبر ملفات الجافا سكريبت للمتصفح.

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=tutorialspoint.com
Connection: close
Content-Type: text/htm

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

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

البي اتش بي PHP تقوم بالوصول الى الكوكيز عن طريق متغيرات البيئة عن طريق $_COOKIE أو عن طريق $HTTP_COOKIE_VARS[]  الذي يحمل اسم الكوكيز الاسم والقيمة $HTTP_COOKIE_VARS["name"].

إعدادات الكوكيز في البي اتش بي

لاعداد الكوكيز نستخدم الدالة  setcookie()  وهي دالة تحتاج الي 6 باراميتر ويجب استخدام الدالة قبل وسم   

setcookie(name, value, expire, path, domain, security);


تفاصيل الباراميترات للدالة setcookie

  • Name - يتم حفظ اسم الكوكيز ويخزن في المتغيرات البيئية Environment Variable ويتم استدعاءه بالدالة HTTP_COOKIE_VARS وغالبا ما يسخدم هذا المتغير للوصول الى الكوكيز.
  • Value يستخدم لحفظ القيم والمحتويات التي تريد انت تخزينها.
  • Expiry  يستخدم لتحديد صلاحية الكوكيز وفي حال لم يتم تحديد التاريخ فان صلاحيته تنتهي وقت اغلاق المتصفح.
  • Path تحدد المسار للكوكيز الذي يكون لديه صلاحية.بحيث ان الشرطة المائلة تعني بان الكوكيز صالح لكافة المسارات.
  • Domain يستخدم هذا لتحديد اسم النطاق الذي سيتخدم هذا الكوكيز ويجب ان يحتوي على اسم مفصول على الاقل بنقطتين وكل الكوكيز صالح فقط للمستضيف والنطاق التي أنشأت لها.
  • Security يمكن وضع قيمة تحمل 1 وتعني يجب ارسال الكوكيز عبر اتصال أمن HTTPS اما صفر فعن طريق البرتوكول العادي.

مثال على الكوكيز 


<?php
   setcookie("name", "John Watkin", time()+3600, "/","", 0);
   setcookie("age", "36", time()+3600, "/", "",  0);
?>
<html>
<head>
<title>Setting Cookies with PHP</title>
</head>
<body>
<?php echo "Set Cookies"?>
</body>
</html>


الوصول للكوكيز


<html>
<head>
<title>Accessing Cookies with PHP</title>
</head>
<body>
<?php
echo $_COOKIE["name"]. "<br />";
/* is equivalent to */
echo $HTTP_COOKIE_VARS["name"]. "<br />";

echo $_COOKIE["age"] . "<br />";
/* is equivalent to */
echo $HTTP_COOKIE_VARS["name"] . "<br />";
?>
</body>
</html>

الدالة isset تستخدم لفحص الكوكيز هل موجود ام لا

<html>
<head>
<title>Accessing Cookies with PHP</title>
</head>
<body>
<?php
  if( isset($_COOKIE["name"]))
    echo "Welcome " . $_COOKIE["name"] . "<br />";
  else
    echo "Sorry... Not recognized" . "<br />";
?>
</body>
</html>

حذف الكوكيز


<?php
  setcookie( "name", "", time()- 60, "/","", 0);
  setcookie( "age", "", time()- 60, "/","", 0);
?>
<html>
<head>
<title>Deleting Cookies with PHP</title>
</head>
<body>
<?php echo "Deleted Cookies" ?>
</body>
</html>

Ahmed Ata Almahallawi
Freelancer
IT Help Desk,
SEO experience,PHP,C#,ASPX
Al alami st
gaza -jabaliaGaza Strip
Palestine
ahmed.almahallawi@gmail.com
DOB: 05/10/1984
by +Ahmed Almahallawi 
13/2/2014
No comments