Introduction to ASP.NET Web Programming Using the Razor Syntax
Introduction to ASP.NET Web Programming Using the Razor Syntax (C#)
Introduction to ASP.NET Web Programming Using the Razor Syntax (C#)
فرق این دو این است که در try-catch اشتباهی که اتفاق افتاده (exception) قورت داده می شود. ولی در try-finally بلاک کد finally اجرا می شود و اشتباه اتفاق افتاده راه خود را طی می کند تا توسط یک handler گرفته شود . مرجع
به گفته msdn "مورد استفاده از finally برای از بین بردن منابعی که در بلاک try ساخته شده بدون در نظر گرفتن خطا می باشد."
• Const را تنها در قسمت declaration می توان مقدار دهی کرد.
Readonlyبرای مطالعه بیشتر می توان به اینجا و اینجا مراجعه کرد.
نوشته Nathanael Jones
همانطور که از عنوان این مقاله پیداست، می خواهیم انواع مسیرها در ASP.Net را معرفی و مکان استفاده آنها را مشخص کنیم. متاسفانه در تکنولوژی Asp.net انواع مختلفی از آدرس دهی و ارجاع وجود دارد که بعضاً این تنوع باعث سردرگم شدن برنامه نویسان می گردد.
این مقاله، جزییات هر یک از انواع path را بررسی نمی نماید و هدف معرفی مختصر هر یک است، که امیدوارم مورد پسند و مورد ارجاع دوستان قرار بگیرد.
انواع مسيرها در ASP.NET
Asp.net در وهله اول با virtual path ارتباط دارد، قسمتي از مسير که بعد از نام هاست و شماره پورت مي آيد. زمانيکه با Asp.net کار مي کنيد، بايد با انواع مختلف URI هايي که در زير بيان مي شود آشنا باشيد، و اينکه چگونه اين مسيرها توسط Asp.net بکار گرفته مي شوند:
• Absolute paths : براي مثال
* Asp.net با اين نوع مسيرها کاري ندارد، اين مسيرها کمترين ابهام را دارند. Browser ها هم کمترين مشکل را براي فهميدن اين آدرسها دارند.
* از اين نوع آدرس دهي فقط براي ارجاع به سايتهاي خارجي استفاده کنيد. هزينه نگهداري آنها بالاست.
• Root-Relative virtual paths : براي مثال
* Asp.net با اين گونه مسيرها هم کاري ندارد. Browser ها هم فقط به ابتداي اين گونه مسيرها نام دامنه سند موجود را اضافه مي نمايند.
* من به هيچ عنوان پيشنهاد نمي کنم از اينگونه آدرس ها در کد برنامه استفاده کنيد- به جای آنها مي توانيد از مسيرهاي application-relative يا relative ها استفاده نماييد.
نکته: اصطلاحاً به اين مسيرها absolute virtual path و domain-relative path هم گفته ميشود.
• Application-relative paths : براي مثال
* Browser ها که از کاراکتر tilde يعني همان ~ سر در نمي آورند، پس احتياج به يک عمليات ترجمه سمت سرور مي باشد. سمت سرور هم علامت ~ معني HttpRuntime.AppDomainAppVirtualPath مي دهد.
* Asp.net هم اين گونه مسيرها را در ويژگيهاي برخي کنترلها client-relative مي داند، اما شما بايد يادتان باشد که runat=”server” بگذاريد.
* اين مسيرها جايي بدرد مي خورند که relative paths ها کارايي نداشته باشند.
• Relative paths : براي مثال
* دو نوع relative paths وجود دارد: server side و client side . اينها از نظر املايي فرقي ندارند، اما server side ها با فايل هاي در برگيرنده شان سمت سرور مرتبط هستند، و client side ها به آدرس بار يا parent markup file ها مرتبط اند.
* Server-side relative paths ها به مسير .master, .ascx, يا محل .aspx ها مرتبط اند. اينها بايد تغيير پايه بدهند به client side relative path وقتيکه متد ResolveClientUrl() فراخواني مي شود. بيشتر کنترل هاي Asp.net اتوماتيک اين کار را براي شما انجام مي دهند. از اين گونه مسيرها زماني بايد استفاده شود که مي خواهيم به يک فايلي که نسبت به فايل فعلي تغيير مکان ندارد آدرس دهيم.
* Client side relative path ها به URL معمولاً آدرس بار وابسته اند. اگر بخواهيم به يک تصوير در صفحه html ارجاع دهيم ، بايد به مسيري آدرس دهيم که به جايي که در آدرس بار آن صفحه نوشته شده ربط داشته باشد. اگر بخواهيم از يک فايل css به چيزي ارجاع دهيم آدرس دهي بايد به جايي که فايل css در آن قرار گرفته مرتبط باشد. مسيرهايي که درفايل هاي جاوااسکريپت بکار مي روند به جايي که فايل جاوا اسکريپت در آن قرار گرفته ربط ندارند. در واقع بايد به سندي که جاوااسکريپت در آن بکار رفته مرتبط باشند.
• Fragment and javascript path : براي مثال
* Asp.net با اينگونه آدرس ها کاري ندارد. Browser ها هم وقتيکه يکي از اين آدرس ها کليک شود انتظار نمي رود که درخواستي را صادر کنند. و فقط در همان سند به قسمت خاصي مي روند.
* Fragment هرگز در درخواست هاي Http ديده نمي شود. اينها فقط به درد مرورگرها مي خورند. و قبل از اينکه چيزي به asp.net ارسال شود اينها حذف مي گردند.