تبليغاتX
.:: لوتوس دنیای موبایل ::.
دانلود برنامه موبایل - ترفندها - دانلود نرم افزار کامپیوتر- دیکشنری آنلاین-شناسایی کاربر مخفی یاهو
مقدمه :

در اين قسمت مي خواهيم با يك سري از اصول اوليه ي شيء گرايي در سي شارپ كمي آشنا شويم. لازم به ذكر است ، بسياري از مواردي كه در اين قسمت مطرح مي شوند فقط براي آشنايي شما است و در آينده بيشتر بحث و مرور خواهند شد.

آشنايي با فضاهاي نام (NameSpaces) :

فضاهاي نام روشي براي مديريت كد نويسي هستند. براي مثال آنها ايجاد شده اند تا تداخلي بين نام هاي توابع در برنامه شما رخ ندهد. اين مساله در پروژه هاي بزرگ خود را نشان مي دهد و ممكن است دو آيتم در يك پروژه نام هاي يكساني را پيدا كنند. بدين وسيله اين شانس تصادم و تداخل كاهش پيدا مي كند. براي ايجاد يك فضاي نام به صورت زير عمل مي شود:


namespace anyName
{
……..

Class anyClassName
{
……….
}

…….

}


يكي از فضاهاي نام پايه اي در دات نت فريم ورك ، فضاي نام System مي باشد. براي استفاده از آن مي توان از كد زير كمك گرفت :

using System;

تمام فضاهاي نام به صورت پيش فرض public مي باشند و در خارج از كد شما قابل دسترسي هستند. روش استفاده از آنها به صورت زير است:

ProjectName.NameSpace.ClassName.MemberName

نكته :
اگر دقت كرده باشيد هنگامي كه كرسر ماوس را روي هر آيتمي در منوي autocomplete نگه مي داريد و يا آنرا انتخاب مي كنيد يك راهنماي كوچك نمايش داده مي شود كه در حقيقت كامنت مربوط به آن تابع مي باشد. روش نوشتن چنين كامنت حرفه اي كه در منوهاي ويژوال استوديو ظاهر شود به صورت زير است كه بهتر است (!) قبل از هر تابع يا خاصيت يا كلاس و .... نوشته شود

///
///
///
///


كلاس ها :

چون سي شارپ تمام سر و كارش با كلاس ها است بنابراين بايد در مورد نحوه ي تعريف و استفاده از آنها تسلط كافي داشته باشيم.

يك پروژه ي جديد console در VS.NET باز كنيد و نام آنرا در ابتدا ex03 وارد نماييد.
بعد از باز شدن پروژه ، از منوي Project گزينه ي Add class را انتخاب كنيد تا كلاسي جديد به نام clsDate.cs را اضافه نماييم. ساختار فايل ايجاد شده توسط VS.NET به صورت زير است :

using System;

namespace ex03
{
///
/// Summary description for clsDate.
///

public class clsDate
{
public clsDate()
{
//
// TODO: Add constructor logic here (chashm!)
//
}
}
}

تابع يا متد clsDate كه در اينجا به صورت پيش فرض ايجاد شده است اصطلاحا سازنده (constructor) نام دارد. اين تابع هر بار كه يك شيء جديد از كلاس مي سازيم به صورت خودكار اجرا مي شود.

از اين كلاس مي خواهيم براي نمايش تاريخ/ ساعت و غيره استفاده كنيم.

براي مثال مي خواهيم تاريخ جاري سيستم را به صورت يك خاصيت از اين كلاس دريافت كنيم. براي اين منظور كد زير را به برنامه اضافه مي نماييم:

public string currentSystemDate
{
get
{
return System.DateTime.Today.ToString() ;
}
}

توضيح كد فوق :

خاصيتي را كه مي خواهيم از برنامه دريافت كنيم با كلمه ي كليدي get معرفي مي نماييم. هر چيزي كه اين قسمت برگرداند خروجي currentSystemDate خواهد بود. اين دستور زبان كه در بالا معرفي شد استاندارد است و در همه جا به يك صورت تعريف و بكار برده مي شود. پس شكل آنرا به خاطر بسپاريد.
از كلمه ي كليدي return براي برگرداندن يك خروجي از خاصيت و يا تابع استفاده مي شود.

براي استفاده از اين خاصيت جديد ، در فايل Class1.cs كه متد main برنامه ي ما در آنجا قرار دارد به صورت زير عمل مي كنيم :

clsDate m_var = new clsDate(); // initialize variable
Console.WriteLine ( m_var.currentSystemDate );
Console.ReadLine();//pause!

توضيح كد فوق :

براي استفاده از يك كلاس بايد يك متغير از آن را تعريف كنيم. در هر زباني يك سري نوع هاي استاندارد مانند int و string و غيره وجود دارند. كلاس هم در حقيقت يك نوع داده ي بسيار بسيار قدرتمند به شمار مي آيد. براي تعريف يك متغير از نوع جديد روش كار مانند سابق است. براي مثال زماني كه يك متغير عدد صحيح را تعريف مي كنيد به صورت زير عمل مي شود :

int i=0;

راي تعريف يك متغير از نوع داده اي كه خودمان تعريف كرده ايم نيز بايد به همين صورت عمل شود.

clsDate m_var = new clsDate();

از كلمه ي كليدي new اينجا به صورت استاندارد براي مقدار دهي اوليه به اين متغير جديد استفاده مي نماييم.

سپس به روش دستيابي به اين خاصيتي كه به كلاس اضافه كرده ايم مي رسيم.

m_var.currentSystemDate

كلا چه يك خاصيت و يا يك متد را به كلاس اضافه نماييم براي دستيابي به آن از عملگر نقطه پس از ذكر نام متغير تعريف شده از نوع كلاس خود ، استفاده مي نماييم. براي استفاده از خاصيت ها نيازي به آوردن () بعد از ذكر نام خاصيت نمي باشد.

عموما از خاصيت ها براي برگرداندن و يا تنظيم يك مقدار ساده استفاده مي شود و در آنها عمليات پيچيده اي مد نظر نمي باشد.

توضيحي در مورد ; () System.DateTime.Today.ToString
استفاده از خواص :

شما به ويژگي هاي يك شيء با استفاده از خواص آن مي توانيد دسترسي پيدا كنيد. يك property عضوي است كه امكان دسترسي به ويژگي شيء يا كلاس را فراهم مي كند. براي مثال طول يك رشته (string) ، سايز يك فونت ، عنوان يك فرم و نام يك مصرف كننده ، خاصيت هستند .
بسياري از اشياء ذاتي دات نت فريم ورك ، خواص مفيد زيادي را به همراه دارند. براي مثال شيء DateTime را در نظر بگيريد. با استفاده از خاصيت Today آن مي توان تاريخ جاري سيستم را بدست آورد. براي استفاده از يك خاصيت لازم است تا كلاس تعريف كننده شيء در برنامه مهيا باشد. منظور همان استفاده از فضاي نام مربوطه مي باشد. پس از وارد كردن فضاي نام كلاس مورد نظر مي توانيد از شيء و خواص آن استفاده كنيد. دو راه وجود دارد يا به صورت كامل تمام موارد بايد ذكر شوند مانند System.DateTime.Now; و يا با وارد كردن فضاي نام System كوتاه سازي صورت مي گيرد.
براي استفاده از هر متد و يا شيء ايي در سي شارپ بايد اين شيء قابل دسترسي باشد. براي مثال شيء Console كه از آن براي چاپ كردن خروجي بر روي صفحه ي نمايش استفاده مي كنيم در فضاي نام System واقع شده است. يا بايد در ابتداي برنامه ذكر كرد using System ; و سپس خيلي راحت از اين شيء استفاده كرد و يا مي توان اينكار را انجام نداد و نوشت : System.Console و الي آخر. با ذكر فضاي نام در ابتدا با استفاده از using مي توان خلاصه نويسي كرد.

نتيجه ي نهايي مثال اين فصل :

محتويات فايل Class1.cs :

using System;

namespace ex03
{
///
/// Summary description for Class1.
///

class Class1
{
///
/// The main entry point for the application.
///

[STAThread]
static void Main(string[] args)
{
clsDate m_var = new clsDate(); // initialize variable
Console.WriteLine ( m_var.currentSystemDate );

Console.ReadLine();//pause!
}
}
}

محتويات فايل clsDate.cs كه به برنامه اضافه كرديم:

using System;

namespace ex03
{
///
/// Summary description for clsDate.
///

public class clsDate
{
public clsDate()
{
//
// TODO: Add constructor logic here
//
}

public string currentSystemDate
{
get
{
return System.DateTime.Today.ToString() ;
}
}


}
}


+ نوشته شده در  یکشنبه 27 فروردین1385ساعت 12:6  توسط لوتوس  | 

در طي سلسله مقالاتي مي خواهيم با C# بيشتر آشنا شويم. فرض اين مقالات بر اين است كه آشنايي مختصري با زبانهاي برنامه نويسي داريد ، هر چند كار ما تقريبا از صفر شروع مي شود و هدف آن سادگي هر چه بيشتر است.

C# از دو زبان C++ و Java متولد شده است! حاوي بسياري از جنبه هاي C++ مي باشد اما ويژگي هاي شيء گرايي خودش را از جاوا به ارث برده است.

C# اگرچه از C++ گرفته شده است اما يك زبان "خالص" شيء گرا (Object oriented) مي باشد. هر دو زبان ياد شده جزو زبانهاي هيبريد محسوب مي شوند اما طراحان C# اين مورد را به اندازه ي C++ مهم تلقي نكرده اند. يك زبان هيبريد اجازه ي برنامه نويسي با شيوه هاي مختلف را ميسر مي كند. دليل اينكه C++ هيبريد است ، اين است كه قرار بوده تا با زبان C سازگار باشد و همين امر سبب گرديده تا بعضي از جنبه هاي C++ بسيار پيچيده شوند.

زبان سي شارپ فرض اش بر اين است كه شما مي خواهيد تنها برنامه نويسي شيء گرا انجام دهيد و همانند C++ مخلوطي از برنامه نويسي رويه ايي (Procedural) و شيء گرا را نمي خواهيد به پايان برسانيد. بنابراين بايد طرز فكر خودتان را با دنياي شيء گرايي تطبيق دهيد. در ادامه خواهيد ديد كه در سي شارپ هر چيزي شيء است حتي يك برنامه ي سي شارپ.

برنامه ي اول :

Visual studio.net را اجرا كنيد و سپس در صفحه ي ظاهر شده New Project را برگزينيد. حالا از گزينه ي Visual C# projects قسمت Console applications را انتخاب نماييد. نامي دلخواه همانند ex01 را وارد نموده و سپس Ok نماييد. كد زير به صورت خودكار براي شما توليد خواهد شد:


using System;

namespace ex01
{
///
/// Summary description for Class1.
///

class Class1
{
///
/// The main entry point for the application.
///

[STAThread]
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
}
}
}

اگر يك سري از مفاهيم آنرا متوجه نمي شويد اصلا مهم نيست! در مقالات آتي تمام اين موارد مفصل توضيح داده خواهند شد.
متد استاندارد Main در اينجا قسمتي است كه عمليات اصلي برنامه در حالت Console ( شبيه به برنامه هاي تحت داس اما 32 بيتي ) در آن انجام مي شود.
بدون متد Main برنامه هاي سي شارپ قادر به اجرا نخواهند بود. نوع آن در اينجا void تعريف شده است يعني اين متد خروجي ندارد. حتي اگر برنامه هاي استاندارد ويندوز را هم بخواهيد با C# بنويسيد بازهم متد Main حضور خواهد داشت ، هر چند به صورت خودكار ويژوال استوديو آنرا توليد مي كند.

طريقه ي نوشتن توضيحات (Comments) در سي شارپ همانند C++ مي باشد يعني :


/* any comments */

ويا

// any comments

و تنها برنامه نويس براي نوشتن توضيحاتي در مورد كدهاي خود از آنها استفاده مي كند و در خروجي برنامه ظاهر نمي شوند.

فعلا براي پايان قسمت اول از شيء Console و متد WriteLine آن براي نمايش يك جمله ي ساده استفاده مي كنيم. راجع به متدها ، متغيرها و غيره در آينده بيشتر صحبت مي كنيم.
در آخر برنامه ي ما چيزي شبيه به عبارت زير مي باشد:


using System;

namespace ex01
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Hello C#!");
}
}
}

دكمه ي F5 را فشار دهيد تا برنامه اجرا شود.

تعريف متغيرها در سي شارپ:

سي شارپ عناصري را كه بكار مي گيرد همانند اعداد و كاراكترها ، به صورت نوع ها (Types) طبقه بندي مي كند. اين انواع شامل موارد زير مي شوند :
نوع هاي پايه ايي از پيش تعريف شده مانند اعداد و غيره.
نوع هاي تعريف شده توسط كاربر كه شامل STRUCT ها و ENUM ها مي شوند.

نحوه ي تعريف متغيرها از نوع هاي پايه ايي از پيش تعريف شده :
همانطور كه مي دانيد از متغيرها براي نگهداري اطلاعات استفاده مي شود. در سي شارپ ابتدا نوع متغير و سپس نام متغير و در آخر يك سمي كولون بكار برده مي شود. براي مثال :

int a;

كه در اينجا متغير a بعنوان يك متغير حاوي اعداد صحيح تعريف شده است.
نكته ي مهمي كه در اينجا حائز اهميت است ، مقدار دهي اوليه ي متغيرها مي باشد. در غير اينصورت كامپايلر سي شارپ برنامه را بايك خطا متوقف مي كند. دليل اين امر هم اين است كه از استفاده از متغيرهاي بدون مقدار در طول برنامه جلوگيري شود تا ميزان خطاهاي در حين اجرا كاهش يابد.

نوع هاي داده اي پايه ي زير در در سي شارپ به صورت پيش فرض مهيا هستند:

object : نوعي است نامحدود كه مي تواند تمام انواع ديگر را نيز شامل شود. مثال :

object = null;

string : رشته ؛ در اينجا يك رشته توالي كاراكترهاي يونيكد مي باشد. مثال :

string s= "hello";

sbyte : نوع داده ايي صحيح 8 بيتي علامت دار.
byte : نوع داده ايي صحيح 8 بيتي بدون علامت. مثال :

sbyte val = 12;

short : نوع داده ايي صحيح 16 بيتي علامت دار.
ushort : نوع داده ايي صحيح 16 بيتي بدون علامت. مثال :

short val = 12;

int : نوع داده ايي صحيح 32 بيتي علامت دار.
unit : نوع داده ايي صحيح 32 بيتي بدون علامت. مثال :

int val = 12;

long : نوع داده ايي صحيح 64 بيتي علامت دار.
ulong : نوع داده ايي صحيح 64 بيتي بدون علامت. مثال :

Long val1 = 12; long val2 = 34L;

كلا در اينجا u به معناي unsigned است.

float : نوع اعشاري با single precision .
double : نوع اعشاري با double precision . مثال :

float val = 1.23f;

bool : نوع داده ايي Boolean كه مي تواند true و يا false باشد. مثال :

Bool val = true;

char : كاراكتر، دراينجا char يك كاراكتر يونيكد است.

char val = 'h';

به نحوه ي تعريف كاراكتر ها و همچنين رشته ها در سي شارپ دقت كنيد.

decimal : نوع داده ايي دسيمال با 28 رقم معني دار.

decimal val = 1.23M;

يك نكته :

- بهتر است هنگام تعريف يك متغير ، نامي با مسما براي آن انتخاب شود تا در هنگام كار خواندن كد ساده تر گردد. همچنين رسم شده است كه نوع متغير را به صورت خلاصه به نام متغير اضافه مي كنند. براي مثال بجاي FirstName بهتر است بنويسيم strFirstName . به اين نوع نگارش Hungarian notation مي گويند.
- تمام نوع هاي پيش فرض تعريف شده در سي شارپ شيء هستند. در آينده بيشتر در اين مورد صحبت خواهيم كرد.

مثال اين قسمت :

يك برنامه ي console جديد در را VS.NET باز كنيد. نام آنرا در ابتدا ex02 انتخاب نماييد. در اينجا مي خواهيم دو متغير رشته ايي و صحيح را تعريف و سپس در خروجي نمايش دهيم.

كد نهايي به صورت زير مي باشد:

using System;

namespace ex02
{
///
/// Summary description for Class1.
///

class Class1
{
///
/// The main entry point for the application.
///

[STAThread]
static void Main(string[] args)
{
int intVar1 = 0;

int intVar2;
intVar2=1;

int intV3=15 , intV4 = 12;

string strText1 = "abcd";

Console.WriteLine(
"The value for variables are : \n intVar1="+intVar1 +
"\n intVar2="+ intVar2 +
"\n intV3=" + intV3 +
"\n intV4=" + intV4 +
"\n strText1=" + strText1);

Console.WriteLine("\n\n Press any key to terminate");
Console.ReadLine(); // pause screen!

}
}
}

نكاتي در مورد كد فوق:

- بك اسلش ان ، در زبانهاي مشتق شده از سي به معناي new line مي باشد.
- در كد فوق نحوه ي تعريف چند متغير در يك خط و حالتهاي مقدار دهي مختلف را ملاحظه مي كنيد.
- از متد ReadLine براي نگه داشتن خروجي و مشاهده ي آن در اينجا استفاده كرديم.
- عادت كنيد به صورت دندانه دار كد بنويسيد. اينكار خوانايي كد را صد برابر مي كند. در اينجا كدهاي داخل متد main ، كاملا چند دندانه از آكولادهاي باز و بسته كردن آن جلو تر هستند.
- در كد بالا در متد WriteLine اعداد و رشته ها با هم جمع شده اند! اين مورد بدليل وجود overload هاي زياد اين تابع و ... ميسر گشته است. اصلا به آن دل نبنديد! چون در آينده كامپايلر سي شارپ اگر چنين اعمالي را در جاهاي ديگري مرتكب شويد به شدت با شما برخورد خواهد كرد!! براي جمع كردن اعداد با رشته ها حتما بايد عدد به رشته تبديل گردد و بعد ... . در اين مورد در مقالات بعدي بحث خواهد گرديد.

در مورد كلاسها و using و namespace و غيره در آينده بيشتر صحبت خواهيم كرد.
+ نوشته شده در  یکشنبه 27 فروردین1385ساعت 12:4  توسط لوتوس  | 

آنچه تاکنون گفته شده است :
بخش اول : معرفي فريمورک دانت
بخش دوم : بررسي CLR
در اين بخش به بررسي کلاس هاي پايه فريمورک دات نت و اينترفيس هاي کاربر و برنامه خواهيم پرداخت .


در بخش دوم اين مقاله با اولين لايه فريمورک دات نت ( CLR ) آشنا شديم . در ادامه بر روي لايه بعد متمرکز و به بررسي امکانات ارائه شده خواهيم پرداخت . اين لايه ، کلاس هاي پايه فريمورک دات نت ناميده شده و مسئوليت ارائه سرويس ها و مدل هاي اشياء براي داده ، عمليات ورودي و خروجي ، امنيت و موارد ديگر را بر عهده دارد . نسل بعدي ADO که ADO.NET ناميده مي شود در اين لايه قرار دارد . در لايه فوق ، امکانات و پتانسيل هاي لازم بمنظور انجام عمليات مرتبط با XML نيز ارائه شده است . پارسر و تبديل کننده XSL ، نمونه هائي از پتانسيل هاي موجود در اين لايه بمنظور کار با اسناد XML مي باشند.
اکثر امکانات و پتانسيل هاي مورد نيازي که ضرورت فراگيري آنان براي هر برنامه نويس در رابطه با يک زبان برنامه نويسي وجود دارد ، به کلاس هاي فريمورک منتقل شده است . مثلا" تابع Sqr که در ويژوال بيسيک از آن بمنظور محاسبه جذر يک عدد استفاده مي گردد در دات نت وجود نداشته و اين تابع با متد System.Math.Sqrt موجود در کلاس هاي فريمورک جايگزين شده است .
تمامي زبانهاي سازگار با دات نت قادر به استفاده از کلاس هاي فريمورک مي باشند . بدين ترتيب در يک زبان برنامه نويسي نظير کوبال و يا ويژوال بيسيک دات نت ، براي محاسبه جذر يک عدد از تابع مشابهي استفاده خواهد شد .رويکرد فوق ، پيوستگي و ارتباط مناسب بين زبان هاي متفاوت برنامه نويسي را بدنبال خواهد داشت . تمامي زبان ها به روشي مشابه از متد System.Math.Sqrt استفاده و به کد يکساني دستيابي خواهند داشت ( اختلاف موجود صرفا" به گرامر استفاده از متد مورد نظر در زبان مربوطه ، برمي گردد) .
اکثر قابليت ها و پتانسيل موجود در کلاس هاي پايه فريمورک در يک namespace عظيم و با نام System ارائه شده است . namespace فوق ، شامل چندين namespace زيرمجموعه ديگر است . مثلا" Microsoft.VisualBasic شامل Runtime ويژوال بيسيک و کلاس ها ئي بمنظور ترجمه و توليد کد مورد نظر براي برنامه هاي نوشته شده به زبان ويژوال بيسيک دات نت است .

اينترفيس هاي کاربر و برنامه
در بالاترين لايه ، دات نت روش هائي را بمنظور تفسير و مديريت رابط هاي کاربر ( فرم هاي ويندوز ، فرم هاي وب ، برنامه هاي کنسول ) و اينترفيس مورد نيازعناصر از راه دور ( سرويس هاي وب ) ، ارائه مي نمايد .

اينترفيس کاربر : فرم هاي ويندوز
فرم هاي ويندوز ( به آنان WinForms هم مي گويند ) روشي پيشرفته ويکپارچه بمنظور ايجاد برنامه هاي Desktop استناندارد سي و دو بيتي را ارائه مي نمايند. تمامي زبان ها ي سازگار با دات نت ، قادر به استفاده از پتانسيل فرم هاي ويندوز در مقابل روش هائي که در حال حاضر استفاده مي نمايند ، خواهند بود ( MFC و يا Win32API در ++C و يا موتور VB Forms در ويژوال بيسيک ) . فرم هاي ويندوز ، مجموعه اي قدرتمند و يکپارجه از کنترل ها و توابع عملياتي را براي تمامي زبانها ارائه و بعنوان بخشي از کلاس هاي فريمورک در namespace با نام System.WinForms ،ارائه شده است . بدين ترتيب امکان استفاده از فرم هاي ويندوز توسط تمامي زبان هاي مبتني بر دات نت وجود خواهد داشت . با استفاده از Drag & Drop Designer فرم هاي ويندوز ، مي توان اقدام به ايجاد ويژوال فرم هاي مورد نظر بمنظور استفاده در هر زبان برنامه نويسي نمود.
در ويندوز DNA ، تعداد زيادي از برنامه هاي داخلي سازمان ها و موسسات مبتني بر مرورگر بودند ، چراکه هزينه نصب و نگهداري يک برنامه سرويس گيرنده بر روي صدها و يا هزاران ايستگاه بسيار قابل تامل بود . فرم هاي ويندوز و فريمورک دات نت داراي پتانسيل لازم بمنظور بهينه سازي اقتصادي ( مقرون بصرفه ) نصب و نگهداري يک برنامه سرويس گيرنده با توانائي اجراء بر روي هزاران ايستگاه مي باشند . يک برنامه مبتني بر فرم هاي ويندوز ،نسبت به برنامه سرويس گيرنده اي که با ويژوال بيسيک نوشته شده باشد ، بسادگي نصب و بهنگام خواهد شد . با استفاده از دستوري نظير : XCOPY ، امکان بکارگيري برنامه بسادگي و بسرعت فراهم و در اين رابطه نيازي به ريجستر نمودن عناصري وجود نخواهد داشت . نصب و بهنگام سازي اينچنين برنامه هائي بمراتب ساده تر از وضعيتي است که قبلا" شاهد آن بوده ايم.بدين ترتيب طراحي و پياده سازي برنامه هائي که نيازمند يک رابط کاربر قدرتمند براي تعداد زيادي از کاربران مي باشند ، با استفاده از دات نت بخوبي محقق و عملي خواهد شد ( نسبت به ويندوز DNA ) .

اينترفيس کاربر : فرم هاي وب
فرم هاي وب ،يکي از بخش هاي مهم ASP.NET محسوب و رابط کاربر مبتني بر يک مرورگر وب را ارائه مي نمايند. فرم هاي وب، نسل جديدي از پياده سازي اينترفيس هاي مبتني بر وب را ارائه مي نمايند ( جداسازي لي اوت از منطق). فرم هاي وب شامل دو بخش مجزاء مي باشند : يک تمپليت که شامل اطلاعات لي اوت مبتني بر HTML براي تمامي عناصر رابط کاربر و بخش دوم که شامل تمامي منطق لازم براي ارتباط با رابط کاربر است . بدين ترتيب ، اطلاعات مربوط به کنترل ها بهمراه خصايص و لي اوت مربوطه در يک بخش و کدهاي مربوطه در بخش ديگر مستقر خواهند شد. کدها ي نوشته شده رفتار کنترل ها را نظارت و در صورت بروز يک رويداد ، روتين هاي مربوطه فعال خواهند شد .
فرم هاي وب داراي امکانات متعددي مي باشند . کنترل هاي موجود بر روي فرم هاي وب بر روي سرويس دهنده اجراء ولي حضور آنان بمنزله سرويس گيرنده خواهد بود .بدين ترتيب امکانات و شرايط مطلوبي براي ايجاد اينترفيس هاي قدرتمند فراهم که شباهت زيادي به اينترفيس هاي Win32 استفاده شده در برنامه هاي Desktop خواهند داشت . اينترفيس هاي وب ، داراي هوشمندي لازم بمنظور ارتباط با مرورگرهاي متفاوت مي باشند ( بهينه سازي خروجي براي هر يک از مرورگرهاي خاص ) . امکان استفاده از فرم هاي وب ، براي تمامي زبان ها ي سازگار با دات نت وجود خواهد داشت . اين بدان معني است که مي توان کدهاي لازم ( منطق ) براي ارتباط با بخش ويژوال يک فرم را با استفاده از هر يک از زبان هاي حمايت شده نوشت . بدين ترتيب ، امکان طراحي و پياده سازي اينترفيس هاي وب انعطاف پذيري فراهم که مي توان از آنان در مجموعه گسترده اي از زبان ها ، استفاده بعمل آورد.

کنترل هاي سرويس دهنده
پياده کنندگان ويژوال بيسيک با ايده کنترل ها ، آشنائي لازم را دارند . کنترل ها ، عناصر رابط کاربر با قابليت استفاده مجددي مي باشند که بمنظور ايجاد يک فرم از آنان استفاده مي گردد . اين نوع کنترل ها در فرم هاي وب ، کنترل هاي سمت سرويس دهنده ، ناميده مي شود. کنترل هاي سمت سرويس دهنده، در حقيقت يک پروکسي را بر روي سرويس دهنده براي يک عنصر رابط کاربر که بر روي يک فرم وب و يا يک صفحه ASP است ، ايجاد مي نمايند. کنترل هاي سمت سرويس دهنده ، با منطق محلي در صورت ضرورت ارتباط و در ادامه هوشمندانه رابط کاربر خود را بعنوان HTML تفسير و در صورت ضرورت خروجي مورد نظر را براي هر صفحه حاوي کنترل هاي سمت سرويس دهنده ، ارسال مي نمايند .
کنترل ها ي سمت سرويس دهنده ، بمنظور تفسير HTML براي طيف متنوعي از مرورگرها و هماهنگي با رويدادها ئي که بر روي صفحه درحال اجراء بر روي سرويس گيرنده محقق مي گردند ، مي بايست از هوشمندي مناسبي برخوردار باشد . با استفاده از مجموعه اي گسترده از کنترل هاي ارائه شده بهمراه ويژوال استوديو دات نت ، مي توان اينترفيس هاي مبتني بر وبي را ايجاد که شباهت بسيار زيادي به اينترفيس هاي Win32 خواهند داشت . يکي از مهمترين ويژگي هاي مهم و در عين حال جالب کنترل هاي سمت سرويس دهنده ، توانائي آنان در ارتباط با مديريت وضعيت خود است . بمنظور مديريت وضعيت يک صفحه ، ضرورتي به نوشتن کدهاي خاصي در ASP.NET وجود نخواهد داشت .

اينترفيس کاربر : برنامه هاي کنسول
با اينکه مايکروسافت بر نوشتن برنامه هاي مبتني بر کاراکتر ، تاکيد خاصي نمي نمايد ،ولي بهمراه فريمورک دات نت امکانات لازم بمنظور طراحي و پياده سازي اين نوع برنامه ها پيش بيني شده است (اينترفيس لازم) . همانند فرم هاي وب و ويندوز ، اينترفيس کنسول براي تمامي زبانهاي سازگار با دات نت در دسترس خواهد بود. نوشتن برنامه هاي مبتني بر کاراکتر در نسخه قبلي ويژوال بيسيک ، داراي چالش هاي خاص خود بود . با استفاده از پتانسيل هاي ارائه شده همراه دات نت مي توان برنامه هاي کنسول واقعي را پياده سازي نمود.

اينترفيس هاي برنامه : سرويس هاي وب
طراحي و پياده سازي برنامه هاي کامپيوتر، بسمت نسل جديدي از برنامه هاي غير متمرکز در حال تغيير و تحول است . در ساليان گذشته ، اغلب برنامه ها سرويس هاي اساسي و مورد نياز خود را از طريق سيستم عامل مربوطه ، دريافت مي کردند ( نظير سيستم فايل ) . در ادامه ، قابليت استفاده از توان و پتانسيل موجود در هر نرم افزار براي ساير نرم افزارها فراهم و بدين ترتيب امکان بهره گيري و ارتباط با عناصر نوشته شده فراهم گرديد . تمامي تلاش هاي انجام شده بر اين واقعيت استوار بود که با بکارگيري پتانسيل ها ي ارائه شده ، توان عملياتي يک نرم افزار افزايش يابد و کمتر به نياز فوق بصورت بنيادي و ريشه اي نگاه مي گرديد . در اين رابطه مي بايست فونداسيون لازم بمنظور ارتباط بين برنامه ها فراهم و تمامي برنامه ها با اتکاء به زيرساخت ايجاد شده از خدمات يکديگر در جهت ارائه بهينه خدمات خود استفاده نمايند. سرويس هاي وب ، رويکرد جديدي در اين زمينه مي باشند. در سرويس وب ، قابليت هاي نرم افزار بعنوان يک سرويس عرضه مي شود . با استفاده از سرويس هاي وب ، طراحان و پياده کنندگان مي توانند با ترکيب و بکارگيري منابع محلي و از راه دور ، يک سيستم توزيعي و پيوسته را ايجاد نمايند .
در دات نت ، سرويس هاي وب بعنوان بخشي از ASP.NET پياده سازي مي گردند( ASP.NET ، مسئول ارائه تمامي اينترفيس هاي وب است ) . بدين ترتيب امکان گفتگوي برنامه ها با يکديگر و از طريق وب فراهم مي گردد(استفاده از SOAP ) . پياده کنندگان در اين رابطه با انجام عملياتي مختصر ، قادر به استفاده از سرويس هاي وب خواهند بود.آنان مي بايست به عضوي از سرويس وب شده و فريمورک دات نت ساير مسائل موجود را دنبال و مديريت خواهد کرد . رويکرد فوق، تغيير معماري برنامه هاي وب را بدنبال داشته و امکان ارتباط سرويس هاي وب با يکديگر و بر روي بستر وب ، ميسر خواهد شد . سرويس هاي وب داراي نقش و جايگاهي بسيار مهم در توليد نسل جديدي از برنامه هاي مبتني بر وب مي باشند . سرويس هاي وب، گزينه اي مناسب براي جايگزين شدن با برخي از پکيج هاي نرم افزاري خواهند بود.

اهميت XML در دات نت
اکثر پتانسيل هاي ارائه شده بمنظور ارتباط بين هر يک از اجزاء دات نت ، با استفاده از XML ميسر مي گردد . مثلا" سرويس هاي وب ، کاملا" وابسته به XML براي ارتباط با اشياء از راه دور مي باشند. ADO.NET ارتباط تنگاتنگي با XML براي ارائه راه دور داده دارد .زمانيکه ADO.NET يک Dataset را ايجاد مي نمايد ( يک ساختار بمراتب پيچيده تر نسبت به نسخه قبلي Recordset ) ، داده بمنظور پردازش آتي توسط ADO.NET به XML تبديل و پس از اعمال تغييرات بر روي XML ، مجددا" داده بمنظور ذخيره سازي براي مکان مورد نظر ارسال خواهد شد .با استفاده از XML در حوزه هاي متفاوتي از دات نت ، امکان ارتباط و يکپارچگي بين عناصر مورد نظر چندين برابر مي گردد. XML در دات نت داراي جايگاهي خاص و مهم بوده و مي توان آن را بمنزله پتانسيلي در نظر گرفت که تمامي عناصر مورد نظر را بيکديگر مرتبط مي نمايد

+ نوشته شده در  جمعه 18 فروردین1385ساعت 3:28  توسط لوتوس  | 

حتما با مشكلاتي نظير كندي سيستم , اجراي دير نرم افزار ها , پيغام خطاهاي متعدد و ساير ايراد هاي اين چنيني مواجه شده ايد . هر سيستم عاملي پس از گذشت زماني از نصب آن بر اثر كاركرد بالا و نصب و حذف نرم افزار هاي متعدد دچار چنين مشكلاتي مي شود . در اين مواقع وجود يك نرم افزار خوب و مناسب براي رفع ايراد هاي پيش آمده بسيار مفيد است .

Smart PC Professional نام نرم افزاريست كه در اين زمينه به شما كمك مي كند تا عيب و ايرادهاي سيستم خود را با چند كليك ساده به تنهايي رفع نماييد , سرعت آن را افزايش داده و امنيت اطلاعاتي خود را تا حد قابل قبولي تامين نماييد . اين نرم افزار داراي 4 بخش مختلف به شرح زير مي باشد :

Fix up your PC : اين بخش كار تعمير سيستم شما را به عهده دارد  و به شناسايي , تشخيص و تعمير مشكلات و ايراد هاي سيستم مي پردازد .

Clean up your PC : همانطور كه مي دانيد ,‌سيستم عامل معمولادر حين فعاليت فايلهاي زايد متعددي را توليد مي كند كه اين فايلها تنها حجم اشغال كرده و تا حدي سرعت سيستم را مي گيرند , اين بخش از نرم افزار به پاكسازي اين دسته از فايلها مي پردازد و فضاي مفيد هارد شما را افزايش مي دهد .

Optimize your PC : با اياد اغييرات در تنظيمات ويندوز به بالا آمدن سريعتر آن كمك مي كند و سرعت ان را بهبود مي بخشد .

Protect against Identity Theft - Clean up your tracks : بسياري از فعاليتهاي كه شما در محيط ويندوز و محيط اينترنت انجام مي دهيد در گوشه و كنار ويندوز ذحيره و ثبت مي شود كه براي امنيت اطلاعاتي شما ممكن است مناسب نباشد , اين بخش از نرم افزار به شما امكان پاكسازي رد پاهاي مختلف و اطلاعات شخصي و مسير هاي بجا مانده را مي دهد .

جزييات كامل تر در مورد اين محصول ........

دانلود

+ نوشته شده در  جمعه 18 فروردین1385ساعت 3:26  توسط لوتوس  | 

براي حذف فايل هاي غيرضروري مي توان از تابع ()remove استفاده كرد . الگوي
اين تابع در فايل stdio.h قرار داشته و بصورت زير است : int remove( char *filename)

در الگوي فوق filename بنام فايلي كه بايد حذف شود ، اشاره مي كند. اگر عمل
تابع ناموفقيت انجام شود مقدار صفر وگرنه مقداري غير از صفر برگردانده خواهد
شد .

مثال : برنامه اي كه نام فايلي را بعنوان آرگومان پذيرفته و آنرا حذف ميكند.

#include "stdio.h"
#include "stdlib.h"

main(int argc / char *argv[])
{
char str[80] ;
if(argc!=2)
{
printf("\n you must type a file name!\n" );
exit(1 );
}
printf("erase %s( y/n:)"/argv[1]);
gets(str );
if(toupper(*str)=='y')
if(remove(argv[1]))
{
printf("cannot erase file\n");
exit(1);
}
}

نمونه اي از اجراي برنامه مثال بالا :

E:\TC>9-6 test.x
erase test.x(y/n:)y


+ نوشته شده در  جمعه 18 فروردین1385ساعت 2:23  توسط لوتوس  |