چگونه در مصاحبه استخدام برنامهنویس ASP.Net و Web API موفق شویم؟
30 پرسش و پاسخ برتر آزمونهای استخدامی برنامهنویس داتنت
مایکروسافت اواخر دهه 90 میلادی اقدام به توسعه داتنت تحت نام نسل بعدی خدمات ویندوز (NGWS) سرنام Next Generation Windows Services کرد. اواخر سال 2000 میلادی اولین نسخه بتا تحت عنوان داتنت یک منتشر و در ادامه مایکروسافت با همکاری اچپی و اینتل گامهای مهمی در جهت استانداردسازی زیرساخت زبان مشترک (CLI) سرنام Common Language Infrastructure برداشت. مخزن کد منبع این چهارچوب در تاریخ 16 ژانویه 2007 میلادی به صورت آنلاین در دسترس توسعهدهندگان قرار گرفت که شامل WPF، Windows Forms، ASDO.NET و XML بود. 12 نوامبر 2014، مایکروسافت در تلاش برای پشتیبانی از قابلیت چندسکویی داتنت کور (Net Core.) را معرفی کرد و کد منبع آنرا در اختیار توسعهدهندگان قرار داد تا زیرنظر بنیاد داتنت و به شکل متنباز توسعه پیدا کند. مایکروسافت در توصیف چهارچوب یاد شده میگوید: «Net Core. به عنوان یک طراحی مجدد که مبتنی بر نسخه ساده شده کتابخانههای داتنت است، پایه و اساس تمام پلتفرمهای آینده داتنت است. .Net Core یک چارچوب چند سکویی، آزاد و متن باز مشابه چارچوب داتنت است که تحت پروانه امآیتی منتشر شده است. آخرین ویرایش نسخه 3.1.2 در تاریخ 18 فوریه 2020 عرضه شد.» داتنت پروژه بسیار عظیمی است که هیچ توسعهدهندهای نمیتواند بر تمامی جوانب آن اشراف کامل داشته باشد. به همین دلیل مشاغل مختلفی در ارتباط با این چهارچوب بزرگ به وجود آمدند که توسعهدهنده ASP.NET یکی از این مشاغل است.
ASP.Net
ایاسپیداتنت (ASP.Net) یک چارچوب کاربردی وب است که توسط شرکت مایکروسافت طراحی شده تا برنامهنویسان بتوانند برای ساخت وبسایتها، برنامههای وبمحور پویا، سرویسهای وبمحور پویا و سرویسهای Web XML از آن استفاده کنند.ASP.Net بخشی از زیرساخت جامع داتنت است که مایکروسافت آنرا جایگزین فناوری صفحات سرویسدهنده فعال (ASP) کرد. به دلیل اینکه امکان پرداختن به مفاهیم گسترده داتنت در یک مقاله امکانپذیر نیست، از اینرو در این بخش سوالات منتخب مرتبط با ASP.Net را بررسی میکنیم.
1. چارچوب داتنت چیست؟
پاسخ: بستری برای ساخت برنامههای مختلف عمدتا ویندوزی است. داتنت با ارائه برخی قابلیتهای کاربردی و ارائه انواع مختلفی از کلاسها، کتابخانهها و واسطهای برنامهنویسی کاربردی به توسعهدهندگان در ساخت، استقرار و اجرای سرویسهای وب و برنامههای کاربردی مختلف کمک میکند. این چهارچوب از زبانهای مختلفی مانند C # ، VB .Net ، Cobol ، Perl و غیره پشتیبانی میکند. پشتیبانی از پارادایم برنامهنویسی شیگرا یکی از نقاط قوت چهارچوب داتنت است.
2. ASP.Net چیست؟
پاسخ: ASP سرنام Active Server Pages به معنای صفحات سرویسدهنده فعال است. مایکروسافت چهارچوب ASP.Net را به عنوان جایگزین پیشرفتهتر و کارآمدتر ASP ارائه کرد. لازم به توضیح است که فایلهای کتابخانه و موتور ASP هنگام نصب چهارچوب نیازی به ویرایش ندارند، زیرا مولفه کلیدی ویندوز IIS سرنام Internet Information Server میتواند از اسکریپتهای ASP و ASP.Net پشتیبانی کرده و به مدیریت برخی فرآیندهای کاربردی بپردازد. IIS سروری است که توسط مایکروسافت برای ارائه خدمات مبتنی بر اینترنت به هر دو گروه برنامههای تحت ASP.Net یا سایر برنامههای وب ساخته شده است. IIS میتواند هر اسکریپت صفحه وبی را اجرا کند.
3. منظور از Caching در ASP.Net چیست؟
پاسخ: فرض کنید شما دائما سایت گوگل را باز میکنید و وقتی یک زبانه جدید در مرورگر خود باز میکنید (بهطور مثال کروم)، این صفحه وب در بخش اغلب استفاده شده نشان داده میشود. این پیغام نشان میدهد که آدرس google.com روی دستگاه شما ذخیره شده و در مقایسه با سایتهایی که به ندرت از آنها استفاده میکنید دسترسی به آن سادهتر است. مثال فوق نمونهای از فرآیند ذخیرهسازی (Caching) است. بنابراین، Caching مکانیسمی است که فایلهایی که دائما از آنها استفاده میکنید را در یک حافظه کش ذخیرهسازی میکند. در این حالت دسترسی به اطلاعات کش شده سریعتر از زمانی است که به سراغ آدرس واقعی فایلها یا دادهها میروید.
4. چه مکانیسمهای ذخیرهسازی وجود دارد؟
پاسخ: رایجترین مکانیسمهای ذخیرهسازی حافظه نهان ذخیرهسازی صفحه (Page Caching) ، ذخیرهسازی دادهها (Data Caching) و ذخیرهسازی تکه تکه (Fragment Caching) است.
5. چرخه عمر یک صفحه چیست و چه رخدادهایی در چرخه عمر یک صفحه اتفاق میافتد؟
پاسخ: در مدت زمان اجرای هر صفحه ASP.NET، مجموعه رخدادهایی اتفاق میافتد که شروع آن با مقداردهی اولیه است و مادامی که صفحه بسته شود فرآیند پردازش در آن انجام میشود. وقوع این اتفاقات ترتیب زمانی خاص خود را دارند که بهنام چرخه عمر یک صفحه (Page Life Cycle) شناخته میشود. در شکل یک فهرست رخدادهای اتفاق افتاده در یک صفحه را مشاهده میکنید.
6. ViewState چیست، در کدام رخداد چرخه عمر صفحه، ViewState در دسترس است؟
پاسخ: ViewState یک تکنیک مدیریت حالت است که امکان ذخیرهسازی دادههای ورودی کاربر در یک صفحه را با فراخوانی رویداد PostBack صفحه فراهم میکند. ViewState پس از Init و قبل از رویداد PageLload در دسترس است.
7. Life-Span در ارتباط با عناصر ViewState چه معنایی میدهد؟
پاسخ: Life-Span به طول عمر عناصر در ViewState اشاره دارد. این طول عمر در زیر مجموعه طول عمر صفحه جاری قرار دارد. عناصر میتوانند مادامیکه صفحه فعلی وجود داشته باشد، به فعالیت ادامه دهند.
8. Parent Class در کنترل وب سرور چیست؟
پاسخ: کلاس والد وبسرور در "System.Web.UI.Control" است.
9. چگونه میتوانید مقداری را در ViewState ذخیره و آنرا بازیابی کنید؟
پاسخ: همانگونه که میدانیم، ViewState مقدار صفحه و ورودیهای کاربر در یک صفحه را ذخیره میکند. مثال زیر چگونگی ذخیره مقدار در ViewState و بازیابی مقادیر را نشان میدهد:
ViewState[“emp”]=”Saket Saurav”; // Store the value in ViewState
string value=ViewState[“emp”].ToString(); //Retrieve information
10. کلاس پایه که فرمهای وب از آن ارثبری میکنند چیست؟
پاسخ: کلاس Page کلاس پایه تمامی WebFormها است.
11. کدی برای ارسال ایمیل از طریق یک برنامه ASP.Net بنویسید.
پاسخ: در قطعه کد زیر ما یک شی برای MailMessage ایجاد میکنیم. پس از انجام اینکار، آدرس ایمیل فرستنده و گیرنده را مشخص میکنیم. در ادامه گیرنده را مشخص میکنیم و در ادامه بدنه ایمیلی که قرار است ارسال شود را تعیین میکنیم. برای ارسال ایمیل از پروتکل انتقال ساده ایمیل (SMTP) توسط سرور localhost استفاده میکنیم.
MailMessage mail = new MailMessage (); //creating an obj for MailMessage
mail.From = “[email protected]"; //specifying the sender mail id
mail.To = "[email protected]"; //specifying the recipient mail id
mail.Subject = "Software Testing"; //specifying the subject
mail.Body = "Hi, Sending an email"; //drafting the body of the email
SmtpMail.SmtpServer = "localhost"; //sending through the localhost server
SmtpMail.Send (mail); //passing the attribute “mail” in the Smtp.Send()
12. فایلی که از طریق آن میتوانید برنامه ASP.Net را شخصیسازی کنید چیست؟
پاسخ: web.config فایلی است که از طریق آن میتوانیم برنامه کاربردی ASP.Net را سفارشی کنیم و کارهایی همچون بهکارگیری تمهای جدید، تغییر اندازه تصاویر یا برشزنی تصاویر را انجام دهیم.
13. Query String در ASP.Net چیست؟
پاسخ: Query String رشتهای (مجموعهای متشکل از کاراکترها) است که به عنوان بخشی از یک آدرس اینترنتی برای مرورگرهای وب ارسال میشود. این رشته اغلب با یک علامت سؤال از سایر کاراکترها جدا میشود. ترکیب نحوی رشته محاوره به صورت زیر است:
Request.QueryString(variable)[(index).count]
14. تفاوت میان Code-Behind و Code-Inline چیست؟
پاسخ: Code Behind کدی است که در یک فایل کلاس جداگانه نوشته میشود، در حالی که Code Inline کدی است که درون یک صفحه وب ASP.Net نوشته میشود. Code Behind فرمت فایلی.aspx.cs یا .aspx.vb دارد، در حالی که Code Inline (همانگونه که در ASP.Net است) تنها فرمت فایلی .aspx دارد. Code Inline درون
برچسب به همراه HTML نوشته میشود. کد تمام صفحات وب در یک فایل .dll که Data Link Library File نام دارد ذخیره می شود.
15. Directives در ASP.Net چیست؟ موارد مهم را شرح دهید:
پاسخ: Directives دستورالعملهایی هستند که چگونگی نحوه پردازش صفحات .aspx توسط چارچوب داتنت را مشخص میکنند. دستورات مختلف همراه با گزینهها یا خصلتهای مختلفی در دسترس توسعهدهندگان قرار دارند و قادر هستند به شکل دقیقی اطلاعات مربوط به هر صفحه خاص را شرح دهند. این دستورات با ترکیب نحوی <%@ and
ends with %> آغاز میشوند. بهطور مثال، ترکیب نحوی ممکن است به صورت زیر باشد:
<%@[DirectiveType][Attributes or Options]%>
از دستورات مهم در این زمینه به موارد زیر میتوان اشاره کرد:
@Page
@Assembly
@Control
@Master
@MasterType
@Implements
@Import
@Reference
@PreviousPageType
@OutputCache
@Register
16. SQL Notifications و SQL Invalidations چیست؟
پاسخ: SQL notifications، اعلانهایی هستند که هنگام ایجاد هرگونه تغییر در دادههای ذخیره شده در حافظه نهان تولید میشوند.
SQL Invalidations مولفهای است که (میتوان آنرا یک تجزیه کننده نامید) هرگونه تغییر دادههای موجود در پایگاه داده را با دادههای کپی شده در حافظه کش مقایسه کرده و پیدا میکند.
17. Session State Modes چیست؟ مهمترین گزینههای موجود در ASP.net را شرح دهید.
پاسخ: state Session وضعیتی است که در آن شی نشست هرگونه اطلاعاتی در ارتباط با ورود کاربر به سیستم را ذخیرهسازی میکند. این اطلاعات نشست میتواند شناسه یا گذرواژه کاربر، جزئیات مربوط به آخرین ورود کاربر، آخرین فعالیت و موارد این چنینی باشد. حالت نشست گزینههای مختلف ذخیرهسازی را ارائه میکند. از مهمترین گزینههای موجود در این زمینه به موارد زیر میتوان اشاره کرد:
State Server Mode: وضعیت نشست ASP.Net State Service را ذخیرهسازی میکند.
InProc Mode: حالت پیشفرض است که در آن وضعیت نشست در حافظه وب سرور ذخیره میشود.
SQL Server Mode : حالت نشست را در بانکاطلاعاتی اسکیوال سرور ذخیره میشود.
Custom Mode: وضعیت نشست را در یک مکانیزم ذخیرهسازی سفارشی ثبت میکند. این ارائهدهنده سرویس ذخیرهسازی سفارشی (Custom Storage Provider) توسط کاربر قابل تنظیم است.
Off Mode: حالت غیر برخط را فعال میکند. Session State در این حالت غیرفعال است.
18. تفاوت بین Server.Transfer و Response.Redirect چیست؟
پاسخ: همانگونه که میدانیم هر دو Server.Transfer و Response.Redirect برای تسهیل حرکت کاربران از یک صفحه به صفحه دیگر استفاده میشوند. تفاوت عمده دو مکانیسم فوق این است که در Server.Transfer (همانگونه که از نامش پیدا است) انتقال توسط سرور انجام میشود و در Response.Redirect توسط مرورگر انجام میشود.
19. Web Services در ASP.net را تعریف کنید.
پاسخ: Web Services خدمات نرمافزاری هستند که از یک دستگاه به دستگاه دیگر با استفاده از شبکه ارائه میشوند. این خدمات از XML استفاده میکنند و مکانیسمهای SSL و WSS را برای انتقال دادهها فراهم میکنند.
20. وبسایت چندزبانه چیست؟
پاسخ: به هر وبسایتی که توانایی پشتیبانی از زبانهای مختلف را داشته باشد سایت چندزبانه میگویند. محتوای این وبسایتها به زبانهای مختلف ارائه میشود و به همین دلیل به برنامهنویسی خاص و بهکارگیری سیستم کدگذاری خاص نیاز دارند. Msn ، Facebook مثالهای روشنی در این زمینه هستند.
21. کدام شی اطلاعات مربوط به کاربر را ذخیرهسازی میکند.
پاسخ: Session Object
22. Session Object چیست؟
پاسخ: Session object شی است که اطلاعات مربوط به جلسه کاربر را ذخیره میکند. نام، شناسه، تنظیمات و هرگونه تغییری در تنظیمات توسط این شی ذخیرهسازی میشود. Session Object زمانی که یک جلسه آغاز میشود مقداردهی اولیه میشود و زمانی که نشست به پایان میرسد حذف میشود.
23. تفاوت بین احراز هویت و مجوز را توضیح دهید.
پاسخ: احراز هویت (Authentication) فرآیندی که تایید میکند شما همان فردی هستید که ادعا میکنید. مجوز (Authorization) فرآیندی است که اجازه دسترسی به برخی منابع و سرویسها را میدهد. فرآیند فوق تایید میکند کاربر مجازی هستید که اجازه دسترسی به یک سامانه را دارد یا خیر. بهطور مثال، فرآیند لاگین با هدف دسترسی به فیسبوک نمونهای از یک فرآیند تخصیص مجوز است.
24. کدام روشهای تایید اعتبار روی تمامی کنترلهای یک صفحه قابل استفاده است؟
پاسخ: Page.Validate()
25. چگونه میتوانید یک تم را به یک برنامه ASP.Net تخصیص دهید؟
پاسخ: در هر پروژهای یک فایل پیکربندی بهنام web.config وجود دارد. داخل فایل web.config، برچسب
26. آیا سرویسهای وب از مکانیزمهای قرائت دادهها در پروژهای شبیه به POM پشتیبانی میکنند؟
پاسخ : پاسخ منفی است، با اینحال، از مجموعه دادههایی که میتوانند برای انتقال دادههای ورودی استفاده شود پشتیبانی میکند.
27. یک Web API چیست؟ چه پروتکلی در یک Web API استفاده میشود؟
پاسخ: Web API میتواند به عنوان واسط تعریف شود تا ارتباط بین دستگاه کلاینت و یک وبسرور را تسهیل کند.
اجازه دهید یک سناریوی رایج رزرو پرواز در یک سایت مسافرتی شبیه به www.makemytrip.com بررسی کنیم که یک سرویس آنلاین مسافرتی است و اطلاعات مربوط به شرکتهای هواپیمایی را جمعآوری میکند. زمانیکه برای رزرو پرواز به سایت فوق مراجعه میکنید، اطلاعاتی مانند تاریخ سفر/تاریخ بازگشت، کلاس، و موارد این چنینی را وارد میکنید و در ادامه روی گزینه جستوجو کلیک میکنید. در کسری از ثانیه فهرست هزینههای خطوط هوایی و در دسترس بودن آنها نشان داده میدهد. در این حالت، برنامه با واسطهای برنامهنویسی کاربردی شرکتهای هواپیمایی ارتباط برقرار میکند و اطلاعات لازم را دریافت میکند.
مثال دیگر در این زمینه سایت www.trivago.com است که قیمت و هتلهای مختلف واقع در شهرهای مختلف را مقایسه و فهرست میکند. وبسایت مذکور برای دسترسی به پایگاههای داده با واسطهای برنامهنویسی هتلهای مختلف ارتباط برقرار میکند و قیمتها و در دسترس بودن آنها روی وبسایت در اختیار کاربر قرار میدهد. پروتکلهای HTTP در Web API استفاده میشوند.
28. کدام یک از کتابخانهها توسط آزمایشکنندگان و توسعهدهندگان برای توسعه آزمایشهای خودکار و ایجاد ابزارهای تست استفاده میشود؟
پاسخ: TestAPI کتابخانهای (ابزار) است که برای ساخت تستهای خودکار و ابزارهای تست از الگوریتمهای مختلف استفاده میکند.
29. چه پارامترهایی را میتوان در یک آدرس اینترنتی انتقال دهید، آیا میتوان GET و POST را در یک آدرس یکسان استفاده کرد؟
پاسخ: پارامترهای مختلفی وجود دارد که میتوانید در یک آدرس اینترنتی از آنها استفاده کنید. این پارامترها context keys، document keys یا هر چیزی هستند که اجازه میدهند واسط برنامهنویسی کاربردی به شکل سادهتری به نقطه پایانی دسترسی داشته باشد. پاسخ مثبت است. GET و POST باید از نقطه پایانی یکسانی استفاده کنند. اگر از نقطه پایانی یکسانی استفاده نمیکنید، باید رکوردی در یک آدرس اینترنتی ایجاد کنید و موارد موردنیاز را از یک آدرس اینترنتی دیگر بازیابی کنید که رویکرد منطقی نیست.
30. اگر 200 برای همه عملیات موفقیتآمیز است، پس چرا 201 Response Codes داریم؟
پاسخ: پاسخ کمی پیچیده است، اما به بیان ساده باید بگوییم تمامی کدهای پاسخ HTTP در Web API میتوانند توسط توسعهدهنده دستکاری شوند و همه این موارد به توسعهدهنده برنامه بستگی دارد که در نظر دارد چگونه کدهای پاسخ را پیکربندی کند. بنابراین، شما میتوانید 200 یا 201 را برای تمام عملیات موفق داشته باشید. بهطور کلی، 200 به معنای یک عملیات موفق و 201 به معنای موفقیتآمیز بودن ساخت یک رکورد است.
30+1) چگونه میتوانید اطمینان حاصل کنید که Web API داده JSON را بر میگرداند؟
پاسخ: در بخش سرآیند، باید مقدار application/json را وارد کنید.
به این مطلب چند ستاره میدهید؟(امتیاز: 3 - رای: 19)
- منبع: ماهنامه شبکه