تبليغاتX
دنیای مجازی
امسال هم با تمام روز های خوب وبدش گذشت امیدوارم سال آینده تمام ۳۶۵ روزش برای همه خوب باشه همیشه به طلوع خورشید امیدوار باش عزیزم  !!!!!!
+ نوشته شده توسط امین حاجی علیزاده در دوشنبه نوزدهم اسفند 1387 و ساعت 11:10 |

شناخت عبارت INSERT

ساختار دستور عبارت Insert شبيه به عبارت Select می باشد، بيشترين شکل مبنای آن عبارت است از:

INSERT [INTO] Table-or-View [(Column-List)]

VALUES (Value-List)

هر عبارت Insert می تواند يک جدول يا نما منفرد را به هنگام سازد. زمانی که شما از عبارت Insert برای به هنگام سازی يک نما استفاده می کنيد شما بايد آگاه باشيد از محدوديتهای زير:

View نبايد شامل يک تابع به هم پيوسته مانند COUNT يا AVG باشد.

View نبايد شامل Top ، GROUP BY ، UNION يا DISTINCT باشد.

View نبايد شامل يک ستون محاسبه شده باشد.

View بايد يک جدول را در شرط From باز گرداند.

عبارت Insert ستونهاي يک جدول منفرد را فقط به هنگام می سازد.

ليست ستون در عبارت Insert اختياری می باشد. اگر آن فراهم نگردد عبارت Insert بايد شامل مقاديری برای همه ستونها در جدول يا نما باشد و آنها بايد به همان ترتيب به عنوان ستونهايی در جدول يا نما فراهم شوند. اگر چه شما می توانيد از کليدهای ويژه DEFAULT برای مشخص کردن مقادير پيش فرض برای يک سطر استفاده کنيد. زمانی که ليست ستون گنجانده می شود. آن يک فرمت شبيه از ليست ستون در عبارت Select  می گيرد: يک ليستی از نامهای ستون که با کاما جدا شده است. از زمانی که يک عبارت Insert می تواند يک سطر را فقط برای يک جدول اضافه کند، شما معمولاً نياز به استفاده کردن مشخصه نام جدول برای نام ستون نخواهيد داشت.

استفاده کردن از عبارت INSERT

يک عبارت Insert می تواند با استفاده کردن از قاب Grid برای مشخص کردن ستونها يا با استفاده کردن قاب SQL برای وارد کردن مستقيم عبارت ايجاد گردد.  

درج کردن سطرها با استفاده از قاب Grid

قاب Grid احتمالاً آسانترين راه برای ايجاد يک عبارت Insert می باشد از زمانی که ياد آوردن هر ساختار دستور مورد درخواست شما نباشد.

درج کردن يک سطر با استفاده از قاب Grid

1- پوشه Tables را از پايگاه داده Aromatherapy راهبری کرده، جدول Oils را در قاب Details کليک راست می کنيم. در زير منوی Open Table رفته و Query را انتخاب می کنيم. Query Designer همه چهار قاب نشان داده شده را باز می کند.


راهنمايی: فرمان Query در Open Table يا زير منوی Open View يک راه سريعی برای باز کردن  Query Designer با همه قابهای نشان داده شده می باشد. اگر چه حالت SQL پيش فرض SELECT*FROM می باشد Query اجرا نمی گردد بنابراين هيچ سطری باز نخواهد گشت.

2- قاب SQL و قاب Results را پنهان می سازيم.


3- دکمه Change Query Type را در نوار ابزار Query Designer کليک می کنيم و Insert را از ليست انتخاب می کنيم. Query Designer قاب Grid را تغيير می دهد بنابراين آن فقط ستون و سل ها با مقادير جديد را نشان می دهد.


4- ستون OilName را برای قاب Grid اضافه کرده و مقدار جديدش را InsertFromGrid قرار می دهيم.


5- دکمه Run را در نوار ابزار Query Designer برای اجرای Query کليک می کنيم. Query Designer يک متنی را نشان می دهد که سطر اضافه شده برای جدول را تأييد می کند.

 

6- OK را برای بستن جعبه متن کليک می کنيم. بدون بستن Query Designer يک نمای جديد از جدول Oils با کليک راست کردن جدول Oils در قاب Details باز می کنيم. بر روی جدول Open رفته و همه سطرهای بازگشتی را انتخاب می کنيم. يک نمونه جديد از Query Designer باز می شود و همه سطرها در جدول Oils را نشان می دهد.

7- پايين آوردن Scroll به آخر جدول اين موضوع را تأييد می کند که يک سطر جديد اضافه شده است.

مهم: OilID در پايگاه داده تان احتمالاً با ID که خودمان وارد می کنيم تطابق ندارد. به ياد داشته باشيد که OilID به عنوان يک Identity Column تعريف می گردد. موجوديت ستونها SQL Server ضمانت  می کند که يکپارچه باشند اما آنها ضرورتاً پی در پی نمی باشند.

+ نوشته شده توسط امین حاجی علیزاده در دوشنبه نوزدهم اسفند 1387 و ساعت 11:7 |
ظرفيت هارد ديسك
ويندوزXPپس از نصب استاندارد ، فضايي بيش از 5 /1 گيگابايت از هارد را اشغال مي كند . شما با چند تغيير مي توانيد چند صد مگابايت از ظرفيت درايو را آزاد كنيد . براي اين كار بايد حالت Standby را غير فعال كنيد . اين عملكرد در ويندوزXP، فايل.sys Hiberfilدر فهرست اصلي را در پارتيشن سيستم قرار مي دهد . اگر به عملكرد Standby احتياجي نداريد ، آن را با دستور زير ، غير فعال كنيد :

Start > settings > Control panrl > power Options
درزبانه Power Schemesقسمت System Standby راروي Never تنظيم كنيد .


پاك سازي و مرتب سازي هارد از فايل هاي زائد
با استفاده از ابزار پاك سازي اطلاعات ، مي توانيد فايل هاي زائد و اضافي را پاك كنيد . درايوي را كه مي خواهيد مرتب سازي كنيد . انتخاب و دستور زير را اجرا كنيد :
star / programs / Accessories / Tools / Disk Cleanup

نمايش گروهي
براي اين كه بتوانيد همه فايل هاي موجود را به صورت يك فهرست درWindows Explorerنمايان كنيد از طريق منويViewوارد قسمتArrange lcon Byشويد وTypeرا فعال كنيد .


غير فعال كردن خاصيتwinzipدر ويندوز
در كامپيوتر هاي با سرعت پايين ، عملZipبه عنوان ترمزي براي سرعت سيستم به حساب مي آييد . اگر با يكPCبا سرعت پايين كار مي كنيد . توصيه مي شود كه اين عملكرد را غير فعال كنيد . از طريقstart / Runخط فرمان را باز كنيد و در سطر فرمان دستورzipfldr .dllRegsvr32 /Uرا تايپ كنيد . پس از تاييد توسط كليدOK، پيغامي ظاهر مي شود كه عمل غير فعال ، در همان مسير قيد شده در سطر فرمان دستورRrgsvr32 zepfldr . dllرا وارد كنيد .

ايجاد يك آيكون براي قفل كردن كامپيتر
نحوه ايجاد آيكني كه مي توانيد با دو بار كليك سريع آن ، سيستم رت در وضعيتLockقرار دهيد . براي چنين كاري ابتدا در صفحهDesktipراست كليك كرده و سپس گزينهshortcutNew / راانتخاب كنيد . در كادر متنيType the Location of lte ltemدستور زير را وارد نماييد :
rundll32 . exe user32 . dll . Lockworkstation
سپس گزينهNextرا انتخاب كرده و يك نام دلخواه براي ميانبر مزبور انتخاب كنيد . پس ازاين مرحله مي توانيد با قرار دادن آيكون ميانبر در هر محل دلخواهي با دو بار كليك سريع در آن سيستم رت در وضعيت قفل قرار دهيد .

My Document را جابجا كنيد
روي آيكونMy Documentدر صفحه نمايشتان ، كليك راست كنيدpropertiesو از پنجره ظاهر شده دكمهMoveرا انتخاب كنيد ، پوشه اي را كه قرار است محتوايMy Documentخود را به آن ، انتقال دهيد . اگر پوشه مورد نظرتان وجود ندارد مي توانيد از طريق گزينهMake New folderپوشه جديدي براي خود انتخاب كنيد .

نحوه استفادهRemote Desktop
شركت ماكروسافت با قرار دادن برنامهRemote Desktopدر نسخهXp professionalخود اين امكان را براي كار بران فراهم ساخت تا از راه دور به كامپيوتري در محل ديگر دسترسي يابند . در واقع شيوه كار اين برنامه به نحوي است كه به نحوه برقراري ارتباط ، سيستم راه دور به طور اتوماتيكLockمي شود و مادامي كه به آن مرتبط هستيد هيچ شخص ديگري نمي توتند به برنامه ها ، فايل ها و ساير منابع آن دسترسي داشته باشيد و هنگامي كه به محل كارتان باز گرديد مي توانيد آن را با فشار دادن كليد هاي Alt+CTRl+DEL از حالتLock خارج نماييد . از ديگر ويژگي هاي اين برنامه امكانloginدر يك زمان بر روي چند سيستم مي باشد ، حتي در حالتي كه ديگران نيز به آن سيستمLog inكرده باشند ، كار بر مي تواند برنامه هاي آن ها را بطور همزمان اجرا كند . براي دسترسي به امكانات و اجراي اين برنامه بايد موارد زير را در نظر داشته باشيد :
- يك كامپيوتر كه در آن ويندوزXP professional نصب شده و دسترسي به محيط اينترنت و يا شبكه را دارد .
- يك كامپيوتر ديگر در منزل و يا در همان محل شركت ( كه از طريق شبكه داخلي با هم مرتبط هستند ) با امكان دسترسي به اينتربت و مودم .
- نام كاربري، كلمه رمز عبور و مجوز هاي مناسب


نصب فكس
براي فعال كردن اين ويژگي در ويندوزتان ( البته در ويندوزXP) كافي است از پنجره Add / remove program panelControlو سپسComponenents Add / Remove Windowsرا انتخاب كنيد و از پنجره ظاهر شده گزينهFax Servicesرا برگزينيد دكمهNextرا انتخاب كنيد . پس از اين از شما براي نصب ، سي دي ويندوزتان را مي خواهيد كه با گذاشتن آن ، اين برنامه نصب مي شود .


فكس بفرستيد
براي اين كارDocumentمورد نظر را كه مي خواهيدFaxكنيد ، باز كرده و از منويfileگزينهprintرا انتخاب و در پنجرهprinter Boxبر روي گزينهFaxكليك كنيد تا ويزاد SendFaxباز شود ( توجه داشته باشيد در برنامه هايOfficeبراي اين كار بايد از منويfileگزينهSendو سپسFax Recipientرا انتخاب كنيد . ويزاردي با همان صورت ظاهر مي شود ) در مرحله بعد نوبت به اضافه كردن نام فردي مي شود كه مي خواهيد به ويFaxبزنيد . پس از طي اين مرحله ، آماده ايدDocumentخود را از طريقFaxبفرستيد .

فشرده كردن فايل ها
براي فشرده كردن يك فولدرXPياMeروي صفحهDesktopيا درون يك فولدر راست كليك كرده ، از منوي ظاهر شدهNewراانتخاب كنيد و سپس روي گزينهCompressed ( zipped ) folderكليك كنيد . يك فولدر جديد از ن.ع فشرده
( Compressed )در آن محل ايجاد مي شود كه نام پيش فرض آن( Ziped ) Folder New Compressedاست .
فولدر هاو فايل ها يي كه مي خواهيد روي آنها پسورد بگذاريد انتخاب كنيد و با استفاده ازCutوPasteبه اين فولدر فشرده انتقال دهيد .


رمز گذاري روي فايل ها
فولدر فشرده را باز كنيد و از منوي فايل گزينهAdd a password( در ويندوزMeگزينهEncrypt) را انتخاب كنيد . كلمه عبور دلخواه خود را در قسمتPasswordوارد كنيد و دوباره آن را در قسمتConfirm Passwordتايپ كنيد و دكمهOKرا بزنيد . از حالا به بعد تنها كاربراني كه كلمه عبور را بدانند قادر به باز كردن ، كپي يا انتقال محتويات اين فولدر هستند .


منويFavoriteرا رويDesktopقرار دهيد
از منويStartگزينهRunرا انتخاب كنيد . حال در قسمتOpenاز اين پنجره ، عبارت زير را تايپ كنيد :
iexplore- Channelband
توجه داشته باشيد كه ميان عبارتiexploreو علامت – يك فاصله قرار دهيد .
پس از تاييد پنجرهOpenمنويFavoritesرا روي صفحه نمايشتان خواهيد ديد .

+ نوشته شده توسط امین حاجی علیزاده در چهارشنبه نهم مرداد 1387 و ساعت 9:23 |

 

طراحي سایتهای صنعتي


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

مشخصات محصول: بيشتر محصولات صنعتي همراه با اطلاعاتي عرضه ميشوند كه صفحه مشخصات ناميده ميشود يك صفحه مشخصات تركيبي از متن، تصوير و توصيفاتي در مورد كارايي محصول در يك ورق كاغذ ميباشد. خصوصيات كارايي يا تصوير توصيف كننده ساختار كالا، اغلب عامل فروش يك محصول ميباشند.
البته با توجه به قابليتهاي وب، ايجاد صفحه مشخصات كالا در وب به روش سنتي، محدود كننده به نظر ميرسد. مشخصات كارايي كالا ميتواند به صورت سه بعدي و همراه با حركت ايجاد شود، همچنين خود محصول در حال انجام عمل، قابل نمايش باشد.

ارتباط با مشتري: ‏‏‏كارتهاي جالبي را كه در آنها از شما سئوال ميشود «آيا مايليد كه نمايندگي سرويسهاي مشتري در مورد كالايي خاص با شما تماس بگيرد؟» را بخاطر بياوريد. با استفاده از وب سئوالات تقريبا پس از پرسيده شدن جواب داده خواهند شد.

 

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه پانزدهم اردیبهشت 1387 و ساعت 9:35 |

کدهای مربوط به Upload کردن فايل به سرور را بايد به دو قسمت تقسيم نمود. قسمت اول شامل کدهايی است که نحوه نمايش در مرورگر را شامل می شوند و اساس آن بر HTML است. و قسمت دوم مربوط به طرف سرور است که شامل کدهايی است که با ASP.NET نوشته می شوند. برنامه زير حاوی کدهای مربوطه برای انجام اين کار به صورات خيلی ساده و ابتدايی می باشد. همانطور که ملاحظه می کنيد برخلاف ASP کلاسيک، نياز به وجود component خاصی نمی باشد و اين کار در ASP.NET بصورت خيلی ساده انجام پذير است.

Upload.aspx:
<
HTML>
<
HEAD>
<
TITLE>Uploading File...TITLE>
<
Script language="vb" runat="server">
sub page_load(s as object,e as EventArgs)
   
If Not (MyInputFile.PostedFile Is Nothing) Then
       
MyInputFile.PostedFile.SaveAs("c:\filename.ext")
       
Response.write("Your File was saved on the server...")
   End If 
endscript>
HEAD>
<
BODY>
    <
FORM method="post" encType="multipart/form-data">
        <
input id="MyInputFile" type="file" name="MyInputFile" runat="server"> 
        <
input type="submit" value="Submit">
    FORM>
BODY>
HTML>

در زير به شرح و توضيح برنامه بالا می پردازيم:

کدهای مربوط به طرف Client
به دليل آنکه در اين قسمت، ارسال اطلاعات به سرور را داريم، بايد کدهای مربوطه درون يک فرم قرار گيرند. اما لازم است که ويژگی
encType آن فرم را به صورت زير مقدار دهی کنيم، زيرا در غير اينصورت فايل انتخاب شده توسط کاربر به سرور ارسال نخواهد شد:

encType="multipart/form-data"

در HTML کنترلی وجود دارد که وظيفه دريافت نام فايل و ارسال آن به سرور را عهده دار می باشد:

<input id="MyInputFile" type="file" name="MyInputFile" runat="server">

توجه کنيد که اين کنترل را به صورت يک سرور کنترل در می آوريم تا بتوانيم در ASP.NET از توانايی های آن استفاده نماييم و به همين دليل ويژگی runat="server" را به کنترل مربوطه اضافه کرده ايم. بنابراين کد مربوط به قسمت Client به صورت زير خواهد بود:

<body>
<
form method="post" encType="multipart/form-data">
<
INPUT id="MyInputFile" type="file" name="MyInputFile" runat="server">
<
input type="submit" value="Submit">
form>
body>

 

+ نوشته شده توسط امین حاجی علیزاده در دوشنبه دوم اردیبهشت 1387 و ساعت 9:0 |
- معايب روش فايلينگ چيست؟ 2 نمره
2- كليد را تعريف كنيد و انواع آن را با مثال توضيح دهيد. 3 نمره

3- شرايط ايجاد يكپارچگی ارتباط در جدول چيست؟ 3 نمره

4- تفاوت انتقال جدول از بانك ديگر به كمك Import , Link چيست؟ 3 نمره

5- ابتدا اشكالات دستور زير را پيدا كرده، سپس علاوه بر نوشتن برنامه ی درست، عملكرد آن را شرح دهيد. INSERT IN List(Id,Name,Famili, Address,Tel
VALUES (‘123456’,Sara,’Asadi’, ‘ Rasht , Golsar’0131-7222222); 3 نمره
6- با مثال رابطه يك به چند را شرح دهيد. 2 نمره
7- جداول زير با فرض ارتباط بين فيلد Code بين دو جدول ايجاد شده است:
جدول List:
نوع فيلد نام فيلد توضيح
Number Code شماره كارمندی
Text Name نام كارمند
Text Family نام خانوادگی كارمند
Number Sh شماره شناسنامه
Text St محل تولد
Date B_date تاريخ تولد
جدول Salary :
نوع فيلد نام فيلد توضيح
Number Code شماره كارمندی
Number E_year سنوات خدمت
Currency ُSalary حقوق دريافتی

با زبان پرس و جوی ساخت يافته SQL دستورات خواسته شده را بنويسيد. هرمورد 1 نمره
1. ويرايش نام كارمندی كه به اشتباه "ممريم" ثبت شده است.
2. نمايش اطلاعات كارمندانی كه حقوق دريافتی آنها كمتر از 300000 ريال وسنوات خدمت آنها 30 سال است.
3. نمايش شماره كارمندی، نام خانوادگی و حقوق دريافتی كارمندان به طوري كه ستون نام خانوادگی به ترتيب صعودی مرتب شود.
4. حذف ركوردهايی از جدول salary كه سنوات خدمت آنها كمتر از يكسال باشد.
موفق باشيد. 


+ نوشته شده توسط امین حاجی علیزاده در یکشنبه بیست و پنجم فروردین 1387 و ساعت 9:5 |
نقطه ی عطف صدا
در ژرفای صدایت چیزی نهفته است...

سری نهان است...

در ژرفای صدایت دنیاییست پر از احساس

در زلال بی کرانش ماهی های نقره ای می رقصند...

در افق نگاهت خورشید طلوع می کند و

پرندگان با هر کوچشان تازه می شوند...

در ژرفای صدایت...

انگار واژه ها خجالت می کشند...می خواهم از تو بنویسم، پس واژه های طلایی ام کو؟
دنبالشان می گردم...اما آنها در پس و پیش ذهنم قایم می شوند...
در عوض هر کدام به نیابت از خودشان ترانه ی نابی را می فرستند در سردر ذهنم...انگار می خواهند بگویند:((بیا...این هم یک دنیا واژه ی طلایی...آن هم با صدا یک مرد نازنین...))


"ای تبلور حقیقت"

نه، نمی شود...
می خواهم به اندازه صد سال آرشیو وبلاگم، برای تو نوشته شود...می خواهم انقدر بگویم تا خوابم ببرد...مثل همیشه که شبها آنقدر گوش می دهم تا پلک هایم گرم می شود و...وقتی که بیدار می شوم انگار که چیزی را از دست داده باشم.
خوب می دانم...این ناتوانی، این لکنت، این گم کردن واژه ها... می دانم امشب همه گرفتارش شدیم... این حال و روزآدمهایی ست که شیفته ی عشقی بی تعریف اند.

شاید ساده ترین جمله ها بهترینها باشد... قبل از اینکه کسی رنگ و بوی مبالغه را به آنها داده باشد، اولین بار برای ناب تری معنیشان به کار رفتند.
جملاتی مثل: "میلادت مبارک... ."
سعی کردم به چشمانت خیره شوم و بفهمم در چه اندیشه ای هستی... شاید با آنها بشود چیزی نوشت برای امشب...اما نگاهت آنقدر عمیق بود که در آن غرق شدم... و چه پرسش های بی جوابی ...


"تو منو از شب گرفتی"

می دانم؛ چیزهایی که می گویم قابل فهم نیست! من احساساتم را می گویم... عمیق ترین هایشان را... سخت است؛ باور کن، نا جیه عاطفه ی من...

"من آن موجم که بی تو آرامش ندارم..."

"تو منو دادی به خورشید"
+ نوشته شده توسط امین حاجی علیزاده در شنبه بیستم بهمن 1386 و ساعت 12:39 |

 

فرق بین   Multi Program   و Multi Task   چیست؟

 

سئوال 1: در   multi program  چه  موقع عمل  switching    انجام می گیرد؟  وقت I/O

 

سئوال 2: در   multi task   چه  موقع عمل  switching    انجام می گیرد؟  در یک برهه زمانی  یعنی فقط منتظر عمل I/O   

 

  نمی ماند  اگر به I/O   بر خورد کند switch   می کند.  ولی اگر به I/O   بر خورد نکند و آن برهه زمانی بگذرد بازهم switch می کند. یعنی پردازنده از آن گرفته می شود.

 

نکته1: یک سیستم   عامل  میتواند چند برنام ه(Multi program)  باشد ولی  چند  وظیفه ای(Multi  Task) نباشد. مثل ویندوز 1و2و3

چون فقط به I/O   برخورد می کردند پردازنده Switch  می کرد.

 

نکته2: یک سیستم   عامل  که هم  چند برنامه(Multi program) و هم  چند  وظیفه ای(Multi  Task) باشد. مثل ویندوز 95و98

 

 چون اگر چند پنجره را باز کنید می بینید همه پنجره ها در حال فعلیت هستند. یعنی پردازنده ما بین آنها Switch   می کند .

 

نکته 3: اشتراک زمانی (Time Sharing ) وقتی است که سیستم چند کاربره(Multi User) باشد.

 

 

مثال :  وینوز 2000  و time sharing  و multi task است.  N   تا کاربر بتوانند از طریق شبکه به  یک سیستم وصل شوند و کاملا منابع اش را به اشتراک بگذارد. در ویندوز NT - n  تا کاربر به آن سیستم می یابند و از منابع سیستم استفاده می کنند.

 

نکته 4:  در وینروز95و 98 همه منابع غیر از حافظه و پردازنده را می توانیم به اشتراک بگذاریم.ولی در وینروز NT  و ویندوز 2000و یونیکس همه منابع را می توانیم به اشتراک بگذاریم.

 

 

 

دو نکته  ضرورت چند وظیفه ای  بودن را روی کامپیوتر های شخصی موجب شده اند.{استالینگ    87}

1- با افزایش سرعت و ظرفیت ریز پردازند ه ها و با حمایت از حافظه مجازی ، کاربر ده پیچیده تر و مرتبتر  شده اند .

 

برای مثال ممکن است کاربران بخواهند یک برنامه ، word    ، یک برنامه Excel    ، یک برنامه Autocad

 

 را به طور همزمان  برای ایجاد یک سند به کار برند.

1-       باز کردن برنامه Autocad

2-       رسم شکل و ذخیره آن

3-       بستن برنامه Autocad

4-       بازکردن Word

5-       درج شکل در محل مناسب

 

در محیط چند وظیفه ای کاربر هر یک  از کاربرد های مورد نیاز خود را باز کرده و به صورت باز رها می کند . و

اطلا عات به سادگی می تواند بین  چند کاربرد حرکت کند.

ولی در تک وظیفه ای  اگر تغییری در شکل لازم باشد کاربر باید برنامهWord   را ببندد، برنامه Autocad را باز کند ، شکل را ویرایش و ذخیره نماید ، برنامه Autocad راببندد، برنامه  Wordرا باز کند ودر نهایت شکل  ویرایش شده را درج کند . که خیلی ملال آور است.

 

1-       برای عملکر چند وظیفه ای ، رشد به کار گیری کامپیوتر به صورت مشتری / خدمتگزار(Client/Server) می باشد.  در این دید گاه یک کامپیوتر شخصی (Client ) و یک سیستم میزبان(Server) مشتر کا، برای انجام یک کاربرد،خاص، بک کار گرفته شده اند. این تر تیب در یک کاربرد ممکن است یک یا چند کامپیوتر شخصی و یک یا چند دستگاه خدمتگزار (Client ) در گیر باشند.

 

برای هر کدام  از وقفه ها ما سرویس  روتین مربوط به خودش را داریم .

 

+ نوشته شده توسط امین حاجی علیزاده در شنبه ششم بهمن 1386 و ساعت 12:9 |

1-بافر کردن (  Buffering)، امکان همپوشانی  ( همزمانی )  عمل I/O   یک کار  را با عملیات پردازش   همان کار  بوجود   می آورد.در حالیکه      spooling   امکان همزمانی پردازش ورودی –خروجی چندین کار رابا یکدیگر  فراهم می کند.

  2- هر  Spooling  الزاما   بافر دارد ولی  بافر Spooling   ندارد. .

سیستم Spooling راه حلی برای کار کرد ن با دستگاه های  I/O  انحصاری ، در یک سیستم چند برنامگی است. یک دستگاه Spool  شده نوعی را در نظر بگیرید: یک  چاپگر هر  چند از نظر تکنیکی آسان خواهد بود که به هر فرآیند کاربر اجازه دهیم که فایل مخصوص کاراکتر ی را برای چاپگر  باز کند، ولی فرض کنید که فرآیند آن را باز کند و برای ساعت ها کار نکند، در این حالت  هیچ یک از دیگر فرآیند ها نیز قادر به چاپ کردن نخواهند بود.به جای این روش کاری که انجام گرفته است ،  ایجاد یک فرآیند ویژ ه می باشد که شبح (Deamon)نامیده  می شود و یک فهرست مخصوص که فهرست Spooling   نامیده  می شود.

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

 

Spooling: تنها در چاپگر به کار نمی رود ، بلکه در وضعیت های دیگری نیز استفاده می شود . برای مثال ، انتقال فایل از طریق یک شبکه معمولاً توسط یک شبح شبکه ای  انجام می شود .برای ارسال فایل به مقصد ی مشخص ، کاربر  آن را در فهرست Spooling   شبکه قرار می دهد. سپس شبح شبکه آن را خارج ساخته و منتقل می کند.

 

 

نکته:

یک کاربرد و استفاده ویژه از انتقال فایل Spool   شده ، سیستم پست الکترونیکی (Email) اینترنت می باشد. این شبکه شامل میلیونها  ماشین در سراسر جهان است که با استفاده از شبکه های کامیوتری با یکدیگر ارتباط بر قار می کنند. برای ارسال  Mail به شخصی ، باید برنامه ای مانند را صدا بزنید که نامه را جهت ارسال شدن می پذیرد و سپس آن را به صورت امانت در فهرست Spooling   قرار می دهد تا بعداً  ار سال شود. تمام سیستم Mail  در خارج از سیستم عامل  اجرا می شود

Spooling در تمام سیستم عامل ها قابل استفاده است.



+ نوشته شده توسط امین حاجی علیزاده در شنبه سوم آذر 1386 و ساعت 11:11 |

حال وقت آن است كه در سيستم عامل خود تنظيماتي را انجام دهيد تا كامپيوتر شما بتواند جستجو براي كامپيوترهاي ديگر و گفتگو با آنها را آغاز كند.نحوه پيكربندي تنظيمات مربوط به ويندوز در كامپيوتر شما، توسط اين مسأله تعيين مي‌شود كه آيا در شبكه شما Internet sharing وجود دارد يا خير. در ادامه بر حسب اين مسأله دستورالعمل‌هاي لازم آورده مي‌شود:Non-Internet Sharing Windows Settingsدر مورد هر كامپيوتر مراحل زير را طي كنيد:1. بر روي آيكن Network Neighborhood بر روي desktop راست كليك كنيد.2. Properties را انتخاب كنيد.3. بر روي Access Control tab كليك كرده و Share level access را انتخاب كنيد.4. Identification tab را انتخاب كنيد.در اينجا مي‌توانيد نامي را براي كامپيوتر خود انتخاب كنيد.5. Configuration tab را انتخاب كنيد. از Primary Network Logon، Client for Microsoft Networks را انتخاب كنيد.6. سپس يك آدرس IP را به كامپيوتر اختصاص دهيد، مثلاً 192.168.O.X. X در هر كامپيوتر منحصر به فرد است و عددي بين 1 تا 254 مي‌باشد. در اين قسمت عدد Subnet mask را، 255.255.255.0 بنويسيد.Internet Sharing Windows Settingدر مورد هر كامپيوتر مراحل زير را اجرا كنيد:- در Control Panel، بر روي آيكن Add/Remove Program دو بار كليك كنيد. بر روي Windows setup tab كليك كنيد.- پس از گذشت چند لحظه از ليست اجزاء، Internet tools را انتخاب كنيد.- سپس Internet Connection Sharing را انتخاب كنيد.- در اينجا CD مربوط به ويندوز مورد نياز است. آنگاه Internet Connection Sharing Wizard اجرا مي‌گردد كه پس از پايان آن، كامپيوتر را Restart نماييد.- مي‌توانيد از فلاپي ديسكي كه در طي مراحل Wizard ايجاد مي‌كنيد، در مورد كامپيوترهاي ديگر شبكه استفاده كنيد (در منوي Run در هر يك از آنها و پس از گذاشتن فلاپي در كامپيوتر اينگونه تايپ كنيد: a:\icsclset.exe و سپس Enter را فشار دهيد)لازم به ذكر است در صورتيكه بخواهيد شبكه خود را از طريق يك Proxy Server به اينترنت متصل كنيد مي‌بايست آن را خريداري كرده و تنظيمات مربوطه را انجام دهيد. فراهم كننده خدمات اينترنت (ISP) شما بايد در مورد استفاده از dynamic IP و يا static IP شما را آگاه سازد. در صورت استفاده از static IP، ISP بايد در اختصاص IP به شما كمك كند.

+ نوشته شده توسط امین حاجی علیزاده در شنبه دوازدهم آبان 1386 و ساعت 10:32 |

در ارتباطاتinfrared  (مادون قرمز) از فركانسهاي بالا دقيقا زير طيف نور مرئي- استفاده مي‌شود. در اين روش سيگنالها نمي‌توانند از اشياء و ديوارها عبور كنند. اين امر بكارگيري تكنولوژي مادون قرمز را محدود مي‌سازد. در فناوري مادون قرمز ارسال كننده و دريافت كننده بايد يكديگر را ببينند(در خط ديد يكديگر باشند) همانند يك كنترل كننده راه دور دستگاه تلويزيون. بطور كلي در ارتباطات داخل ساختمان كه فاصله ايستگاهها كم باشد از اين روش استفاده مي‌شود. در اينجا بجاي سيم يا فيبر نوري كه رسانه‌هاي انتقال هستند، از امواج راديويي يا نور مادون قرمز بعنوان رسانه انتقال استفاده مي‌شود. امواج راديويي بخاطر برد، پهناي باند و پوشش مكاني بيشتر، از نور مادون قرمز كاربرد بيشتري دارند

سيستم‌هاي كنترل از راه دور كه در وسايلي چون تلويزيون و استريو‌ها به كار مي‌روند با انتقال زير قرمز كار مي‌كنند. زير‌قرمز به يك محيط كوچك محدود مي‌شود (مثلا يك اتاق) و معمولاً نياز دارد فرستنده در جهت گيرنده باشد. سخت افزار زير قرمز در مقايسه با مكانيسم‌هاي ديگر ارزانتر است و به آنتن نيازي ندارد.

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

 

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه ششم آبان 1386 و ساعت 17:43 |
اسلحه های 1 - اسلحه برای آدم کشی LXGIWYL
اسلحه های 2 - ابزار حرفه ای KJKSZPJ
اسلحه های 3 - ابزار نمیدونم چی چی؟ UZUMYMW
سلامتی و ضد گلوله و 250K$ HESOYAM
اضافه کردن دو ستاره برای وقتی که پلیسها میخوان بگیرنت! OSRBLHH
دیگه پلیسها دست از سرت برمیدارن ASNAEB
تیرهات تمومی ندارن، درضمن لازم نیست پرشون کنی! WANRLTW
داشتن اسلحه کامل به هنگام رانندگی OUIQDMW
پرش میلیونی! LFGMHAL
مشروب (منگنه) میلیونی! IAVENJQ
سلامتت تمومی نداره!! BAGUVIX
اکسیژنت پایانی نداره!! CVWKXAM
هیچوقت پلیسها به دنبالت نمیزارن! AEZAKMI
شش تا ستاره واسه اینکه پلیسها بگیرنت! (هر ستاره معرف یک نو نیروی پلیسی هست مثلا اگه ستاره ها زیاد باشه، حتی پلیسهای دریایی و هوایی هم میزارن دنبالت تا ...!) LJSPQK
هیچوقت گرسنه ات نمیشه! AEDUWNV
موقعیت تمام اسلحه هات بصورت Hitman ایی میشه! NCSGDAG
موقعیت Skill انواع رانندگی رو ماگزیمم میکنه! VQIMAHA
هیکلت رو تا آخر میبره! JYSDSOD
لاغر و پوستی و استخوانی KVGYZQK
چاق!! (اگر خواستی که بعد از انجام این کد، لاغر شی، باید بری بدن سازی کنی) BTCDBCB
یه اعانه رو سرت میزاره BAGOWPG
آهنربای زنان هرزه!!! (شرمنده، ترجمه اش همین بود) BEKKNQV
نوع غده ی فشار خونی! MUNASEF
جذبه رو تا آخر میبره. EHIBXQS
احترامش رو تا آخر میبره. OGXSDAG
هر شخص سرباز مانند (9mm) SJMAHPE
هر شخص سرباز مانند (موشک) ZSOXFSQ
خودکشی!!!!!!!!!!!!! SZCMAWO
+ نوشته شده توسط امین حاجی علیزاده در جمعه پانزدهم تیر 1386 و ساعت 16:53 |

در اين مثال با استفاده از مجموعه Server Variables وابسته به شی Request، نوع مرورگر، سيستم عامل و IP ملاقات كننده سايت تشخيص داده می شود. ( در مثال می توان برخی از مقايسه ها را در صورت ضرورت حذف نمود و برنامه را برای موارد خاص نوشت)

 

 

<%
ua = Request.ServerVariables("HTTP_USER_AGENT")
os = Request.ServerVariables("HTTP_UA_OS")
If Instr(ua, "MSIE") Then
 If Instr(ua, "MSIE 5.") Then
  Browser = "Microsoft Internet Explorer 5.x"
 Else

if Instr(ua, "MSIE 4.") Then
  Browser = "Microsoft Internet Explorer 4.x"
 Elseif Instr(ua, "MSIE 3.") Then
  Browser = "Microsoft Internet Explorer 3.x"
  If Instr(ua, "MSIE 3.02") Then
    Browser = "Microsoft Internet Explorer 3.02"
  End If
 Else
  Browser = "Microsoft Internet Explorer"
 End If
ElseIf Instr(ua, "Mozilla") and Instr(ua, "compatible") = 0 Then
 If Instr(ua, "Mozilla/4") Then
  Browser = "Netscape Navigator 4.x"
 Elseif Instr(ua, "Mozilla/3") Then
  Browser = "Netscape Navigator 3.x"
 Else
  Browser = "Netscape Navigator"
 End If
End If
If Instr(ua, "Windows 95") or Instr(ua, "Win95") Then
 System = "Windows 95"
Elseif Instr(ua, "Windows 98") or Instr(ua, "Win98") Then
 System = "Windows 98"
Elseif Instr(ua, "Windows 3.1") or Instr(os, "Win16") Then
 System = "Windows 3.x/Windows NT 3.x"
Elseif Instr(ua, "NT") or Instr(ua, "NT") Then
 System = "Windows NT"
Elseif Instr(ua, "Mac") Then
 System = "Mac"
 If Instr(ua, "PowerPC") or Instr(ua, "PPC") Then
  System = "Mac PPC"
 Elseif Instr(ua, "68000") or Instr(ua, "68K") Then
  System = "Mac 68K"
 End If
Elseif Instr(ua, "X11") Then
 System = "UNIX"
End If
%>
You are using <%=Browser%><br>
You are using : <%=System%> operating system<br>
Your IP is: <%=Request.ServerVariables("Remote_Addr")%>

 

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه شانزدهم اردیبهشت 1386 و ساعت 9:2 |

در فايل Global.asa، می توان اسكريپت هائی را تعريف نمود كه همزمان با بروز يك رويداد ( Event ) فعال شده و يا اقدام به تعريف اشياء Session و Application نمود. امكانات تعريف شده در فايل فوق برای تمامی صفحات تشكيل دهنده يك برنامه ASP قابل دستيابی و استفاده خواهند بود. ضرورت وجود فايل فوق اختياری بوده و در صورت تعريف می بايست در فهرست ريشه ای كه برنامه ASP در آن قرار دارد، استقرار يابد. هر برنامه ASP صرفا می تواند دارای يك فايل Global.asa باشد.

رويدادهای استاندارد در فايل Global.asa
در فايل فوق می توان به اشياء Application و Session گفت كه در زمان آغاز و خاتمه عمليات مربوط به خود چه كارهائی را انجام دهند. در مجموع در فايل فوق چهار نوع رويداد را می توان قرار داد :

• Application_OnStart: رويداد فوق زمانيكه اولين كاربر به اولين صفحه يك برنامه ASP دستيابی پيدا می كند، فعال می گردد.
• Session_OnStart:
رويداد فوق هر دفعه كه يك كاربر جديد درخواست اولين صفحه يك برنامه ASP را داشته باشد، فعال می گردد
• Session_OnEnd:
رويداد فوق هر بار كه كاربری به جلسه كاری خود خاتمه می دهد فعال می گردد. در صورتيكه در يك مدت زمان مشخص و محدود ( پيش فرض بيست دقيقه ) در خواست صفحه ای توسط كاربر واصل نگردد، به جلسه كاری وی خاتمه داد می شود
• Application_OnEnd:
رويداد فوق پس از اينكه آخرين كاربر به كار خود خاتمه می دهد، فعال می گردد. معمولا رويداد فوق زمانيكه سرويس دهنده وب متوقف می گردد نيز فعال می گردد.

برای هر يك از رويدادهای فوق می توان روال هائی را نوشت كه مسئول برخورد با رويداد مربوطه باشند. اين روال ها درفايل Global.asa قرار می گيرند. چهارچوب كلی فايل فوق كه متضمن خواسته های چهارگانه فوق باشد می تواند بصورت زير باشد:

<script language="vbscript" runat="server">
sub Application_OnStart
    . . .
end sub
sub Application_OnEnd
     . . .
end sub
sub Session_OnStart
    . . .
end sub
sub Session_OnEnd
    . . .
end sub

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه نهم اردیبهشت 1386 و ساعت 19:26 |
private sub image 1_mousedown() randomize if button=1 then image1.top=int(rnd()*1920)+1 image1.left=int(rnd()*3000)+1 end if end sub
+ نوشته شده توسط امین حاجی علیزاده در چهارشنبه بیست و نهم فروردین 1386 و ساعت 17:27 |

   سال نو را به همه شما عزیزان تبریک می گویم آرزوی سالی با نشاط برای همه شما

+ نوشته شده توسط امین حاجی علیزاده در چهارشنبه بیست و سوم اسفند 1385 و ساعت 17:48 |
وقتی‌ تو لینوکس conection conectin ساختید و با مودم شروع به شماره گیری کردید، در مرحله‌ای که user name و password شما چک میشود اما وقتی‌ که چک کردنش تموم شد اpppp ز pppp error میگیره و ارتباط قطع میشه.
این اشکال مربوط میشه به activative نبودن connection تو لینوکس.
برای active کردنش باید برین تو menu/system tools/internet configuration wizard
از لیست سمت چپ نوع اتصالتون رو مشخص کنید. که من modem connection رو انتخاب کردم.
وقتی زدین ممکنه پیام بیاد که مودم شما شناسایی‌ نشده که زیاد مهم نیست.
اگه قبلا این قسمت رو تنظیم کردین نیازی به تغییر نیست وForward رو بزنید.
تو این قسمت مشخصات accountaconteton رو واردکنید و واسه connection تون یه اسم در نظر بگیرید و forward رو بزنید.
این قسمت مربوط به این هست که به شما چه ip اختصاص داده بشه که خودش به طور پیش فرض روauto هست.
forward رو بزنید به قسمت بعد برید.
تو این قسمت مشخصاتی‌ که وارد کردین رو به شما نشون میده و اگه صحیح بود رو بزنید.
حالا باید به طور اتوماتیک پنجره configuration device بیاد و شما باید connectionکه ساختین رو اکتیو کنید.
اگه این پنجره نیومد شما میتونین از menu/system tools/network device controlرو اجرا کنین و از اونجا connection رو active کنید.

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه بیستم اسفند 1385 و ساعت 18:34 |
براي شبيه سازي رفتارسيستم هاي انطباقي از مدل سازي رايانه اي استفاده كنيم. اين تــــوانمندي در سالهاي اخير رشد شگفت انگيزي داشته است. ماشينهاي خودكار سلولي و محاسبات عددي ژنتيك دو ابزاري هستند كه امروزه به صورتهاي مختلف در اين امر كاربرد دارند. اين مدل سازي به تركيب كاربري جمعيتهاي نامتجانس عامل، قوانين ساده، محيط (مانند توزيع منابع)، تعاملات و بازخورد كه براساس اطلاعات موجود براي هر عامل فراهــــم آمده است، مي پردازد. مقاله اي در سال 1999 در مجله »تي.اف.اس.سي« در رابطه بـــــا رشد سيستم هاي انطباقي از مراحل اوليه رشد چاپ شد كه از طريق شبيه سازي رايانه اي ايجاد شده بود. اين مقاله همچنين به ارايه شيوه هاي متعددي مي پرداخت و بيانگر نظراتي در رابطه با برنامه ريزي و مديريت فناوري بود. كاربري اين اطلاعات در جهت شبيه سازي خلاقيت از طريق تغييردادن يك سيستم راكد و ثابت به يك سيستم مغشوش (دگرگوني خلاق، بررسي وجود تناسب بين تمركزگرايي و تمركززدايـــــي و مابين جهاني سازي و منطقه سازي است. از آن زمان به بعد در »تي.اف.اس.سي« مقاله هاي فراواني با موضوع به كارگيري ماشين هاي شبيه ساز خودكار سلولي نوآورانه، همين طور با موضوع مدل سازي ساده عامل به عنوان يك اپيدمي، به چاپ رسيد. در كار جديدي كه توسط »گولدن برگ« انجام شد از مدل ماشين خودكار سلولي براي شناخت حيات مجدد نوآوريهاي خاموش بهره جسته است. علاوه بر آن و طبق نظر »كــوف من« شبيه سازي رايانه اي عاملي براي انجام بررسي مقايسه اي بين تحول فناورانه و بيولوژيك است. در حال حاضر، رايانه همچنين قادر است تا بر محدوديتها غلبه كند و از اين طريق امكان پيش بيني فراهم شود. اين پروسه در برگيرنده الف: مدل سازي اكتشافي رايانه اي در جهت خلق سناريوهاي كلي مـــربوط به آينده است و ب : تجسم رايانه اي و مراحل تحقيقي به منظور استخراج اطلاعات از اين كليات كه براي وزن دهي به گزينه هاي انتخابي و در نتيجه تصميم گيري صحيح به كار مي رود. ما حتي مي توانيم با كمك آن تازه ها را در فناوري معرفي كرده و تاثير آنها را ارزيابي كنيم. در كليه موارد بالا از رايانه براي حل پيچيدگي اين سيستم ها استفاده كرده و شرايط عدم اطمينان را بااستفاده از روشهايي كه بيشتر شبيه به معجزه است برطرف مي سازيم. اين توانمندي بايد بتواند ما را به سمت پيش بيني و آينده نگري سوق دهد.
+ نوشته شده توسط امین حاجی علیزاده در یکشنبه ششم اسفند 1385 و ساعت 9:28 |
برای برقراری ارتباط با پايگاه معمولا از عبارت زير استفاده می شود:

Dim ObjConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DataSource=e:\db\users.mdb")
که قسمت DataSource آدرس فايل پايگاه داده است که در اينجا يک بانک Access است. همانگونه که ملاحظه می کنيد از رشته ارتباطی يا Connection String بعنوان پارامتر استفاده شده است و بوسيله متد Open ارتباط باز می شود:

objConn.Open()
لازم به توضيح است که در پايان کار بوسيله متد Close ارتباط را خاتمه می دهيم.

بمحض ارتباط با پايگاه داده می توان دستورات را به آن فرستاد. اين کار معمولا بوسيله شی OleDbCommand انجام می شود. جهت انجام اين کار می توان يک دستور SQL يا نام يک روال ذخيره شده (Stored Procedure) را مشخص نمود و بنا به مقتضيات می توان اعمال مختلفی را روی پايگاه پياده نمود:

Dim objCommand As New OleDbCommand ( "Select * From users", objConn )
ملاحظه می کنيد که کلاس Command از دو پارامتر رشته SQL و نام رشته ارتباطی برای فرستادن دستورات به پايگاه داده استفاده می کند. برای مثال آنچه را که در عبارت فوق ديديد می توان به بخشهای کوچکتر زير تقسيم کرد.

ابتدا تعريف شي:

Dim objCommand As New OleDbCommand()
سپس نسبت دادن آن به رشته ارتباطی جهت برقراری ارتباط پايگاه:

objCommand.Connection= objConn
مشخص کردن عمليات مورد نظر بوسيله دستورات SQL:

objCommand.CommandText="Select * From Users"
+ نوشته شده توسط امین حاجی علیزاده در شنبه بیست و یکم بهمن 1385 و ساعت 11:41 |
<html>
<head>
<title>نمونه مثال براي آشنايي بيشتر</title>
</head>
<body>
<script language="vbscript">
MSGBOX("به سايت بهزاد خوش آمديد ")
</script>
<p align="center"><font face="B Tahoma" size="2">به نحوه ي قرار گيري كدهاي
اسكريپت<span lang="en-us"> ,</span> در بين كدهاي اچ تي ام ال توجه كنيد<br>
<br>
</font>
<a target="_blank" href="http://www.khodkar.com/in.php?id=59">
<img src="http://www.khodkar.com/button.php?id=59" border=0 /></a></p>
</body>
</html>
+ نوشته شده توسط امین حاجی علیزاده در یکشنبه پانزدهم بهمن 1385 و ساعت 11:59 |
وب يکی از مهمترين و در عين حال جوان ترين سرويس های اينترنت است که در مدت زمانی کوتاه توانسته است در کانون توجه تمامی استفاده کنندگان اينترنت قرار بگيرد و منشاء تحولات عمده ای در حيات بشريت باشد. در گذشته از وب صرفا" به منظور عرضه اطلاعات استفاده می گرديد و کاربران از آن به عنوان يک کنابخانه الکترونيکی بزرگ و در جهت يافتن اطلاعات مورد نياز خود استفاده می کردند. وضعيت فعلی وب نسبت به گذشته دستخوش تحولات فراوانی شده است و هم اينک از آن به عنوان بستر ارتباطات ، مبادله اطلاعات ، عمليات تراکنشی نظير فعاليت های تجاری ، اجتماعی ، سياسی ، آموزشی و فرهنگی استفاده می گردد . نرم افزار و دنيای برنامه نويسی يکی ازعرصه هائی است که بدون شک بيشترين تاثير را از اينترنت پذيرا بوده است ( پرداختن به مقوله تاثير اينترنت بر دنيای برنامه نويسی و يا تاثير نرم افزار بر اينترنت خارج از حوصله اين مقاله است ). شرکت های عظيم نرم افزاری با لحاط نمودن جايگاه برجسته اينترنت ، اقدام به ارائه تکنولوژی ها و معماری های متفاوتی در جهت طراحی و پياده سازی برنامه های کامپيوتری با بهره گيری از زيرساخت اينترنت نموده اند . ASP.NET : گزينه ای برای طراحی و پياده سازی برنامه ها و سرويس های وب به منظور پاسخ به خيل عظيم نيازهای موجود با توجه به تسهيلات ارائه شده توسط اينترنت ، نسل جديدی از برنامه های کامپيوتری با نام "برنامه های وب " مطرح و در اين رابطه تاکنون تکنولوژی های متفاوتی توسط شرکت های عظيم نرم افزاری ارائه شده است . ASP.NET يکی از تکنولوژی های موجود در اين زمينه است . در واقع ، ASP.NET فريمورک برنامه نويسی شرکت مايکروسافت برای طراحی و پياده سازی برنامه ها و سرويس های وب است که خود بخشی از پلت فرم دات نت محسوب می گردد . ASP.NET با دارا بودن مجموعه ای گسترده از اشياء که دارای اينترفيس های ساده برنامه نويسی می باشند و بهره گيری از يک محيط ترجمه شده شی گراء ، امکان پردازش های ساده تا پيچيده را با حداقل کد ممکن فراهم می نمايد. چرا ASP.NET ؟ زمانی که شرکت مايکروسافت نسخه اوليه فريمورک دات نت را در جولای سال 2000 برای اولين مرتبه به نمايش گذاشت ، برای اکثر طراحان و پياده کنندگان برنامه های وب مشخص گرديد که می بايست در انتظار تحولات چشمگيری در اين عرصه بود .ASP نسخه شماره سه ( تکنولوژی قبلی شرکت مايکروسافت برای پياده سازی برنامه های وب ) ، امکانات گسترده و انعطاف لازم به منظور ايجاد سايت های پويا را در اختيار علاقه مندان قرار می داد. تاکنون صدها کتاب و هزاران مقاله با موضوع ASP نوشته شده است . ماحصل تمامی تلاش های انجام شده در اين رابطه، تسهيل در امر طراحی و پياده سازی وب سايت های پويا و برنامه های وب بود . چيزی که ASP نداشت ، يک فريمورک برنامه نويسی بود. هر چيزی که در ASP انجام می شد با رويکرد کدنويسی بود و برنامه نويسان برای انجام هر کاری ملزم به نوشتن کدهای مورد نياز بودند. ASP.NET با هدف غلبه بر محدوديت فوق طراحی شده است . ASP.NET يک فريمورک برنامه نويسی است که برروی CLR ايجاد و می توان از آن به منظور ايجاد برنامه های قدرتمند وب استفاده نمود .يکی از اهداف اساسی طراحی ASP.NET ، برنامه نويسی ساده تر و با سرعت بيشتر از طريق کاهش حجم کدهای مورد نيازی است که برنامه نويسان ملزم به نوشتن آنان می باشند.برنامه نويسی declarative ، مجموعه ای گسترده از کنترل های سرويس دهنده به همراه رويدادهای مربوطه ، يک کتابخانه کلاس بزرگ و ابزارهای پياده سازی کاملا" حرفه ای نظير ويژوال استوديو دات نت ، از جمله ويژگی های شاخص ASP.NET محسوب می گردد( يک جهش کاملا" ملموس نسبت به وضعيت گذشته ). کنترل های سرويس دهنده ، معماری postback ، حمايت از viewstate به اضافه استفاده از کد ترجمه شده و مدل برنامه نويسی مبتنی بر رويداد ، جملگی از مهمترين دستاوردهای ASP.NET محسوب می گردد که نويد ايجاد و اشکال زدائی سريع برنامه های وب را در اختيار پياده کنندگان قرار می دهد . محيط برنامه نويسی ASP.NET بيش از بيست و پنج زبان نظير VB.NET ، سی شارپ و Jscript.NET را حمايت می نمايد. به عنوان يک محيط شی گراء ، فريمورک دات نت بيش از 4500 کلاس را ارائه می نمايد که از آنان به منظور انجام عمليات متفاوتی در ارتباط با اسناد XML ، دستيابی به داده ، توليد تصاوير ، مونيتورينگ ، ثبت تراکنش ها و ساير عمليات ديگر استفاده می گردد . کلاس ها مجموعه ای گسترده از اشياء ، خصلت ها و متدها را ارائه می نمايند که می توان از آنان به منظور پياده سازی برنامه های وب قدرتمند استفاده بعمل آورد. عليرغم اين که کدها ترجمه می گردند ، ASP.NET به صورت اتوماتيک هر گونه تغيير در کدها را تشخيص و به صورت پويا اقدام به ترجمه فايل های مورد نياز نموده و آنان را برای استفاده مجدد به منظور پاسخگوئی به درخواست هائی آتی ، ذخيره می نمايد . ترجمه پويا ، اين اطمينان را ايجاد می نمايد که برنامه بهنگام بوده و کد ترجمه شده با سرعت مناسبی اجراء می گردد. در زمان درخواست يک صفحه و ترحمه آن برای اولين مرتبه ، يک تاخير کوتاه را شاهد خواهيم بود . پاسخ به درخواست های آتی از طريق نتايج ترجمه شده و يا نسخه های Cache شده صفحات انجام خواهد شد و نتايج با سرعت بمراتب بيشتری برای سرويس گيرندگان ارسال می گردد . با توجه به ويژگی های منحصربفرد ASP.NET ، تاکنون از آن به منظور پياده سازی برنامه های وب در سايت های معتبر متعددی استفاده شده است : شرکت Dell Merrill Lynch بازار بورس لندن خطوط هواپيمائی JetBlue NASDAQ USA Today Home Shopping Network Weight Watchers Bank One Century 21 و هزاران سايت ديگر متعلق به شرکت ها و موسسات خصوصی و عمومی چرا ASP.NET 2.0 ؟ هم اينک نسخه شماره دو ASP.NET در راه است . شايد اين سوال برای شما مطرح شده باشد که ASP.NET 1.x دارای چه محدوديت هائی است که ضرورت ايجاد نسخه شماره دو آن احساس شده است ؟ در پاسخ می بايست به اين نکته اشاره نمود که طراحی و پياده سازی هر نرم افزار مستلزم استفاده از منابع متفاوت، انعطاف لازم و صرف زمان مناسب است . بهينه سازی هر يک از شاخص های فوق ، مهمترين دليل ارتقاء به رويکردهای مدرن برنامه نويسی است . در ASP.NET 2.0 انجام هر کاری با سهولت بمراتب بيشتری نسبت به گذشته انجام می شود. صفحات master ، ويژگی themes و skins ، ارائه امکانات مناسب در جهت حمايت از دستگاه های سرويس گيرنده متفاوت ، ارائه چهل و پنج کنترل سرويس دهنده جديد شامل کنترل های سرويس دهنده پيشرفته منبع داده ، کنترل های navigation ، کنترل های login ، کنترل های web part ، کنترل های لازم به منظور ايجاد منو و treeview ، رويکرد جديد به data grid ، ارائه امکانات و ابزارهای لازم در جهت مديريت بهينه برنامه ها ، حمايت از پردازنده های 64 بيتی ، کاهش حجم کد نوشته شده به ميزان هقتاد درصد ، نمونه هائی از امکانات و پتانسيل های جديد ASP.NET 2.0 می باشد. با استفاده از ASP.NET 2.0 پياده کنندگان برنامه های وب می توانند کارهای پيچيده متعددی را بدون نياز به نوشتن کد انجام دهند . در بخش دوم به بررسی برخی از مهمترين ويژگی های ASP.NET 2.0 خواهيم پرداخت .
+ نوشته شده توسط امین حاجی علیزاده در یکشنبه هشتم بهمن 1385 و ساعت 13:12 |
 در اين بخش به بررسی ساير عمليات متداول مرتبط با فايل ها و دايرکتوری ها و يک نمونه مثال کاربردی خواهيم پرداخت .

حذف يک دايرکتوری
 برای حذف يک دايرکتوری می توان از متدهای Directory.Delete و يا DirectoryInfo.Delete استفاده نمود. کد زير نحوه انجام اين کار را نشان می دهد :

حذف يک دايرکتوری

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
Directory.Delete("C:\Test")
Dim dir As DirectoryInfo
dir = New DirectoryInfo("C:\Test")
dir.Delete 

%>

توضيحات
در صورتی که قصد حذف يک دايرکتوری را داشته باشيم که موجود نمی باشد ، با يک خطای  DirectoryNoFound ، مواجه خواهيم شد. اگر قصد حذف يک دايرکتوری را داشته باشيم که در آن فايل و يا دايرکتوری های ديگری موجود می باشد، با يک خطای IOException مواجه خواهيم شد. برای حل اين مسئله ، می توان از نسخه overload متد Delete استفاده نمود. در چنين مواردی در زمان استفاده از متد Delete ، می بايست در رابطه با حذف و يا عدم حذف فايل ها و يا دايرکتوری های موجود در يک دايرکتوری  تعيين تکليف شود.  کد زير نحوه انجام اين کار را نشان می دهد :

حذف يک دايرکتوری با تعيين تکليف در رابطه با فايل ها و دايرکتوری ها موجود در آن 

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
Directory.Delete("C:\Test",True)
Dim dir As DirectoryInfo
dir = New DirectoryInfo("C:\Test")
dir.Delete (True)

%>

حذف يک فايل
برای حذف يک فايل می توان از متدهای File.Delete و يا FileInfo.Delete ، استفاده نمود . کد زير نحوه انجام اين کار را نشان می دهد :

حذف يک فايل

<%@ Language="VB" %>
<%@ Import Namespace="System.IO" %>
<%
File.Delete("C:\Test.txt")
Dim file1 As FileInfo
file1 = New FileInfo("C:\Test.txt")
file1.Delete 

%>

توضيحات
در صورتی که قصد حذف فايلی را داشته باشيم که موجود نمی باشد ، با يک خطاء و يا exception خاصی برخورد نخواهيم کرد، مگر اين که بخشی از آدرس مشخص شده در مسير ( Pathname ) وجود نداشته باشد . در چنين مواردی با خطائی از نوع DirectoryNotFoundException مواجه خواهيم شد .

خصلت ها و صفات فايل ها و دايرکتوری ها
بر روی فايل ها و دايرکتوری ها می توان عمليات مشترک و مشابهی نظير "حذف " را انجام داد . فايل ها و دايرکتوری ها دارای خصايص مشترک و مشابهی نظير تاريخ ايجاد ، نام کامل و يا صفات نيز می باشند . کلاس FileSystemInfo دارای اعضائی است که می توان آنان را در ارتباط با فايل ها و يا دايرکتوری ها بخدمت گرفت . کلاس های DirectoryInfo و FileInfo ازکلاس فوق مشتق شده اند .

خصلت های کلاس FileSystemInfo 

توضيحات Read / Write نوع  نام

 صفاتی نظير Hidden ، archive و Read-only   ، مرتبط با يک فايل را برمی گرداند .

R / W

FileAttributes Attributes

زمان ايجاد فايل و يا دايرکتوری را برمی گرداند

R / W

System.DateTime CreationTime

آخرين زمان مراجعه به فايل و يا دايرکتوری را برمی گرداند

R / W

System.DateTime LastAccessTime

آخرين زمان ويرايش يک فايل و يا دايرکتوری را برمی گرداند

R / W

System.DateTime LastWriteTime

وضعيت موجود بودن يک فايل و يا دايرکتوری را مشخص می نمايد.

R

Boolean Exists

انشعاب فايل و يا دايرکتوری را برمی گرداند ( به همراه نقطه). برای يک  دايرکتوری،انشعاب متن موجود پس از آخرين نقطه  در نام است .

R

String Extension

 نام فايل و يا دايرکتوری را متناسب با نام دايرکتوری مربوطه بر می گرداند .

R

String Name

نام کامل فايل و يا دايرکتوری را برمی گرداند .

R

String FullName

متدهای کلاس  FileSystemInfo

توضيحات  نام

حذف فايل و يا دايرکتوری

Delete

بهنگام سازی هر نوع اطلاعات cache شده( نظير تاريخ ايجاد فايل)

Refresh

وضعيت موجود بودن يک فايل و يا دايرکتوری را مشخص می نمايد.

Exists

 

مثال : ايجاد يک مرورگر  فايل و دايرکتوری
برای آشنائی با نحوه استفاده ازصفات و برخی متدها و خصلت های کلاس های DirectoryInfo و FileInfo به بررسی يک مثال کاربردی ( ايجاد يک مرورگر فايل ) ، خواهيم پرداخت . برنامه  فوق يک مسير(PathName ) را از ورودی دريافت و تمامی فايل ها و دايرکتوری ها موجود در آن را نمايش خواهد داد .

مرحله اول : تايپ کد زير با استفاده از يک ويرايشگر

ايجاد يک مرورگر فايل و دايرکتوری

<%@ Import Namespace="System.IO" %>

<script runat="server">
Sub Page_Load( sender as object, e as EventArgs)
    if not Request("dir") is nothing then
        DirName.Value = Request("dir")
   end if
End Sub
</script>

<Html dir="rtl">
<font face="Tahoma" size="3">
<h3>مرورگر فايل و دايرکتوری </h3></Font>
</html>

<form runat="server" dir="rtl">
نام دايرکتوری <input type="text" id="DirName" size="20" dir="ltr"
value="c:\program files\internet explorer" runat="server" >
<input type="submit" value="مشاهده ">
</form>

<%
dim dir as DirectoryInfo
dim anchor as string

' Get the information about the selected directory

dir = new DirectoryInfo( DirName.Value )

Response.Write("<h4>دايرکتوری های موجود در " & DirName.Value & "</h4>")

Response.Write("<table>")
Response.Write("<tr bgcolor=""#336699"" style=""border-collapse: collapse; color: #ffffff"">")
Response.Write("<td>")
Response.Write( "نام" )
Response.Write("<td>")
Response.Write( "تاريخ آخرين تغييرات" )
Response.Write("</tr></font>")

dim SubDir as DirectoryInfo

for each SubDir in dir.GetDirectories()
  anchor = "<a href='" & "FileBrowser.aspx?dir=" & SubDir.FullName & "'>" + SubDir.Name & "</a>"
  Response.Write("<tr dir=""ltr"">")
  Response.Write("<td>" & anchor & "</td>" )
  Response.Write("<td>" & SubDir.LastWriteTime & "</td>" )
  Response.Write("</tr>")
next

Response.Write("</table>")

if ( not dir.Parent is nothing ) then
anchor = "<a href='" & "FileBrowser.aspx?dir=" & dir.Parent.FullName & "'>" & dir.Parent.FullName & "</a>"
Response.Write("<p>دايرکتوری ريشه " & anchor )
end if

Response.Write("<h3>فايل های موجود در " & DirName.Value & "</h3>")

Response.Write("<table>")
Response.Write("<tr bgcolor=""#336699"" style=""border-collapse: collapse; color: #ffffff"">")
Response.Write("<td>نام فايل</td>" )
Response.Write("<td>تاريخ آخرين تغييرات</td>" )
Response.Write("<td>ظرفيت</td>" )
Response.Write("<td>وضعيت فايل</td>" )
Response.Write("</tr>")

dim f as FileInfo
dim mystr As String

for each f in dir.GetFiles()
   Response.Write("<tr dir=""ltr"">")
   Response.Write("<td>" & f.Name )
   Response.Write("<td>" & f.LastWriteTime & "</td>")
   Response.Write("<td>" & f.Length.ToString() & "</td>" )
   if ( (f.Attributes and FileAttributes.ReadOnly) <> 0 ) then
      mystr ="فقط خواندنی"
   end if
  if ( (f.Attributes and FileAttributes.Hidden) <> 0 ) then
      mystr ="مخفی"
   end if
   if ( (f.Attributes and FileAttributes.System) <> 0 ) then
       mystr ="سيستم"
   end if
   if ( (f.Attributes and FileAttributes.Archive) <> 0 ) then
       mystr ="آرشيو"
   end if
   Response.Write( "<td>" & mystr & "</td>" )
   Response.Write("</tr>")
next
Response.Write("</table>")
%>

مرحله دوم :  پس از ذخيره کد فوق در فايلی با نام FileBrowser.aspx و مشاهده آن در مرورگر ، خروجی زير را خواهيم داشت : 

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه یکم بهمن 1385 و ساعت 12:15 |
 Data Access APIs
لايه دوم در معماری دستيابی داده  ، مكانيزم های لازم برای كار با ADO.NET ، كنترل های ASP.NET و providers را ارائه می نمايد. از امكانات ارائه شده در اين لايه می توان به منظور انجام مجموعه ای از عمليات و فرآيندهای متداول استفاده نمود . با استفاده از كنترل های متنوع منبع داده و نسبت دهی داده در ASP.NET 2.0 ،  حجم كد مورد نياز به منظور حمايت از عمليات در ارتباط با داده  كاهش و در مواردی نيز حذف می گردد .

 Connection و Commands
ADO.NET از چندين Data Provider  متفاوت برای  اتصال به بانك های اطلاعاتی ، اجرای دستورات و بازيابی نتايج استفاده  می نمايد . در ADO.NET  از شی Connection برای اتصال به يك منبع داده خاص استفاده می گردد . مثلا" در صورت استفاده از  بانك اطلاعاتی SQL Server 2000 ، می توان از شی SQLConnection به منظور اتصال به بانك اطلاعاتی استفاده نمود . كد زير روش انجام اين كار را نشان می دهد :

[Visual Basic]
Dim nwindConn As SqlConnection = _
New SqlConnection("Data Source=localhost;Integrated Security=SSPI;" _
"Initial Catalog=northwind")
nwindConn.Open()

[C#]
SqlConnection nwindConn =
new SqlConnection("Data Source=localhost; Integrated Security=SSPI;"
"Initial Catalog=northwind");
nwindConn.Open();

پس از اتصال به يك منبع داده ،‌ می توان  از شی Command  به منظور اجرای دستورات و برگرداندن نتايج مورد نظر استفاده نمود  .شی Command  از طريق Command constructor كه يك query و يا عبارت SQL را دريافت می نمايد ، ايجاد می گردد . پس از ايجاد شی Command با استفاده از خصلت CommandText می توان عبارات SQL را ويرايش كرد .

[Visual Basic]
Dim catCMD As SqlCommand = _
New SqlCommand("SELECT CategoryID, CategoryName FROM Categories",nwindConn)

[C#]
SqlCommand catCMD =
new SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);


شی Command چندين متد Execute را به منظور  اجرای Stored Procedure ، query و يا عبارات  غير query نظير Update و Insert ، ارائه نموده است :

  • متد ExecuteReader : داده را به عنوان يك شی DataReader برمی گرداند . از متد فوق می توان در ارتباط با هر نوع query كه داده ئی را برمی گرداند ،‌استفاده نمود .

  • متد ExecuteScalar :  متد فوق يك مقدار نظير تعداد ركوردهائی كه با شرايط ذكر شده در يك query خاص مطابقت می نمايند و يا نتايج حاصل از فراخوانی يك تابع بانك اطلاعاتی  را برمی گرداند .

  • متد ExecuteNonQuery : متد فوق ،‌ دستوراتی را كه سطرهائی را برنمی گردانند ( نظير Sored procedure ، update و insert ) ،‌ اجراء می نمايد .

در زمان مقداردهی اوليه شی Command می بايست با توجه به شرايط موجود ،‌ متد مورد نظر را انتخاب نمود .

متد ExecuteReader ، نتايج را از طريق يك DataReader برمی گرداند . DataReader يك ساختار داده ئی متصل گراء ، فقط به سمت جلو و فقط خواندنی از داده های حاصل از اجرای يك query را برمی گرداند . پس از اجرای query ، اولين ركورد به DataReader  برگردانده می شود . در اين حالت ارتباط با بانك اطلاعاتی همچنان وجود داشته و امكان برگرداندن ركورد بعدی وجود خواهد داشت . در ساختمان داده فوق، صرفا" امكان خواندن ركوردها وجود داشته و نمی توان ركوردهای موجود را ويرايش نمود .

DataAdapters و DataSets
با اين كه DataReader برای برنامه های متصل گرا كافی به نظر می آيد ، ولی اين ساختمان داده قادر به حمايت از مدل غيرمتصل برای دستيابی به بانك های اطلاعاتی نمی باشد . بدين منظور  از كلاس های  DataAdapter و DataSet  ،‌استفاده می گردد .
DataSet مهمترين ابزار ذخيره سازی داده در معماری غيرمتصل ADO.NET است . DataSet مستقيما"  و از طريق يك شی Connection با بانك اطلاعاتی ارتباط برقرار نمی نمايد . برای استقرار داده در يك  DataSet می بايست يك DataAdapter ايجاد گردد . مسئوليت DataAdapter ارتباط با بانك اطلاعاتی ، اجرای query و استقرار داده در DataSet  می باشد . پس از فراخوانی متد Fill و يا  Update توسط DataAdapter ، تمامی عمليات انتقال داده در DataSet به صورت اتوماتيك انجام خواهد شد  . هر provider ارائه شده در فريمورك دات نت دارای يك شی DataAdapter است .
DataSet ،  مجموعه ای كامل از داده شامل جداول ، محدوديت ها و ارتباط بين جداول را در خود نگهداری می نمايد و می تواند شامل داده های محلی ( داده هائی كه از طريق كد ايجاد شده اند ) و يا داده هائی از چندين منبع داده باشد . 
ارتباط با منابع داده موجود توسط DataAdapter كنترل می گردد . DataAdapter همچنين تغييرات ايجاد شده در DataSet  را به منبع داده منتقل می نمايد .
كد زير سناريوی استفاده از يك DataSet را نشان می دهد :

[Visual Basic]

Dim nwindConn As SqlConnection = _
New SqlConnection("Data Source=localhost;" & _
"Integrated_Security=SSPI;Initial Catalog=northwind")

Dim selectCMD As SqlCommand = _
New SqlCommand("SELECT CustomerID, CompanyName FROM " & _
"Customers", nwindConn)
selectCMD.CommandTimeout = 30

Dim custDA As SqlDataAdapter = New SqlDataAdapter
custDA.SelectCommand = selectCMD
Dim custDS As DataSet = New DataSet
custDA.Fill(custDS, "Customers")
nwindConn.Close()

[C#]
SqlConnection nwindConn =
new SqlConnection("Data Source=localhost;" +
"IntegratedSecurity=SSPI;Initial Catalog=northwind");
SqlCommand selectCMD =
new SqlCommand("SELECT CustomerID, CompanyName FROM Customers",
nwindConn);
selectCMD.CommandTimeout = 30;

SqlDataAdapter custDA = new SqlDataAdapter();
custDA.SelectCommand = selectCMD;
nwindConn.Open();
DataSet custDS = new DataSet();
custDA.Fill(custDS, "Customers");
nwindConn.Close();

 

در كد فوق :

  • به منظور اتصال به بانك اطلاعاتی SQL Server يك SQLConnection ايجاد  شده است .

  • برای اجرای query مورد نظر در ارتباط با جدول Customers يك SQLCommand ايجاد شده است .

  • برای ايجاد SQLCommand يك DataAdapter ايجاد شده است ( ارتباط با بانك اطلاعاتی  ) . 

  • از طريق DataAdapter يك DataSet ايجاد شده است .DataSet بخش غير متصل عمليات داده بوده و می تواند به مجموعه وسيعی از كنترل های وب ASP.NET 2.0 نسبت داده شود .

در زمان استفاده از يك DataSet می توان آن را به هر نوع كنترل داده نسبت داد . بدين منظور از خصلت DataSource  و متد DataBind استفاده می گردد . در صورتی كه داده های موجود در بانك اطلاعاتی تغيير نمايند ،‌ تغييرات به صورت اتوماتيك در DataSet اعمال نمی شود و می بايست مجددا" از متد DataBind استفاده گردد . ( زمان و محل استفاده از متد DataBind از چالش های پياده كنندگان برنامه های وب در ASP.NET 1.x است ) .
در ASP.NET 2.0 تمامی فرآيندهای مربوط به ايجاد يك DataSet ، نسبت دهی داده ، نگهداری و يكسان سازی داده با ارائه مفهوم جديد منابع داده بهبود و  تسهيلات ويژه ای در اختيار پياده كنندگان برنامه های وب قرار می گيرد.

ASP.NET 2.0
در  ASP.NET 2.0 اغلب عمليات و يا فرآيندهای مورد نياز به منظور ايجاد يك SQLCommand ، توليد يك DataAdapter و استقرار داده در يك DataSet توسط بكارگيری DataSource از ديد پياده كنندگان برنامه های وب مخفی نگه داشته می گردد . در چنين مواردی می توان با استفاده از برنامه كمكی ( ويزارد ) نسبت دهی داده ، عمليات اشاره شده را به صورت اتوماتيك نيز انجام داد . برنامه كمكی Configure DataSource ،‌ كدمورد نياز به منظور اتصال به منابع ذخيره سازی داده ( نظير بانك های اطلاعاتی ، فايل های معمولی ، فايل هار XML ) را توليد و  query مورد نظر را ايجاد  می نمايد .
با داشتن يك منبع ذخيره سازی داده ،‌ می توان  در ادامه منبع داده را به يك كنترل نسبت داد . ارتباط برقرار شده بين منبع داده و كنترل مورد نظر ، Data Binding ناميده می شود . مقادير استخراج شده از منبع داده را می توان به خصلت های مربوط به هر كنترل نسبت و يا از آنان در جداول ، ليست ها و يا grid بدون نياز به نوشتن كد خاصی استفاده نمود .

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه یکم بهمن 1385 و ساعت 12:11 |

كنترل های پويا در ASP.NET ( بخش دوم ) 
در اين بخش به بررسی يك نمونه مثال كاربردی خواهيم پرداخت تا توان خود را جهت ايجاد كنترل های سرويس دهنده به صورت پويا افزايش دهيم .
به دليل استفاده از كنترل <asp:Literal > ، در ابتدا با اين كنترل و جايگاه استفاده از آن آشنا می شويم .

كنترل سرويس دهنده   <asp:Literal >
در زمان كدينگ برنامه های وب به مواردی برخورد خواهيم كرد كه لازم است متن و يا تگ های XHTML را به يك PlaceHolder به منظور كمك در مديريت و فرمت كنترل هائی كه به صورت پويا ايجاد شده اند ، اضافه نمائيم . به عنوان نمونه ، ممكن است لازم باشد كه يك پاراگراف ، خطوط خالی و يا كاراكترهای خاصی را به همراه كنترل ها استفاده نمائيم تا آنها با يك فرمت مناسب بر روی صفحه نمايش داده شوند . با توجه به اين كه متن ، رشته و يا تگ های XHTML را نمی توان در PlaceHolder قرار داد ، می بايست آنها را توسط اسكريپت در زمان ايجاد كنترل ها  به PlaceHolder اضافه نمود . در چنين مواردی می توان از كنترل   <asp:Literal >  استفاده نمود .
ايجاد كنترل Literal توسط اسكريپت همانند ساير كنترل های سرويس دهنده در ASP.NET است . بدين منظور كافی است كه  كنترل به عنوان يك كنترل Literal تعريف و به خصلت Text آن يك متن و يا رشته مبتنی بر XHTML نسبت داده شود و در ادامه آن را به  PlaceHolder اضافه كرد .از كنترل های Literal به تعداد مورد نياز می توان در يك PlaceHolder استفاده نمود .
در كد زير ، يك كنترل Literal تعريف تا در ادامه يك خط خالی در بين ساير كنترل های پويای ايجاد شده ، اضافه نمايد .

Dim MyBreak As Literal
MyBreak.Text = "<br/>"
MyPlaceHolder.Controls.Add(MyBreak)

مثال : ايجاد كنترل های سرويس دهنده با استفاده از اسكريپت
در اين مثال قصد داريم متناسب با هر يك از گروه مقالات تعريف شده در بانك اطلاعاتی مقالات ، دكمه هائی را بر روی يك فرم وب قرار دهيم تا كاربران پس از كليك بر روی هر يك از آنها ، مقالات مربوط به گروه انتخابی را مشاهده نمايند .دكمه ها به صورت پويا و در زمان اجراء ايجاد خواهند شد و متناسب با تغيير داده موجود در بانك ، وضعيت آنها نيز تغيير خواهد كرد . شكل زير ، خروجی برنامه را نشان می دهد .

 ايجاد كنترل های سرويس دهنده به صورت پويا


بدين منظور از يك بانك اطلاعاتی اكسس با نام Maghalat_Srco.mdb  كه شامل دو جدول Article_Type و Article_Spec  است ، استفاده خواهيم كرد  . در اولين جدول با نام Article_Type ، گروه های مختلف مقالات ذخيره می گردد .

جدول Article_Type

 نام فيلد

نوع

Group_ID

AutoNumber ، Primery Key

Name

Text

Description

Text

در جدول دوم با نام  Article_Spec ، مشخصات هر يك از مقالات ذخيره می گردد .

جدول Article_Spec

 نام فيلد

نوع

 Article_ID

AutoNumber ، Primery Key

Group_ID

Number , Integer

 Title

Text

در ادامه يك فرم وب با نام Show_Article_By_Group.aspx  را ايجاد می نمائيم كه در هر يك از بخش های  Script و Html آن از امكانات متعددی استفاده شده است .

در بخش Html از سه كنترل سرويس دهنده با اهداف زير استفاده شده است :

  • <asp:PlaceHolder> : تعريف يك ناحيه برای نمايش كنترل هائی كه آنها را به صورت پويا و در  زمان اجراء متناسب با داده موجود در بانك اطلاعاتی ايجاد خواهيم كرد . در اين مثال ، برای هر گروه مقاله تعريف شده در بانك اطلاعاتی يك button به صورت پويا ايجاد خواهد شد . 

  • <asp:AccessDataSource> : با استفاده از كنترل منبع داده فوق ، به بانك اطلاعاتی Maghalat_Srco.mdb دستيابی و در اولين مرتبه ( زمان استقرار صفحه در حافظه و از طريق روتين page_Load ) ، متناسب با داده موجود در جدول Article_Type  ، دكمه های مورد نظر را ايجاد خواهيم كرد . از كنترل فوق در مرتبه دوم و از طريق روتين Get_Articles نيز استفاده خواهد شد تا متناسب با دكمه ای كه كاربر بر روی آن كليك نموده است ، مقالات مربوط به آن گروه از جدول Article_Spec  بازيابی و در Gridview نمايش داده شوند .

  • <asp:GridView> : از كنترل فوق به منظور نمايش مقالات مربوط به يك گروه خاص استفاده می گردد ( ساده ترين نوع استفاده از يك GridView  ) .


در بخش script از دو روتين Page_Load و   Get_Article با اهداف زير استفاده شده است .

  • Page_Load : در اين روتين ، پس از دستيابی به بانك اطلاعاتی اشاره شده ، اطلاعات موجود در جدول Article_Type بازيابی و متناسب با داده موجود ،  دكمه هائی برای هر يك از گروه مقالات ايجاد خواهد شد . علاوه بر ايجاد پويای هر  button  ، سبك نمايش Button و توليد Event handler مورد نياز ( Get_Articles ) نيز از طريق اين روتين انجام خواهد شد .

  • Get_Articles : در اين روتين ، متناسب با اين كه كاربر بر روی كدام button كليك نموده است ، يك query به صورت پويا و پارامتريك ايجاد و اجراء می گردد . در نهايت زمينه نمايش ركوردهای بازيابی شده در Gridview نيز فراهم می گردد .

<%@ Import Namespace="System.Data.OleDb" %>
<%@ Import Namespace="System.Drawing" %>

<SCRIPT Runat="Server">

Sub
Page_Load

Dim DBConnection As OleDbConnection
Dim DBCommand As OleDbCommand
Dim DBReader As OleDbDataReader
Dim SQLString As String
Dim Counter As Integer = 0

DBConnection = New OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Server.MapPath("~/OurDataBase/Maghalat_Srco.mdb"))
DBConnection.Open()

SQLString = "SELECT DISTINCT Group_ID , Name FROM Article_Type order by Name"
DBCommand = New OleDbCommand(SQLString, DBConnection)
DBReader = DBCommand.ExecuteReader()

While DBReader.Read()
  Dim MyButton as New Button
  MyButton.Text = DBReader("Name")
  MyButton.CommandName = DBReader("Group_ID")
  MyButton.Width = Unit.Parse("100px")
  MyButton.Font.Size = FontUnit.Parse("8pt")
  MyButton.Font.Name = "Tahoma"
  AddHandler MyButton.Command, AddressOf Get_Articles
  ButtonArea.Controls.Add(MyButton)
  Dim MyBlank As New Literal
  MyBlank.Text = "&nbsp;&nbsp;"
  ButtonArea.Controls.Add(MyBlank)
  Counter += 1
  If Counter Mod 3 = 0 Then
      Dim MyBreak As New Literal
      MyBreak.Text = "<br/>"
      ButtonArea.Controls.Add(MyBreak)
  End If
End While
DBReader.Close()
DBConnection.Close()

End Sub

Sub
Get_Articles (Src as Object, Args As CommandEventArgs)

Dim SQLString As String
SQLString = "SELECT Title ,Description FROM Article_Spec " & _
"WHERE Group_ID = " & Args.CommandName & "

ArticlesSource.SelectCommand = SQLString

End Sub

</SCRIPT>

<form Runat="Server">
ايجاد كنترل های سرويس دهنده به صورت پويا

<asp:PlaceHolder id="ButtonArea" Runat="Server"/>

<asp:AccessDataSource id="ArticlesSource" Runat="Server"
    DataFile="~/OurDataBase/Maghalat_Srco.mdb"
    SelectCommand="SELECT Title , Description FROM Article_Spec "/>

<asp:GridView id="BookGrid" DataSourceID="ArticlesSource" Runat="Server" />
 
 
</form>

توضيحات

  • پس از استقرار صفحه در حافظه ، بانك اطلاعاتی فعال و متناسب با داده موجود در جدول Article_Type ، برای هر گروه مقاله يك button ايجاد خواهد شد .

  • برای هر ركورد يك شی جديد Button ايجاد و به خصلت Text آن ، مقدار Name ( مربوط به ركورد بازيابی شده كه نشاندهنده نام گروه مقاله است )  نسبت داده می شود . برای نمايش مطلوب Button ، برخی خصلت های آن مقداردهی می گردند ( نظير نوع فونت و يا اندازه آن ) .

  • با توجه به اين كه دكمه ها به عنوان يك Command button پيكربندی شده اند ، خصلت CommandName معادل Group_ID  در نظر گرفته شده و در ادامه مقدار Group_ID به روتين Get_Articles  ارسال تا مقالات مربوط به گروه انتخابی را در يك GridView نمايش دهد .

  • يك Command Event توسط اسكريپت برای button مشخص می گردد كه به برنامه فرعی Get_Articles  اشاره می نمايد . در نهايت ، button به PlaceHolder اضافه می شود .

  • از طريق حلقه تكرار ، هر يك از دكمه ها ايجاد و به PlaceHolder اضافه می شوند . در اين مثال ، شش button ايجاد خواهد شد چراكه جدول Article_Type حاوی شش ركورد است ( شش نوع گروه برای مقالات تعريف شده است ) و متناسب با كاهش و يا افزايش گروه مقالات تعداد Button بر روی فرم وب تغيير خواهد كرد.

  • بلافاصله پس از هر Button يك زوج فضای خالی به منظور تفكيك افقی دكمه ها از يكديگر قرار می گيرد . بدين منظور از كنترل Literal كه مقدار خصلت Text آن معادل  "nbsp;&nbsp&"  در نظر گرفته شده است ، استفاده می گردد . اين كنترل پس از اين كه يك Button در PlaceHolder مستقر گرديد ، در مكان مربوطه درج خواهد شد .

  • همچنين از يك خط خالی پس از نمايش سه button در هر سطر ، استفاده شده است . اين كاراكتر با استفاده از يك كنترل  Literal به PlaceHolder  اضافه شده است كه مقدار خصلت آن  " </br >"   در نظر گرفته شده است .

  • از يك شمارنده برای تشخيص اضافه شدن يك  Literal به PlaceHolder استفاده شده است تا به كمك آن بتوانيم تشخيص دهيم كه آيا در يك سطر سه Button نمايش داده شده است و يا خير.
    در صورتی كه عبارت Counter Mod 3 = 0  درست باشد يك خط خالی به كمك كنترل Literal  به PlaceHolder اضافه خواهد شد .

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه بیست و ششم آذر 1385 و ساعت 12:28 |
شبكه : از به هم پيوستن چند کامپيوتر به يکديگر و برقراری ارتباط بين آنها يک شبکه تشکيل می گردد.
Lan : به شبکه محلی که در آن کامپيوتر ها نزديک به هم بوده و ارتباط آنها از طريق Hub ،Switch و يا Wireless باشد اطلاق می شود.
Intranet و Internet : منظور از اينترانت همان شبکه جهانی اينترنت است که در محيط بسته (Lan) پياده سازی شده و با دنيای خارج از آن ارتباطی ندارد.
Protocol : عبارتست از قراردادی که تعدادی کامپيوتر طبق آن با يکديگر ارتباط برقرار کرده و به تبادل اطلاعات می پردازند.
TCP/IP: يک پروتکل جامع در اينترنت بوده و تمام کامپيوترهايی که با اينترنت کار می کنند از آن تبعيت می کنند.
IP Address : در اينترنت هر کامپيوتر دارای يک آدرس IP است. هر IP متشکل از 4 عدد بوده که با يک نقطه ازهم جدا می شوند. ( مثل 217.219.175.11 ) هر کدام از اين اعداد حداکثر می توانند 254 باشند. هر IP دارای يک Mask می باشد که از روی آن می توان تعداد IP های يک شبکه محلی را تشخيص داد.
Valid IP : به IP هايی گفته می شود که در اينترنت معتبر بوده و قابل شناسايی باشند.
Invalid IP : به IP هايی گفته می شود که در اينترنت فاقد هويت و غير قابل شناسايي می باشند. از اين IP ها معمولا در شبکه های Lan در صورت نداشتن Valid IP به ميزان کافی و يا جهت امنيت شبکه استفاده می شود. از Invalid IP بدليل نداشتن هويت در اينترنت نمی توان برای اتصال به اينترنت استفاده کرد. بلکه بايد از تکنيکهايی مثل NAT يا Proxy استفاده کرد.
Proxy : در مفهوم عاميانه به سانسور کردن سايتها تعبير مي شود. اما از نظر فنی راه حلي است براي اينکه ما بتوانيم از Invalid IP ها برای اتصال به اينترنت استفاده کنيم. در اين روش بايد يک Proxy Server در شبکه نصب شود. در کل اين روش مطلوب نبوده و داراي نقاط ضعف عمده زير است:
نياز است که کاربران تنظيمات خاصی را در کامپيوتر خود انجام دهند.
در اين روش بسياری از پروتکلها پشتيباني نشده و قابل استفاده نيستند.

با اين حال برخی از مراکز اينترنتی نظير دانشگاهها، مؤسسات دولتی و امنيتی و ... برای کنترل بيشتر کاربران خود و گزارشگيري از سايتهای مرور شده توسط هر کاربر از Proxy استفاده می کنند. از جمله نرم افزارهای Proxy Server می توان به Squid، ISA، CacheXpress و . . . اشاره کرد.
NAT : يک تکنيک خوب برای بکارگيری Invalid IP است. در اين روش تقريبا تمام پروتکل ها پشتيبانی می شوند و مهمتر اينکه نياز به تنظيم خاصی بر روی کامپيوتر کاربران نيست. از جمله نرم افزارهايی که کار NAT را انجام می دهند می توان به ISA و Winroute اشاره کرد.
DNS : پروتکل تبديل اسم Domain به IP می باشد. در شبکه به دستگاهی که اين کار را انجام می دهد DNS Server گفته می شود. (62.217.156.205 = www.yahoo.com )
Routing : اگر کامپيوتري بخواهد با يک کامپيوتر ديگر در اينترنت ارتباط برقرار کند، Packet هايش الزاما از چندين Node (کامپيوتر يا Router ) عبور می کند تا به مقصد برسد. به عملی که يک Node بر روی Packet ها و ارسال آنها به Node ديگر برای رسيدن به مقصد انجام می دهد Routing گفته می شود.
Mail Server : در شبکه به سروری گفته می شود که کار دريافت، ارسال و نگهداری Email را انجام ميدهد. از جمله نرم افزارهايی که براي Mail Server مورد استفاده قرار می گيرند می توان به MDaemon و Exchange اشاره کرد.
Web Server : به سروری گفته می شود که صفحات Web بر روی آن قرار گرفته و Page های آن از طريق اينترنت قابل دستيابی است.
FTP Server : به سروری گفته می شود که فايلهای مورد نياز برای Download کردن کاربران بر روی آن قرار گرفته است. و کاربران می توانند فايلهای موجود در FTP Server را Download کنند.
Domain : به نام يک شبکه که منحصر بفرد بوده و در اينترنت Register شده است گفته می شود. مثل persiannetworks.com . يک شبکه می تواند دارای يک يا چند Domain باشد. البته يک شبکه می تواند بدون Domain يا دارای Domain محلی نيز باشد.
Domain Registration : به عمل ثبت Domain گفته می شود. چنانچه شما بخواهيد يک Domain برای خود رجيستر کنيد ابتدا بايد يک نام را که تا کنون در اينترنت استفاده نشده است انتخاب کنيد. سپس توسط شرکتهايی که عمل Domain Registration را انجام مي دهند آنرا بنام خود به مدت زمان معين Register کنيد.
Host : به کامپيوترهای ميزبان که صفحات Web يا فايلهای FTP بر روی آن قرار دارند Host گفته می شود.
PC 2 Phone : به امکان ايجاد ارتباط تلفنی بوسيله اينترنت از طريق يک کامپيوتر با يک تلفن PC2Phone گفته می شود.
Phone 2 Phone : به امکان ايجاد ارتباط تلفنی بوسيله اينترنت از طريق يک تلفن با يک تلفن ديگر Phone2Phone گفته می شود.
ISP : به مراکز سرويس دهی اينترنت ISP گفته می شود. (Internet Service Provider)
ITSP : به مراکز سرويس دهی Phone2Phone گفته می شود. (Internet Telephony Service Provider)
DVB : به کارت سخت افزاری اطلاق می شود که در يکي از Slot های کامپيوتر قرار می گيرد و بوسيله يک کابل به ديش متصل شده و از طريق آن می تواند Receive کند.
Receiver : يک Device است که به ديش وصل شده و عمل دريافت اطلاعات از ديش را انجام می دهد.
Transiver : يک Device است که به ديش وصل شده و عمل ارسال اطلاعات به ديش را انجام می دهد.
Cache Server : در حقيقت Proxy Server ای است که بتواند هنگام کارکردن کاربران، سايتهای بازديد شده توسط آنها را در خود نگهداري کرده و در صورتی که کاربر ديگری بخواهد همان سايتها را بازديد نمايد با سرعت بيشتر و صرفه جويی در پهنای باند پاسخ خود را از طريق Cache Server دريافت کند. وجود Cache Server در شبکه می تواند تا 50 درصد در اندازه پهنای باند صرفه جويي کند و راندمان شبکه را بالا ببرد. (در شرايط بهينه اين ميزان تا 60 درصد هم افزايش می يابد.) Cache Server هم می تواند سخت افزاری باشد (مثل Cache Force) و هم مي تواند نرم افزاری باشد.(مثل: 1- Squid که تحت Linux و Windows قابل نصب است. 2- ISA که تحت Win2000 قابل نصب است. 3- CacheXpress که تحت Linux و اکثر Windowsها قابل نصب است.)
Accounting/Billing : به نرم افزارهای مديريت کاربران در يک ISP گفته می شود. اين نرم افزارها کنترل ميزان استفاده کاربران از شبکه اينترنت را برعهده دارند. پر استفاده ترين نرم افزار در اين زمينه، NTTacPlus است.
Firewall : هم بصورت سخت افزاری و هم بصورت نرم افزاری وجود دارد و وظيفه آن بالا بردن ضريب امنيتی شبکه به منظور جلوگيری از Hack شدن و سوء استفاده توسط افراد سودجو می باشد.
Filtering : هم بصورت سخت افزاری و هم بصورت نرم افزاری وجود دارد و وظيفه آن جلوگيري از ورود کاربران به سايتهای غير مجاز می باشد.
MultiPort : دستگاهی است که معمولا در ISPها مورد استفاده قرار مي گيرد. داراي يک کارت PCI بوده و بر روی Mainboard يک کامپيوتر نصب می شود. با نصب MultiPort می توان Comport های يک کامپيوتر را افزايش داد و تعداد زيادی Modem به يک کامپيوتر متصل کرد.
RAS : به کامپيوتری گفته می شود که تعداد زيادی Modem به آن متصل بوده و کاربران می توانند به آن Connect کرده و از اينترنت استفاده کنند.
Access Server : به دستگاههايی گفته مي شود که کاربران اينترتنی قادر باشند به آن Connect کرده و از طريق آن به اينترنت دسترسی پيدا کنند.
VOIP Gateway : به دستگاههايی گفته می شود که کاربران تلفنی قادر باشند به آن Connect کرده و از طريق آن با کشورهاي مختلف ارتباط تلفنی برقرار کنند.
VOIP Carrier : به تشکيلاتی گفته می شود که با VoIP Gateway از طريق اينترنت در ارتباط بوده و ارتباط های تلفنی بين VoIP Gateway و کشورهای مختلف را برقرار می سازد.


انواع راههاي ارتباط كاربر به ISP:(خط آنالوگ، خط Leased، خط E1 ،Wireless ،ADSL)

هر ISP می تواند براي دستيابی به اينترنت از يک يا چند روش از روشهای زير استفاده کند.
خط آنالوگ، خط Leased، خط E1 ،Wireless ،ADSL ،Receive Only Sattelite ،Send/Rec Sattelite.

انواع دستگاههای ارتباطی كه كاربر را به ISP متصل می كند(برای خطوط آنالوگ و E1 ) عبارتند از:
روترهای Cisco : امروزه استفاده از روترهای Cisco به منظور برقراری ارتباط کاربران با ISP از جمله رايج ترين روشهای موجود است.
Multiports : همانگونه که قبلا گفته شد از Multiport برای افزايش دادن پورتهای Com و اتصال مودمهای External به آنها استفاده مي شود. رايج ترين Multiport محصول شرکت Moxa مي باشد که دارای دو مدل Desktop (روميزی) و Rackmount (قابل نصب در Rack ) می باشد. Multiport ها دارای مدلهای 8پورت، 16 پورت و 32 پورت هستند. از انواع ديگر مولتی پورت می توان به Equinox اشاره کرد.
Moxa Async Server : محصول شرکت Moxa بوده و دارای CPU می باشد و در شبکه مستقيما به Hub وصل می شود. و تعداد زيادي خطوط تلفن به آن وصل می شود و کاربران از طريق آن می توانند به شبکه وصل شوند.
Lucent Max TNT : محصول شرکت Lucent بوده و همانند Router قادر است هم به منظور Access Server برای ISP ها و هم به منظور VoIP Gateway براي ITSP ها مورد استفاده قرار بگيرد. در اين دستگاه کلا امکان نصب 10 Module وجود دارد. برخي از اين Module ها عبارتند از:

modem, ISDN, VoIP, V.110, and PHS MultiDSP module: support for analog
Digital modem module: support for analog modem and ISDN users
Analog modem module
Channelized T1/E1
Ethernet module

ضمنا اين دستگاه داراي چهار Ethernet با سرعت 10MB/s و يک Ethernet با سرعت 100MB/s می باشد. اين دستگاه توانايی پشتيبانی از انواع خطوط مخابراتی را دارد. هر ماديول MultiDSP توانايی پشتيبانی از 96 پورت Dialup را دارد. بنابراين اگر 10 ماديول MultiDSP را به Max وصل کنيم توانايی پشتيبانی از 960 خط را خواهد داشت!
Lucent Max 3000 : اين دستگاه هم مانند Max TNT محصول Lucent بوده و دارای مشخصات زير است :
داراي 2 WAN براي اتصال خطوط E1 می باشد. 32MB اندازه Ram و 16MB اندازه ظرفيت Flash آن می باشد.
Taicom TopServer : اين دستگاه محصول شرکت Taicom بوده و دارای 30 مودم Internal برای اتصال به خطوط آنالوگ می باشد.
USRobotics Net Server : اين دستگاه هم محصول شرکت USRobotics بوده و از خطوط معمولی و E1 پشتيبانی می کند.
Zyxel ModemPool : محصول Zyxel بوده که حاوی تعداد زيادی مودم است که در يک Box جاسازی شده اند و می توان آنرا به يک کامپيوتر متصل کرده و از آن استفاده نمود. اخيرا يک شرکت ايراني بنام قاصدک نيز يک ModemPool مشابه بنام Ghasedak را توليد کرده است.
Quintum: Tenor : دستگاه تک منظوره ای است که فقط برای VoIP مورد استفاده قرار می گيرد. در انواع متنوع 2، 4 و 8 پورت موجود ميباشد.
ChannelBank : دستگاهی است که از آن برای تبديل خطوط E1 به خطوط تلفن معمولی و بالعکس استفاده می شود.
+ نوشته شده توسط امین حاجی علیزاده در یکشنبه نوزدهم آذر 1385 و ساعت 14:23 |

سيستم پيكربندی  ASP.NET 2.0 

پياده كنندگان برنامه های وب كه از  فن آوری ASP كلاسيك به منظور پياده سازی برنامه های وب در گذشته ای نه چندان دور استفاده می كردند ( و شايد هم اينك نيز استفاده می نمايند ) ، به ياد دارند كه اطلاعات پيكربندی برنامه های فوق به صورت باينری و در محلی با نام متابيس IIS ، ذخيره می گردد . پياده كنندگان برنامه های وب برای اعمال تغييرات لازم در متابيس از دو گزينه متداول استفاده می كردند : نوشتن اسكريپت های مورد نياز و يا استفاده از كنسول مديريتی برنامه IIS ( سرويس دهنده وب مايكروسافت ) .
برخلاف ASP كلاسيك ، در ASP.NET 1.x حضور متابيس ها كم رنگ گرديد و در مقابل ، استفاده از يك سيستم پيكربندی مبتنی بر xml مورد توجه قرار گرفت . عليرغم اين كه سيستم فوق دارای انعطاف بمراتب بيشتری نسبت به نسخه قبلی است ولی امكانات مديريتی مناسبی را به منظور ويرايش فايل های پيكربندی در اختيار پياده كنندگان برنامه های وب قرار نمی دهد . تنها گزينه موجود برای ويرايش يك فايل پيكربندی ، برخورد با فايل پيكربندی به عنوان يك فايل xml و بهنگام سازی آن فايل بر اساس ماهيت فايل های xml است .  مهمترين مشكل رويكرد فوق ، برخورد با تمامی بخش های فايل پيكربندی به عنوان گره های xml است .
در ASP.NET 2.0 ، امكانات و پتانسيل های متعددی به منظور مديريت پيكربندی برنامه های وب ارائه شده است با اين هدف كه بتوان با سادگی و سرعت بيشتری پيكربندی يك برنامه وب را انجام داد .خواندن و ويرايش فايل های پيكربندی در يك ماشين محلی و يا از راه دور از جمله مهمترين ويژگی های ارائه شده در ASP.NET 2.0 می باشد .
اطلاعات پيكربندی يك برنامه ASP.NET  در دو فايل مهم Xml ذخيره می گردد . از Xml برای تشريح خصلت ها و رفتار جنبه های مختلف برنامه های ASP.NET استفاده می‌شود . سيستم  پيكربندی ASP.NET از دو فايل پيكربندی استفاده می نمايد :

  • machine.config : فايل پيكربندی سرويس دهنده 

  • Web.Config : فايل پيكربندی برنامه

با توجه به ماهيت فايل های پيكربندی ( فايل هائی از نوع  xml ) ، عناصری كه مسئوليت تشريح پيكربندی را برعهده دارند نسبت به حروف بزرگ و كوچك حساس می باشند .

+ نوشته شده توسط امین حاجی علیزاده در یکشنبه نوزدهم آذر 1385 و ساعت 10:7 |
انواع صفحات وب اطلاعات موجود در صفحات وب می تواند بصورت ايستا و پويا ايجاد گردند. در موارديکه اطلاعات بصورت ايستا در صفحات وب قرار می گيرند، مولفين صفحات از قبل آنها را آماده کرده و بر روی يک وب سايت ذخيره می نمايند. نظرات و ديدگاه های ملاقات کننده سايت و درخواست کننده صفحه، هيچگونه دخالتی در محتويات صفحه مورد نظر نخواهد داشت . در صفحات وب پويا اطلاعات موجود در يک صفحه متناسب با شرايط متعدد بصورت کاملا" سفارشی آماده خواهد گرديد. فرض کنيد در رستورانی برای صرف ناهار رفته باشيم . ليست غذاهای موجود ( منو) که در اختيار شما قرار می گيرد يک ليست ايستا بوده و شما در صورت تمايل مجبور خواهيد بود که يکی از آنها را انتخاب نمائيد. شما صرفا" درخواست آن غذا را خواهيد کرد و غذای مورد نظر شما از طرف سرويس دهنده رستوران در اختيار شما گذاشته خواهد شد. تمامی مراحل مربوط به آماده سازی غذا از قبل انجام شده و نقش شما صرفا" انتخاب و درخواست است . وضعيت فوق نظير صفحات وب ايستا است . در صورتيکه رستوران مورد نظر غذائی از پيش آماده شده را نداشته باشد و از شما بخواهد که با اختيار کامل غذای مورد نظر خود را انتخاب نمائيد. در چنين مواردی تمهيدات لازم برای آماده سازی غذا بر اساس درخواست مورد نظر ايجاد شده و غذای درخواست شده متناسب با نوع درخواست و تمايل فرد متقاصی ايجاد می گردد. صفحات وب پويا نير وضعيتی مشابه را دارند. در ادامه به ويژگی هريک از اين نوع صفحات اشاره خواهد شد. ¨ صفحات وب ايستا ،‌ امروزه بر روی اينترنت و وب ، با سايت های متعددی که شامل ‌ تعداد بيشماری از صفحات وب ايستا می باشند ، برخورد مي نمائيم. واژه " ايستا " ، در رابطه با يك صفحه وب دارای چه تعريفی است ؟ اين نوع صفحات ، صفحاتی هستند كه شامل كدهای Html بوده و در يك محيط اديتور تايپ و با انشعاب Htm و يا Html ذخيره مي گردد. مولف صفحه وب قبل از اينكه هر نوع درخواستي برای آن وجود داشته باشد ، بطور كامل محتوی صفحه را مشخص كرده است . محتويات اين نوع از صفحات ( متن ،‌تصوير ، لينك ها و … ) و شكل ظاهری آنها همواره يكسان خواهد بود ، صرفنظر از اينكه چه كسی ، در چه زمانی و يا چگونه صفحه را مشاهده خواهد كرد. بنابراين می توان گفت ، محتويات اين قبيل از صفحات قبل از اينكه درخواستی ايجاد گردد ، توسط مديريت سايت ايجاد و مشخص شده اند.
+ نوشته شده توسط امین حاجی علیزاده در شنبه هجدهم آذر 1385 و ساعت 17:8 |
با سلام باعرض پوزش

 

+ نوشته شده توسط امین حاجی علیزاده در سه شنبه شانزدهم آبان 1385 و ساعت 16:36 |

اجراي همروند تراكنش‎ها در يك سيستم مديريت پايگاه داده توزيع شده ، ممكن است منجر به ناسازگاري‎هايي در پايگاه داده شود . ناسازگاري بر اثر مقادير نادرستي است كه براي داده‎هاي موجود در پايگاه داده بر اثر تداخل اجراء تراكنشها بوجود مي‎آيد . الگوريتمهاي كنترل همروندي ، جهت تضمين اجراء همروند چندين تراكنش كه بصورت موازي با داده‎هاي مشترك كار مي‎كنند طراحي شده‎اند . مسالة كنترل همروندي در پايگاه داده‎هاي توزيع شده امري ضروري و با اهميت مي‎باشد . در اين زمينه مطالعات و تحقيقات فراواني صورت گرفته است كه نتيجة آن الگوريتمهاي متنوع كنترل همروندي مي‎باشد . با توجه به الگوريتمهاي متنوع در اين زمينه و اين واقعيت كه روز به روز بر اهميت و ارزش پايگاه داده‎هاي توزيع شده افزوده مي‎شود ، اما هنوز كارآيي الگوريتمها در مقايسه با يكديگر مشخص نيست . يك تقسيم‎بندي بر روي الگوريتمهاي مزبور ، صورت مي‎گيرد و سه الگوريتم Wound_wait(WW) و Immediate_Restart(IRS) و Optimistic(OPT) از اين تقسيم‎بندي بوسيلة شبيه‎سازي مورد ارزيابي و مقايسه قرار مي‎گيرند . يك مدل جامع به عنوان يك مبنا و چهار چوب واحد براي ارزيابي الگوريتمها مورد استفاده قرار مي‎گيرد . در اين ارزيابي از معيارهاي نرخ تكميل تراكنش ( ميزان تراكنش تكميل شونده در يك مدت زماني معين ) ، زمان پاسخ ( مدت زمان تكميل تراكنش ) و نرخ برخورد ( ميزان برخورد بين تراكنشها در يك اجراء ) استفاده مي‎شود . نتايج حاصل براي طراحان پايگاه داده توزيع شده مي‎تواند بسيار مفيد باشد. در بار كاري كم ، هر سه الگوريتم داراي نرخ تكميل تراكنش يكسان مي‎باشند . اما با افزايش بار كاري ، الگوريتم OPT ، شديدا دچار ترشينگ مي‎شود . ديرتر از همه ، در الگوريتم IRS ترشينگ رخ مي‎دهد. OPT در بار كاري كم از نرخ Abort پايين‎تري نسبت به الگوريتمIRS بر خوردار مي‎باشد . اما در بار كاري بالا نرخ Abort الگوريتم OPT بالاتر از IRS قرار مي‎گيرد . در بار كاري كم الگوريتم OPT داراي كمترين زمان پاسخ بوده ، اما با افزايش بار كاري ، زمان پاسخ OPT بالاتر از همه قرار مي‎گيرد . زمان پاسخ در بار كاري بالا در الگوريتم WW پايين‎تر از دو الگوريتم ديگر مي‎باشد . هر سه الگوريتم بر اثر تكرارسازي ، دچار افزايش زمان پاسخ مي‎شوند . رفتار سه الگوريتم نسبت به يكديگر در حالت تكرارسازي مشابه حالت بدون تكرارسازي مي‎باشد . الگوريتمOPT در بار كاري كم ، كمترين ميزان افزايش زمان پاسخ را بر اثر تكرارسازي دارد . تاثير پذيري WW از تكرارسازي همواره كمتر از تاثيرپذيري IRS است . براي شروع مجدد تراكنش در الگوريتم IRS ، بهترين زمان براي تاخير شروع مجدد مقدار Adaptive مي‎باشد . اين مقدار برابر متوسط زمان پاسخ تراكنشهاي موجود در سيستم مي‎باشد . استفاده از مقدار Adaptive براي WW در بار كاري كم هيچ تاثيري در ميزان نرخ برخورد ندارد ؛اما در بار كاري بالا ميزان نرخ برخورد را كاهش مي‎دهد.

 

 

+ نوشته شده توسط امین حاجی علیزاده در پنجشنبه بیست و ششم مرداد 1385 و ساعت 8:48 |

مجموعه اي از داد ه ها ي موضوع گرا، مجتمع، غيرفرار و وابسته به زمان كه براي پشتيباني از تصميم گيري ها ي مديريتي مورد استفاده قرار مي گيرد.

 نسخه اي از داد ه ها ي چند پايگاه داده، كه به منظور تسهيل پردازش و پرس و جوهاي كاربران طراحي شده است.

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

جمع آوري ، پاكسازي انتقال داده از سيستمهاي عملياتي متعدد و آماده كردن اطلاعات حاصل براي تحليل

و گزارش گيري كاربران نهايي ، انبار داري داده ها ٢ ناميده مي شود.

انبار داده پايگاه داده بزرگي است كه براي پاسخگويي به سوالات، ايجاد شده است.متناسب با انبار ، سوالات مذكور هم با هم فرق مي كنند.انبار مي تواند در اندازه ها ي بزرگ (در حدود گيگابايت) يا كوچكتر باشد.كاربران انبار ممكن است كاركنان داخلي ، افراد ناشناس شبكه ها و يا هر دو باشند.

انبار داده يك پايگاه داده موضوع گرا است كه به منظور دسترسي ها ي گسترده طراحي شده است. و ابزارهايي براي برآوردن نيازهاي اطلاعاتي مديران در همه سطوح سازمان آماده مي كند ، به بيان ديگر يك

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

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

 

 چهار خصوصيت اصلي انبار داده

چهار خصوصيت اصلي انبار داده  عبارتند از :  

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

مجتمع : در سيستمهاي مختلف داده ها ممکن است از جنبه هاي مختلفي با هم نامتناسب باشند. مثلا منابع داده در کشورهاي مختلف با زمان و تاريخهاي مختلف ذخيره شد هاند. و يا منابعي که از ماشين هاي مختلف هستند در اعداد، حروف و ديگر فيلدها متناسب با محدوديتهاي ماشين، سيستم عامل و تطابق با استانداردهاي مختلف متفاوت هستند. با توجه به مختلف بودن منابع انبا رداده، قبل از ذخيره سازي آ نها در انبار داده براي تأمين يکپارچگي تکنيکهاي پاکسازي داد هها ٣ و مجتمع سازي به کار ميرود. با توجه به اين موضوع که داد ه ها زير نظر مديريت واحدي ذخيره سازي مي شوند، داد ه هاي سازگاري خواهيم داشت که داشتن

چنين سازگاري در ساير سيستم ها مثل سيستمهاي شبکه اي و توزيعي ناممکن است.

 متغير با زمان: داد ه ها در انبا رداده براي تهيه اطلاعات تاريخي به کار مي روند.

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

غير فرار: داد ه هاي انبا رداده هميشه از لحاظ فيزيكي مجزا هستند ، و هيچگاه نيازي به تغيير و به روز

درآوري نخواهند داشت. با توجه به اين موضوع، انبار داده مثل پايگاه داد ه هاي معمولي احتياجي به پردازش تراکنش، بازگرداندن فرايند و مکانيزم کنترل تصادم ندارد. علاوه بر اين نيازي به ايجاد و دسترسي انحصاري به داد ه ها نخواهيم داشت. فقط به دو فعاليت کليدي احتياج داريم :

·        بارکردن داد ه ها

·        دسترسيبه داده ها

 

+ نوشته شده توسط امین حاجی علیزاده در پنجشنبه بیست و نهم تیر 1385 و ساعت 10:4 |