Loyiha mantiqini amalga oshirish - texnologiya
Tarkibga oʻtish

Dizayn mantiqini amalga oshirish

  • tomonidan

Reklamalar

Amalga oshirishga yondashuv falsafalari

Sharshara yondashuvi

Ilovani amalga oshirishning sharshara yondashuvi dizaynerdan oxirgi foydalanuvchi tashkilotining bir yoki bir nechta vakillari bilan maslahatlashishni va dasturning barcha spetsifikatsiyalarini yozishni talab qiladi. Odatda, texnik xususiyatlar oxirgi foydalanuvchi hujjatlarni osongina o'qishi va tushunishi uchun yozilgan funktsional hujjatlar to'plami yoki foydalanish holatlarida keladi.

Yakuniy foydalanuvchi ushbu hujjatlarni imzolaydi va hujjatlar keyinchalik sinf modeli diagrammalari, holat diagrammalari, faoliyat diagrammalari va ma'lumotlar modellari kabi turli artefaktlarni yaratib, dasturni loyihalashtirgan texnik dizayn guruhi tomonidan yig'iladi. Ushbu bosqichning maqsadi hamma narsani shunchalik batafsil yozishdirki, ishlab chiquvchi kerakli kodni yaratishda hech qanday muammoga duch kelmaydi. Dizaynni ishlab chiqish guruhi va sinov guruhiga rasmiy ravishda topshirish mavjud. Yetkazib berishdan so'ng, ishlab chiqish guruhi kodlashni boshlaydi va sinov guruhi sinov holatlari va test stsenariylarini yaratish uchun texnik dizayndan foydalanish holatlari bilan birgalikda foydalanadi.

Ishlab chiqish guruhi kodlashni tugatgandan so'ng, kod sinov guruhiga topshiriladi. Sinov guruhi talablar va batafsil dizayn asosida ishlab chiqilgan testlarni amalga oshiradi. Har qanday muammo ishlab chiqish guruhi tomonidan hal qilinadi. Sinov va tuzatish jarayoni tugallangandan so'ng, ariza qabul qilish testi uchun oxirgi foydalanuvchiga topshiriladi. Yakuniy foydalanuvchi dasturning dastlabki talablarga muvofiqligini tekshirish uchun yakuniy tekshiruvni amalga oshiradi. Agar tasdiqlansa, u tayyor mahsulotni tasdiqlaydi va loyiha tugallanadi. Ishlab chiqish guruhi kodlashni tugatgandan so'ng, kod sinov guruhiga topshiriladi.

Sinov guruhi talablar va batafsil dizayn asosida ishlab chiqilgan testlarni amalga oshiradi. Har qanday muammo ishlab chiqish guruhi tomonidan hal qilinadi. Sinov va tuzatish jarayoni tugallangandan so'ng, ariza qabul qilish testi uchun oxirgi foydalanuvchiga yetkaziladi. Yakuniy foydalanuvchi dasturning dastlabki talablarga muvofiqligini tekshirish uchun yakuniy tekshiruvni amalga oshiradi. Agar tasdiqlansa, u tayyor mahsulotni tasdiqlaydi va loyiha tugallanadi. Ishlab chiqish guruhi kodlashni tugatgandan so'ng, kod sinov guruhiga topshiriladi. Sinov guruhi talablar va batafsil dizayn asosida ishlab chiqilgan testlarni amalga oshiradi.

 Har qanday muammo ishlab chiqish guruhi tomonidan hal qilinadi. Sinov va tuzatish jarayoni tugallangandan so'ng, ariza qabul qilish testi uchun oxirgi foydalanuvchiga yetkaziladi. Yakuniy foydalanuvchi dasturning dastlabki talablarga muvofiqligini tekshirish uchun yakuniy tekshiruvni amalga oshiradi. Agar tasdiqlansa, u tayyor mahsulotni tasdiqlaydi va loyiha tugallanadi.

Yakuniy foydalanuvchi dasturning dastlabki talablarga muvofiqligini tekshirish uchun yakuniy tekshiruvni amalga oshiradi. Agar tasdiqlansa, u tayyor mahsulotni tasdiqlaydi va loyiha tugallanadi. Yakuniy foydalanuvchi dasturning dastlabki talablarga muvofiqligini tekshirish uchun yakuniy tekshiruvni amalga oshiradi. Agar tasdiqlansa, u tayyor mahsulotni tasdiqlaydi va loyiha tugallanadi.

Sharshara yondashuvidan foydalanganda loyiha ko'proq yoki kamroq bosqichlarga ega bo'lishi mumkin, ammo asosiy xususiyat har bir bosqichning juda rasmiy boshlanishi va oxiri, juda rasmiy natijalar bilan.

Sharshara usulining afzalligi shundaki, har bir bosqich uchun mas'ul bo'lgan jamoaning mas'uliyati kattaroqdir. Ular nimani, qachon yetkazib berishlari va kimga yetkazishlari kerakligi aniq. Ko'pincha, ishlab chiqish guruhi foydalanuvchi bilan muloqot qilishiga hojat qolmaydi. Bu rivojlanishni boshqa mamlakatga autsorsing qilishda juda foydali bo'lishi mumkin.

Sharshara yondashuvining asosiy kamchiligi shundaki, hamma narsa juda rasmiy tarzda tashkil etilgan muhitda o'zgarishlarga javob berish moslashuvchanligi pasayadi. Hatto harakatni tashkil qilish kerak. Juda kam kompaniyalar buni samarali bajaradilar, bu ko'pincha umumiy xarajatlarning sezilarli darajada oshishiga olib keladi. Loyihaning xarajatlarini boshqarish uchun ba'zi kompaniyalar hatto talablarga kiritilgan har qanday o'zgarishlarni oxirgi foydalanuvchi ehtiyojlariga javob bermaydigan ilovani samarali yetkazib berish uchun dastlabki ariza yetkazib berilgunga qadar kechiktiradilar.

Tez rivojlanish

Ko'pgina uzoq muddatli dasturiy ta'minot ishlab chiqish loyihalari byudjetdan oshib ketdi va mahsulotni o'z vaqtida yetkazib bera olmadi. Agile dasturiy ta'minotni ishlab chiqish falsafasining asosi, odatda bir haftadan to'rt haftagacha davom etadigan iteratsiyalar deb ataladigan qisqa vaqtli qutilarda dasturiy ta'minotni ishlab chiqish orqali xavfni minimallashtirishdir. Har bir iteratsiya o'zining miniatyurali dasturiy ta'minot loyihasiga o'xshaydi va yangi funksionallikni oshirish uchun zarur bo'lgan barcha vazifalarni o'z ichiga oladi: rejalashtirish, talablarni tahlil qilish, dizayn, kodlash, sinovdan o'tkazish va hujjatlar. Garchi iteratsiya mahsulotning chiqarilishini kafolatlash uchun etarli funksionallikni qo'shmasligi mumkin bo'lsa-da, tezkor dasturiy ta'minot loyihasi har bir iteratsiya oxirida yangi dasturiy ta'minotni chiqarishga qodir. Har bir iteratsiya oxirida jamoa loyiha ustuvorliklarini qayta baholaydi.

Agile dasturiy ta'minotni ishlab chiqish maqsadi - foydali dasturiy ta'minotni tez va uzluksiz yetkazib berish orqali mijozlar ehtiyojini qondirish; har doim mijozga kerak bo'lgan narsani yaratishga intiling; talablarning kech o'zgarishiga qarshi emas, balki xush kelibsiz; o'zgaruvchan sharoitlarga muntazam ravishda moslashish; tadbirkorlar va ishlab chiquvchilar o'rtasida yaqin va kundalik hamkorlik qilish, bunda yuzma-yuz suhbat muloqotning eng yaxshi shakli hisoblanadi.

Agile dasturiy ta'minotni ishlab chiqishning asosiy afzalligi - har doim biznes ehtiyojlariga mos ravishda etkazib berishga qaratilgan o'zgarishlar bilan ishlashda moslashuvchanlik. Salbiy tomoni, albatta, miqyosni boshqarish, rejalashtirish va byudjetlashtirishning murakkabligini oshirishdir. Yana bir keng tarqalgan xavf - bu (texnik) hujjatlarga cheklangan e'tibor.

Incremental rivojlanish

Incremental dasturiy ta'minot ishlab chiqish agile va sharshara rivojlanishining aralashmasidir. Ilova bosqichma-bosqich ishlab chiqiladi, amalga oshiriladi va sinovdan o'tkaziladi, shunda har bir qo'shimcha oxirgi foydalanuvchiga yetkazilishi mumkin. Oxirgi o'sish tugamaguncha loyiha tugallanmaydi. U oraliq bosqichlarni belgilash va tezkor rivojlanishning ba'zi afzalliklaridan foydalanish orqali sharsharani qisqartirishga qaratilgan. Oldingi o'sish bo'yicha olingan fikr-mulohazalarga asoslanib, keyingi o'sishni etkazib berishda tuzatishlar kiritilishi mumkin. Keyingi o'sish yangi koddan, shuningdek, ilgari berilgan kodga o'zgartirishlardan iborat bo'lishi mumkin.

Afzallik shundaki, rasmiyatchiliklar joyida qoladi, lekin o'zgarishlarni boshqarish osonroq bo'ladi. Ilovani bir necha marta sinovdan o'tkazish va joylashtirish narxi uni bir marta bajarishdan yuqori bo'ladi.

Dastur oqimini boshqarish

Dastur oqimini boshqarishga yondashuvni tanlash juda me'moriy vazifadir. Maqsad ilovangiz rejasini yaratishdir, unda siz funksionallik va kod qo'shishni boshlaganingizdan so'ng, hamma narsa o'z joyiga ega bo'lib ko'rinadi. Agar siz yuqori sifatli kodni ko'rib chiqqan yoki yozgan bo'lsangiz, bu tamoyilni tushunasiz

Tashkiliy kod

Dastur oqimini loyihalashda birinchi qadam dastur rejasini yoki konturini yaratishga yordam beradigan qoidalar to'plamini o'rnatish, kodni tartibga solishdir. Xizmat, disk raskadrovka va xatolarni tuzatish osonroq bo'ladi, chunki kod bitta mantiqiy joyda joylashgan. Asosiy ishlarni bajarganingizdan so'ng, dastur mantig'ini amalga oshirish uchun yondashuvni tanlashingiz mumkin.

Dizayn naqshlari dastur oqimini boshqarishni loyihalashda muhim rol o'ynashi kerak. Yillar davomida ko'plab kodlar yozildi va takrorlanadigan muammolar uchun ko'plab echimlar ishlab chiqilgan. Ushbu echimlar dizayn naqshlarida keltirilgan. Umumiy dasturiy ta'minotni loyihalash muammosiga dizayn namunasini qo'llash osonlik bilan tanib olinadigan va tengdoshlaringiz tomonidan amalga oshirilishi mumkin bo'lgan echimlarni yaratishga yordam beradi. Noyob muammolar hali ham noyob echimlarni talab qiladi, ammo ularni hal qilishda sizga yo'l-yo'riq ko'rsatish uchun dizayn naqshlaridan foydalanishingiz mumkin.

Loyihani yaratish

qatlamlar

Birinchi qadam mantiqiy qatlamlarni ko'rib chiqishdir. E'tibor bering, qatlamlar qatlamlar bilan bir xil emas, ko'pincha aralashtiriladi yoki hatto bir xil deb hisoblanadi.

Qatlamlar va qatlamlar

Qatlamlar sizning kodingizda chegaralarni yaratish bilan bog'liq. Yuqori qatlam pastki qatlamlardagi kodga havolalarga ega bo'lishi mumkin, ammo qatlam hech qachon yuqori qatlamdagi kodga havolaga ega bo'lolmaydi. Qatlamlash qatlamlarning bir nechta kompyuterlarda jismoniy taqsimlanishiga tegishli. Masalan, uch bosqichli dasturda foydalanuvchi interfeysi ish stoli kompyuterida, dastur mantig’i dastur serverida, ma’lumotlar bazasi esa ma’lumotlar bazasi serverida ishlaydi. har bir qatlam bir nechta qatlamlardan iborat bo'lishi mumkin.

Shakl 8-1: Asosiy uch bosqichli tashkilot

Qatlamlar abstraksiya darajalariga ishora qiladi. 8-1-rasmda ko'rsatilgan qatlamlar ko'pchilik ilovalar uchun to'g'ri keladi. Ushbu darajalar uchta asosiy qatlam deb ham ataladi va bir nechta boshqa nomlarga ega bo'lishi mumkin. Qoidaga ko'ra, taqdimot qatlamidagi kod amaliy mantiqiy qatlamdagi xizmatlarni chaqirishi mumkin, ammo amaliy mantiqiy qatlam taqdimot qatlamidagi usulni chaqirmasligi kerak. Taqdimot qatlami hech qachon ma'lumotlarga kirish qatlamini to'g'ridan-to'g'ri chaqirmasligi kerak, chunki bu dastur mantiqiy qatlami tomonidan amalga oshiriladigan mas'uliyatni chetlab o'tadi. Ma'lumotlarga kirish qatlami hech qachon dastur mantiqiy qatlamini chaqirmasligi kerak.

Qatlamlar shunchaki abstraktsiya va qatlamlarni amalga oshirishning eng oson yo'li loyihangizda papkalarni yaratish va tegishli papkaga kod qo'shishdir. Har bir qatlamni alohida loyihaga joylashtirish va shu bilan alohida yig'ilishlarni yaratish foydaliroq yondashuv bo'ladi. Ilova mantig'ini kutubxona yig'ilishiga joylashtirishning afzalligi shundaki, u mantiqni sinab ko'rish uchun Microsoft Visual Studio yoki NUnit yordamida birlik testlarini yaratishga imkon beradi. Shuningdek, u har bir qatlamni qaerga joylashtirishni tanlashda moslashuvchanlikni yaratadi.

Jismoniy qatlamlar

Korporativ dasturda siz bir xil mantiq uchun bir nechta mijozlarga ega bo'lishingizni kutishingiz kerak. Aslida, ilovani korporativ ilovaga aylantiradigan narsa shundaki, u uchta qatlamda joylashtiriladi: mijoz, dastur serveri va ma'lumotlar bazasi serveri. Kompaniyangizning savdo bo'limi tomonidan yaratilgan Microsoft Office Access ilovasi, garchi savdo bo'limi uchun juda muhim bo'lsa ham, korporativ ilovani tashkil etmaydi.

E'tibor bering, dastur mantig'i va ma'lumotlarga kirish qatlamlari ko'pincha dastur serverida birgalikda joylashtiriladi. Loyihani loyihalashning bir qismi .NET yoki veb-masofaviy xizmatlardan foydalangan holda dastur serveriga kirishni tanlashdir.Siz tanlaganingizdan qat'iy nazar, siz taqdimot qatlamidagi masofaviy xizmatlarga osongina kirish uchun ba'zi kodlarni qo'shasiz. Agar siz ilova serveringizdagi xizmatlarga kirish uchun veb-xizmatlardan foydalanayotgan bo'lsangiz, Visual Studio .NET siz uchun ishni bajaradi va avtomatik ravishda masofaviy proksi namunasini amalga oshirishni ta'minlovchi proksi-kodni yaratadi.

Qatlamlarga naqsh qo'shish

Uchta asosiy qatlam yuqori darajadagi umumiy ko'rinishni ta'minlaydi. Kuchli korporativ arxitekturani yaratish uchun ba'zi strukturaviy naqshlarni qo'shamiz. Natija 8-2-rasmda ko'rsatilgan.

Ilovaning mantiqiy qatlamiga e'tibor qarating. 8-2-rasmda dastur mantig'iga kirish fasad naqshidan foydalanilganligini ko'rsatadi. Fasad - bu sinf kutubxonasi kabi kattaroq kodlar uchun soddalashtirilgan interfeysni ta'minlovchi ob'ekt. Fasad kutubxonaning ichki ishlashiga tashqi kod bog'liqligini kamaytirishi mumkin, chunki ko'pchilik kodlar fasaddan foydalanadi, bu esa tizimni ishlab chiqishda ko'proq moslashuvchanlikni ta'minlaydi. Buning uchun jabhada nozik taneli ob'ektlar to'plamiga qo'pol taneli interfeys beradi.

qarorlar oqimi

Dastur oqimini boshqarish, shuningdek qarorlar oqimi sifatida ham tanilgan, siz ilovaning mantiqiy qatlamidagi xizmatlarni qanday loyihalashtirganingizga yoki oldingi paragrafda ko'rganingizdek, fasaddagi usullarni qanday loyihalashtirganingizga tegishli.

Xizmatlaringizni tashkil qilishda ikkita yondashuv mavjud:

  • harakatga yo'naltirilgan
  • davlat tomonidan boshqariladi

Harakatga yo'naltirilgan yondashuv

Foydalanuvchi harakatlariga asoslangan xizmatlarni tashkil qilish orqali siz xizmatlarni taklif qilish orqali dastur mantig'ini amalga oshirasiz, ularning har biri taqdimot qatlamidan ma'lum bir so'rovni bajaradi. Bu tranzaksiya skripti namunasi sifatida ham tanilgan. Bu yondashuv mashhur, chunki u oddiy va juda tabiiy. Ushbu yondashuvga amal qiladigan usullarga misollar: BookStoreService.AddNewOrder(Order order) va BookStoreService.CancelOrder(int orderId).

Harakatni bajarish uchun zarur bo'lgan mantiq usul ichida juda ketma-ket amalga oshiriladi, bu uni juda o'qilishi mumkin, lekin kodni qayta ishlatishni qiyinlashtiradi. Jadval moduli namunasi kabi qo'shimcha dizayn naqshlaridan foydalanish qayta foydalanish imkoniyatini oshirishga yordam beradi.

Davlatga yo'naltirilgan yondashuv

Bundan tashqari, arizaning qarorlar oqimini ancha davlatga yo'naltirilgan tarzda amalga oshirish mumkin. Ilova serveri tomonidan taklif qilinadigan xizmatlar tabiatan umumiyroqdir, masalan, BookStoreService.SaveOrder(Buyurtma tartibi). Ushbu usul buyurtmaning holatini tekshiradi va yangi buyurtma qo'shish yoki mavjud buyurtmani bekor qilish to'g'risida qaror qabul qiladi.

Ma'lumotlar tuzilmasi loyihalari

Ma'lumotlar tuzilmalarini loyihalashda siz bir nechta tanlov qilishingiz kerak. Birinchi tanlov - ma'lumotlarni saqlash mexanizmi, ikkinchisi - ma'lumotlardan maqsadli foydalanish, uchinchisi - versiya talablari. Ma'lumotlar strukturasi dizaynini ko'rib chiqishning uchta usuli mavjud:

  • Xizmatlar taklifi ma'lumotlari; ma'lumotlar relyatsion ma'lumotlar bazasining aksidir.
  • Ma'lumotlar ob'ektlarga ko'rsatilishi kerak va xizmatlar ob'ektlarga kirishni ta'minlaydi.
  • Xizmatlar tomonidan taqdim etilgan ma'lumotlar sxemaga asoslangan bo'lishi kerak.

Ma'lumotlar oqimi tuzilmasi uchun asos sifatida uchtadan birini tanlash dizayn jarayonining dastlabki bosqichida amalga oshirilishi kerak. Ko'pgina kompaniyalar barcha loyihalar bo'yicha uchta variantdan birini talab qiladigan kompaniya siyosatiga ega, ammo iloji bo'lsa, har bir loyiha uchun variantlarni qayta ko'rib chiqishingiz va loyiha uchun ideal yondashuvni tanlashingiz kerak.

Ma'lumotlarni saqlash mexanizmini tanlash

Ilovangizni loyihalashda, shubhasiz, ma'lumotlarni saqlashning bir turini loyihalashingiz kerak bo'ladi. Quyidagi do'konlar va ma'lumotlarni saqlash shakllari mavjud:

  • Yozib olish
  • app.config fayli
  • xml fayllari
  • oddiy matnli fayllar
  • Ma'lumotlar bazasi
  • Xabar navbati

Har bir do'kon o'ziga xos xususiyatlarga ega va muayyan talablarga moslashtirilishi mumkin.

Ma'lumotlar oqimini loyihalash

ADO.NET yordamida ma'lumotlar oqimi

Ilova mantiqiy qatlamida ma'lumotlarga asoslangan xizmatlarni amalga oshirishda siz ADO.NET yordamida ma'lumotlar oqimini loyihalashtirasiz. .NET Framework sinf kutubxonasi boshqariladigan koddagi ma'lumotlarni manipulyatsiya qilish uchun keng qamrovli amaliy dasturlash interfeysini (API) taqdim etadi. ADO.NET deb nomlanuvchi APIni System.Data nom maydonida topish mumkin. Media va ma'lumotlar do'konlarini to'liq ajratish ADO.NET ning muhim dizayn xususiyati hisoblanadi. DataSet, DataTable va DataRow kabi sinflar ma'lumotlarni saqlash uchun mo'ljallangan, ammo ular ma'lumotlar qayerdan kelganligi haqida hech qanday ma'lumotni saqlamaydi. Ular ma'lumotlar manbai agnostik hisoblanadi. SqlConnection, SqlDataAdapter va SqlCommand kabi alohida sinflar to'plami ma'lumotlar manbasiga ulanish, ma'lumotlarni olish va DataSet, DataTable va DataRow-ni to'ldirish bilan shug'ullanadi. Bu sinflar System.Data.Sql, System.Data.OleDB, System.Data.Oracle va boshqalar kabi sub-ism fazolarida joylashgan. Qaysi ma'lumot manbasiga ulanishni xohlayotganingizga qarab, sinflardan to'g'ri nomlar maydonida foydalanishingiz mumkin va siz foydalanayotgan mahsulot doirasiga qarab, bu sinflar ko'proq yoki kamroq funksiyalarni taklif qilishini bilib olasiz.

DataSet ma'lumotlar manbaiga ulanmaganligi sababli, uni ilovadagi ma'lumotlar oqimini boshqarish uchun juda muvaffaqiyatli ishlatish mumkin. 8-5-rasmda buni amalga oshirishda ma'lumotlar oqimi ko'rsatilgan.

Keling, ushbu loyihani ko'rib chiqaylik va kimdir kitob do'koningizga kirib, uchta kitobga buyurtma berganini tasavvur qiling. Taqdimot qatlami xarid qilish savati holatini boshqargan. Xaridor buyurtma berishga tayyor va barcha kerakli ma'lumotlarni taqdim etgan. U buyurtma yuborishni tanlaydi. Veb-sahifa barcha ma'lumotlarni ikkita ma'lumotlar jadvalini o'z ichiga olgan ma'lumotlar to'plamiga aylantiradi, biri buyurtma uchun, ikkinchisi buyurtma uchun; so'rov uchun DataRow qo'shadi; va buyurtma satrlari uchun uchta DataRows kiritadi. Keyin veb-sahifa ushbu ma'lumotlarni yana bir marta foydalanuvchiga ko'rsatadi, DataSet bilan ma'lumotlar boshqaruvini bog'laydi va "Ishonchingiz komilmi?" Foydalanuvchi so'rovni tasdiqlaydi va u ilovaning mantiqiy qatlamiga yuboriladi. Ilova mantiqiy qatlami barcha kerakli maydonlar qiymatga ega yoki yo'qligini tekshirish uchun DataSetni tekshiradi va foydalanuvchida 1000 dan ortiq US$ mavjudligini tekshirishni amalga oshiradi. 00 to'lanmagan veksellar bo'yicha. Agar hammasi yaxshi bo'lsa, DataSet ma'lumotlar bazasiga ulanadigan va DataSet ma'lumotlaridan qo'shish bayonotlarini yaratadigan ma'lumotlarga kirish qatlamiga o'tkaziladi.

Ma'lumotlar to'plamidan shu tarzda foydalanish dastur yaratish va Framework klassi kutubxonasi kuchidan va ASP.NET-ning ma'lumotlar to'plamiga qarshi GridView kabi turli boshqaruv elementlariga ma'lumotlarni bog'lash qobiliyatidan foydalanishning tez va samarali usuli hisoblanadi. Oddiy DataSet ob'ektlaridan foydalanish o'rniga siz Typed DataSet ob'ektlaridan foydalanishingiz va dastur mantiqiy qatlami bilan bir qatorda taqdimot qatlamida kodni amalga oshirish orqali kodlash tajribasini yaxshilashingiz mumkin. Ushbu yondashuvning afzalligi, shuningdek, yondashuvning kamchiliklari. Ma'lumotlar modelidagi kichik o'zgarishlar ko'p usullarning imzolarini o'zgartirishga olib kelishi shart emas. Shunday qilib, parvarishlash nuqtai nazaridan, bu juda yaxshi ishlaydi. Agar siz taqdimot qatlami mutlaqo foydalanuvchi interfeysi emasligini eslasangiz, u veb-xizmat ham bo'lishi mumkin va agar siz ma'lumotlar to'plamining ta'rifini o'zgartirsangiz, ehtimol ma'lumotlar bazasidagi maydon nomini o'zgartirayotganingiz sababli, siz shartnomani o'zgartirgan bo'lasiz. Siz tasavvur qilganingizdek, bu ba'zi muhim muammolarga olib kelishi mumkin. Agar taqdimot qatlami shunchaki foydalanuvchi interfeysi bo'lsa, bu stsenariy yaxshi ishlaydi, lekin tashqi tizimlar yoki komponentlar interfeyslari uchun siz ilovangizning ichki ishini yashirishni va ma'lumotlarni ma'lumotlar modelingizning bevosita klonidan boshqa narsaga aylantirishni xohlaysiz. siz ma'lumotlarni uzatish ob'ektlarini (DTO) yaratmoqchi bo'lasiz.

Ob'ektni relyatsion xaritalash yordamida ma'lumotlar oqimi

ADO.NET yordamida ma'lumotlar oqimi ma'lumotlar oqimini boshqarish uchun juda ma'lumotlarga asoslangan yondashuvdir. Ma'lumotlar va mantiq diskretdir. Spektrning boshqa tomoni ko'proq ob'ektga yo'naltirilgan yondashuvni qo'llaydi. Bu erda ma'lumotlar va xatti-harakatlarni guruhlash uchun sinflar yaratiladi. Maqsad, dastur yaratilgan biznes sohasida topilgan ma'lumotlar va xatti-harakatlarga taqlid qiladigan sinflarni aniqlashdir. Natija ko'pincha biznes ob'ekti deb ataladi. Ilovani tashkil etuvchi biznes ob'ektlari to'plami domen modeli deb ataladi. Ba'zi ishlab chiquvchilarning ta'kidlashicha, boy domen modeli murakkabroq mantiqni loyihalash uchun yaxshiroqdir. Bunday bayonotni isbotlash yoki rad etish qiyin. Bilingki, sizda tanlov bor va uni amalga oshirish o'zingizga bog'liq.

8-6-rasmda 8-5-rasmga o'xshash ma'lumotlar oqimi ko'rsatilgan, bundan tashqari siz ob'ektga aloqador xaritalash qatlamini qo'shdingiz va DataSet ob'ektlarini turli xil ma'lumotlar tashuvchilar bilan almashtirdingiz.

Endi avvalgidek qadamma-qadam bajaring; Tasavvur qiling, kimdir kitob do'koningizga kirib, uchta kitobga buyurtma bergan. Taqdimot qatlami xarid qilish savati holatini boshqargan. Xaridor buyurtma berishga tayyor va barcha kerakli ma'lumotlarni taqdim etgan. U buyurtma yuborishni tanlaydi. Veb-sahifa barcha ma'lumotlarni DTOga aylantiradi, bitta buyurtma uchun ma'lumotlarni va uchta tartib qatori bilan, kerak bo'lganda ob'ektlarni yaratadi. Veb-sahifa ushbu ma'lumotlarni yana bir bor foydalanuvchiga ko'rsatadi, ASP.NET 2.0 da ObjectDataSource yordamida ma'lumotlarni ulash DTOga qarshi nazorat qiladi va "Ishonchingiz komilmi?" Foydalanuvchi tanlovni tasdiqlaydi va DTO ilovaning mantiqiy qatlamiga yuboriladi. Ilova mantiqiy qatlami DTO ni uchta OrderLine ob'ektini o'z ichiga olgan xususiyatga ega Order tipidagi biznes ob'ektiga aylantiradi. Buyurtma usuli. Buyurtmani tasdiqlash va barcha talab qilinadigan maydonlar qiymatga ega ekanligini tekshirish uchun Validate() chaqiriladi va foydalanuvchi kutilayotgan sliplarda R$ 1,000.00 dan ortiqligini aniqlash uchun tekshiriladi. Buning uchun buyurtma Order.Customer.GetOutstandingBills() deb nomlanadi. Agar hamma narsa yaxshi bo'lsa, Order.Save() usuli chaqiriladi. So'rov ob'ekt bilan bog'liq xaritalash qatlamidan o'tadi, bu erda so'rov va so'rov satrlari DataSetdagi DataTable bilan taqqoslanadi va DataSet ma'lumotlar bazasiga ulanadigan va qo'shish ko'rsatmalarini ishlab chiqaradigan ma'lumotlarga kirish qatlamiga uzatiladi. ma'lumotlar to'plamidagi ma'lumotlar. Albatta, ob'ekt bilan bog'liq xaritalashning ko'plab usullari mavjud, ammo ularning hammasi ham DataSetga o'zgartirishni o'z ichiga olmaydi. Ba'zilar to'g'ridan-to'g'ri qo'shish bayonotlarini yaratadilar, lekin bu bayonotni bajarish uchun ma'lumotlarga kirish qatlamidan foydalanadilar.

Ko'rib turganingizdek, ba'zi o'zgarishlar sodir bo'ladi. DTO lardan foydalanish zarur, chunki biznes ob'ekti xatti-harakatlarni amalga oshiradi va xatti-harakatlar o'zgarishi mumkin. Ushbu o'zgarishlarning taqdimot qatlamiga ta'sirini kamaytirish uchun siz ma'lumotlarni biznes ob'ektidan tashqariga va ma'lumotlarni uzatish ob'ektiga aylantirishingiz kerak. Java-da ma'lumotlarni uzatish ob'ekti ko'pincha qiymat ob'ekti deb ataladi.

Biznes ob'ektlari bilan ishlashning katta afzalligi shundaki, u haqiqatan ham kodingizni tartibga solishga yordam beradi. Agar siz mantiqning murakkab qismiga nazar tashlasangiz, u odatda juda o'qilishi mumkin, chunki u erda sanitariya-tesisat kodi juda oz. Salbiy tomoni shundaki, ko'pgina ma'lumotlar do'konlari hali ham aloqador va biznes ob'ektlarini relyatsion ma'lumotlarga solishtirish juda murakkab bo'lishi mumkin.

Sxema asosidagi xizmatlar

Ma'lumotlar oqimini boshqarishda siz ikkita qarama-qarshilikni ko'rdingiz. Ko'p o'zgarishlar mumkin. Ma'lumotlar to'plami ma'lumotlarni saqlash uchun asosiy foydalanuvchi interfeysi ma'lumotlarini qo'llab-quvvatlash sifatida ishlatiladigan variant, ammo boshqa tizimlardan chaqiriladigan veb-xizmatlar uchun alohida sxemalar (DTO) ishlatiladi. Ilova qatlami relyatsion ma'lumotlarni oldindan belgilangan sxemaga aylantiradi. Buning asosiy afzalligi shundaki, xizmatga havola qiladigan har qanday dastur komponentni ichki amalga oshirishning hech qanday turiga bog'liq emas. Bu versiya yaratishda ko'proq moslashuvchanlikni, interfeyslarning orqaga qarab muvofiqligini va xizmat interfeysini o'zgartirmasdan komponentni amalga oshirishni o'zgartirish imkoniyatini beradi.

Albatta, siz veb-ilovada biznes ob'ektlaridan foydalanishingiz va DTO transformatsiyasini chetlab o'tishingiz mumkin, lekin bu odatda faqat ilova mantig'i veb-ilova bilan birga amalga oshirilsa yaxshi ishlaydi.Sorder.Save() ga qo'ng'iroq qilish uchun sizga kerak bo'lishini unutmang. ma'lumotlar bazasiga ulanish. Bu sizga va ehtimol sizning xavfsizlik direktoringizga bog'liq.