PDA

View Full Version : سوال: آشنایی با Template Engine



OmMiD_MtWo
دوشنبه 07 مهر 1393, 15:53 عصر
با سلام خدمت دوستان عزیز

قصد داشتم با Template Engine در سی شارپ آشنا بشم. کسی از دوستان عزیز میتونه کمک کنه؟ ممنون میشم اگه لطف کنید و اطلاعاتی در مورد انواع گزارش گیری و این که بهترین نوع گزارش گیری چیست و با کدام Template Engine انجام میشود، در اختیارم قرار دهید.

با سپاس

juza66
دوشنبه 07 مهر 1393, 17:26 عصر
سلام


http://csharp-source.net/open-source/template-engines

OmMiD_MtWo
دوشنبه 07 مهر 1393, 17:34 عصر
خیلی ممنون از لطف شما دوست عزیز

قبلا به این لینک سَر زدم. میخواستم بدونم منبع فارسی وجود نداره که لطف کنید لینکش رو قرار بدید یا از اطلاعات شخصی خودتون بتونم استفاده کنم؟

OmMiD_MtWo
سه شنبه 08 مهر 1393, 15:14 عصر
دوستان عزیز ممنون میشم راهنمایی کنید.

بهترین، کارآمدترین و آسان ترین Template Engine در سی شارپ چیست؟

juza66
سه شنبه 08 مهر 1393, 17:44 عصر
سلام

در ASP.net بیشتر از مستر پیج ها (Site.Master) برای مدیریت قالب سایت استفاده میشه و گاهی هم از تمپلت انجین هایی مانند Razor ولی من هر دوی اینها را قبول نداشتم به چند دلیل.
در مستر پیج تمام پردازش های را خود دات نت مدیریت میکنه و در بیشتر موارد چون ما تنها برنامه C# را مینویسیم و کاری به کدهای خروجی نداریم نمیتونیم تسلط خوبی روی ظاهر بخش های جزئی داشته باشیم.
من نظرم این بود که طراحی قالب را با تمام جزئیات به طراح قالب باید سپرد و برنامه نویس هسته سایت تا حد امکان هیچ گونه کد HTML تولید نکنه.. این را از روی تجربه ی کاریم میگم. در Joomla ما یه قالب کلی طراحی میکنیم و بخش هایی از اون را برای برای قرار گرفتن محتوای سایت معرفی میکنیم و قرار گرفتن محتوا در اون قسمت ها را در مدیریت مشخص میکنیم و محتوا را خود جوملا با یک ساختار مشخص درون قالب ما قرار میدهد که طراح قالب باید با CSS ها، اونها را کنترل کند و گاهی خروجی به اون شکلی نیست که طراح خواسته و اگر هم امکان تغییر ساختار اون باشه مستقیم در قالب سایت این امکان نیست. در سیستم طراحی قالب وردپرس کمی متفاوت هست و تقریبا تمامی جزئیات را طراح قالب خودش مشخص میکند. مثلا اینکه عنوان نوشته درون چه تگی و با چه کلاسی قرار بگیرد یا تاریخ و خلاصه نوشته کجا قرار بگیرد و حتی مدیریت خیلی جزئی روی طراحی بخش ها… و من سیستم قالب وردپرس را بسیار بهتر و قویتر از Joomla و PhpNuke و بعضی از سیستم های مدیریت محتوای PHP دیگر میدونستم. (اگر چه چون در قالب های وردپرس کدهای PHP هست کار را برای عموم افراد کمی سخت میکنه اما طرح را میشه با جزئیات کامل اجرا کرد)
چنین مشکلی در سیستم های مدیریت قالب اختصاصی مانند HiPortal آریانیک نیز وجود دارد. مثلا آریا نیک در سیستم مدیریت محتوای خود تمامی کدهای HTML ماژول های مختلف را خودش درون هسته تولید می کند و کاربر تنها ماژولها را جا به جا می کند. اگر چه امکاناتی برای تغییرات ساختار نمایش ماژول نمایش اخبار گذاشته است اما طراح قالب می تواند فقط بخشی از آن را تغییر دهد. در این برنامه برای فاصله انداختن بین دو خبر از سه جدول درون HTML استفاده می کند که این تگها خیلی زیاد هستند و صفحه را حجیم میکنند تنها برای نمایش یک خط که فاصله ایجاد کند و طراح قالب هیچ مدیریتی بر روی آن نمی تواند داشته باشد.(ان شا الله در مقاله ای جدا سیسیتم مدیریت قالب آریا نیک را کامل بررسی میکنم.)
در روش دوم یعنی استفاده از تمپلت انجینهایی مانند Razor اشکال کار اینجا بود که ما حجم زیادی از داده ها رابه ازای هر درخواست در سیستم مدیریت تولید میکنیم و به یکسری متغیر مقیدسازی میکنیم و حالا به طراح قالب میگیم شما میتونید از اینها استفاده کنید. حال فرض کنیم ما ۵۰ متغیر را مقید سازی کردیم و طراح قالب فقط از ۱۵ عدد از این متغیر های استفاده کرد. در اینصورت ما پردازش های زیاد و بیهوده ای انجام دادیم که سربار اضافی هستند. فرض کنید برای هر متغیر کلی ارجاع به دیتابیس و اجرای توابع مختلفی را داشتیم و در صورت استفاده نشدن کلی کارهای اضافه محسوب می شدند. (در موتور های قالب PHP مانند اسمارتی هم کار به همین شکل هست که البته تا حدودی میشه با مدیریت کش ها در بعضی از این قالب ها نتیجه بهتری گرفت ولی در نهایت نتیجه مطلوب نیست)
نظر من باز هم سیستم قالب وردپرس بود. در وردپرس ما برای دریافت مقادیر مورد نیاز در قالب از توابع استفاده میکنیم و هر وقت به هر داده ای که نیاز داشتیم همان موقع آن را درخواست میدهیم و نتیجه را دریافت میکنیم و هیچ پردازش اضافه ای انجام نمی شود.
مثلا برای نمایش محصولات پر فروش نیاز نیست ما یک یوزر کنترل اضافه کنیم تا کالاهای پر فروش را دریافت کند و با ساختاری که “طراح یوزر کنترل” می خواهد آن ها را درون قالب اصلی قرار دهد بلکه تابعی برای دریافت کالاها تعریف میکنیم که طراح قالب با مشخص کردن شروطی خاص می تواند کالاهای مورد نظر خودش از هر دسته و هر نوعی و با هر ویژگی که مد نظر دارد را انتخاب کند و به هر ساختاری که خودش در نظر دارد و قبلا برای آن طراحی کرده است نمایش دهد. بنابرین طراح قالب میتواند دقیقا آنچه را که در طرح گرافیکی خود دارد و با تمام جزئیات نمایش دهد و با خیال راحت CSS ها و جاوا اسکریپت های اختصاصی خودش را برای قالب استفاده کند.

منبع:
http://dblog.ir/?p=10