همانطور که در ابتدای اين مقاله اشاره شده ترجمه مستقيم کدهای نوشته شده به کدهای ماشين باعث بروز سه مسئله اساسی : وابستگی محض به پلات فورم ، بروز مشکل در ارتباط متقابل بين زبانها و ساختار آشقته Win32 API می گردد. دات نت برای سه مسئله فوق راهکارهای مناسبی را ارائه نموده است .
مشکل اول در مرحله تئوری نمی تواند باعث بروز مسائلی گردد . در تئوری مايکروسافت می تواند CLR و کلاس های فريمورک دات نت را برای هر نوع پلات فورم و سيستم عامل ارائه نمايد. اين بدان معنی است که کدهای MSIL توليده شده توسط VB.NET را می توان بر روی لينوکس نيز اجراء نمود. در دنيای واقعي مايکروسافت تاکنون در زميته تامين خواسته هائی اينچنين فعاليت های خاصی را انجام نداده است .
در رابطه با مشکل دوم ( ارتباط متقابل بين زبانها ) با ارائه نوع های داده ئی و توابع مورد نظر که در سطح سيستم عامل فعاليت می نمايند ، با مسئله فوق بدرستی برخورد و راهکار مناسبی ارائه شده است . بر اساس راهکار فوق ، تمامی زبانهای برنامه نويسی مورد حمايت در دات نت می بايست از کلاس های فريمورک دات نت استفاده نموده و پس از ترجمه اوليه کدهای MSIL را توليد نمايند.
در رابطه با مشکل سوم ( ساختار آشفته Win32 API ) فريمورک دات نت ، تمامی کلاس ها را در يک ساختار سلسله مراتبی سازماندهی نموده و از اين طريق دستيابی ، استفاده و شناخت عملکرد هر يک از آنان بمراتب راحت تر از win32 API انجام خواهد شد.
جايگاه ASP.NET در دات نت :
نسخه جديد ASP است که توسط مايکروسافت ارائه شده است . ASP از تمامی فاکتورهای تشريح شده دات نت که به آنها اشاره گرديد بدرستی استفاده می کند. اين بدان معنی است که صفحات ASP.NET می بايست با استفاده از يکی از زبانهای سازگار با دات نت نظير : VB.NET , C# , Jscript.NET ايجاد گردنند.
زمانيکه يک صفحه ASP.NET بکمک يک مرورگر مشاهده می گردد ، در ابتدا ASP.NET engine بررسی خواهد کرد که آيا آخرين نسخه بهنگام سازی شده از کدهای IL برای صفحه ASP.NET وجود دارد؟ در صورتيکه اين نسخه وجود داشته باشد ، کدهای IL روانه CLR شده و خروجی HTML توليده شده توسط صفحه ASP.NET برای مرورگر سرويس گيرنده ارسال خواهد شد. در صورتيکه کدهای IL موجود نبوده و يا صفحه اوليه ASP.NET از زمانيکه کدهای IL آن توليد شده اند ، تغيير کرده باشد ، صفحه ASP.NET می بايست مجددا" ترجمه گردد. در چنين حالتی با توجه به زبانی که برای نوشتن کدهای صفحه ASP.NET استفاده شده است ، کمپايلر مربوطه فعال و کدهای IL توليد خواهند شد. کدهای IL فوق بر روی ديسک ذخيره تا مورد استفاده در آينده قرار گيرند.
در صورتيکه تاکنون صفحات ASP.NET را ايجاد کرده باشيد ، به نقش بسيار مهم کنترل های وب واقف شده ايد. از کنترل های فوق می توان به همراه صفحات ASP.NET برای ايجاد عناصر HTML نظير : Text Box , Labels , ListBoxes استفاده نمود. مثلا" برای ايجاد يک TextBox بکمک يک کنترل وب می توان از عبارتی مطابق زير استفاده نمود :
کد:
<asp:textbox id="name" runat="server" />
در حقيقت صفحه ASP.NET می تواند شامل ترکيبی از کدهای Server-Side ( محصور شده در بلاک Script ) و in-line HTML باشد.
يک نمونه صفحه ASP.NET
کد:
<script language="VB" runat="Server">
Sub Page_Load(sender as Object, e as EventArgs)
lblMessage.Text = "Hello, World!"
End Sub
</script>
<html>
<body>
<h1>Simple ASP.NET Demo</h1>
<asp:label id="lblMessage" runat="server" />
</body></html>
چگونه کدهای Server-Side و HTML موجود در يک صفحه ASP.NET ترجمه شده تا کمپايلر VB.NET قادر به شناخت آنان باشد؟
يکی از مهمترين عملياتی که توسط ASP.NET engine می بايست انجام گيرد ، ترجمه کدهای HTML/Server-Side به کلاسی است که کمپايلر VB.NET ( و يا ساير کمپايلرهای C# , Jscript.NET ) قار به تشخيص آنان باشند. پردازش فوق پيچيده بوده و از حوصله اين مقاله خارج است . کافی است به اين نکته اشاره گردد که صفحات به کلاسی تبديل خواهند شد که خصوصيات خود را از کلاس page ( يکی از کلاس های فريمورک دات نت ) به ارث خواهند برد. در حقيقت تمامی کنترل های وب که در صفحات ASP.NET استفاده می گردند ، بصورت کلاس هائی در فريمورک دات نت در نظر گرفته خواهند شد. در اين راستا تمامی کدهای Html که بصورت موردی در صفحات ASP.NET استفاده می گردنند ،بعنوان نمونه هائی از کلاس LiteralText در نظر گرفته خواهند شد.
اولين نسخه ASP.NET در ماه جولای سال 2001 عرضه گرديده است . (Beta Version) هم اکنون نسخه 2 نیز ارائه شده است. با استفاده از ASP.NET می توان کارهای بزرگ و شگفت انگيزی را انجام داد که اگر قصد انجام آنها را به کمک ASP کلاسيک داشتيم ، می بايست صدها خط برنامه شامل کدهای آشفته ( غيرساختيافته ) را نوشت .
منبع
علاقه مندی ها (Bookmarks)