Posts

Showing posts from January, 2016

Backup data to file

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

Yield Yield Yield

Yield جملة  يمكن استخدامها للحصول علي مصفوفة من أي نوع و الأكواد التالية توضح صورا مختلفة لكيفية إستخدامها و يمكن الإستفادة منها بصور كثيرة جدا الأمر مترول لإحتياجات و تخيلات كل مبرمج إستخدامها مع الفورم أو مع الكونترول للحصول علي بعضا من صفات الكونترول او الفورم Public Iterator  Function  GetControlProperties ( c  As  Control ) As  IEnumerable ( Of Object )          Yield c . BackColor         Yield c . ForeColor         Yield c . Text          ' continue same way to get more properties         Return     End Function     Enumeration إستخدامها مع Public Iterator  Function  GetColors () As  IEnumerable ( Of Color )          Yield Color . Black         Yield Color . Red         Yield Color . White          '  continue same way to get more colors         Return     End Function DataTable إستخدامها م   Public  Iterator  Function  GetColumnNames ( dt  As  DataTable ) As  IEnumerable ( Of String )          For i  =  0 To dt . Columns . Count  -  1   

Concatenate List(Of T) with Func Delegate

 الكود التالي يوضح كيف نضيف مصفوفة إلي مصفوفة أخر ي   Public Function  ConcatenateList ( Of T )( first  As List( Of T ),  second  As List( Of T )) As  T ()          Dim concatenate  As  Func ( Of  List( Of T ), List( Of T ),  T ()) = Function( X  As List( Of T ),  Y  As List( Of T ))                                                                        Dim result  As  T () = New  T ( X . Count  +  Y . Count  -  1 ) {}                                                                        For i  As  Integer  =  0 To X . Count  -  1                                                                           result ( i ) =  X ( i )                                                                        Next                                                                       For j  As  Integer  =  0 To Y . Count  -  1                                                                           result ( X . Count  +  j ) =  Y ( j )                                                     

Retrieve information from data base connection string

الكود التالي يمكن إستخدامه في إسترجاع أو في استخلاص البيانات من اسم الكونكشن أو من  ConnectionString الكود التالي يوضح شكل الكلاس المسؤل عن عملية إسترجاع البيانات و يمكن تطويره للإستخدام بأشكال أخري  Imports System . Data . Common Public Class  ConnectionManager     Implements IConnectionManager     Private Shared dataManager  As  IConnectionManager     Public Shared ReadOnly Property Pattern  As  IConnectionManager         Get             Dim result  As  IConnectionManager  =  CType ( Nothing ,  IConnectionManager )              SyncLock GetType ( IConnectionManager )                  If dataManager Is Nothing Then                     dataManager  = New  ConnectionManager                 End  If                  result  =  dataManager             End SyncLock             Return result         End Get     End Property     Private ReadOnly Property AdoDotNetConnectionKeys  As  IEnumerable ( Of String ) Implements  IConnectionManager . AdoDotNetConnectionKeys         Get