المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الثاني : تقنيات جديدة مع .net 2008


khaledbelal
02-15-2010, 03:37 AM
بسم الله الرحمن الرحيم .
السلام عليكم ورحمة الله وبركاته .


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

لا تنس الاطلاع على جدول حلقات النقاش من هنا ، كما لا تنس ان لدينا حلقة أخرى خاصة بالجديد على صعيد لغة البرمجة الحلقة بعد القادمة إن شاء الله تعالى :
http://www.vb4arab.com/vb/showthread.php?t=9176


وكما هي عادتنا في كل حلقة نقاش ، كل من لديه تعقيب او موضوع عن أي تقنية جديدة جاءت بها بها .net 2008 ، فليبدأ بطرح نبذة عنها من هنا ....

تقنية SilverLight :


تقنية Silver Light هي واحدة من تقنيات مايكروسوفت الجديدة التي تهدف لعمل تطبيقات ملتيمديا على صفحات ويب ، يمكنك معرفة المزيد عنها من خلال بعض الروابط في المنتدى مثل :
http://www.vb4arab.com/vb/showthread.php?t=7642
http://www.vb4arab.com/vb/showthread.php?p=44949


الآن لتتعرف عن المزيد عن هذه التقنية برجاء زيارة موقع SliverLight:
http://www.microsoft.com/silverlight/default_ns.aspx

بداية قم بتحميل SliverLight من الرابط الموضوع Get SliverLight ، لتبدأ بعدها بتجربة امكانيات وقدرات SliverLight ، قم بتحميل البرنامج وعمل Setup له ، ومن ثم ابدأ في استكشاف المواقع التالية :

http://designwithsilverlight.com/tutorials/photoGalleryWall/default.html

أو هذا الرابط :
http://www.yeejie.com/silverlight_magazine/

هذا أيضاً :

http://silverlight.net/samples/1.0/Page-Turn/default.html

وأخيراً هذا الرابط :
http://www.thedatafarm.com/silverlight/journalsample/

- تقنية LINQ :

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

http://www.vb4arab.com/vb/showthread.php?t=343
http://www.vb4arab.com/vb/showthread.php?t=6795


كمثال سريع يمكن افتراض جملة الاستعلام هذه :

Select companyname from customers

يتم تنفيذها باستخدام اي طريقة ... ليس هذا ما يعنينا ، ولكن تجد ناتج الاستعلام في RS.Fields("FieldName") حيث تستطيع قراءتها ، لعمل استعلام آخر يمكنك القراءة من جديد ، يمكنك عمل Loop عادية للقراءة ومن ثم البحث في الكائن بالطريقة العادية :

Do While(Rs.Read
Console.WriteLine Rs.Fields("CompanyName")
Loop

كان هذا هو الاختيار المتاح لك للتعامل مع قواعد البيانات ، أما الآن فقواعد البيانات يتم التعامل معها على شكل Clases لها Members و methods و functions ولها Operators خاصة بها ، لنفترض هذا الأمر من داخل ال .net مباشرة .

Dim queryResults = From cust In customers _
Select cust.CompanyName

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




Private Sub GetWorkingDate()
Try
Using Mocon As New SqlConnection(My.Settings.AccountsConnectionString )
Dim MoCmd As New SqlCommand
Dim MoReader As SqlDataReader

MoCmd.CommandText = "SELECT MAX(WorkingDate) As WoDate From WorkingDate"
MoCmd.CommandType = CommandType.Text
MoCmd.Connection = Mocon
MoCmd.Connection.Open()

MoReader = MoCmd.ExecuteReader

If MoReader.HasRows = True Then
While MoReader.Read
If IsDate(MoReader.Item("WoDate")) = True Then
Me.WorkingDateLbl.Text = Format (MoReader.Item("WoDate"), "dd/MM/yyyy")
Else
Me.WorkingDateLbl.Text = Now.ToString ("dd/MM/yyyy")
End If
End While
Else
Me.WorkingDateLbl.Text = Now.ToString("dd/MM/yyyy")
End If
MoCmd.Connection.Close()

SaveWorkingDate()
End Using

Catch ex As Exception
MsgBox(ex.Message)

End Try
End Sub

حيث تجد مجموعة من العمليات التي اجبر على عملها اعتماداً على ضعف امكانيات ال DataReader العادية ، أما مع LINQ فهو يتعامل مباشرة من خلال فئات LINQ ، لذا اصبح الكود بالشكل التالي :


Private Sub GetWorkingDateLinq()
Try
Dim ads As New AccountsDataSet
Dim Wdta As New WorkingDateTableAdapter
Wdta.ClearBeforeFill = True
Wdta.Fill(ads.WorkingDate)

Dim Wod = Aggregate Wdt In ads.WorkingDate _
Into Mdt = Max(Wdt.WorkingDate)

Me.WorkingDateLbl.Text = Wod.ToString("dd/MM/yyyy")

Catch ex As Exception
Me.WorkingDateLbl.Text = Now.ToString("dd/MM/yyyy")
End Try

Me.SaveWorkingDate()
End Sub

- تقنية WPF :


واحدة من التقنيات الجديدة التي شهد WinFx ظهورها إلى النور وهي اختصار ل Windows presentation foundation تعتمد على تقنية اخرى هي XAML وهي لغة تستخدم لوصف الواجهات ثنائية أو حتى ثلاثية الأبعاد ، اثناء عملك نعلى WPF من خلال .net 2008 يتم توليد كود XAML بصورة فورية ،فيما يظل بامكانك ايضاً الكتابة ب XAML إن أردت . يتم الفصل الكامل بين ال XAML والكود العادي كما كان يحدث في صفحات الويب .

جرب الاطلاع على هذا الرابط من CodeProject :
http://www.codeproject.com/KB/WPF/DotNet_XAML.aspx

او هذا الرابط للأخ سامرسلو :
http://www.vb4arab.com/vb/showthread.php?t=9020



والآن لماذا استخدام WPF ؟
الفصل الكامل بين لغة البرمجة وبين التصميم باستخدام XAML قادنا إلى ظهور حزمة من برامج التصميم المتخصصة التي تولد كود XAML ، تخيل نفسك تصمم برنامجك على فوتوشوب ، او على فلاش وتكتب الكود في .net ، اليس هذا سيمنحك مزيداً من التحكم وقوة التصميم التي لم تكن لتتاح لك لو كنت اكملت التصميم على Visual Studio المصمم اصلاً لخدمة الكود وليس التصميم ، ايضاً ستجد مجموعة من الحزم الجاهزة التي ستساعدك على تجميل وتحسين مظهر البرنامج .

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


قبل النهاية ، إذا كنت متابعاً معنا فأنت بالتأكيد قمت بتحميل .net 2008 أو على الاقل .net framework 3.5 ، لذا فأنت مؤهل للاطلاع على هذه الأمثلة ، وشاهد الفرق بينها وبين الواجهات التقليدية ، ربما لا تحتاج إلى تحميل البرنامج فقط اطلع على الفيديوهات الموجودة او نماذج الصور ، وكلي ثقة انك ستغير مفهومك حول جمال الواجهات إلى الأبد :

http://blogs.msdn.com/tims/archive/2007/01/30/great-wpf-applications-1-british-library-turning-the-pages.aspx

http://blogs.msdn.com/tims/archive/2007/03/27/great-wpf-applications-13-z-rich-airport.aspx

http://blogs.msdn.com/tims/archive/2007/03/05/great-wpf-applications-12-roxio-central.aspx

http://blogs.msdn.com/tims/archive/2007/02/09/great-wpf-applications-8-notescraps.aspx

http://blogs.msdn.com/tims/archive/2007/02/02/great-wpf-applications-6-fnac-com.aspx

http://blogs.msdn.com/tims/archive/2007/01/30/great-wpf-applications-2-electric-rain-standout.aspx

http://blogs.msdn.com/tims/archive/2007/12/06/great-wpf-applications-16-yahoo-messenger-for-windows-vista.aspx

وأخيراً هذا الفيديو عن حزمة برمجيات لشاشة HP الجديدة مبنية بتقنية WPF - جميل جداً - :

http://blogs.msdn.com/tims/archive/2007/12/17/great-wpf-applications-17-hp-interactive-canvas.aspx

لن استطيع ان اصبر حتى تفتح هذه الصفحات ، لذا سأقتبس هاتين الصورتين هنا :

http://www.sneath.org/tim/f2s.jpg

http://www.sneath.org/tim/f1s.jpg

- مجموعة Expression :

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

أما الآن ومع ستوديو Expression كاستديو اعلنت مايكروسوفت عن تطويره لاحتياجات مصممي التطبيقات ، حيث أصبح الآن بامكانك استخدام برنامج تصميم من انتاج مايكروسوفت يقوم بانتاج كود XAML يمكنك استخدامه في تطبيقاتك مباشرة ، كما يمكنك البرمجة من خلال Expression BLEND أيضاً .

يصدر MS Expression مع اربع تطبيقات رئيسية ، BLINDS لتطوير الملتيميديا والصور والمؤثرات الحركية - شديد الشبه ببرنامج فلاش - ، التطبيق الثاني هو Design وهو موجه بالاساس لخدمة تطبيقات الويندوز - شديد الشبه بفوتوشوب - ، الثالث هو لأجل ال WEB حيث اصبح تصميم مواقع الإنترنت بمستوى عالي جداً ، وهو التطور ل Microsoft FrontPage ولكن بامكانيات متقدمة جداً من اجل دعم AJAX و XAML ،الأخير مخصص للتعامل مع الميديا والفيديو وخلافه باسم Expression Media .

التطبيق الأكثر شهرة بينهم هو Blinds حيث اصبح تحويل موقعك أو برنامجك إلى موقع غني بالحركة وبالمؤثرات وخلافه امراً في غاية السهولة ، هذه هي الشاشة الرئيسية للبرنامج :

http://www.codeproject.com/KB/WPF/DotNet_XAML/blend1a.png

يمكنك معرفة المزيد عنه من هنا :
http://www.codeproject.com/KB/WPF/DotNet_XAML.aspx

كما يمكنك تحميل نسخة تجريبية لمدة 21 من موقع مايكروسوفت الرسمي او من موقع التقنية - قامت مايكروسوفت بشراء التقنية من احدى الشركات ال Parteners لمايكروسوفت - .

سأحاول ضمن الجدول افراد درس من اجل التعامل مع Expression Blinds ، ولكن عندما نصل إلى ال WPF ....

لذا نحن في الانتظار .

- تقنية wcf :

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

بعد Winsock في فيجوال بيسك 6 وفئة Sockets مع .net ، جاءت لنا مايكروسوفت بتقنية جديدة من اجل عمليات الاتصال تحت اسم WCF وهي اختصار ل Windows Communication Foundation .

أما لماذا هذه التقنية ، فباختصار لإنك ستستطيع عمل تطبيق عميل وخادم Server And Client آمن ومتكامل من خلال اقل من عشرة اسطر فقط من الكود !!!

هل تريد سبباً آخر ، إليك هذه المقارنات بين WCF وغيرها من تقنيات الاتصال المستخدمة :
http://msdn2.microsoft.com/en-us/library/bb310550.aspx

ضمن جدول دورتنا سيكون لنا لقاء آخر مع WCF قريباً إن شاء الله تعالى ، ولكن حتى ذلك الحين يمكنك البدء من هنا :
http://www.codeproject.com/KB/WCF/WCFCS.aspx


تريد البدء ببرنامج فعلي ، هذا تطبيق يستخدم تقنيتي WCF للاتصال و WPF لتصميم الواجهات ، النتيجة برنامج شات متميز :

http://www.codeproject.com/KB/WCF/WCFWPFChat/Chat.png

على هذا الرابط :
http://www.codeproject.com/KB/WCF/WCFWPFChat.aspx

Code Refactoring :

إحدى المميزات الجديدة التي جاء بها ال IDE الخاص بالفيجوال ستوديو ، الفكرة باختصار هي مجموعة من الوسائل المساعدة على تنظيم الكود وتسهيل التعامل معه .

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

ايضاً هناك برامج أخرى مثل هذا البرنامج لأجل فيجوال بيسك Refactor! for Visual Basic 2008 ، البرنامج موجود على هذا الرابط :
http://msdn2.microsoft.com/en-us/vbasic/bb973770.aspx

وهذه صورة لبعض التعديلات التي يضيفها على نافذة كتابة الكود :

http://msdn2.microsoft.com/en-us/vbasic/bb693327.0ReorderParams(en-us,MSDN.10).jpg

توفر مايكروسوفت ايضاً خاصية Code Snippet وهي مضمنة بصورة افتراضية في 2008 ، تمكنك هذه الخاصية من ادراج كود كامل لعملية معينة بدون كتابة سطر واحد ، يتم ذلك باختيار المهمة المطلوبة من قائمة يمكن التحديث فيها واضافة اكواد جديدة ، وكالعادة هذا البرنامج من اجل فيجوال بيسك وستجد مثيلاً له من اجل سي شارب :
http://msdn2.microsoft.com/en-us/vbasic/bb973770.aspx

وهذه صورة للبرنامج :
http://msdn2.microsoft.com/en-us/vbasic/bb973770.sniped2008-small.jpg

اخيراً وليس آخراً اذكر بأن هناك اصدارات تعمل على 2005 فليس الامر خاصاً ب 2008 فقط ، ولكنها خاصية احببت التذكير بها .

بالتوفيق للجميع .
والسلام عليكم ورحمة الله وبركاته .