k

k

پیام های کوتاه
  • ۲۸ تیر ۹۲ , ۱۴:۰۵
    %)
آخرین مطالب
  • ۹۵/۰۵/۱۷
    kkk
آخرین نظرات
  • ۵ دی ۹۴، ۱۱:۲۸ - سعید
    مرسی

۱ مطلب با کلمه‌ی کلیدی «اصول و روش ترجمه ترجمه» ثبت شده است

ASP.NET به همراه خود یک مدل ترجمه را ارائه داده است که در آن اسمبلی ها به صورت پویا ترجمه می گردند . برنامه همواره به عنوان یک نسخه ترجمه شده ( با هدف افزایش کارآئی ) اجراء می گردد .
ASP.NET از سه روش مختلف برای ترجمه برنامه های وب استفاده می کند : 


Classic precompilation : این مدل ترجمه همزمان با عرضه اولین نسخه ASP.NET ارائه گردید . در این روش ، بخش هائی از وب سایت نظیر فایل های code-behind و هر نوع اسمبلی مرجع ترجمه و بخش هائی دیگر نظیر فایل های حاوی تگ (فایل های aspx . ، و  ASMX ) در زمان اجراء و همزمان با اولین مرتبه درخواست  ، بطور پویا ترجمه می شوند . از مدل فوق صرفا" به همراه مدل code-behind سنتی  که در آن صفحه واقعی از کلاس پایه ترجمه شده به ارث رسیده باشد ، می توان استفاده کرد.
در روش فوق ، فایل های code-behind به اسمبلی ترجمه و در دایرکتوری bin /  قرار می گیرند و فایل های aspx. بر اساس نیاز و درخواست ترجمه می شوند .

  •  Dynamic compilation :  این مدل ترجمه همزمان با عرضه اولین نسخه ASP.NET 2.0  ارائه گردید  و در آن برنامه به همراه تمامی تگ ها و فایل های کد منبع بر روی سرویس دهنده وب بکارگرفته شده  و ASP.NET بطور کامل ترجمه را به صورت پویا و on the fly انجام می دهد .  ایجاد تغییرات در فایل های حاوی تگ ها و یا فایل های کد منبع به صورت on the fly از مهمترین ویژگی های روش فوق است . در چنین مواردی ،  برنامه بطور اتوماتیک و پس از بروز هر گونه تغییر ترجمه می گردد .
    با توجه به این که ترجمه پویا همزمان با اولین درخواست انجام می شود ، همواره برای پاسخ به اولین درخواست پس از اعمال تغییر در کد مدت زمان بیشتری نسبت به درخواست های بعدی صرف خواهد شد . 

  • Site precompilation : در ASP.NET 2.0 یک مدل جدید برای ترجمه precompilation  ارائه شده است که اجازه می دهد تمامی وب سایت را به باینری ترجمه کرد . 
    در این روش می بایست  قبل از بکارگیری یک پروژه  در ابتدا آن را بطور کامل ترجمه نمود . در این مدل تمامی فایل های code-behind ، صفحات aspx . ، فایل های Html ، منابع گرافیکی و سایر عناصر موجود در back-end به یک و یا چندین اسمبلی قابل اجراء ترجمه می گردند . مدل فوق ، دارای بالاترین سطح کارآئی و امنیت است ولی امکان تغییر محتویات وب سایت در زمان فعال بودن سایت را نمی دهد . این مدل ، برای سایت هائی که فرکانس بهنگام سازی آنها اندک است  و خواستار  امنیت بالائی می باشند  مناسب است  . 

  • در زمان ایجاد یک وب سایت جدید ، ASP.NET به صورت پیش فرض گزینه Dynamic compilation را انتخاب می نماید . این بدان معنی است که تمامی کد و صفحات به عنوان فایل های حاوی کد و تگ بر روی سیستم فایل سرویس دهنده وب ذخیره می گردند و ASP.NET بطور اتوماتیک آنها را ترجمه خواهد کرد . در چنین مواردی ، پاسخ به اولین درخواست نیازمند صرف زمان بیشتری است تا ASP.NET بتواند تمامی صفحه را ترجمه نماید .
    برای site precompilation ، می بایست از یک ابزار جداگانه با نام aspnet_compiler.exe  جهت ترجمه برنامه وب استفاده کرد. کمپایلر فوق در دایرکتوری Microsoft .NET Framework قرار دارد و می بایست در ابتدا از آن بر روی ماشین تست و پیاده سازی استفاده کرد و در ادامه خروجی را بر روی ماشین عملیاتی بکار گرفت .
    کمپایلر فوق چندین فایل را در دایرکتوری مقصد ایجاد می نماید . در صورتی که دقیق تر محتویات یکی از فایل های aspx . را بررسی نمائیم ، مشاهده خواهیم کرد که فایل فوق حاوی هیچگونه تگ مفیدی نمی باشد و صرفا" شامل اطلاعات زیر است :

     "This is a marker file generated by the precompilation tool, and should not be deleted!"

    تمامی کد واقعی و تگ ها به باینری ترجمه و در دایرکتوری Bin قرار داده می شوند . پس از این کار می توان محتویات و ساختار دایرکتوری ایجاد شده را بر روی ماشین مقصد بکار گرفت و دایرکتوری فوق را به عنوان دایرکتوری مجازی پیکربندی تا شرایط اجرای برنامه فراهم گردد .  

    مفهوم  page class  در ASP.NET 
    پس از درخواست یک صفحه ASP.NET از سرویس دهنده و به منظور پاسخ گوئی به کاربران، می بایست در سمت سرویس دهنده پردازش های متعددی صورت پذیرد . کدی که در سمت سرویس دهنده اجراء می گردد منحصرا" کدی نیست که توسط پیاده کننده ایجاد شده است . در مقابل ، ASP.NET در زمان اجراء یک و یا چندین کلاس را که دقیقا" عملیات مورد نظر را انجام خواهد داد تولید و ترجمه می نماید .
    یک صفحه ASP.NET به عنوان یک unit اجراء و شامل عناصر سمت سرویس دهنده موجود در صفحه ( نظیر کنترل ها ) و کد مربوط به event-handlers است که توسط پیاده کننده نوشته شده است . پیاده کنندگان مجبور نیستند که صفحات را از قبل به اسمبلی ترجمه نمایند . ASP.NET بطور پویا صفحات را ترجمه و آنها را در اولین مرتبه ای که توسط یک کاربر درخواست می گردند ، ترجمه می نماید . در صورتی که در صفحه و سایر منابع مربوط به آن تغییراتی ایجاد شده باشد ، صفحه بطور اتوماتیک مجددا" ترجمه می گردد .
    کلاس و یا کلاس هائی که توسط کمپایلر ایجاد می گردد به نوع کدینگ ( مدل Inline code  و یا  code-behind ) بستگی دارد .

    مدل Inline code
    در این مدل ، تگ ها و عناصر سمت سرویس دهنده به همراه کد مربوط به event-handler در یک فایل با انشعاب aspx . قرار می گیرد . کمپایلر یک کلاس جدید را که مشتق شده از کلاس page  و یا یک کلاس پایه سفارشی تعریف شده توسط خصلت Inherits دایرکتیو Page@را تولید و ترجمه می نماید .
    مثلا" در صورتی که دارای یک صفحه وب ASP.NET با نام SamplePage1 در فهرست ریشه برنامه وب باشیم ، یک کلاس جدید با نام ASP.SamplePage1_aspx از کلاس Page مشتق می گردد . برای صفحات موجود در فولدرهای برنامه ، از نام فولدر به عنوان بخشی در نام کلاس تولید شده استفاده می گردد . کلاس تولید شده شامل تعاریف کنترل های موجود در صفحه aspx .، کد های سفارشی و  event handlers  است .
    پس از تولید صفحه ، کلاس ایجاد شده به یک اسمبلی ترجمه و پس از استقرار در  application domain ، امکان اجرای آن به منظور تولید خروجی مورد نظر جهت ارسال برای مرورگر فراهم می گردد . در صورتی که در صفحه تغییراتی داده شود که بر روی کلاس تولید شده تاثیر بگذارد ( نظیر افزودن کنترل های جدید و تغییر در کد ) ، کلاس ترجمه شده غیرمعتبر شده و یک کلاس جدید ایجاد می گردد .
    شکل 1 ، مدل توارث برای page class در صفحات وب ASP.NET که از مدل inline code ( یا تک فایل ) استفاده می کنند را نشان می دهد .

     مدل توارث page class در مدل inline code
    شکل 1 :  مدل توارث page class در  inline code

    صفحات code-Behind
    در مدل code-Behind ، تگ های صفحه به همراه عناصر سمت سرویس دهنده ( شامل تعاریف کنترل ها ) در یک فایل aspx . ذخیره می گردند و کد صفحه در یک فایل جداگانه دیگر قرار می گیرد . فایل حاوی کد شامل یک partial class است (تعریف یک کلاس با استفاده از کلید واژه Partial ) . وپژگی فوق این موضوع را به اثبات می رساند که فایل فوق صرفا" شامل بخشی از تمام کدی است که کلاس کامل صفحه را ایجاد می نماید . در partial class ، کد مورد نیاز برنامه که عمدتا" شامل  event handlers است به آن اضافه می گردد ( امکان اضافه کردن متدها و یا خصلت هائی دیگر با توجه اهداف عملیاتی یک صفحه نیز وجود دارد ) .
    مدل توارث برای صفحات code-behind نسبت به صفحات Inline code از پیچیدگی بیشتری برخوردار است :

    • فایل code-Behind شامل یک partial class است که از کلاس پایه صفحه به ارث می رسد . کلاس پایه صفحه می تواند کلاس Page  و یا کلاس دیگری باشد که از کلاس Page مشتق شده است.

    • فایل aspx . شامل یک خصلت Inherits در دایرکتیو Page@  است که به کلاس partial مربوط به code-behind اشاره می نماید .

    • پس از ترجمه صفحه ،  ASP.NET یک partial class را بر اساس فایل aspx . ایجاد می نماید . این کلاس ، یک   partial class از فایل کلاس code-behind است . فایل partial class تولید شده شامل تعاریف کنترل های صفحه است . این  partial class فایل code-behind را قادر می سازد که به عنوان بخشی از یک کلاس کامل و بدون الزام پیاده کنندگان به تعریف صریح کنترل ها استفاده گردد.

    •  در نهایت ، ASP.NET کلاس دیگری را تولید که از کلاس تولید شده در مرحله سوم به ارث رسیده است . این کلاس تولید شده جدید شامل کد مورد نیاز برای ایجاد صفحه است . کلاس تولید شده فوق و کلاس code-behind درون یک اسمبلی ترجمه تا پس از اجراء خروجی مورد نیاز جهت ارسال برای مرورگر را تولید نماید .

    شکل 2 مدل توارث  برای page class در یک صفحه وب ASP.NET که از مدل code-Behind استفاده می کند را نشان می دهد .

     مدل توارث page class در مدل  code-Behind
    شکل 2 :  مدل توارث page class در   code-Behin

  • shirintahmasebi.blogfa


دسته بندی : اصول و روش ترجمه ترجمه