Ekstremal asp. NET asp. Net mvc ilovalaringiz uchun ishlash tamoyillari reja



Yüklə 54,68 Kb.
səhifə4/4
tarix25.09.2023
ölçüsü54,68 Kb.
#148389
1   2   3   4
Ergashev Otajon ASP.NET (1)

Ko'rish ustasini qo'shish
Albert Eynshteynni ifodalash uchun qarashlar iloji boricha sodda bo'lishi kerak, lekin oddiyroq emas. Har qanday biznes mantig'i yoki ma'lumotlarga kirish mantig'ini o'z ichiga olgan ko'rinishlar MVC dizayn naqshining ruhini va eng kam ajablanish tamoyilini buzadi. MVC namunasi bilan tanish bo'lgan hech kim ko'rinishda yashiringan biznes mantig'ini topishni kutmaydi .
MVC- dan boshqa yo'l bilan olish mumkin bo'lgan imtiyozlarni kamaytiradi . Kod orqasida faqat ko'rinishga ko'proq mantiq qo'yish amaliyotini rag'batlantirishi mumkin va bundan ham yomoni, ko'rinishga an'anaviy ASP.NET sahifa hayotiy tsikli hodisalarini kiritishi mumkin. Sahifa hayotiy tsikli hodisalari ASP.NET ning xususiyatlaridan biri bo'lib, MVC ramkasi juda ko'p yashirishga harakat qiladi.
Ko'rinishlar va xavfsizlik
Ko'rishlar xavfsizligi haqida bir so'z: Ko'rinishdagi HTML kodlash chiqishi orqali ilovangizni saytlararo skript hujumlaridan (XSS) himoya qilganingizga ishonch hosil qiling. XSS hujumlari bugungi kunda juda mashhur, chunki ularni amalga oshirish nisbatan oson. Garchi barcha chiqishlar texnik jihatdan kodlashni talab qilmasa ham, men sizga xavfsizlik nuqtai nazaridan xato qilishingizni va hamma narsani sukut bo'yicha kodlashni tavsiya qilaman. Yaxshiyamki, HTML kodlash uchun allaqachon HTML yordamchisi mavjud:
Nusxalash
<%= Html.Encode( Model.Message) %>
Bundan tashqari, ASP.NET sukut bo'yicha kiruvchi so'rovlarni tekshiradi. Ushbu soʻrovni tekshirish funksiyasi kodlanmagan HTML kiritishni oʻz ichiga olgan soʻrovlarni qidiradi. Agar ASP.NET bunday so'rovni topsa, so'rov kontrollerga yetib borgunga qadar u istisno qiladi. Ba'zi hollarda siz HTML-ni foydalanuvchidan qabul qilishingiz uchun ushbu xususiyatni o'chirib qo'yishingiz kerak bo'lishi mumkin. Siz ValidateRequest atributidan foydalanib, uni kontroller harakatida o'chirib qo'yishingiz mumkin, ammo kelgan ma'lumotlardan ehtiyot bo'ling. XSS hujumlari ortida turgan odamlar so'rovlar ichidagi zararli ma'lumotlarni yashirishda juda aqlli bo'lishgan.
Katta modellar
Nihoyat, biz oddiy dasturiy ta'minot qismlarini yaratmaydigan joyga etib keldik, to'g'rimi? Model bizning biznes mantiqimizni boy xatti-harakatlar va murakkab qoidalar bilan ifodalamaydimi?
Vaziyatga bog'liq.
Texnik jihatdan, boshqaruvchi ko'rinishga topshiradigan model hech qanday xatti-harakat yoki qoidalarga muhtoj emas, chunki ko'rinish, agar mavjud bo'lsa, modeldagi ushbu qoidalar yoki xatti-harakatlardan foydalanmasligi kerak. Ko'rinish faqat foydalanuvchiga taqdim etish uchun modeldan ma'lumotlarni tanlashni xohlaydi. Shunday qilib, siz o'zingizning biznes ob'ektlaringizni qarashlaringiz uchun model sifatida ishlatishingiz mumkin bo'lsa ham, ko'plab ishlab chiquvchilar ko'rinishga xos modellarni yaratish bo'yicha ko'rsatmalarga amal qilishadi. Biz shuningdek qo'ng'iroq qiling bular turlari ning modellar ViewModels .
ViewModellar oddiy ma'lumotlarni uzatish ob'ektlari bo'lib, ular barcha holatlarni o'z ichiga oladi, lekin hech qanday ahamiyatga ega bo'lmagan xatti-harakatlar. Boshqacha qilib aytganda, siz ViewModels-da juda ko'p xususiyatlarni qo'llaysiz, lekin hech qanday usul yo'q. ViewModels ko'rinishni taqdim etishi kerak bo'lgan ma'lumotlarni berishning yoqimli ta'siriga ega - ko'proq va kam emas. Biznes ob'ektlaringiz dizaynini biznes mantiqingiz uchun optimallashtirganingizda, ViewModels dizaynini qarashlaringiz uchun optimallashtirasiz.
Hatto biznes ob'ektlarini o'z nuqtai nazaringizdan iste'mol qilmoqchi bo'lsangiz ham, ko'p marta biznes qatlamingiz talab qilmaydigan funksionallikni joriy qilish uchun kurashasiz. Misol uchun, siz kasalxonada bo'lgan bemorlarning ro'yxatini kiritishingiz va ularning qolish muddati bo'yicha minimal, maksimal, o'rtacha va standart og'ishlar kabi jami hisob-kitoblarni kiritishingiz kerak deylik. Agar sizning biznes mantig'ingiz hech qachon bu ma'lumotdan foydalanmasa, u faqat sizning mantiqingizni murakkablik bilan chalkashtirib yuborishini ko'rasiz. Esingizda bo'lsin , bizning maqsad hisoblanadi oddiylik orqali ajralish .
ViewModels sizning ko'rinishingiz talab qiladigan modelni biznesingiz talab qiladigan modeldan ajratish va izolyatsiya qilish uchun ideal abstraktsiyadir. ViewModels loyihangizga qo'shimcha ishlarni kiritadi, chunki ViewModels va ViewModel xususiyatlariga ma'lumot xaritasini ko'rsatish uchun qo'shimcha sinflarni belgilashingiz kerak bo'ladi. Biroq, bu qo'shimcha ish juda katta foyda keltirishi mumkin, chunki siz taqdimot qatlamini buzmasdan biznes mantig'ini o'zgartirishingiz mumkin va aksincha. Bundan tashqari, har bir ko'rinish uchun ViewModel sinfi kerak emas. ViewModel sinfini tegishli ko'rinishlar orasida baham ko'rish odatiy holdir.
Birlik Testlar
Ushbu maqolada biz soddalikni ta'kidladik. MVC dizayn namunasi bizni soddalikka yo'naltirishi mumkin, ammo biz hali ham ba'zi printsiplarga amal qilishimiz kerak. Shuningdek, biz dasturiy ta'minotimizga murakkablik tushadigan joylarga e'tibor qaratishimiz kerak. Murakkablikni aniqlashning yaxshi usuli bu birlik testlarini yozishdir. Birlik testlari nafaqat dasturiy ta'minot sifatini saqlab qolishga yordam beradi, balki dizayndagi muammolarni aniqlashga yordam beradi (Jeremi Millerning sinovdan o'tish uchun dizayn haqidagi maqolasiga qarang ) .
Ehtimol, siz ushbu maqolani uzoq vaqtdan beri veb-formalar dasturchisi sifatida o'qiyotgandirsiz, u hech qachon birlik testlarini yozishni qulay his qilmagan. Ehtimol siz birlik testlarini ASP.NET Web shakllari muhitida amalga oshirish juda qiyin deb topdingiz. Bu boshlash uchun sizning imkoniyatingiz! ASP.NET MVC jamoasi tizimni sinovdan o'tkazish imkoniyatini hisobga olgan holda ishlab chiqdi. Oddiy boshlang va qurilmani sinab ko'rish tajribangizni o'sishiga imkon bering. Oxir-oqibat, siz birlik sinovlari dasturiy ta'minotning tobora o'sib borayotgan murakkabligiga qarshi kurashda yana bir qurol ekanligini bilib olishingiz kerak.
Yüklə 54,68 Kb.

Dostları ilə paylaş:
1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin