تقنية C ado. شبكة

مخصص لمن يكتب استفسارات في كود الصفحة ...

تحياتي للجميع!

هناك بعض المعلومات عن Habré أن الإصدار التالي من VisualStudio 2008 سيحتوي على ADO.NET EntityFramework. (سأخبرك بسر ، لقد ظهر هذا الإصدار بالفعل.) هذا التطوير هو إطار عمل عالمي يسمح لك بإنشاء منطق بيانات لمشروعك ببضع نقرات بالماوس.
حتى الآن ، من خلال العمل بمنطق البيانات ، صادفت نوعين من المشاريع. تم إنشاء الأولى على إطار NHibernate سيئ السمعة ، وتم تنفيذ البعض الآخر من قبل المبرمجين. لقد كنت أكتب وأطور أنظمة مختلفة لمدة 3 سنوات بالفعل ، وطوال هذا الوقت كنت أطور منطق العمل مع هذه المقابض حصريًا.
وهكذا ، في اليوم الآخر ، بعد أن قمت بتثبيت Windows جديد ، قمت بتنزيل VisualStudio WebDeveloper Express ، وكنت سعيدًا للعثور على ADO.NET EntityFramework في الحزمة. بعد مرور بعض الوقت ، قمت بتسجيل نطاق ، وأنشأت موقعًا إلكترونيًا بسيطًا ، وبدأت في تدريب قوتي في كتابة البرامج الخاصة بهذا الإطار.

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

بعد ذلك ، يجب إضافة عنصر جديد "نموذج بيانات كيان ADO.NET" إلى المشروع.

سيحتاج النظام إلى تحديد سلسلة للاتصال بقاعدة البيانات ، وكذلك تحديد المكان الذي سيأتي منه نموذج ADO.NET EF الأول.

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

  1. مساحة الاسم DataBaseCore
  2. ///
  3. /// لا توجد تعليقات لـ DbModel في المخطط.
  4. ///
  5. فئة جزئية عامة DbModel: global :: System.Data.Objects.ObjectContext
  6. ///
  7. /// تهيئة كائن DbModel جديد باستخدام سلسلة الاتصال الموجودة في قسم "DbModel" من ملف تكوين التطبيق.
  8. ///
  9. نموذج DbModel العام ():
  10. القاعدة ("name = DbModel"، "DbModel")
  11. هذا .OnContextCreated () ؛
  12. / * تم قصه باعتباره غير ضروري * /
  13. مشاركة فئة جزئية عامة: global :: System.Data.Objects.DataClasses.EntityObject
  14. ///
  15. /// قم بإنشاء كائن Post جديد.
  16. ///
  17. /// القيمة الأولية للمعرف.
  18. مشاركة عامة ثابتة CreatePost (معرف int)
  19. منشور آخر = منشور جديد () ؛
  20. post.Id = معرف ؛
  21. عودة البريد

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

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

مما لا شك فيه أن وصف مجموعة البيانات في كود ASPX أصبح أكثر متعة.

  1. < asp:EntityDataSource ID ="dsPosts" runat ="server" ConnectionString ="name=DbModel"
  2. DefaultContainerName = "DbModel" EntitySetName = "نشر">
* تم تمييز كود المصدر هذا باستخدام Source Code Highlighter.

يمكن أن يقال - إنه يضيء بالنعمة.

بعد ظهور موفر البيانات في النموذج ، يكون المستهلك مطلوبًا أيضًا. بدون أن أكون ذكيًا ، أضفت رمزًا بسيطًا يعرض ببساطة جميع المنشورات بالتسلسل.

  1. < asp:Repeater runat ="server" ID ="repPosts" DataSourceID ="dsPosts" >
  2. < HeaderTemplate >
  3. < ItemTemplate >
  4. < div >
  5. < h3 >
  6. < asp:Label ID ="lblHeader" runat ="server" Text ="<%# Eval("Header") %>" >
  7. < p >
  8. < asp:Label ID ="lblText" runat ="server" Text ="<%# Helpers.TypographText(Eval("Text").ToString()) %>" >
* تم تمييز كود المصدر هذا باستخدام Source Code Highlighter.

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

ولكن ماذا نعرض للمستخدم إذا لم يكن لدينا شيء في قاعدة البيانات؟ ليس جيدا. تحتاج إلى كتابة نموذج لملء قاعدة البيانات. الآن سنتوقف عن برمجة الماوس ونبدأ في كتابة التعليمات البرمجية.

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

  1. مساحة الاسم DBW
  2. مشاركة عامة
  3. وظيفة عامة ()
  4. عام ثابت باطل جديد (String PostText ، String PostHeader ، Int32 UserId)
  5. p.Header = PostHeader ؛
  6. p.Text = Helpers.TypographText (نص بوست) ،
  7. p.PublishDate = DateTime.Now ؛
  8. p.User = (من usr في m مستخدم حيث usr.Id == UserId حدد usr). First () ؛
  9. م AddToPost (ع) ؛
  10. m.SaveChanges () ،
  11. حذف عام ثابت باطل (Int32 PostId)
  12. DataBaseCore.DbModel m = new DataBaseCore.DbModel () ،
  13. DataBaseCore.Post p = new DataBaseCore.Post () ،
  14. p = (من pst في m.Post حيث pst.Id == PostId حدد pst). First () ؛
  15. م حذف الكائن (ع) ؛
  16. m.SaveChanges () ،
* تم تمييز كود المصدر هذا باستخدام Source Code Highlighter.

يبدو أن كل شيء بسيط ، ونعم ، هو كذلك. ولكن هناك بعض الفروق الدقيقة.
أولاً ، إنه LINQ. بدونها ، ADO.NET في أي مكان. لذلك لا يجب أن تتهرب من SQL أو LINQ وتحرز نقاطًا بشكل عام ، فلا يزال يتعين عليك كتابة استفسارات.
ثانيًا ، يتم إنشاء هذا الرمز تلقائيًا بواسطة إطار العمل ، لذلك لن تضطر إلى توقع الكثير من الراحة في بعض النقاط ، ويجب أن تكون دائمًا على استعداد لتغيير الكود الذي أنشأه الاستوديو بالفعل. على سبيل المثال ، هنا في السطر 16 سيكون من الأنسب عدم استخدام كائن من نوع المستخدم ، والذي كان عليّ تحديده من قاعدة البيانات ، ولكن لتمرير قيمة معرّف المستخدم على الفور. سيكون أكثر ملاءمة لهذا الرمز ، لكنه ليس عالميًا. لذلك ، يجب تحسين الكود وإعادة التفكير فيه. ربما تحتاج فقط إلى تمرير ليس معرف مستخدم ، ولكن كائن من نوع المستخدم.

ماذا بعد؟ علاوة على ذلك ، سأستمر في كتابة المشروع ، والتعمق في براري ADO.NET Entity Framework ، وسأكون سعيدًا بمشاركة بحثي معكم ، أيها المهربون الأعزاء. وفقًا لذلك ، ستكون هناك مقالات جديدة تحتوي على بيانات أكثر جدية وتعمقًا.

محدث. الموضوع واسع جدا. لا توجد حتى نسبة من الاحتمالات التي تم الكشف عنها هنا ، لكن الاستمرارية ستكون 8)

تقنيات ADO.شبكة، . الإطار الصافي، كوربا

تم أيضًا تطوير تقنية الوصول إلى قاعدة البيانات عن بُعد ADO .NET لهندسة خادم العميل. بالإضافة إلى مستويين من قواعد البيانات البعيدة - العميل والخادم - تظهر مستويات إضافية - خوادم منطق الأعمال التي تنفذ منطق الأعمال للتطبيقات.

تنشئ تقنية ADO .NET النظام التالي للعميل للعمل مع خادم قاعدة البيانات:

إنشاء اتصال بالخادم ؛

الحصول على البيانات اللازمة.

إغلاق الاتصال

معالجة البيانات

إنشاء اتصال لنقل البيانات المتغيرة مرة أخرى إلى الخادم.

يعتمد ADO .NET على وحدتين رئيسيتين:

مزود البيانات .NET FrameWork

قاعدة البيانات الارتباطية المقيمة (DataSet).

مزود البيانات، كما يوحي اسمه ، مسؤول عن توصيل التطبيق بمصدر البيانات ومعالجة البيانات. يتضمن موفر البيانات كائنات معالجة البيانات التالية:

أ) يستخدم الاتصال لإنشاء اتصال بمصدر البيانات ، وكذلك لإدارة المعاملات.

ب) يسمح لك الأمر بمعالجة بيانات المصدر ، وكذلك تنفيذ الإجراءات المخزنة. في هذه الحالة ، يمكن استخدام معلمات نقل البيانات في كلا الاتجاهين.

ج) يعمل DataAdapter كحلقة وصل بين قاعدة بيانات DataSet المقيمة ومصدر البيانات وعادةً ما يستخدم كائن Command لتنفيذ أوامر SQL عند ملء DataSet بالبيانات وعند إرسال البيانات التي تم تغييرها بواسطة العميل إلى المصدر. يحتوي على أربع طرق لأداء هذه الوظائف: SelectCommand و InsertCommand و UpdateCommand و DeleteCommand.

د) يوفر DataReader بيانات للقراءة فقط من المصدر. إذا لم يعدل تطبيق العميل البيانات ولا يتطلب تحديدًا عشوائيًا للبيانات ، ولكن العرض لمرة واحدة كافٍ ، فإن استخدام DataReader بدلاً من DataSet سيوفر موارد الكمبيوتر ، فضلاً عن زيادة أداء التطبيق.

قاعدة البيانات الارتباطية المقيمة هي قاعدة بيانات علائقية يتلقاها العميل ، ويتم تخزينها في ذاكرة الوصول العشوائي المقيمة.

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

يشبه مخطط التفاعل هذا إلى حد ما عمل بنية الملف -

الخادم وغالبًا ما تستخدمه المؤسسات عند العمل مع قواعد البيانات البعيدة عبر شبكة عالميةإنترنت.

لتوفير الوصول إلى الكائنات عبر الإنترنت العالمي ، كجزء من ADO .NET ، تم توفير وحدة .NET FrameWork التي توفر التفاعل بين تنسيقات عرض البيانات المختلفة ، بما في ذلك HTML و XML.

من هذه الخصائص ، يمكن ملاحظة أن تقنية ADO .NET توفر:

القدرة على التفاعل بين البيانات ذات الأشكال المختلفة ، بما في ذلك HTML و XML ؛

توفير كبير في التكلفة عند العمل مع قواعد البيانات البعيدة عبر الإنترنت العالمي.

آخر تحديث: 31.10.2015

اليوم ، العمل مع البيانات له أهمية كبيرة. تستخدم لتخزين البيانات أنظمة مختلفةإدارة قواعد البيانات: MS خادم قاعدة البياناتو Oracle و MySQL وما إلى ذلك. وتستخدم معظم التطبيقات الكبيرة أنظمة إدارة قواعد البيانات هذه بطريقة أو بأخرى لتخزين البيانات. ومع ذلك ، هناك حاجة إلى وسيط للاتصال بين قاعدة البيانات وتطبيق C #. ومثل هذا الوسيط هو تقنية ADO.NET.

يوفر ADO.NET تقنية بيانات تستند إلى .NET Framework. تقدم لنا هذه التقنية مجموعة من الفئات التي يمكننا من خلالها إرسال استعلامات إلى قواعد البيانات ، وإنشاء اتصالات ، وتلقي استجابة من قاعدة البيانات ، وتنفيذ عدد من العمليات الأخرى.

علاوة على ذلك ، من المهم ملاحظة أنه يمكن أن يكون هناك العديد من أنظمة إدارة قواعد البيانات. في الجوهر ، قد تختلف. MS SQL Server ، على سبيل المثال ، يستخدم لغة T-SQL، بينما يستخدم MySQL و Oracle PL-SQL. قد تحتوي أنظمة قواعد البيانات المختلفة على أنواع مختلفة من البيانات. قد تختلف النقاط الأخرى أيضًا. ومع ذلك ، فإن وظيفة ADO.NET مبنية بطريقة توفر للمطورين واجهة موحدة للعمل مع مجموعة متنوعة من نظم إدارة قواعد البيانات (DBMS).

تعتمد واجهة قاعدة البيانات في ADO.NET على نطاق محدود من الكائنات: الاتصال ، والأمر ، و DataReader ، ومجموعة البيانات ، و DataAdapter. ينشئ كائن الاتصال اتصالاً بمصدر البيانات. يسمح لك كائن الأمر بتنفيذ عمليات على البيانات من قاعدة البيانات. يقوم كائن DataReader بقراءة البيانات المستلمة كنتيجة للطلب. تم تصميم كائن DataSet لتخزين البيانات من قاعدة البيانات ويسمح لك بالعمل معها بشكل مستقل عن قاعدة البيانات. والكائن DataAdapter هو وسيط بين DataSet ومصدر البيانات. بشكل أساسي ، من خلال هذه الكائنات ، سيستمر العمل مع قاعدة البيانات.

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

بشكل افتراضي ، يحتوي ADO.NET على الموفرين المضمنين التاليين:

    مزود لـ MS SQL Server

    مزود لـ OLE DB (يوفر الوصول إلى بعض الإصدارات القديمة من MS SQL Server ، بالإضافة إلى قواعد بيانات Access و DB2 و MySQL و Oracle)

    مزود لـ ODBC (مزود لمصادر البيانات تلك التي لا يوجد موفرو لها)

    مزود لشركة أوراكل

    مزود EntityClient. مزود البيانات لتقنية ORM Entity Framework

    موفر لـ SQL Server Compact 4.0 Server

بالإضافة إلى هؤلاء المزودين المدمجين ، هناك أيضًا العديد من الموفرين الآخرين المصممين لقواعد بيانات مختلفة ، مثل MySQL.

مساحات الأسماء الرئيسية المستخدمة في ADO.NET هي:

    System.Data: يحدد الفئات والواجهات والمفوضين الذين يطبقون بنية ADO.NET

    System.Data.Common: يحتوي على فئات مشتركة لجميع موفري ADO.NET

    System.Data.Design: يحدد الفئات المستخدمة لإنشاء مجموعات البيانات الخاصة بهم

    System.Data.Odbc: يعرّف وظيفة موفر البيانات لـ ODBC

    System.Data.OleDb: يحدد وظيفة موفر البيانات لـ OLE DB

    System.Data.Sql: يخزن الفئات التي تدعم وظائف SQL Server المحددة

    System.Data.OracleClient: يحدد وظائف الموفر لقواعد بيانات Oracle

    System.Data.SqlClient: يحدد وظائف الموفر لقواعد بيانات MS SQL Server

    System.Data.SqlServerCe: يحدد وظائف الموفر لـ SQL Server Compact 4.0

    System.Data.SqlTypes: يحتوي على فئات لأنواع بيانات MS SQL Server

    Microsoft.SqlServer.Server: يخزن مكونات لـ SQL Server للتواصل مع وقت تشغيل اللغة العامة

من الناحية التخطيطية ، يمكن تمثيل بنية ADO.NET على النحو التالي:

وظيفيًا ، يمكن تقسيم فئات ADO.NET إلى مستويين: متصل وغير متصل. يقوم كل موفر بيانات .NET بتنفيذ نسخته الخاصة من الاتصال ، والأمر ، و DataReader ، و DataAdapter ، وعدد من الكائنات الأخرى التي تشكل الطبقة المتصلة. أي بمساعدة منهم ، يتم إنشاء اتصال بقاعدة البيانات ويتم التفاعل معها. كقاعدة عامة ، يكون لعمليات تنفيذ هذه الكائنات لكل موفر محدد بادئة في اسمها تشير إلى الموفر:

تشكل الفئات الأخرى مثل DataSet و DataTable و DataRow و DataColumn وعددًا من الفئات الأخرى الطبقة غير المتصلة ، لأنه بمجرد استرداد البيانات في DataSet ، يمكننا العمل مع تلك البيانات سواء تم إنشاء الاتصال أم لا. أي بعد تلقي البيانات من قاعدة البيانات ، يمكن فصل التطبيق عن مصدر البيانات.

عندما يقوم المهندسون المعماريون من فئة n بتقييم تقنية أو نمط أو إستراتيجية جديدة ، فإنهم يقررون كيف ستتناسب قطعة الأحجية الجديدة مع الهندسة المعمارية. إذا كان هناك إطار عمل للكيان ، فلن يتسبب التكامل في أي صعوبات. يمكن دمجها في بنية n-tier بالإضافة إلى بنية أحادية الطبقة.

19.03.2009 15:32

الأسئلة الشائعة حول إطار عمل الكيان

يعد فهم نمذجة الكيانات وتخطيط هذه النماذج لقواعد البيانات العلائقية وتصميم نماذج بيانات الكيانات (EDMs) هي الخطوات الأولى لفهم إطار عمل الكيان. سأبدأ هذه المقالة بالإجابة على أسئلة حول أساسيات Entity Framework ، بما في ذلك فئة ObjectContext ، ثم أجيب على الأسئلة المتعلقة بوقت ومكان استخدام Entity Client مع Entity SQL. بالإضافة إلى ذلك ، أخطط لشرح الفرق بين EntityClient و Object Services ، والآثار المترتبة على استخدام استعلامات LINQ و Entity SQL جنبًا إلى جنب مع هذه الخدمات.

16.02.2009 15:15

نظرة عامة على ADO.NET Entity Framework

في الإصدار استوديو مرئي 2008 ، تقدم ADO.NET بنية Entity Framework جديدة. يسمح للمطورين بالوصول إلى البيانات باستخدام نموذج كائن بدلاً من نموذج بيانات منطقي أو علائقي. يساعد إطار الكيان على التجريد مخطط منطقيالبيانات في النموذج المفاهيمي وتوفر عدة طرق للتفاعل مع النموذج المفاهيمي من خلال خدمات الكائنات وموفر بيانات جديد يسمى EntityClient. تناقش مقالة هذا الشهر ماهية Entity Framework ، وكيفية تطبيقه على أحد التطبيقات ، وكيفية تصميمه وبرمجته مع وضع ذلك في الاعتبار.

13.02.2009 18:44

تطوير نموذج بيانات الكيان مع إطار عمل الكيان

إطار الكيان هو تكنولوجيا جديدة، مصمم لـ ADO.NET. يسمح للمطورين بتصور البيانات باستخدام نموذج منطقي بدلاً من نموذج مادي ، مما يوفر بعض المرونة في التطوير. في عدد يوليو 2007 من المجلة ، تحت عنوان "نقاط البيانات" ، قدمنا نظرة عامة مفصلةتقنيات Entity Framework (يجب إصدارها رسميًا في النصف الأول من عام 2008).

13.02.2009 18:33

استخدام السمات للتطبيع والتحقق من صحة الكيانات التجارية

في برمجة الشركات ، عند تصميم طبقة وصول إلى البيانات ، غالبًا ما تبرز مسألة العمل مع كائنات الأعمال (كيانات الأعمال): هذه هي التحميل / التغيير / الحفظ والتنقل بين المستويات. هناك طريقتان رئيسيتان للقيام بذلك - استخدام كيانات الأعمال الخاصة بك أو الوسائل القياسية(يوفر ADO.NET طرقًا ملائمة تمامًا للقيام بذلك) - باستخدام DataSet.

20.01.2007 03:54

ADO.NET: نظرة عامة على التكنولوجيا

يعمل العديد من المبرمجين مع قواعد البيانات على منصات مايكروسوفت، يمكن أن نقدر بساطة وراحة تقنية ADO - كائنات بيانات ActiveX. واجهة بديهية ومجموعة منطقية من الكائنات ، إلى جانب سهولة البرمجة ، استحقوا بجدارة اعترافًا من المبرمجين. على الرغم من ذلك ، إلى جانب منصة .NET الجديدة ، تقدم Microsoft أيضًا جيلًا جديدًا من أدوات الوصول إلى قواعد البيانات - ADO.NET.

27.12.2006 01:32

العمليات على البيانات ذات الهيكل الهرمي. تطوير التطبيقات الموزعة في .NET

توضح هذه المقالة أسلوب قراءة مجموعات الصفوف الهرمية وكتابتها في مصدر بيانات. في أمثلة التعليمات البرمجية الواردة في هذه المقالة ، للاتصال بقاعدة البيانات بيانات Microsoftيستخدم SQL Server أو Microsoft Desktop Engine (MSDE) موفر SQL مُدارًا. للاتصال بمصادر بيانات أخرى متوافقة مع OLEDB ، استخدم موفر ADO المُدار.

27.12.2006 01:26

العمل مع البيانات دون اتصال في ADO.NET

تم تصميم ADO.NET ، على عكس سابقيه ADO و OLE DB ، خصيصًا للاستخدام في ملفات تطبيقات الويب، حيث لا توجد اتصالات دائمة بقاعدة البيانات. تم إنشاء العمل التقليدي مع البيانات في ADO.NET وفقًا للمخطط التالي: اتصال، ثم يتم فتحه بطريقة الفتح ، يتم إنشاء كائن أمر مغلف أمر SQL، يتم تنفيذه ثم يتم إغلاق الاتصال. يوفر هذا الأسلوب وصولاً مترابطًا إلى نتائج الاستعلام. أولئك. عند قراءة البيانات باستخدام DataReader ، لا يمكنك القفز فوق سجلات متعددة أو العودة إلى السجل السابق. الوصول إلى البث لديه أقصى أداء.



تحميل...
قمة