تقنية Microsoft Azure للحوسبة السحابية !

12 02 2009

بدأت تظهر في السنوات الاخيرة تقنية تدعىى بالحوسبة السحابية Cloud Computing ، ولا بد اولا من التعرف على مفهوم الحوسبة السحابية ، وقد استعنت في ذلك بموقع ويكيبيديا العربي :

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

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

لمزيد من المعلومات حول هذا المفهوم راجع الرابط التالي :

http://en.wikipedia.org/wiki/Cloud_computing

وقد قدمت شركة مايكروسوفت اطار العمل Azure Service Platform ، وهو عبارة عن نظام تشغيل للخدمات السحابية Cloud Services يقوم بحضن ، خدمة ، ادارة ، تشغيل الخدمات العاملة بهذه التقنية . ويمكن بناء تطبيقات وخدمات هذه التقنية ، يمكن استخدام Visual Studio 2008 ولكنها ستكون مدعومة بشكل افضل في النسخة القادمة 2010 .

تدعم هذه التقنية مجموعة من البروتوكولات كـ SOAP,REST,XML وغيرها ، لكن الأجمل في الموضوع ان Windows Azure سيقدم الدعم لبيئات وخدمات مايكروسوفت وغير مايكروسوفت مما يدعو للابتهاج بهذا الخصوص .

ما الفائدة المرجوه من استخدام تقنية Azure ؟

سيمكنك استخدام Windows Azure من اضافة خدمات ويب Web services الى تطبيقاتك الحالية بشكل اسهل ، وبناء وتعديل وتوزيع التطبيقات عبر شبكة ويب بأقل قدر ممكن من الموارد المطلوبة في اجهزة العملاء ، وكذلك سهوله بناء وتعديل خدمات الويب Web Services بسهوله وسرعه وأقل تكاليف ، وتقليل تكاليف مواصفات العتاد والدعم التقني المقدم للعملاء حيث ان كل العمليات الحسابية والتخزينية ستتم على مراكز بيانات متطورة !

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

للتعرف بشكل افضل واوضح عن هذه التقنية يمكنك زيارة صفحتها الرسمية من الرابط التالي :

http://www.microsoft.com/azure/windowsazure.mspx





فيديو : دعم WPF Bussiness Applications في Visual Studio 2010

6 02 2009

اذا كنت تتابع اخر الاحداث المايكروسوفتيه واخر التطورات التي تظهر في معامل ريدموند ، فقد تكون سمعت بالميزات الجديدة التي ستظهر في فيجوال ستوديو 2010 والتي من بينها دعم خاصية السحب والالقاء Drag-Drop لمصادر البيانات على نوافذ WPF والتي تعني سهوله عمل تطبيقات ال Bussiness والتطبيقات التي تعتمد على قواعد البيانات وربط مصادر البيانات بالنوافذ بإستخدام تقنية الـ Data Binding دون عناءبمجرد سحب مصدر البيانات الى النافذه المراده – كما هو حاصل في تطبيقات Windows Applications .

لمشاهده حوار حول هذا الموضوع ، يمكنك زيارة الصفحة التالية عبر القناة التاسعة لـ MSDN :

http://channel9.msdn.com/posts/funkyonex/Drag-Drop-Data-Binding-Comes-to-WPF-in-Visual-Studio-2010/





مراقبة الملفات الموجودة في الحافظة Clipboard

1 02 2009

في بعض الاحيان قد تحتاج الى كتابة كود لمراقبة الملفات الموجودة في الحافظة Clipboard ، وأدنى ما تحتاجه غالبا هو معرفة المسار الكامل للملف والعملية ادت الى وضع الملف في الحافظة سواء كانت نسخ copy او قص Cut ، قد تتخيل لوهلة أن العملية قد تكون معقدة وصعبة للغاية ، لكن دعني اخبرك بان الكائن My.computer.clipboard الخاص بالتعامل مع حافظة النظام يحتوي على طرق Methods تسهل معرفه محتوى الحافظة سواء كان صوت او نص او ملفات ، فلنتابع معا الفكرة التي اقتبستها من احد المواقع الاجنبية .

الطريقة GetFileDropList تعود لنا بـ Collection تمثل قائمة بالملفات الموجودة في الذاكرة ، وسيكون بإمكاننا بسهوله كتابة كود كالتالي للحصول عليها في اداة TextBox متعددة الاسطر:

        If My.Computer.Clipboard.ContainsFileDropList = True Then
           
Dim FileNameCollection As Collections.Specialized.StringCollection = _
                         
My.Computer.Clipboard.GetFileDropList()
           
For Each FileName As String In FileNameCollection

                TextBox1.AppendText(FileName & vbNewLine)
           
Next

        End If

هكذا نكون قد تمكنا من الحصول على قائمة بأسماء الملفات ، والآن نرغب في الحصول على الاجراء الذي أدى الى وجود هذه الملفات في الحافظة ، هل هو نسخ Copy أم نقل Move ؟

للحصول على نوع الاجراء Drop Effect Type، سنقوم بعمل كائن من النوع Object ونسند له القيمة:

My.Computer.Clipboard.GetData("Preferred DropEffect") 

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

السطور التالية توضح ذلك :

            Dim DropEffectData(3) As Byte
           
Dim DropEffectCheck As Object = _
               
My.Computer.Clipboard.GetData("Preferred DropEffect")
           
DropEffectCheck.Read(DropEffectData, 0, DropEffectData.Length)

والآن اصبحنا جاهزين تماما للقيام بالمهمه الكاملة ، لذلك قمت بوضع مثال بسيط هذا هو الكود الخاص به :

‘*>——————————————————————-
        ‘*>Handle Droplist
        ‘*>——————————————————————-
        If My.Computer.Clipboard.ContainsFileDropList() Then

            ‘*>——————————————————————-
            ‘*>Get DropEffect Type
            ‘*>——————————————————————-
            Dim DropEffectData(3) As Byte
           
Dim DropEffectCheck As Object = _
               
My.Computer.Clipboard.GetData("Preferred DropEffect")
           
DropEffectCheck.Read(DropEffectData, 0, DropEffectData.Length)

            Dim DropEff As DragDropEffects
           
Dim DropEffType As String

            Select Case DropEffectData(0)
               
Case 2
                   
DropEff = DragDropEffects.Move
                   
DropEffType = "Move"
               
Case 5
                   
DropEff = DragDropEffects.Copy
                   
DropEffType = "Copy"
               
Case Else
                   
DropEffType = "???"
           
End Select

            DropEffect.Text = DropEffType

            ‘*>——————————————————————-
            ‘*>Get File Names
            ‘*>——————————————————————-
            Dim FileNameCollection As Collections.Specialized.StringCollection = _
                                     
My.Computer.Clipboard.GetFileDropList()
           
For Each FileName As String In FileNameCollection

                DataText.AppendText(FileName & vbNewLine)
           
Next

        End If