Best preview in IE5+
 

۱۳۸۳/٤/۱۱
₪ کنترل های سرور (۱)
 

کنترل های موجود در ASP.net به دو گروه تقسیم می شوند، کنترل های HTML و کنترل های Web .

خصوصیات مهم کنترل های سرور ASP.net

»  کنترل های سرور HTML. شما می توانید این کنترل ها را در سمت سرور تغییر دهید. پیش از ارسال فرم به کلاینت، ASP.net Engine آنها را برچسب های HTML تبدیل می کند. این کنترل ها در فضای نامی System.Web.UI.HtmlControls قرار دارند.

» کنترل های سرور وب ( به کنترل های وب یا کنترل های فرم وب ASP.net نیز معروف هستند)  این کنترل ها نسل جدید کنترل هایی هستند که توسط مایکروسافت ایجاد شده اند. این کنترل ها دارای خصوصیاتی تعبیه شده مفید و در فایل .aspx ، این کنترل ها معمولا به یک asp:prefix ارجاع می شوند(به عنوان مثال به asp:Button ، asp:Label یا asp:TextBox ) . علاوه بر کنترل های سرور که از نوع فرم می باشند( مانند برچسب ها، دکمه ها و منوهای پایین افتادنی ) تعداد زیادی کنترل با منظور خاص مانند کنترل های AdRotator و Calendar وجود دارند. کنترل های سرور وب در فضای نامی System.Web.UI.WebControls در دسترس قرار دارند.

»  کنترل های تایید اعتبار، این مجموعه کنترل ها امکاناتی را برای بررسی خودکار درستی ورودی های ویژه کاربر را فراهم می کنند.

» کنترل های سفارشی ، شما می توانید کنترل های سرور مخصوص خود را با توسعه یکی از کنترل های موجود یا گروهی از آنها ایجاد نموده و قابلیت های عملکرد اضافی را بدست آورید.

 

در یک نگاه در ASP.net به جای استفاده مستقیم از برچسب های HTML از کنترل های HTML استفاده می شود. این کار یبب می شود که براحتی بتوانیم خصیصه های کنترل ها را در زمان اجرا تغییر دهیم و به این ترتیب تسلط بیشتری در محتویات صفحه داشته باشیم و راحت تر با آن کار کنیم. فضای نامی مربوط به کنترل های سرور به طور اتوماتیک در دسترس تمام صفحات وب فرم می باشد.

مثالی از کنترل های HTML

به برچسب های زیر توجه کنید:

<html>
<body>
<font>Hello world!</font>
</body>
</html>

با افزودن خصیصه های runat="server"  و id  به برچسب <body> و <font> به سادگی می توانید این برچسب ها را به کنترل هایی از نوع HTMLGenericControls تبدیل کنید.

<html>
<body id="Body" runat="server">
<font id="hellotext" runat="server">Hello world!</font>
</body>
</html>

با افزودن برچسب runat="server"  ، هر تغییری یا رویدادی (Event)  که در این کنترل ها می بایست ایجاد شود در سرور رخ می دهد.

 

کنترل های وب

کنترل های Web بسیار ارزشمند می باشند. این کنترل ها با ارائه یک مدل برنامه نویسی رویدادگرا و قدرتمند، توانایی شما را به شکل قابل ملاحظه ای افزایش می دهند. تمام صفحات وب فرم بطور اتوماتیک به کنترل های وب دسترسی دارند و شما می توانید بصورت اعلان دستی و یا در Visual Studio بوسیله منو شناور سمت چپ آنرا اضافه کنید. توجه داشته باشید که این موضوع در مورد فیل های Code-Behind مربوط به این صفحات صدق نمیکند و شما باید فضای نامی کنترل های وب را به طور صریح وارد کنید.

using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;

  البته اگر از Visual Studio استفاده می کنید این فضاها به طور خودکار به فایل Code-Behind اضافه می شود.

به این کنترل Label توجه کنید :

<asp:label id="mylabel" runat="server">Hi there!</asp:label>

همانطور که می بینید نوشته  Hi there! بین برچسب های باز و بسته label قرار گرفته و در صورت اجرا شدن تنها متن Hi there! را نمایش می دهد. کد کامل فایل بدین صورت است :

<%@ Page language="c#" %>
<HTML>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel"   runat="server">Hi there!</asp:Label>
</form>
</body>
</HTML>

حال می خواهیم متن را تغییر دهیم :

<%@ Page language="c#" %>
<HTML>
<body >
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel"   runat="server">Hi there!</asp:Label>
</form>
</body>
</HTML>
<script runat=server>
private void Page_Load(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}
</script>

اگر این صفحه را اجرا کنید متن Hi .net  را مشاهده می کنید، زیرا در برچسب Script تعریف شده که در هنگام لود صفحه متن Hi .net را درون mylabel بریز. شما می توانید نام کد خود را به طور دلخواه انتخاب کنید اما اگر بخواهید در زمان اجرای صفحه کد اجرا شود باید در برچسب <body> این رویداد را اضافه کنید onload="scriptname"  و خصیصه runat=server را نیز اضافه کنید.( توجه: ما در بر چسب script زبان را مشخص نکرده ایم، البته لزومی ندارد چون در بالای صفحه مشخص شده و کامپایلر آنرا لحاظ خواهد کرد) :

<%@ Page language="c#" %>
<HTML>
<body onload="myowncode" runat=server>
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel"   runat="server">Hi there!</asp:Label>
</form>
</body>
</HTML>
<script runat=server>
private void myowncode(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}
</script>

اینک یک Button را اضافه می کنیم و می خواهیم اسکریپت در زمان کلیک کردن بر روی باتن اجرا شود. بدین صورت :

<%@ Page language="c#" %>

<HTML>
<body runat=server>
<form id="Form1" method="post" runat="server">
<asp:Label id="mylabel" runat="server">Hi there!</asp:Label>
<asp:Button ID=mybutton Text="Go" OnClick="myowncode" Runat="server"></asp:Button>
</form>
<script runat=server>
private void myowncode(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}
</script>
</body>
</HTML>

رویداد اجرای myowncode را از برچسب body گرفته و به Button خود اضافه می کنیم. حال اگر صفحه را ران کنید می بینید که متن Hi there پس از کلیک روی Go به Hi .net تبدیل می شود. شما می توانید OnClick="myowncode" را از برچسب Button حذف و اسکریپ خود را بدین شکل تغییر دهید :

private void mybutton_Click(object sender, System.EventArgs e)
{
mylabel.Text = "Hi .net";
}

 

توجه داشته باشید که اگر شما از Visual Studio استفاده کنید دیگر نوشتن کدهای اضافی لازم نیست و اکثر کارها به طور خودکار صورت میگیرد. حال اگر بخواهیم مثال بالا را با امکانات Visual Studio انجام دهیم : یک Label و یک Button را روی صفحه بکشید. Label را انتخاب کنید و از منو سمت راست کقدار Text را به صورت دلخواه و ID را به mylabel تغییر دهید، خصیصه های Button را نیز به طور دلخواه تغییر دهید. حال روی Button دابل کلیلک کنید تا وارد محیط کد نویسی ( Code-Behind مربوطه) شوید.اگر توجه کنید می بینید که همه چیز به طور خود کار تعریف شده و شما باید کد خود را بنویسید تا هنگام کلیک روی باتن اجرا شود. حال این کد را وارد کنید:

mylabel.Text = "Hi .net";

 به همین سادگی!  اگر می خواهید در هنگام Load شدن صفحه کد خاصی اجرا شود روی قسمت سفید صفحه دابل کلیک کنید تا وارد محیط کد نویسی شده و شما به رویداد Page_Load هدایت شده و می توانید کد مورد نظر خود را وارد کنید. 

یک مثال دیگر را بررسی می کنیم. یک TextBox با ID ( نام) txtbox1 و مقدار Text را خالی قرار دهید و یک Label با نام mylabel و مقدار Text را خالی کنید و یک Button با نام دلخواه و مقدار Text آنرا برابرSubmit  قرار دهید روی صفحه بکشید. روی Button دابل کلیک کنید تا وارد محیط کد نویسی شوید، سپس این کدها را وارد کنید :

if(txtbox1.Text=="")
{
mylabel.Text="Please Enter a something";
}
   else
{
mylabel.Text= "Do you submit " + txtbox1.Text+"?";
}

این کد می گوید اگر مقدار txtbox1 خالی بود Please Enter a something را درون mylabel بریز وگرنه  وقدار آنرا برابر با : Do you Submit + txtbox1.Text+? قرار بده. مثلا اگر شما Saad را وارد کنید و روی submit کلیک کنید این متن نمایش داده خواهد شد :

Do you submit Saad?

توجه داشته باشید که + در خروجی چاپ نخواهد شد و تنها به معنی پیوند آنهاست و متنی که متغیر نیست و شما بطور دلخواه وارد کد میکنید در بین دو سمی کالن قرار میگیرد.

به این چند مثال اکتفا نکنید و برای تمرین های بیشتر و پیشرفته تر و پیچیده تر می توانید به اینجا مراجعه کنید. در لاگ های  بعدی در مورد کنترل های مطرح چون Calendar ،  AdRotator و کنترل های تایید اعتبار ، خصوصیات IsPostBack و AutoPostBack و نیز کنترل های پرکاربرد مثل Repeater وDataList  صحبت خواهیم کرد تا در نهایت به کنترل های سفارشی برسیم


 
 


۱۳۸۳/٤/۱
₪ C#.net
 

نگاهی مختصر به زبان قدرتمند C# ، که جهت برنامه نویسی تحت وب و ویندوز طراحی و چند میلیارد دلار جهت طراحی آن خرج شده است :

کاملاً از صفر طراحی شده و بر پایه .NET framework است، سادگی استفاده از VB  و در عین حال قدرت C++ را داراست و شیءگرایی خود را از Java به ارث برده است.  C# ، سینتکس ( Syntax ) ی شبیه C و C++ دارد. قابلیت دستکاری حافظه در این زبان دیده نمی شود و مدیریت حافظه به صورت اتوماتیک صورت میگیرد. این یکی از مزایای مهم این زبان است، چون مدیریت حافظه یکی از مشکل ترین مسائل برنامه نویسی C++ است و بسیاری از مشکلاتی که در برنامه ها بوجود می آید به همین دلیل است و خوشبختانه در C# تمام امور مربوط به مدیریت حافظه توسط runtime صورت می گیرد.

یادگیری و فهم C# چندان سخت نیست، ازC++  بسیار ساده تر و از VB کمی سخت تراست. این زبان برای کسانی که قبلا با C یا C++ و یا Java کار میکرده اند بسیار شیرین است. به تعبیری C# برای این جهت طراحی شده که برنامه نویسانC++  با سرعت و بدون کاهش و قربانی شدن قدرت آن برنامه نویسی کنند.


 
 


۱۳۸۳/٤/۱
₪ ASP.net چیست؟
 

asp.net چیزی نیست جز ورژن بعدی و جدید ASP ، گرچه asp.net تنها یک ارتقاء محسوب نمی شود. asp.net پیشرفته ترین زیر ساختی است که تا کنون برای توسعه وب ساخته شده است. باید بگوییم که asp.net از پایه دوباره سازی شده تا یک زیر بنای جدید و انعطاف پذیرتر برای توسعه وب باشد. آنچه که asp.net را تا این حد تحول آور و انقلابی می سازد ساختار جدید آن است که بر اساس تکنولوژی جدید مایکروسافت موسوم به .NET شکل گرفته است. ASP.net این امکان را به شما می دهد تا از قدرت زباهایی مثل C# (خوانده میشود "سی شارپ") یا  VB.net و یا J#  در توسعه وب استفاده کنید.  اینک به برخی از ویژگیها و شیوه کارکرد asp.net اشاره میکنیم.


نمایش صفحات ASP.net

هنگامی که شما یک صفحه asp.net را درخواست می کنید، این صفحه که ممکن است شامل کد و یا کنترل هایی باشد در سرور کامپایل می شود و یک صفحه با برچسبهای HTML و احیانا JavaScript برای شما فرستاده می شود که پسوند آن aspx می باشد. برای مثال هنگامی که شما در یک صفحه جستجوگر واژه ای را جستجو میکنید، مقداری را که شما در فیلد وارد کرده اید به سرور فرستاده شده و به دستور کدهای صفحه asp.net جستجو صورت گرفته و حاصل آن به صورت کدهای HTML در آمده ( رندر میشود) و این برچسب های HTML در قالب یک فایل aspx از سرور به مرورگر شما ارسال می شود.


شیء گرایی در اینترنت

برنامه نویسی شیء گرا،  ساخت برنامه های بزرگ و پیچیده را برای برنامه نویسان ممکن می سازد. حال ما با استفاده از asp.net همان کار را بر روی web می توانیم پیاده کنیم. همانطور که گفتیم در asp.net  میتوان از زبان قدرتمند و شیء گرایی همچون C# استفاده کرد. در ASP کلاسیک از HTML و VBScript ( یا JavaScript ) برای تولید صفحات پویای وب استفاده می شود، اما چون VBScript یک زبان اسکریپتی است برای نوشتن کدهای پیچیده و طولانی ( اصطلاحاً ماکارونی شکل) ضعیف می باشد.


سرویسهای وب ( Web Services )

یکی از بزرگترین ویژگیهای ASP.net سرویسهای وب هستند. سرویسهای وب یعنی اینکه شما بتوانید چندین قطعه از برنامه تحت وب خودتان را روی سرورهای مختلفی در سر تا سر دنیا داشته باشید و تمام آنها به درستی و بدون متصل بودن به همدیگر کار کنند. سرویسهای وب میتوانند بر روی برنامه های معمولی تحت وب  ویندوز های .NET  کار کنند. برای مثال : خیلی از مردم دوست دارند آخرین قیمت سکه تمام بهار آزادی را روی سایت خود داشته باشند، ولی خیلی از آنها نمی خواهند هر روز و به صورت دستی قیمت ها را تغییر دهند. حال اگر یک شرکت یک سرویس وب به این منظور درست کند و هر روز قیمت ها را بروزرسانی ( Update ) کند، تمام آن مردم ( صاحب سایتها) از آن سرویس استفاده می کنند. سرویسهای وب در جاهای مختلفی می تواند استفاده شود، مثل : سایتهای خبری، ورود به سیستم ، جدید وبلاگهای بروز شده و...


پشتیبانی کامل از XML

ASP.net استفاده از XML برای ذخیره اطلاعات و مرتب سازی آنها را بسیار ساده کرده است. استفاده از ابزارهایی که در ASP.net برای کار کردن با XML ساخته شده بسیار آسان می باشد. XML برای ذخیره اطلاعاتی که به ندرت تغییر می کنند بسیار عالیست. حجم فایل XML با توجه به مقدار اطلاعات ذخیره شده بسیار کم است.


سازگاری کامل

یکی از مهمترین اهداف .NET این بود که به برنامه نویسان اجازه دهد تا یک برنامه ASP.net را با استفاده از چندین زبان بنویسند، در طول هر صفحه ASP.net تنها از یک زبان می توان استفاده کرد اما شما می توانید صفحات مختلف با زبانهای مختلف را با هم ترکیب کرده و آنها بدرستی کار می کنند.

این بدین معناست که شما می توانید یک تیم برنامه نویسی( که هر کدام از اعضاء در یک زبان تخصص دارند) داشته باشید و بدون نگرانی از سازگاری زبانها برنامه های ASP.net  را تولید کنید.


بهبود مدیریت وضعیت

اگر قبلا یک برنامه کاربردی ASP ساخته باشید، حتماً می دانید که برای مدیریت وضعیت در ASP کلاسیک محدودیت هایی وجود دارد. ASP.net بر این محدودیت ها غلبه کرده است و امکان توزیع اطلاعات وضعیت در میان چندین سرویس دهنده وب را فراهم آورده است، اطلاعات وضعیت را در یک پایگاه SQL Server ذخیره می کند و بدون استفاده از Cookie ها مدیریت وضعیت را به عهده می گیرد.

 

Caching

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


امنیت

بی شک امروزه یکی از مهمترین مسائل در توسعه برنامه های کاریردی مبتنی بر وب، حفظ امنیت اطلاعات می باشد. مدل امنیتی موجود در ASP.net تا حد زیادی بهتر شده است. 


 
 


 

      منو      

  هستم ؟  

  لینک و لوگو :

   ترافیک :     

    آرشیو     

 

   دات نت    

 
   Home | Archive | Contact | © 2004 All rights reserved for .net Dream blog , Saad Shamsaei