|
تعلم LINQ في بيئة البرمجة NET.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
المؤلف: م.هيثم مرجان
: (1100 cashu) السعر بالدولار: 22.00$ التقييم: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
تعتبر مسألة البيانات ومصادرها النواة الأساسية لمعظم تطبيقات Windows و Web على حدٍ سواء. يشرح هذا الكتاب أسس العمل مع التقنية (Language Integrated Query) LINQ وكذلك المكونات والأصناف التابعة لها ويتطرق هذا الكتاب إلى المواضيع التالية: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
نقاط هامة
امتلك أبعاد تقنيات البرمجة الحديثة واقفز فوق معوقات التعامل جدول المحتويات المختصر
| حول هذا الكتاب | 5 | مقدمة | 9 | الجزء الأول: البداية | 13 | 1 تعريف LINQ | 15 | 2 تحسينات لغتي البرمجة C# و VB.NET | 67 | 3 كتل بناء LINQ | 115 | الجزء الثاني: الاستعلام عن كائنات في الذاكرة | 153 | 4 التآلف مع LINQ To OBJECTS | 155 | 5 ما وراء أساسيات الاستعلام في الذاكرة | 217 | الجزء الثالث: الاستعلام عن البيانات العلائقية | 271 | 6 البدء مع LINQ TO SQL | 273 | 7 نظرة على أسرار LINQ TO SQL | 315 | 8 ميزات LINQ TO SQL المتقدمة | 359 | الجزء الرابع: التعامل مع XML | 417 | 9 تعريف LINQ TO XML | 419 | 10 التحويل والاستعلام في XML مع LINQ to SQL | 467 | 11 سيناريوهات LINQ TO XML الشائعة | 509 | الجزء الخامس: العمل مع تقنيات LINQ مجتمعة | 567 | 12 توسيع LINQ | 569 | 13 LINQ في كل طبقة | 617 | 14 العمل مع LINQ و DATASETS | 659 | ملحق: معاملات الاستعلام القياسية | 707 | جدول المحتويات | 713 جدول المحتويات المفصل
| حول هذا الكتاب | 5 | مقدمة | 9 | الجزء الأول: البداية | 13 | 1 تعريف LINQ | 15 | ما هي LINQ ؟ | 17 | نظرة شاملة | 18 | LINQ كمجموعة أدوات | 19 | LINQ امتداد وتوسع للغات البرمجة | 21 | لماذا نحتاج LINQ | 24 | مشاكل شائعة | 25 | المزاوجة غير الملائمة للنماذج | 28 | LINQ للإنقاذ | 37 | مصدر LINQ وأهدافها التصميمية | 38 | أهداف مشروع LINQ | 39 | القليل عن تاريخ LINQ | 40 | الخطوات الأولى مع LINQ to Objects: الاستعلام على مجموعات البيانات في الذاكرة | 43 | ماذا تحتاج لتبدأ | 43 | مرحباً LINQ to Objects | 45 | الخطوات الأولى مع LINQ to XML: الاستعلام في مستندات XML | 50 | لماذا نحتاج LINQ to XML | 50 | مرحباً LINQ to XML | 53 | الخطوات الأولى مع LINQ to SQL: الاستعلام في قواعد البيانات العلائقية | 59 | نظرة شاملة على مميزات LINQ to SQL | 59 | مرحباً LINQ to SQL | 60 | نظرة مقربة على LINQ to SQL | 65 | ملخص | 66 | 2 تحسينات لغتي البرمجة C# و VB.NET | 67 | اكتشاف التحسينات الجديدة للغة | 68 | توليد لائحة بالعمليات الجارية | 70 | تجميع النتائج داخل صنف | 72 | المتحولات المحلية ذات الأنواع الضمنية | 74 | الصيغة | 74 | تحسين مثالنا باستخدام المتحولات المحلية ذات الأنواع الضمنية | 75 | مهيئات التجمع والكائن | 77 | الحاجة لمهيئات الكائن | 77 | مهيئات التجمع | 79 | تحسين مثالنا باستخدام مهيئ الكائن | 80 | تعابير لامبدا | 82 | تذكير بالنوع Delegates | 82 | الطرق مجهولة الهوية | 84 | تعريف تعابير لامبدا | 85 | الطرق الموسعة | 92 | إنشاء مثال عن طريقة موسعة | 93 | أمثلة على استخدام معاملات الاستعلام القياسية لـ LINQ | 98 | تأثير الطرق الموسعة في مثالنا | 100 | تحذيرات | 102 | الأنواع مجهولة الهوية | 105 | استخدام الأنواع مجهولة الهوية لتجميع البيانات في كائن | 105 | أنواع بدون أسماء وبالرغم من ذلك هي أنواع | 106 | تحسين مثالنا باستخدام الأنواع مجهولة الهوية | 107 | القيود | 108 | ملخص | 111 | 3 كتل بناء LINQ | 115 | كيف استطاعت LINQ توسيع .NET | 116 | تذكرة عن توسعات اللغة | 116 | العناصر المفتاحية لأساسيات LINQ | 118 | تعريف التعاقب (التتالي) | 119 | النوع IEnumerable | 120 | تذكرة عن المكررات (iterators) | 121 | تنفيذ الاستعلام المؤجل | 124 | تعريف معاملات الاستعلام | 129 | ما الذي تفعله معاملات الاستعلام؟ | 129 | معاملات الاستعلام القياسية | 133 | تعريف تعابير الاستعلام | 134 | ما هو تعبير الاستعلام؟ | 134 | كتابة تعابير الاستعلام | 135 | كيف يمكن ربط معاملات الاستعلام القياسية بتعابير الاستعلام | 137 | القيود | 139 | تعريف أشجار التعبير | 142 | عودة إلى تعابير لامبدا | 142 | ماهي أشجار التعبير؟ | 143 | النوع IQueryable وتنفيذ الاستعلام المؤجل | 147 | مكتبات الربط الديناميكية لـ LINQ، وفضاءات الأسماء | 149 | خلاصة | 151 | الجزء الثاني: الاستعلام عن كائنات في الذاكرة | 153 | 4 التآلف مع LINQ To OBJECTS | 155 | تعريف مثالنا التنفيذي | 156 | الأهداف | 157 | المميزات | 157 | كينونات العمل | 158 | مخطط قاعدة بيانات | 158 | بيانات العينة | 159 | استخدام LINQ مع تجمعات في الذاكرة | 162 | ما الذي يمكن الاستعلام عليه؟ | 163 | عمليات مدعومة | 169 | استخدام LINQ مع ASP.NET و Windows Forms | 170 | ربط البيانات من أجل تطبيقات الويب | 170 | ربط البيانات من أجل تطبيقات Windows | 179 | التركيز على أهم معاملات الاستعلام القياسية | 184 | معامل التحديد أو الشرط Where | 185 | استخدام معاملات الإسقاط أو العرض (Projection) | 187 | استخدام المعامل Distinct | 190 | استخدام معاملات التحويل | 192 | استخدام معاملات التجميع (aggregate) | 194 | إنشاء العروض على الكائنات في الذاكرة | 195 | الترتيب | 195 | الاستعلامات المتداخلة | 197 | التجميع | 201 | استخدام الضم | 203 | التجزئة | 210 | خلاصة | 215 | 5 ما وراء أساسيات الاستعلام في الذاكرة | 217 | سيناريوهات شائعة | 218 | الاستعلام عن التجمعات غير العمومية | 219 | التجميع وفق معايير متعددة | 223 | الاستعلامات الديناميكية | 226 | التقنية LINQ to TextFiles | 240 | نماذج التصميم | 243 | نموذج البناء الوظيفي | 244 | النموذج ForEach | 248 | اعتبارات الأداء | 251 | تفضيل المنهج التدفقي | 252 | كن حذراً فيما يتعلق بالتنفيذ الفوري | 255 | هل LINQ to Objects تؤذي أداء الشيفرة؟ | 258 | فكرة عامة عن LINQ to Objects | 263 | الأداء مقابل الاختصار | 267 | الخلاصة | 268 | الجزء الثالث: الاستعلام عن البيانات العلائقية | 271 | 6 البدء مع LINQ TO SQL | 273 | القفز داخل LINQ to SQL | 276 | إعدادات ربط الكائنات | 279 | إعداد الكائن DataContext | 282 | قراءة البيانات باستخدام LINQ to SQL | 283 | تشذيب استعلامنا | 289 | الفرز أو الفلترة | 289 | الترتيب والتجميع | 292 | التجميع الرياضي | 294 | الضم (Join) | 296 | العمل مع الأشجار الكائنية | 301 | متى يتم تحميل البيانات وما أهمية ذلك؟ | 305 | التحميل الكسول | 305 | التحميل الفوري للتفاصيل | 308 | تحديث البيانات | 311 | الخلاصة | 314 | 7 نظرة على أسرار LINQ TO SQL | 315 | تخطيط الربط بين الكائنات والبيانات العلائقية | 316 | استخدام المميزات المعدة داخلياً | 317 | التخطيط مع ملفات XML خارجية | 325 | استخدام الأداة SqlMetal | 328 | الأداة LINQ to SQL Designer | 332 | ترجمة تعابير الاستعلام إلى SQL | 336 | الواجهة IQueryable | 337 | أشجار التعبير | 339 | دورة حياة الكائن | 343 | تعقب التغييرات | 346 | إرسال التغييرات | 348 | العمل مع البيانات غير المتصلة | 353 | الخلاصة | 356 | 8 ميزات LINQ TO SQL المتقدمة | 359 | معالجة التغييرات المتزامنة | 360 | التزامن المتشائم | 361 | التزامن المتفائل | 362 | معالجة استثناءات التزامن | 367 | حل مشكلة التعارض باستخدام المعاملات الإجرائية | 371 | الإمكانيات المتقدمة لقاعدة البيانات | 374 | تمرير عبارات SQL: استرجاع الكائنات من استعلامات SQL | 375 | العمل مع الإجراءات المخزنة | 377 | التوابع المعرفة من قبل المستخدم | 390 | تحسين طبقة العمل | 395 | الاستعلامات المترجمة | 395 | استخدام الأصناف الجزئية من أجل منطق عمل مخصص | 398 | استخدام مزايا الطرق الجزئية | 402 | استخدام وراثة الكائنات | 404 | جولة مختصرة داخل LINQ to Entities | 411 | الخلاصة | 414 | الجزء الرابع: التعامل مع XML | 417 | 9 تعريف LINQ TO XML | 419 | ما هي API XML؟ | 421 | لماذا نحتاج إلى توابع API أخرى لبرمجة XML | 423 | أساسيات تصميم LINQ to XML | 424 | المفهوم الرئيسي: البناء الوظيفي | 427 | المفهوم الرئيسي: إنشاء سياق XML حر | 428 | المفهوم الرئيسي: الأسماء المبسطة | 428 | البنية الهرمية للصنف LINQ to XML | 432 | العمل مع XML باستخدام LINQ | 436 | تحميل XML | 437 | تحليل XML | 439 | إنشاء XML | 441 | إنشاء XML باستخدام Visual Basic XML literals | 447 | إنشاء مستندات XML | 451 | إضافة محتويات لـ XML | 455 | إزالة أو حذف محتوى من XML | 458 | تحديث محتويات XML | 459 | العمل مع المميزات (attributes) | 462 | تخزين أو حفظ XML | 463 | الخلاصة | 464 | 10 التحويل والاستعلام في XML مع LINQ to SQL | 467 | الطرق المحورية في LINQ to XML | 469 | الطريقة المحورية Element | 472 | الطريقة المحورية Attribute | 473 | الطريقة المحورية Elements | 474 | الطريقة المحورية Descendants | 476 | الطريقة المحورية Ancestors | 480 | NodesBeforeSelf, ElementsBeforeSelf, NodesAfterSelf, ElementsAfterSelf | 482 | خصائص XML المحورية في VB | 483 | معاملات الاستعلام القياسية | 487 | العرض باستخدام Select | 490 | الفرز باستخدام Where | 491 | الترتيب والتجميع | 494 | الاستعلام على كائنات LINQ to XML باستخدام XPath | 498 | تحويل XML | 500 | تحويلات LINQ to XML | 501 | تحويل كائنات LINQ to XML باستخدام XSLT | 505 | الخلاصة | 507 | 11 سيناريوهات LINQ TO XML الشائعة | 509 | بناء الكائنات من XML | 510 | الهدف | 511 | التطبيق | 513 | إنشاء XML من مخططات بيانية كائنية | 517 | الهدف | 517 | التطبيق | 518 | إنشاء XML مع بيانات من قاعدة بيانات | 525 | الهدف | 525 | التطبيق | 528 | ترشيح (فلترة) ومزج بيانات من قاعدة البيانات مع بيانات XML | 534 | الهدف | 534 | التطبيق | 535 | قراءة XML وتحديث قاعدة بيانات | 540 | الهدف | 541 | التطبيق | 542 | تحويل الملفات النصية إلى XML | 560 | الهدف | 561 | التطبيق | 562 | الخلاصة | 566 | الجزء الخامس: العمل مع تقنيات LINQ مجتمعة | 567 | 12 توسيع LINQ | 569 | استكشاف آليات توسيع LINQ | 570 | كيف أمكن لباقات LINQ أن تكون تطبيقاً لتقنية LINQ | 572 | ماذا يمكن أن نفعل مع توسيعات LINQ المخصصة | 574 | إنشاء معاملات استعلام مخصصة | 576 | تحسين معاملات الاستعلام القياسية | 576 | معاملات استعلام محدودة النطاق | 580 | تطبيقات مخصصة لمعاملات الاستعلام الأساسية | 586 | آلية ترجمة الاستعلام | 587 | مواصفات نموذج تعبير الاستعلام | 588 | المثال 1: تعقب تنفيذ معاملات الاستعلام القياسية | 591 | قيود: تعارض تعابير الاستعلام | 593 | المثال 2: معاملات محدودة النطاق غير عمومية | 595 | المثال 3: معاملات من أجل بنية غير متسلسلة | 599 | الاستعلام عن خدمة LINQ to Amazon web | 601 | تعريف LINQ to Amazon | 601 | المتطلبات | 604 | التطبيق | 606 | الخلاصة | 615 | 13 LINQ في كل طبقة | 617 | نظرة عامة على التطبيق LinqBooks | 618 | المميزات | 619 | نظرة على UI | 619 | نموذج البيانات | 620 | LINQ to SQL وطبقة الوصول إلى البيانات | 623 | تذكرة بالبنية ثلاثية الطبقات التقليدية | 623 | هل نحتاج إلى طبقة وصول للبيانات منفصلة أم أن LINQ to SQL كافية؟ | 625 | استخدام عينة من LINQ to SQL في LinqBooks | 634 | استخدام LINQ to XML | 643 | استيراد بيانات من أمازون | 643 | توليد RSS feeds | 645 | استخدام LINQ to DataSet | 656 | استخدام LINQ to Objects | 651 | قابلية التوسع | 651 | معاملات الاستعلام القياسية | 651 | إنشاء واستخدام مزود LINQ مخصص | 652 | نظرة مستقبلية | 653 | باقات LINQ مخصصة | 654 | LINQ to XSD | 656 | PLINQ: LINQ والعمل التفرعي | 657 | LINQ to Entities، واجهة LINQ من أجل أطر كينونات ADO.NET | 658 | الخلاصة | 658 | 14 العمل مع LINQ و DATASETS | 659 | نظرة عامة على LINQ to DataSet | 660 | تذكير بكائنات DataSets | 662 | حالات استخدام DataSet ومميزاتها | 662 | ماهي DataSet؟ | 663 | ما هو الجديد في Visual Studio 2008 | و .NET3.5 الذي جعل من استعلامات LINQ على DataSet أمراً ممكناً | 668 | الاستعلام عن DataSets غير محددة النوع | 669 | تحميل البيانات في كائنات DataSets | 670 | الاستعلام عن DataSet بدون استخدام LINQ | 676 | الاستعلام عن كائنات DataSet غير محددة النوع باستخدام LINQ to DataSet | 677 | الاستعلام عن كائنات DataSet محددة النوع | 683 | توليد كائنات DataSet محددة النوع | 685 | تحميل بيانات في كائن DataSet محدد النوع | 689 | الاستعلام عن كائنات DataSet محددة النوع باستخدام LINQ to DataSet | 692 | ربط نتائج استعلامات LINQ to DataSet بعناصر تحكم UI | 695 | استخدام Copy TO DataTable لنقل نتائج استعلام LINQ to DataSet إلى DataTable | 696 | ربط البيانات ثنائي الاتجاه باستخدام AsDataView. | 699 | استخدام معاملات الاستعلام مع LINQ to DataSet | 702 | المعاملين Field و SetField من أجل DataRows | 702 | معاملات المجموعة ومقارنة DataRow في DataRowComparer | 704 | الخلاصة | 706 | ملحق: معاملات الاستعلام القياسية | 707 | جدول المحتويات | 713 |
||