﻿ WEB DESIGN AND GRAPHIC ARTICLES AND FURUM , BEST ADO.NET ARTICLES , DHCGRAPHIC ARTICLES
WWW.DHCGRAPHIC.COM
SET TO YOUR HOME PAGE | ADD TO YOUR FAVORITE
dhcgraphic.net
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PART CONTENT BEST : ADO.NET ARTICLE, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ASP.NET و پايگاه داده ( قسمت اول )

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

ASP.NET و پايگاه داده ( قسمت دوم )

اين مقاله به بررسی استفاده از شئ DataSet و بکارگيری شئ DataAdapter در واکشی اطلاعات از يک پايگاه داده می پردازد.
در اين بخش شما به دانسته های بخش اول نياز داريد. شئ بعدی که مورد بحث قرار می گيرد کلاس Data Adapter است. ( ادامه مطلب )

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 5 ، ديروز : 3 ، مجموع : 1123
Copyright © 2003-2004 dhc graphic ® Corporation . allrights reserved.
Web Design and Develope By Ali Rahmani khah


﻿ WEB DESIGN AND GRAPHIC ARTICLES AND FURUM , BEST ASP.NET ARTICLES , DHCGRAPHIC ARTICLES
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PART CONTENT BEST : ASP.NET ARTICLE, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم

تحت شرايطي بعضا" ممكن است به تغيير يك Master Page بصورت ديناميكي نياز پيدا كنيم. مثلا" ممكن است در يك وب سايت براي موضوعات مختلف طرح بندي سايت تغيير كند. بديهي است كه براي اين منظور بسته به نيازمان Master Page هاي مختلفي را در ابتداي كار مي بايست ايجاد كنيم. در اين مقاله مي آموزيد كه چگونه مي توان بصورت ديناميكي يك Master Page را با ديگري جايگزين كرد. ( ادامه مطلب )

ساخت يک خروجی RSS درASP.NET

RSS يک راه استاندارد برای به اشتراک گذاشتن محتوای سايت ها با ديگران است. RSS يا همان Really Simple Syndication چيزی نيست به جز يک نشانه گذاری استاندارد شده XML که محتوايی که قصد به اشتراک گذاشتن آن را داريد را توصيف می کند. در اين مقاله قصد داريم چگونگی ساخت يک فايل RSS را در ASP.NET بررسی کنيم. ( ادامه مطلب )

توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)

شايد برای شما جالب باشد که بدانيد سايت هايی بزرگی چون CNN يا news.com چگونه صفحات خود را توليد می کنند و اينکه چرا پسوند صفحات آنها مثلا بجای asp يا aspx يا php وغيره، html است؟ اين مقاله را بخوانيد تا با يکی از متداول‌ترين و مناسب‌ترين راه‌های توليد صفحات وب بصورت استاتيک برای سايت‌های با محتوای ديناميک مانند سايت های خبری يا مقاله‎ای آشنا شويد. ( ادامه مطلب )

بررسی خطاها در ASP.NET - قسمت اول

هنگامی که در یک صفحه ASP.NET خطایی رخ می دهد، ASP.NET اطلاعاتی راجع به خطا به Client می فرستد. در اين مقاله به نحوه راه اندازی و اعلام خطاها به کاربر،نمایش یا عدم نمایش خطاها برای کاربران، سفارشی کردن صفحات خطا و نوشتن خطاها در Event Log می پردازيم. ( ادامه مطلب )

کارکردن با رشته‌ها و متن‌ها در ASP.NET

اغلب متن‎هايی که کاربران يک سايت توسط فرم‌ها ارسال می‌کنند و يا اطلاعاتی که از يک بانک دريافت می شود نياز به بررسی و يا اعمال تغييرات دارند. در اين مقاله با برخی توابع و امکانات ASP.NET برای کارکردن با رشته‎ها يا به تعبيری ديگر string‎ها آشنا می شويم. ( ادامه مطلب )

کاهش حجم خروجی در ASP.NET

مساله سرعت بارگذاری صفحات چه به صورت ايستا طراحی شده باشند و چه به صورت پويا از مباحث مهم در طراحی حرفه ای صفحات وب است اين مساله در کشور ما با توجه به سرعت نسبتا پايين خطوط اينترنت اهميت مضاعفی می يابد از طرفی در سايتهای بزرگ که طبعا حجم بيشتری هم دارند مساله پهنای باند مصرفی نيز مورد توجه قرار می گيرد که رابطه مستقيمی با سرعت بارگذاری صفحات دارد چرا که سرعت بارگذاری صفحات نيز رابطه مستقيمی با حجم صفحات دارد. ( ادامه مطلب )

شناسايی کاربران بر اساس فرمهای وب

برنامه‎های وب ASP.NET می توانند از سه روش مختلف برای شناسائی و تاييد کاربران وب سايت استفاده کنند. اين روش ها عبارتند از: Windows Authentication ، Forms-Based Authentication و Passport Authentication. اين مقاله به اين نوع سوالات پاسخ می دهد و شما را قدم به قدم با چگونگی شناسايی کاربران آشنا می کند. ( ادامه مطلب )

توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)

پس از بررسی مزايای توليد صفحات استاتيک به کمک XML و ASP.NET در قسمت اول اين مقاله، به چگونگی انجام اين کار می پردازيم.
اکنون روش مورد نظر در اين مقاله را بررسی می‌کنيم. در اين روش به جای اينکه يک صفحه ديناميک از جنس ASP‌ يا ASP.NET بسازيم که محتوای هر خبر يا مقاله را نمايش بدهد . ( ادامه مطلب )

کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم

نسل اول ASP.NET در قالب نسخه‎های 1.0 و 1.1 ارائه گشت. گذشت زمان و کسب تجربيات متعدد، پيدايش نيازهای جديد، ضعف های موجود و نيز به دليل ايجاد راه حل‎های تکراری ولی پرکاربرد توسط برنامه نويسان جهت حل برخی مسائل که همواره وقت زيادی را از آنها می گرفت، همگی سبب شدند تا مايکروسافت به فکر گسترش تکنولوژی NET. و ASP.NET به عنوان جزء مهمی از آن باشد. حاصل کار پيدايش نسخه بهتر شده دات نت و مهمتر از آن ASP.NET 2.0 جهت ارائه در سال 2005 بود. ( ادامه مطلب )

به رمز درآوردن اطلاعات

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

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 6 ، ديروز : 3 ، مجموع : 1124


﻿ WEB DESIGN AND GRAPHIC ARTICLES AND FURUM , BEST MY SQL ARTICLES , DHCGRAPHIC ARTICLES
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PART CONTENT BEST : MY SQL ARTICLE, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
تابع RAND
موتور ذخيره سازی MyISAM
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
تابع RAND

فرض کنید مجموعه ای از مقادير را در اختيار داريم و می خواهيم از ميان اين مقادير، يک يا چند فقره به صورت تصادفی انتخاب کنيم. تا اينجا صورت کلی مساله رو داشته باشيد. مسلما راه حلها و روشهای زيادی به ذهتون خطور می کنه. اما من صورت مساله را کمی اختصاصی تر تعریف می کنم. می خواهم از ميان چندين رکورد موجود در يک جدول بانک اطلاعاتی، يک يا چندين رکورد را به تصادف انتخاب کنم و نمی خواهم که تمام رکوردها را به حافظه منتقل کرده و از بين آنها و با کمک توابع زبان اسکريپتی به هدف خود برسم. ميخواهم اين کار را با خود MySQL انجام دهم یعنی در سمت خود بانک اطلاعاتی؛ چاره چيست؟! MySQL تابعی دارد به نام ()RAND که وقتی فراخوانده شود، عددی تصادفی بين ۰ تا ۱ را توليد می کند. ( ادامه مطلب )

موتور ذخيره سازی MyISAM

برای کنترل عملياتهای همزمان، MyISAM از مکانيزم قفل گذاری در سطح جدول استفاده می کند. وقت بيشتری برای توضيح اين مکانيزم می گذارم چون اغلب درک درستی از آن نيست. در حقيقت، سه نوع قفل در MyISAM وجود دارد. قفل READ LOCAL: اين نوع قفل، توسط پرس و جوهایی(Query) که تنها به خواندن نياز دارند، استفاده می شود، يعنی صرفا عمليات به هنگام سازی(Update) را بلاک می کند تا از تغيير داده ها به هنگام خواندن جلوگيری کند. ساير پرس و جوهای خواندن و درج های همزمان هم قابل انجام هستند؛ اگر يک دستور INSERT بتواند داده جديدی را به آخر فايل MYD. اضافه کند به جای اينکه فضاهای خالی حاصل از عمليات DELETE را پر کند، ديگر منتظر قفل از نوع READ LOCAL نمی ماند. ( ادامه مطلب )

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 7 ، ديروز : 3 ، مجموع : 1125


﻿ WEB DESIGN AND GRAPHIC ARTICLES AND FURUM , BEST PHP ARTICLES , DHCGRAPHIC ARTICLES
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PART CONTENT BEST : PHP ARTICLE, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
مشخصه ها و رفتارهای استاتيک

از اين پس در PHP می توان متدها و Propertyهای يک کلاس را به صورت استاتيک تعريف کرد. يک متد استاتيک به جای وابستگی به يک نمونه از کلاس به خود کلاس وابسته بوده و محدوده عمل آن در سطح کليه نمونه های آن کلاس ( Objectها ) است. ( ادامه مطلب )

كار با Data Object ها در php 5 ( بخش 1 )

امروزه کار با database یکی از مسائل روزمره برنامه نویسان وب به شمار می آید،از یک پردازش ساده فرم گرفته تا برنامه های کاربردی در مقیاس بزرگ(large-scale). تقریبا در اکثر موارد از database استفاده می کنیم. بعد از کارکردن روی چند پروژه، زمان زیادی طول نخواهد کشید که متوجه می شوید،چهار عمل اصلی ساده در کار با database به طور مرتب تکرار می شوند. اين مقاله سعي در توضيح اين اعمال بصورت Data Object را دارد . ( ادامه مطلب )

PHP 5 و XML ( بخش 2 )

همانطور که در مطلب قبل مشاهده کرديد، پياده سازی اين روش تفسير اسناد XML به سادگی صورت نمی پذيرد و به همين دليل توسعه گران معدودی هستند که واقعا به SAX علاقه دارند و اکثرا تا صحبت از تفسير اسناد XML در يک پروژه می شود، آنها به دنبال راه های آلترناتيوی برای فرار از XML هستند. متاسفانه در PHP 4 راه ديگر تفسير XML - توسعه DOM - تا همين چند وقت پيش دارای مشکلات عديده ای بود که همين امر موجب میشد که DOM نتواند جايگزين مناسبی برای XML/SAX باشد. علاوه بر اين در SAX چون کار تفسير کاملا بر عهده کدهای PHP بود (از طریق توابعی که برای هر رویداد می نوشتیم) بنابراين سرعت عمل PHP کم می شد زيرا برخورد با هر تگ داخل سند XML مستلزم ٿراخوانی سه تابع است که هر يک بر اساس منطق تعيين شده، اطلاعاتی را جمع آوری می کنند. بنابراين با وجود چنين مشکلاتی، تعجب آور نيست که توسعه گران برای بهبود ٿرآيند تٿسير در PHP 5 همت گماشته اند. ( ادامه مطلب )

ساخت ٿايلهای PDF در PHP

در این مقاله به معرفی یکی از قابلیت های PHP ، که ساخت فایلهای PDF می باشد،می پردازیم.PDF مخفف Portable Document Format می باشد که توسط شرکت Adobe عرضه شده است.ساخت اسناد PDF توسط کتابخانه PDFlib انجام می شود. برای استفاده از extension مربوط به PDFlib باید به ٿایل PHP.INI رفته و آن را فعال کنید.(این کار با برداشتن سمیکالن ';' از ابتدای آن انجام می شود. توجه کنید که مسیر مربوط به extension ها را در PHP.INI درست وارد کرده باشید. ) ( ادامه مطلب )

PHP 5 و XML ( بخش 3 )

در بخش سوم اين سلسله مقالات، می خواهم در مورد XPath صحبت کنم. روش ديگری که برای بازيابی يک المنت خاص از درخت DOM وجود دارد استٿاده از زبان پرس و جوی XPath می باشد که خوشبختانه توسط توسعه SimpleXML پشتيبانی می شود. XPath زبانی برای آدرس دهی اجزای يک سند XML است که توسط کنسرسيوم وب جهانی( W3C ) به تصويب رسيده است. ( ادامه مطلب )

كار با Data Object ها در php 5 ( بخش 2 )

همانطور که در قسمت اول بحث شد، لایه دسترسی به داده ها و لایه انتزاع پایگاه داده دو چیز متفاوتند.شما می توانید یکی از این دو لایه و یا حتی هر دو را برای بدست آوردن انعطاف (flexibility) بیشتر به کار ببرید.کار لایه انتزاع پایگاه داده، مخفی کردن RDBMS ای است که در پس زمینه در حال اجرا است.اگر شما در نوشتن دستورات SQL خود، تبحر داشته باشید،به راحتی می توانید از یک database server به دیگری کوچ کنید،بدون آنکه تغییری در ٿراخوانی های توابع یا SQL بدهید.Pear::DB این کار را به خوبی انجام می دهد. ( ادامه مطلب )

PHP 5 و XML ( بخش 1 )

اکثر اٿرادی که در مورد PHP 5 صحبت می کنند، بيشتر تمايل دارند به پيشرفتهايی که در زمينه کار با آبجکتها حاصل شده است تمرکز کنند. البته Object Model جديد PHP 5 يقينا يکی از مولفه های شايان توجه اين نسخه است، اما پيشرفت مهم ديگری که اغلب مورد غفلت قرار می گيرد، تغييرات عمده ای است که در PHP برای کار با اسناد XML در نظر گرفته شده است. هدف اين سلسله مقالات آشنا کردن شما با تغییرات نحوه کار با XML در PHP 5 است. در پايان اين مقالات مشاهده خواهيد کرد که تٿسير اسناد XML با PHP 5 به راحتی خوردن يک ليوان آب است! ( ادامه مطلب )

کلاسها در PHP

Class (‌کلاس)‌ در حقیقت تعدادی از Variable ( متغیر)‌ها به همراه تعدادی Function (‌عملگر)‌است که این عملگر ها بر روی آن متغیر ها کار می کنند . اونها در حقیقت مٿهوم یک چیز در دنیای واقعی هستند . به عبارت دیگر کلاسها یک شیء رو معرٿی می کنند . نشانه یک کلاس زندگی واقعی و یا نٿس کشیدن است که زیر ساختهای اون کلاس هستند . ( ادامه مطلب )

نمايش ۵ مراجعه کننده آخر سايت

در این قسمت به ساخت برنامه ای برای نمایش مراجعه کننده آخر سایت می پردازیم. با استفاده از php و MySQL نوشتن این برنامه بسیار ساده است. قبل از هر کاری باید یک Table ساده درست کنیم تا لینک های ورودی را در آن ذخیره کنیم. ( ادامه مطلب )

توسعه Tidy

يکی از توسعه های جديدی که همراه PHP 5 معرفی شد، توسعه* Tidy (تایدی) هست که کارش تر و تمیز کردن سندهای HTML و XML درهم برهم و تبدیل آنها به اسناد معتبر و خوش نما هست. این امکان زمانی مفید واقع میشه که بخواهید محتویاتی را که خارج از برنامه شما تولید شده اند را نمایش دهید. ( ادامه مطلب )

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 9 ، ديروز : 3 ، مجموع : 1127


﻿ WEB DESIGN AND GRAPHIC ARTICLES AND FURUM , DHCGRAPHIC ARTICLES
IRAN GRAPHIC AND WEB DESIGN ARTICLES AND FURUM , DHCGRAPHIC ARTICLES
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
حفره‌ى امنيتى بزرگ درPHP
تيم نويسنده‌ى PHP نسخه‌ى روزآمدسازى جديدى براى از بين بردن باگ‌هاى متعدد اين زبان برنامه‌نويسى منتشر كرده است . نويسندگان PHP هشدار داده اند كه كاربران بايد نسخه‌ى روزآمدسازى PHP 4.3.10 را به سرعت نصب كنند.
PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .
Java ES پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد.
سان نرم‌افزار Java Enterprise را به روز مى‌كند
سان مايكروسيستمز نسخه‌ى جديدى از نرم‌افزار سازمانى سان به نام Java Enterprise System 3 خود را منتشر كرده است. بنا بر اظهارات سان، محصول Java ES در حدود سيصد و شصت مشترى دارد.
ColdFusion MX 7 منتشر شد .
ColdFusion MX 7 به بازار آمد
شرکت ماکرومدیا که قدرتمند ترین ابزارهای ساخت برنامه های تحت وب را عرضه میکند این بار بیش از همیشه فلش را در کنار کلدفیوژن 7 به کار گرفته تا کمی رقبا را بترساند !
توسعه Tidy

يکی از توسعه های جديدی که همراه PHP 5 معرفی شد، توسعه* Tidy (تایدی) هست که کارش تر و تمیز کردن سندهای HTML و XML درهم برهم و تبدیل آنها به اسناد معتبر و خوش نما هست. این امکان زمانی مفید واقع میشه که بخواهید محتویاتی را که خارج از برنامه شما تولید شده اند را نمایش دهید.(ادامه مطلب)
تابع RAND

فرض کنید مجموعه ای از مقادير را در اختيار داريم و می خواهيم از ميان اين مقادير، يک يا چند فقره به صورت تصادفی انتخاب کنيم. تا اينجا صورت کلی مساله رو داشته باشيد. مسلما راه حلها و روشهای زيادی به ذهتون خطور می کنه. اما من صورت مساله را کمی اختصاصی تر تعریف می کنم. می خواهم از ميان چندين رکورد موجود در يک جدول بانک اطلاعاتی، يک يا چندين رکورد را به تصادف انتخاب کنم و نمی خواهم که تمام رکوردها را به حافظه منتقل کرده و از بين آنها و با کمک توابع زبان اسکريپتی به هدف خود برسم. ميخواهم اين کار را با خود MySQL انجام دهم یعنی در سمت خود بانک اطلاعاتی؛ چاره چيست؟! MySQL تابعی دارد به نام ()RAND که وقتی فراخوانده شود، عددی تصادفی بين ۰ تا ۱ را توليد می کند.(ادامه مطلب)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)

پس از بررسی مزايای توليد صفحات استاتيک به کمک XML و ASP.NET در قسمت اول اين مقاله، به چگونگی انجام اين کار می پردازيم.
اکنون روش مورد نظر در اين مقاله را بررسی می‌کنيم. در اين روش به جای اينکه يک صفحه ديناميک از جنس ASP‌ يا ASP.NET بسازيم که محتوای هر خبر يا مقاله را نمايش بدهد .(ادامه مطلب)
ASP.NET و پايگاه داده ( قسمت دوم )

اين مقاله به بررسی استفاده از شئ DataSet و بکارگيری شئ DataAdapter در واکشی اطلاعات از يک پايگاه داده می پردازد.
در اين بخش شما به دانسته های بخش اول نياز داريد. شئ بعدی که مورد بحث قرار می گيرد کلاس Data Adapter است.(ادامه مطلب)
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 3 ، ديروز : 3 ، مجموع : 1121


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP - CLASS
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP - CLASS, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 24
کلاسها در PHP
یکی از مسائلی که در PHP فهمیدن آن خیلی راحت نیست " مزیت استفاده از کلاسها " در برنامه نویسی می باشد .
من قبلا با هیچ بانک اطلاعاتی در PHP کار نکرده بودم اما بعد از کمی تلاش دیدم که یادگیری دستورات مقدماتی آن چقدر راحت است.
اما در مقابل برنامه نویسی OOP (‌برنامه نویسی شیء گرا‌) نیز تا بحال انجام نداده بودم ولی پی بردم که فهمیدن مفاهیم و چرائی استفاده از آن بسیار مشکل بود ، من فکر می کردم که برنامه نویسی شیء گرا حتما خیلی قدرتمند است و مزایای زیادی دارد اما از اونجائی که سعی می کردم قبل از تجربه هر چیز خودم را قانع کنم که اون چیز به دردم می خوره هیچ موقع دنبال اون نبودم .
تا اینکه چند روز پیش هنگامی که داشتم یک Function‌ ساده می نوشتم و اون رو تغییر می دادم به ذهنم رسید که ببینم می شود این کار را توسط یک Object ( شیء )‌ انجام داد یا نه . سعی می کنم نتایجی رو که در هنگام این کار بهش رسیدم رو براتون به زبان ساده شرح بدم . Class (‌کلاس)‌ در حقیقت تعدادی از Variable ( متغیر)‌ها به همراه تعدادی Function (‌عملگر)‌است که این عملگر ها بر روی آن متغیر ها کار می کنند.
اونها در حقیقت مفهوم یک چیز در دنیای واقعی هستند . به عبارت دیگر کلاسها یک شیء رو معرفی می کنند.
نشانه یک کلاس زندگی واقعی و یا نفس کشیدن است که زیر ساختهای اون کلاس هستند .
فرض کنید که ما می خواهیم یک دوچرخه را شرح دهیم .
کلاس مرتبط با یک دوچرخه می بایست متغیر های زیر را داشته باشد :
$pedals, $chain, $front_wheel, $rear_wheel, $brakes, $handle_bars
(بدنه نگهدارنده ، ترمزها ، چرخ عقب ،‌چرخ جلو ، زنجیر ، پدالها ) عملگر هایی که یک دوچرخه دارد از قرار زیر است :
Stop(), Accelerate(), Coast(), TurnLeft(), TurnRight()
( ایستادن ، شتاب دادن ، راندن ، پیچیدن به سمت راست ، پیچیدن به سمت چپ ) شما هم اکنون می توانید فرض کنید کنید که توسط این اجزاء این دوچرخه می تواند حرکت کند و در حقیقت معنای دوچرخه بدهد .
مثلا عملگر Accelerate می تواند متغیری به عنوان $Braking_Force به عنوان ورودی دریافت کند و مثلا از متغیرهای $brakes و $wheels هم استفاده کند و مثلا نتیجه مطلب را به عنوان مقدار بازگشتی به برنامه برگرداند . بسیار جالب به نظر می رسد .
اما به نظر شما نمی شه که همه اینها را به صورت منظم توسط تعدادی متغیر و عملگر انجام داد ؟ مسلما این کار امکان پذیر ميباشد .
اما در صورتیکه شما فقط یک دوچرخه را بخواهید در برنامه خودتون استفاده کنید فرقی به حال شما ندارد که از کلاس استفاده کنید یا نه.اما اگر از تعدادی از دوچرخه ها بخواهید در برنامه استفاده کنید چطور ؟ در اون صورت تعقیب اینکه هر دوچرخه هم اکنون در چه مرحله ای است و چه متغیری از آن باید به کدام عملگر فرستاده شود توسط برنامه نویس بسیار سخت و پیچیده می شود .
اما در کلاس دیگر این مشکلات وجود ندارد و هر متغیر برای هر دوچرخه در اختیار عملگر های آن است و هر دوچرخه به صورت جدا متغیر هایش برای عملگرها فرستاده می شود بدون اینکه شما نیازی به کنترل‌ آنها داشته باشید.
همچنین استفاده از کلاس در برنامه های مختلف راحت است چرا که شما با یک کلاس آماده که قبلا در جای دیگر کار می کرده به راحتی می توانید کار کنید و نیازی به تغییر آن ندارید.
حالا اجازه بدید که یک مثال کاربردی و واقعی بزنیم که من در خیلی از صفحات وبی که می سازم از آن استفاده می کنم و ممکن است که بدرد شما هم بخورد .
شما رو نمی دونم اما من موقعی که می خواهم صفحات وب پویا رو برنامه نویسی کنم خیلی بدم میاد که همش به فکر روند منطقی درست بودن خروجی HTML برنامه باشم . برای همین هیچ موقع صفحات زیبایی در خروجی برنامه های من نیست چون از رنگها و فونتهای مختلف استفاده نمی کنم .
راه حل موجود استفاده از یک کلاس PHP برای تنظیم خروجی های HTML است . من این کلاس رو Style نامگذاری می کنم .این کلاس شامل متغیرهای زیر است که مهمترین تنظیمات HTML خروجی از برنامه می باشند :
<?php
class Style {
var $text;
  var $alink;
  var $vlink;
  var $link;
  var $bgcol;
  var $face;
  var $size;
  var $align;
  var $valign;
}
?>
مطمئن هستم که شما با HTML آشنا هستید و این متغیرها برای شما آشنا هستند .
هم اکنون سعی می کنم که عملگری به نام Style برای تعیین نوع خروجی درست کنم :
<?php
class Style {
function Style ($text="#000000",$alink="#AA00AA",
  $vlink="#AA00AA",$link="#3333FF",
  $bgcol="#999999",$face="Book Antiqua",$size=3,$align="CENTER",$valign="TOP")
  {
$this->text=$text;
  $this->alink=$alink;
  $this->vlink=$vlink;
  $this->link=$link;
  $this->bgcol=$bgcol;
  $this->face=$face;
  $this->size=$size;
  $this->align=$align;
  $this->valign=$valign;
}
}
  ?>
هنگامی که شما عملگری همنام با کلاس خودتون تعریف می کنید ، این عملگر همزمان با تعریف شیء ای از نوع این کلاس اجرا خواهد شد.
این عملگر ، عملگر constructor یا سازنده نام می گیرد .
این عملگر به شما این امکان را می دهد که در هنگام ایجاد شیء ، برای همه متغیر ها یک مقدار اولیه داشته باشید .
<?php $Basic = new Style; ?>
در اینجا شما شیء‌ ای با نام $basic توسط دستور new از نوع کلاس Style درست کرده اید .
همچنین این امکان وجود دارد در هنگامیکه می خواهید یک شیء جدید توسط یک کلاس ایجاد کنید مقدار اولیه متغیرهای آن را نیز در هنگام ایجاد خوتان انتخاب کنید .
اما در صورتیکه مقدار یکی از آنها را شما بخواهید در هنگام ایجاد انتخاب کنید باید همه متغیرهای دیگر را نیز خودتان مقدار اولیه هایشان را تعیین کنید و این امکان وجود ندارد که فقط یکی یا چند تا رو شما تعیین کنید و بقیه رو مقدار اولیه مقدار دهی کند .
به همین خاطر راه بهتری را برای این مشکل پیشنهاد می کنیم و آن استفاده از یک عملگر به نام Set در کلاس است که مقدار یک متغیر را در کلاس تغییر می دهد :
<?php
Function Set($varname,$value) {
$this->$varname=$value;
}
?>
بنابراین برای تغییر مقدار هر یک از متغیر ها می توانیم از نمونه زیر استفاده کنیم :
<?php $Basic->Set('size','2'); ?>
شما می توانید از علامت -> برای اشاره به متغیر و یا عملگر یک شیء استفاده کنید . بنابراین خط بالا به اجرا کننده برنامه می گوید که عملگر Set مربوط به شیء $Basic را اجرا کند.
از آنجایی که ما $Basic را قبلا از نوع Style تعریف کردیم بنابراین عملگر Set این کلاس اجرا می شود و پارامتر های ورودی شما را می گیرد و برای شیء مورد درخواست تغییرات لازم را اجرا می کند.
همچنین شما می توانید این کار را برای متغیر های دیگر مانند $Basic->text نیز انجام دهید و مقدار اولیه آنرا تغییر دهید .
هوتن اقاسپور
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 28 ، ديروز : 3 ، مجموع : 1146


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 10
مشخصه ها و رفتارهای استاتيک
از اين پس در PHP می توان متدها و Propertyهای يک کلاس را به صورت استاتيک تعريف کرد.
يک متد استاتيک به جای وابستگی به يک نمونه از کلاس به خود کلاس وابسته بوده و محدوده عمل آن در سطح کليه نمونه های آن کلاس(Objectها) است.فراخوانی متدهای استاتيک با استفاده از سينتکس:
ClassName::method();
صورت می گيرد. داخل متدهای استاتيک، از this$ که معرف نمونه کلاس(آبجکت) است نمی توان استفاده کرد.
چرا؟! چون همانطور که گفتيم متدهای استاتيک برای تمام نمونه کلاس ها يکسان و ثابت بوده و مقيد به آبجکت های ساخته شده نيستند.
حالا يک مشخصه(Property) استاتيک، يک متغيری در سطح کلاس است و مقيد به نمونه های آن کلاس نيست. يعنی تغيير در مقدار اين متغير، در تمام نمونه های گرفته شده از کلاس مذکور منعکس می شود.
مشخصه های استاتيک را با کلمه کليدی static تعريف می کنيم و نحوه دسترسی به آن هم با سينتکس:
ClassName::$property;
ميسر است.
مثال زير، نحوه کار مشخصه های استاتيک را نشان می دهد:
class TestClass {
public static $counter;
}
$counter = TestClass::$counter;
?>
* کلمه کليدی Public به اين معنی هست که به طور مستقيم می توان به اين متغير دسترسی يافت.
( در بحث Encapsulation و پنهان سازی داده ها از دید کاربر کلاس مطرح می شود ) گاهی اوقات پيش می آيد که بخواهيد از داخل خود کلاس به مشخصه استاتيک آن دسترسی بيابيد؛ برای اين منظور می توان از دو کلمه کليدی جادويی به نام های self و parent بهره برد.
که به ترتيب به خود کلاس و والد کلاس اشاره می کنند.
با بهره گیری از self و parent ديگر لازم نيست برای ارجاع به يک کلاس، از نام آن استفاده کنيد. در مثال پايين با يک مثال ساده نحوه استفاده از مشخصه های استاتيک و انتساب يک شناسه منحصر به فرد عددی به هر نمونه از کلاس شرح داده شده است:
class TestClass {
public static $counter = 0;
public $id;
public function __construct()
{
$this->id = self::$counter++;
}
}
?>
در PHP 4 چیزی به نام متدها و مشخصه های استاتيک نداريم؛ يعنی بهتر هست بگيم پشتيبانی صريحی از متدهای استاتيک به عمل نيامده است.
اما با استفاده از سينتکس ()ClassName:
function امکان فراخوانی متدی از کلاس وجود دارد.
چنين متدی را می توان يک متد استاتيک در نظر گرفت، البته تا زمانی که به يک مشخصه از کلاس اشاره نکند.
من به شخصه برای تمام اپليکيشنهای تحت وبی که می نويسم يک کلاس کلی دارم به نام MainLib که توابع مورد نياز و مشترک بين ساير کلاس ها را در آن قرار داده ام، برای مثال متدی برای بررسی magic_quotes_gpc و تعيين خروجی، تابعی برای تبديل تاريخ شمسی به ميلادی و بالعکس، تابعی برای راه اندازی Template Engine و تفسير و جايگذاری مقادير، تابعی برای ايجاد Navigation های دلخواه و غيره . حال تمام کلاس های ديگر سايت که کار مختص به خود را انجام می دهند، فرزند اين کلاس اصلی هستند و استاتيک بودن متدهای کلاس اصلی، اين امکان را می دهد که از آنها در برنامه نويسی ماجولار هم بهره برد و صرفا منحصر به نمونه کلاس ها و آبجکت ها نباشد. با استفاده از الگوی طراحی Front Controller کلیه ماجول ها را از یک صفحه اصلی مشتق می کنم و با تکنیک توابع متغیر(پست پایین) ماجول های مورد نیاز را فراخوانی میکنم، در هر ماجول کلاس مربوطه نمونه گیری شده و تمام کارهایی که باید در آن ماجول انجام شود، در کلاس گنجانده می شود.
من با اتخاذ چنين روشی در کدنويسی، خيلی راحت و دقيق بين کليت کلاس ها و ماجول های برنامه، يکپارچگی خاصی ايجاد می کنم و بدين ترتيب کار توسعه ديگر ملال آور نمی شود و باعث میشود من همچنان PHP را دوست بدارم!
نيما شايانفر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 31 ، ديروز : 3 ، مجموع : 1149


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND DATA OBJECT
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND DATA OBJECT, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 20
كار با Data Object ها در php 5 ( بخش 2 )
همانطور که در قسمت اول بحث شد، لایه دسترسی به داده ها و لایه انتزاع پایگاه داده دو چیز متفاوتند. شما می توانید یکی از این دو لایه و یا حتی هر دو را برای بدست آوردن انعطاف (flexibility) بیشتر به کار ببرید. کار لایه انتزاع پایگاه داده، مخفی کردن RDBMS ای است که در پس زمینه در حال اجرا است. اگر شما در نوشتن دستورات SQL خود، تبحر داشته باشید،به راحتی می توانید از یک database server به دیگری کوچ کنید،بدون آنکه تغییری در فراخوانی های توابع یا SQL بدهید.
Pear : : DB این کار را به خوبی انجام می دهد. لایه دسترسی به داده ها(Data Access Layer) روشی است برای مشخص کردن جداول خود، تا بتوانید بدون استفاده از SQL در Business layer برنامه خود(جایی که کد تمام توابع برنامه قرار می گیرد) با داده های جداول، تعامل داشته باشید. Data Object ها ،گزینه خوبی برای لایه دسترسی به داده ها هستند زیرا از آنجا که رابطه مستقیم با جداول دارند،می توانید بدون تغییر در آنها،چندین بار از آنها در طول برنامه خود استفاده کنید.
در قسمت ۱ ،کلاسی با نام DO_User ساختیم ویک متد ساده برای دریافت رکورد بر اساس فیلد userId نوشتیم. در این قسمت به توسعه کلاس DO_User می پردایم:
افزودن یک رکورد جدید(INSERT) در اینجا یک متد جدید به نام insert را به کلاس خود اضافه می کنیم. این متد،یک رکورد جدید به جدول ما اضافه می کند:
public function insert()
{
  $sql = "INSERT INTO User SET
  firstName='" . mysql_escape_string($this->firstName) . "',
  lastName='"  . mysql_escape_string($this->lastName)  . "',
  email='"   . mysql_escape_string($this->email)   . "'";

  mysql_query($sql);
  $this->userId = mysql_insert_id();
}
ممکن است سوال کنید که اطلاعات برای درج شدن از کجا گرفته می شوند،زیرا تابع insert هیچ پارامتری ندارد! جواب این است که قبل از فراخوانی این تابع باید متغیرهای عضو کلاس مقداردهی شده باشند به جز متغیر userId که بعد از افزودن رکورد جدید توسط تابع mysql_insert_id به آن مقدار می دهیم.
مثال زیر نحوه به کارگیری این متد را نشان می دهد:
<?php
include_once('class-DO_User.php');

$user = new DO_User();
$user->firstName = 'Jane';
$user->lastName = 'Doe';
$user->email = 'jane.doe@example.com';

$user->insert();
?>
<html>
<head>
<title>INSERT Example</title>
</head>
<body>
<p>The user was added to the User table.
The userId is: <?=$user->userId?></p>
</body>
</html>
در مثال بالا ابتدا یک شیء از نوع DataObject را نمونه سازی می کنیم. سپس متغیرهای لازم را مقداردهی کرده و تابع insert را فراخوانی می کنیم.
ما می توانیم با به کارگیری توام دو متد get و insert یک رکورد را کپی کنیم. می توانیم ابتدا یک تغییر جزئی در مقادیر بدهیم(مثلا آدرس ایمیل را عوض کنیم) و سپس رکورد را کپی کنیم:
<?php
include_once('class-DO_User.php');
$user = new DO_User();

// Again just using a literal int for now.
$user->get(5);

// Change the email address in the DataObject
// NOTE: This doesn't affect the DB at all,
// just the value in the DataObject
$user->email = 'jdoe@example.com';

// Next, we call insert() to create a NEW record in the User table
$user->insert();

?>
<html>
<head>
<title>Copy Row INSERT Example</title>
</head>
<body>
<p>The user was copied to the User table.
The userId is: <?=$user->userId?></p>
</body>
</html>
مثال بالا نشان می دهد که با به کارگیری DataObject چقدر کار تعامل با پایگاه داده،آسان می شود.
بروز رسانی رکوردها(UPDATE):
بازیابی یک رکورد،تغییر بعضی مقادیر و افزودن آن به صورت یک رکورد جدید کار ارزشمندی است اما در اکثر مواقع، شما نیاز به UPDATE کردن یک رکورد دارید. در این جا متدی به نام update به کلاس خود اضافه می کنیم:
public function update()
{
$sql = "UPDATE User SET
firstName='" . mysql_escape_string($this->firstName) . "',
lastName='" . mysql_escape_string($this->lastName) . "',
email='" . mysql_escape_string($this->email) . "'
WHERE
userId=" . mysql_escape_string($this->userId);

mysql_query($sql);
}
این متد بسیار شبیه متد insert است.
به مثال زیر توجه کنید:
<?php
include_once('class-DO_User.php');
$user = new DO_User();

// Again just using a literal int to get a row.
$user->get(5);

// Change the email address
$user->email = 'janedoe@example.com';

// Perform the update
$user->update();

?>
<html>
<head>
<title>UPDATE Example</title>
</head>
<body>
<p>The user updated. The userId is: <?=$user->userId?></p>
</body>
</html>
حذف سطرها(DELETE)
در اینجا تابعی با نام delete به کلاس خود اضافه می کنیم:
public function delete()
{
$sql = "DELETE FROM User
WHERE
userId=" . mysql_escape_string($this->userId);

mysql_query($sql);
}
کار کردن با delete مشابه update می باشد. این متد هم از فیلد کلید اولی یعنی userID استفاده می کند.
ارزش DataObject ها وقتی مشخص می شود که با آنها کار کنید! در قسمت بعدی به متدهای پیچیده تر برای بسط کلاس خود می پردازیم.
علي خليلي
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 32 ، ديروز : 3 ، مجموع : 1150


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND DATA OBJECT
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND DATA OBJECT, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 14
كار با Data Object ها در php 5 ( بخش 1 )
امروزه کار با database یکی از مسائل روزمره برنامه نویسان وب به شمار می آید،از یک پردازش ساده فرم گرفته تا برنامه های کاربردی در مقیاس بزرگ(large-scale). تقریبا در اکثر موارد از database استفاده می کنیم. بعد از کارکردن روی چند پروژه، زمان زیادی طول نخواهد کشید که متوجه می شوید،چهار عمل اصلی ساده در کار با database به طور مرتب تکرار می شوند.این اعمال عبارتند از:
  • پیداکردن و انتخاب رکوردها ( SELECT )
  • به روزرسانی رکوردهای جاری ( UPDATE )
  • افزودن رکوردهای جدید ( INSERT )
  • حذف رکوردها ( DELETE )
شما در جاهای مختلف برنامه مجبورید که یک Query را بازنویسی کرده و یا آن را از قسمت های قبلی برنامه Copy-Paste کرده و سپس تغییرات لازم را روی آن اعمال کنید. عده ای از برنامه نویسان ترجیح می دهند که از یک لایه انتزاعی(Abstraction Layer) مثل PEAR: :DB و یا DBX استفاده کنند. استفاده از یک لایه انتزاعی چیز خوبی است اما هدف اصلی در آن ،این است که RDMBS را محو کند یا به اصطلاح Transparent سازد و برنامه شما مستقل از RDMBS شود. یک لایه انتزاعی، راهی برای مجردسازی(abstraction) ساختارdatabase شما ازائه نمی دهد. اینجاست که یک لایه دسترسی مجزا می تواند مفید واقع شود. شما می توانید لایه دسترسی داده دا از راههای مختلف پیاده سازی کنید، اما در این مقاله، توجه ما معطوف به Data Object ها می باشد. مفهوم Data Object برگرفته از الگوهای طراحی به خوبی مستند شده( very well-documented design patterns) به نام Data Access Object و الگوهای شیء انتقال(Transfer Object) است. این الگوها می توانند بسیار پیچیده باشند،اما با کمی تفکر می توانیم به راحتی از ایده ها و اهداف پایه ای آنها در php5 استفاده کنیم.
*یک شیء داده(Data Object) چیست؟
همانطور که ذکر شد، ایده Data Object برگرفته از یک الگوی طراحی است. اگر نگاهی به الگوهای طراحی کنید، متوجه می شوید که تقریبا اغلب آنها بر مبنای شیءگرایی (object orientation)هستند. در این جا می خواهیم از مدل شی ای جدید php5 استفاده گسترده ای داشته باشیم. همچنین برای مثالهای خود از MySQL استفاده می کنیم. در اصل،هرData Object یک کلاس کدنویسی شده است که یک table را در database شما به طور مستقیم مشخص می کند. برای هر table یک کلاس خاص می نویسیم. کلاس،شامل متغیرهای عضو(مطابق با فیلدهای جدول) و مجموعه ای از توابع یا متدها(حداقل برای انجام ۴ عمل اصلی ذکرشده)می باشد. فرض کنید یک جدول ساده برای نگهداری مشخصات کاربر داریم:
userId INT
firstName VARCHAR(30)
lastName VARCHAR(40)
email VARCHAR(100)
برای این جدول کلاسی تعریف می کنیم که شامل متغیرهای عضو مطابق با فیلدهای جدول باشد.
بهتر است که برای Data Object خود یک پیشوند بگذاریم(مثل DO_)تا آن را با کلاسهای هم نام دیگر اشتباه نگیریم. (این یک الگوی رایج در php برای شبیه سازی namespae ها می باشد)
class DO_User {
public $userId;
public $firstName;
public $lastName;
public $email;
}
مثال بالا یک سطر ساده از جدول را نشان می دهد.
اگر یک شیء Do_user را نمونه سازی(instantiate) کنیم،می توانیم یک سطر از داده ها را نگهداری کنیم. حالا چطور اطلاعات را از database واکشی کرده و در این شیء ذخیره کنیم؟ برای این کار یک متد جدید به نام ()get به کلاس خود اضافه می کنیم تا از database برای یک کاربر خاص Query بگیریم.
ما از userID(کلید اولیه) هر کاربر به عنوان پارامتر استفاده می کنیم:
class DO_User {
public $userId;
public $firstName;
public $lastName;
public $email;

// This function will perform a select on the table looking for
// a specific userId.
public function get($userId)
{
$sql = 'SELECT * FROM User WHERE userId='
. mysql_escape_string($userId);
$rs = mysql_query($sql);
$row = mysql_fetch_array($rs);

$this->userId = $row['userId'];
$this->firstName = $row['firstName'];
$this->lastName = $row['lastName'];
$this->email = $row['email']
}
حالا با استفاده از این Data Object می توانیم با database خود تعامل داشته باشیم. هیچ نیازی با استفاده از SQL نیست. مثال زیر اطلاعات مربوط به یک کاربر را دریافت و در Web Browser نمایش می دهد:
<?php
include_once('class-DO_User.php');
$user = new DO_User();

// We'll use a literal integer here,
// but this could come from anywhere,
// such as $_POST or $_GET
$user->get(5);

?>
<html>
<head>
<title>User Info</title>
</head>
<body>
<p>Here is the user info:</p>
<table border="1">
<tr>
<td>User ID</td>
<td><?=$user->userId?></td>
</tr>
<tr>
<td>First Name</td>
<td><?=$user->firstName?></td>
</tr>
<tr>
<td>Last Name</td>
<td><?=$user->lastName?></td>
</tr>
<tr>
<td>Email</td>
<td><?=$user->email?></td>
</tr>
</table>
</body>
</html>
همانطور که مشاهده می کنید استفاده از یک Data Object بسیار ساده است. تابع ()get ای که اضافه کردیم یک Query ساده را انجام می دهد و یک کلید اولیه مشخص(userID ) جستجو می کند.
توجه کنید که چون از فیلد با کلید اولیه استفاده کردیم، تنها یک رکورد از داده ها را دریافت می کنیم و مقادیر آنها را در متغیرهای عضو کلاس قرار می دهیم. در قسمت های بعدی در مورد دریافت چند سطر از رکوردها نیز بحث خواهیم کرد.
علي خليلي
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 33 ، ديروز : 3 ، مجموع : 1151


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND PDFLIB
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND PDFLIB, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 16
ساخت ٿايلهای PDF در PHP
در این مقاله به معرفی یکی از قابلیت های PHP ، که ساخت فایلهای PDF می باشد،می پردازیم.PDF مخفف Portable Document Format می باشد که توسط شرکت Adobe عرضه شده است.ساخت اسناد PDF توسط کتابخانه PDFlib انجام می شود. برای استفاده از extension مربوط به PDFlib باید به فایل PHP.INI رفته و آن را فعال کنید.(این کار با برداشتن سمیکالن ';' از ابتدای آن انجام می شود. توجه کنید که مسیر مربوط به extension ها را در PHP.INI درست وارد کرده باشید ! ).
ساخت یک سند PDF در چهار مرحله انجام می شود:
  • ساخت یک Handle برای کار با سند
  • تعیین فونت ها و رنگ های سند
  • انجام عملیات نوشتن و رسم بر روی Handle با استفاده از توابع از پیش تعریف شده
  • ذخیره سند نهایی
حالا مرحله به مرحله به ساخت یک سند PDF ساده می پردازیم.
در مرحله اول باید یک Handle برای سند خود درست کنیم که این کار توسط تابع ()pdf_new انجام می شود:
$pdf = pdf_new();
برای انجام عملیات مختلف بر روی سند،از این Handle استفاده خواهیم کرد.
بعد از این کار،باید نام فایل PDF خود را تعیین کنیم که این کار توسط تابع ()pdf_open_file انجام می شود:
pdf_open_file($pdf, "HelloWorld.pdf");
وقتی فایل جدید را ساختید،می توانید داخل آن به ساخت صفحات PDF بپردازید:
// start a new page (A4)
pdf_begin_page($pdf, 595, 842);
با استفاده از تابع ()pdf_begin_page اندازه صفحات را مشخص می کنیم.واحد اندازه ها در اینجا Points می باشد که هر Point برابر ۱.۷۲ اینچ می باشد. برعکس این تابع، تابع ()pdf_end_page می باشد که بعد ازتمام شدن کار نوشتن صفحات،آنها را می بندد.
در مرحله دوم برای نوشتن در صفحات ابتدا نوع فونت مورد نظر را انتخاب می کنیم.این کار توسط تابع ()pdf_find_font انجام می شود.این تابع ۳ پارامتر دارد که اولی نوع فونت را مشخص می کند،دومی encoding مورد استفاده را معلوم می کند و سومی ،یک متغیر Boolean می باشد که مشخص می کند که آیا فونت در سند مربوطه ضمیمه شود یا خیر.بعد از این کار با استفاده از تابع ()pdf_setfont و مشخص کردن اندازه فونت، از فونت استفاده می کنیم :
$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 10);
در مرحله سوم،حالا که فونت مشخص شد، با به کارگیری تابع ()pdf_show_xy و دادن مختصات و متن مورد نظر،آن رادر صفحه نمایش می دهیم:
pdf_show_xy($pdf, "Hello,World!",50, 750);
pdf_show_xy($pdf, "This is My first PDF document!", 50,730);
بعد از این که کار نوشتن در صفحه تمام شد، با استفاده از تابع()pdf_end_page صفحه را می بندیم:
pdf_end_page($pdf);
در مرحله چهارم، سند نهایی را با استفاده از تابع ()pdf_close ذخیره می کنیم:
pdf_close($pdf);
به همین راحتی یک سند بسیار ساده PDF ساختیم. توابع کتابخانه ای بسیار زیادی وجود دارند که اجازه انجام عملیات مختلف روی یک سند PDF را به ما می دهند.بهتر است برای کسب اطلاعات بیشتر،سری به اینجا بزنید.
<?php
// create handle for new PDF document
$pdf = pdf_new();
// open a file
pdf_open_file($pdf, "HelloWorld.pdf");
// start a new page (A4)
pdf_begin_page($pdf, 595, 842);
// get and use a font object
$arial = pdf_findfont($pdf, "Arial", "host", 1); pdf_setfont($pdf, $arial, 20);
// print text
pdf_show_xy($pdf, "Hello,World!",50, 750);
pdf_show_xy($pdf, "This is My first PDF document!", 50,730);
// end page
pdf_end_page($pdf);
// close and save file
pdf_close($pdf);
?>
علي خليلي
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 34 ، ديروز : 3 ، مجموع : 1152


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND MYSQL DATA BASE
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND MYSQL DATA BASE, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 24
نمايش ۵ مراجعه کننده آخر سايت
در این قسمت به ساخت برنامه ای برای نمایش مراجعه کننده آخر سایت می پردازیم. با استفاده از php و MySQL نوشتن این برنامه بسیار ساده است. قبل از هر کاری باید یک Table ساده درست کنیم تا لینک های ورودی را در آن ذخیره کنیم. ساختار Table ما به صورت زیر است:
<!-- create the following table in phpmyadmin -->
CREATE TABLE referers (
id INT (10) not null AUTO_INCREMENT,
site VARCHAR (255),
time INT (10),
PRIMARY KEY (id)
);
حالا به نوشتن اصل برنامه می پردازیم .ادیتور خود را باز کرده، کد زیر را در آن وارد کنید وآن را با نام refs.php ذخیره کنید:
<<?php

$db_host = "localhost";
$db_username = "username";
$db_password = "password";
$db_name = "database_name";

$ref = $_SERVER['HTTP_REFERER'];
$domain = explode("www.", $_SERVER['SERVER_NAME']);

mysql_connect($db_host,$db_username,$db_password) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());

if ($ref != "")
{
if (!eregi($domain[1], $ref))
{

$time = time();

$addref = "INSERT INTO referers (site, time) VALUES ('$ref', '$time')";
mysql_query($addref);
}
}

function show_refs()
{
$getref = "SELECT * FROM referers ORDER BY time DESC LIMIT 5";
$reflist = mysql_query($getref);

echo "Last 5 Referers:
\n";

while($r=mysql_fetch_array($reflist))
{
$site = $r['site'];

echo "$site
\n ";
}
}

?>
تحلیل کد:محور اصلی این برنامه،استفاده از متغیر $_SERVER['HTTP_REFERER'] می باشد.
این متغیر، آدرس سایتی را که کاربر از طریق آن وارد سایت ما شده است را،در بر دارد. نکته ای که در برنامه باید رعایت شود،مساله کاربران خودی( کاربرانی که در حال گردش در سایت ما می باشند) است. با استفاده از متغیر $_SERVER['SERVER_NAME'] و انجام یک مقایسه ساده،از نمایش آدرس وب سایت خود جلوگیری می کنیم. تابع explode برای جداسازی از یک رشته استفاده می شود، پارامتر اول تابع به عنوان جدا کننده(seperator) می باشد.نتیجه به عنوان یک آرایه از رشته های جدا شده برگردانده می شود. بقیه برنامه،یک INSERT ساده و یک SELECT با محدودیت 5 رکورد می باشد.
برای استفاده از برنامه،ابتدا باید آن را به اول صفحه مورد نظر خود ضمیمه کنید:
 // add this to the top of your homepage

<?  include("refs.php");  ?>
سپس تابع show_refs را در محل مناسب برای نمایش ،فراخوانی کنید. مانند كدي كه در زير آمده است .
برنامه تمام شد،به همین راحتی! بهتر است که به فکر افزودن امکانات بیشتری به برنامه خود باشید.مثلا یک برنامه ساده برای آمارگیری بنویسید تا با شمردن تعداد لینک های ورودی،شما را از بیشترین مراجعه کنندگان آگاه سازد. یا با به کارگیری متغیرهای Server اطلاعات بیشتری از کاربران خود،کسب کنید.در زیر دو متغیر مهم و کاربردی دیگر معرفی شده اند:
$_SERVER['REMOTE_ADDR'] :The IP address from which the user is viewing the current page.

$_SERVER['HTTP_USER_AGENT']:header from the current request, if there is one. This is a string denoting the user agent being which is accessing the page. A typical example is: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Among other things, you can use this value with get_browser() to tailor your page's output to the capabilities of the user agent.
 //then where you want to show the list use:

<? show_refs(); ?>
علي خليلي
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 35 ، ديروز : 3 ، مجموع : 1153


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND XML
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND XML, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 17
PHP 5 و XML ( بخش 3 )
در بخش سوم اين سلسله مقالات، می خواهم در مورد XPath صحبت کنم. روش ديگری که برای بازيابی يک المنت خاص از درخت DOM وجود دارد استفاده از زبان پرس و جوی XPath می باشد که خوشبختانه توسط توسعه SimpleXML پشتيبانی می شود. XPath زبانی برای آدرس دهی اجزای يک سند XML است که توسط کنسرسيوم وب جهانی( W3C ) به تصويب رسيده است.
اين زبان يک سند XML را مانند يک سيستم فايل در نظر می گيرد که هر المنت می توانند نقش فايل يا دايرکتوری را بازی کنند و همانطور که برای دستيابی يا اجرای يک فايل مسير آن را در سیستم فایل مشخص می کنيم، برای دسترسی به يک المنت هم به شيوه ای مشابه عمل می کنيم.
همچنين به کمک XPath می توان يک المنت خاص در سند XML را بدون توجه به مکان آن جستجو کرد. در تکه کد زير از طريق اين زبان به محتويات متنی دومین المنت a دسترسی خواهيم داشت؛ نکته ای که مد نظر بايد قرار داد اين است که در XPath بر خلاف آرایه های PHP، شمارش المنتها از عدد یک شروع می شود نه صفر.
<?php
$s = 'OneTwo';
$r = simplexml_load_string($s);
echo array_pop($r->xpath("//a[2]/text()"));
?>
خروجی متد ()xpath آرايه ای از المنتهایی است که با مسير داده شده مطابقت دارند و در صورتی که هيچ موردی يافت نشود، مقدار False برگردانده می شود.
هر المنت يا عنصر آرايه، يک آبجکت بوده که حاوی مقادير المنت تطبیق داده شده از سند XML است.
در مثال بالا مقدار "Two" چاپ می شود. جستجو به دنبال المنتی که خصیصه ( Attribute ) آن دارای مقدار معینی است هم همانطور که در تکه کد پایین مشاهده می کنید به سادگی امکان پذیر است.
SimpleXML با بهره گیری از تسهیلاتی که کتابخانه libxml2 در اختیار گذاشته، در سند XML به دنبال المنت(های) a ای می گردد که دارای خصیصه id بوده و مقدار این خصیصه برابر با ۳ باشد.
دقت داشته باشید که وقتی از زبان پرس و جوی XPath برای جستجو در سند XML استفاده می کنید، بخصوص اسناد بزرگ، این عمل با کندی صورت می پذیرد.
بنابراین اگر از مکان داده های خود در سند XML اطلاع دارید بهتر است همانطور که در مثالهای بالا بررسی شد به طور دستی مسیر را مشخص کنید.
<?php
$s = 'OneTwo';
$r = simplexml_load_string($s);
echo array_pop($r->xpath("//a[@id=3]"));
?>
جدا از امکان بازيابی داده ها از اسناد XML، توسعه SimpleXML امکان تغيير و اصلاح اسناد موجود را نيز می دهد.
لکن اين تغيير تنها بر روی المنتهای موجود در سند قابل انجام است و نمی توان المنت جديدی را به سند افزود.
فرآيند اصلاح داده ها نيز بسيار ساده است و تمام کاری که بايد بکنيد اينست که مقدار عددی يا رشته کاراکتری جديد را به Property(مقدار المنت) يا کليد آرايه(خصیصه (Attribute)) مورد نظر نسبت دهيد.
در آخر سند اصلاح شده را می توان در خروجی چاپ کرد و يا در فايلی ذخيره کرد.
<?php
$s = 'OneTwo';
$r = simplexml_load_string($s);
$r->b->a[0]['id'] = 5; // modify attribute of 1st element
$r->b->a[1] = "Three"; // modify value of 2nd element
echo $r->asXML(); // print modified XML
?>
نيما شايانٿر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 36 ، ديروز : 3 ، مجموع : 1154


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND XML
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND XML, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 14
PHP 5 و XML ( بخش 2 )
همانطور که در مطلب قبل مشاهده کرديد، پياده سازی اين روش تفسير اسناد XML به سادگی صورت نمی پذيرد و به همين دليل توسعه گران معدودی هستند که واقعا به SAX علاقه دارند و اکثرا تا صحبت از تفسير اسناد XML در يک پروژه می شود، آنها به دنبال راه های آلترناتيوی برای فرار از XML هستند.
متاسفانه در PHP 4 راه ديگر تفسير XML - توسعه DOM - تا همين چند وقت پيش دارای مشکلات عديده ای بود که همين امر موجب میشد که DOM نتواند جايگزين مناسبی برای XML/SAX باشد.
علاوه بر اين در SAX چون کار تفسير کاملا بر عهده کدهای PHP بود (از طریق توابعی که برای هر رویداد می نوشتیم) بنابراين سرعت عمل PHP کم می شد زيرا برخورد با هر تگ داخل سند XML مستلزم فراخوانی سه تابع است که هر يک بر اساس منطق تعيين شده، اطلاعاتی را جمع آوری می کنند.
بنابراين با وجود چنين مشکلاتی، تعجب آور نيست که توسعه گران برای بهبود فرآيند تفسير در PHP 5 همت گماشته اند.
SimpleXML:
تلاقی سادگی و کاربرد يکی از توسعه هايی که برای تفسير آسان و سريع اسناد XML طراحی شده، SimpleXML است. اين توسعه با تکيه بر امکانات جديد شی گرای PHP 5 فرآيند تفسير اسناد XML را تا حد امکان ساده کرده است.
بر خلاف توسعه XML اين توسعه از DOM (که مخفف Document Object Model است) برای تفسير اسناد بهره می برد.
اين بدان معناست که جهت پردازش یک سند می بایست تمام محتویات سند دریافت شود و تنها در این صورت است که یک درخت DOM که نشاندهنده ساختار سند است در حافظه شکل می گیرد.
اين عمل برای اسناد کوچکی که حافظه زیادی نمی خواهند، تقريبا سريع است؛ حتی اگر اين سند روی يک سرويس دهنده دوردست(Remote) باشد. لکن وقتی با سند XML بزرگی سروکار داريم که حجم آن بالغ بر چندين مگابايت است، اين عمل به دليل حافظه گزاف مورد نياز، به کندی صورت می پذيرد. خوشبختانه، افرادی که با چنين فايلهای XML حجيمی سروکار دارند، زياد نيستند و در بيشتر موارد، چنين محدوديتی قابل قبول است. تفسير يک سند XML با استفاده از SimpleXML از اين ساده تر نمی شود.
همانطور در که تکه کد پايين مشاهده می کنيد، اين عمل تنها با فراخوانی يک تابع صورت می پذيرد که فقط يک پارامتر ورودی که حاوی محتويات سند XML است می پذيرد. اگر محتویات سند XML در يک فايل بصورت Local يا Remote ذخيره شده باشد از تابع simplexml_load_file و اگر داخل يک متغير رشته کاراکتری باشد از تابع simplexml_load_string استفاده می کنيم.
<?php
// Create XML object from a file
$d1 = simplexml_load_file("my_xml_file.xml");
// Create XML object from a string
$d2 = simplexml_load_string("World");
?>
مقدار برگشتی توابع ()*_simplexml_load يک آبجکت می باشد که حاوی داده های موردنظر است. به داده های اين آبجکت که هر فيلد XML در يک Property يا خصيصه جداگانه با نام منتاظر ذخيره شده، مانند ساير آبجکتها در PHP دسترسی خواهيم داشت. Attributeها يا خصايص هر تگ XML هم کليدهای آرايه فيلد XMLای می شوند که به ‌آن تعلق دارند؛ به تکد کد پايين دقت کنيد، همه چيز روشن است.
<?php
$s = 'Value 1Value 2';
$x = simplexml_load_string($s); // parse XML string
echo $x->a; // will print value of field, "Value 1"
echo $x->b['id']; // will print attribute of b field, "1"
?>
در مواقعی که چندین نمونه از يک فيلد موجود باشد، می توان از ساختار foreach برای پيمايش المنتهای XML بهره برد؛ مثل حالتی که عناصر يک آرايه را پيمايش می کنيم.
هر داده داخل حلقه foreach به چشم يک آبجکت نگريسته می شود که باز هم به طرق قبلی می توان به مقادير تگ و نام و مقدار خصايص آن دسترسی داشت. ذکر این نکته ضروری ایست که با انکه ساختار foreach را در این زمینه بکار بردیم ولی نمی توان اکثر توابع آرایه ای PHP را بر روی آبجکتهایی که توسط SimpleXML ساخته می شود به کار برد.
در تکه کد پایین، از امکان دیگر شی گرایی PHP 5 استفاده شده است. از آنجا که متغیر a$ در واقع یک آبجکت است، SimpleXML با بکارگیری متد خاص ()toString__ امکان «چاپ» آبجکت و مقدار داده ذخیره شده در آن را فراهم می کند.
در PHP 4 این عمل، متن بیهوده ای چاپ می کرد که کاملا برخلاف خروجی مورد انتظار بود. بنابراین یکی از دلایلی که SimpleXML را نمی توان به PHP 4 انتقال داد ناتوانی Zend Engine 1 در پشتیبانی از عملکرد مورد نیاز این توسعه است.
<?php
$s = 'Value 1Value 2';
foreach (simplexml_load_string($s) as $a) {
echo $a; // print value of element
}
?>
امکان جذاب ديگر SimpleXML قابليت دسترسی به المنت خاصی از سند XML بدون نياز به پيمايش می باشد.
در اصل، این کار به چند طریق قابل انجام است. ساده ترین و سریعترین روش، استفاده از ارجاعات آبجکتی غیرمستقیم برای آسان نمودن دسترسی به المنت موردنظر از درخت DOM است.
نمونه کد زیر موجب چاپ مقدار دومین المنت a که خود داخل المنت c و c فرزندی از المنت b است، می شود.
<?php
$s = 'Value 1Value 2';
$r = simplexml_load_string($s);
echo $r->b->c->a[1];
?>
SimpleXML به قدر کافی هوشيار است که چنين منظوری را برآورده سازد؛ وقتی کليد آرايه مقدار عددی باشد، در واقع من خواستار دسترسی به يک المنت خاص هستم و نه يک خصيصه المنت.
نکته ديگری که بايد مدنظر داشته باشيد اينست که اگر بخواهید به المنتی که در سند موجود نيست، دسترسی بيابيد، SimpleXML هيچ پيغام هشدارگونه ای چاپ نمی کند. خروجی شما تنها مقدار تهی يا NULL خواهد بود.
بنابراين، به منظور بررسی وجود يک المنت، بايد از ساختار()empty استفاده کنيد. حتی اگر به هر دليلی، مقدار المنت، خالی (Blank) باشد، در نهايت با يک آبجکت طرف حساب هستيد به اين معنا که ساختار ()empty مقدار False را برميگرداند که گواه از موجود بودن المنتی است. در قسمت سوم مقاله به بررسی XPath می پردازم.
نيما شايانفر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 37 ، ديروز : 3 ، مجموع : 1155


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND XML
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND XML, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 22
PHP 5 و XML ( بخش 1 )
اکثر افرادی که در مورد PHP 5 صحبت می کنند، بيشتر تمايل دارند به پيشرفتهايی که در زمينه کار با آبجکتها حاصل شده است تمرکز کنند. البته Object Model جديد PHP 5 يقينا يکی از مولفه های شايان توجه اين نسخه است، اما پيشرفت مهم ديگری که اغلب مورد غفلت قرار می گيرد، تغييرات عمده ای است که در PHP برای کار با اسناد XML در نظر گرفته شده است.
هدف اين سلسله مقالات آشنا کردن شما با تغییرات نحوه کار با XML در PHP 5 است. در پايان اين مقالات مشاهده خواهيد کرد که تفسير اسناد XML با PHP 5 به راحتی خوردن يک ليوان آب است! يکی از تغييراتی که در زمينه کار با XML در PHP 5 صورت گرفته است، تغيير در کتابخانه ای است که در حال حاضر برای تفسير اسناد XML استفاده می شود. در PHP 4 از کتابخانه Expat برای تفسير اسناد XML استفاده می شد.
برای اطمينان از فعال بودن توسعه XML، اين کتابخانه به همراه PHP عرضه می شد؛ از این رو همواره شرط لازم و کافی برای استفاده ار کتابخانه برقرار بود. پروانه بهره برداری این کتابخانه به گونه ای بود که به PHP اجازه چنین کاری را بدهد.
از طرفی انتشار نسخه های جدید این کتابخانه مدتها طول می کشید پس همواره مطمئن بودیم آخرین نسخه پایدار کتابخانه همراه PHP بود. از آنجا که چنین امکانی مطلوب بود، منجر به بروز مشکلاتی نيز شد.
نخست‌ اينکه کتابخانه های همراه، در زمان کامپايل به PHP معرفی می شدند؛ به اين علت زمانيکه می خواستيد کتابخانه را بروزرسانی کنيد می بايست PHP را دوباره کامپايل می کرديد. از اين گذشته اگر PHP به صورت ماجول استفاده می شد - برای مثال با آپاچی - این کتابخانه ممکن بود با گونه دیگری از کتابخنه Expatای که با نرم افزار دیگری نظیر سرویس دهنده آپاچی ۲ کار می کرد در تعارض باشد.
البته می توان PHP را با مشخص کردن یک کتابخانه Expat خارجی از طریق گزینه with-expat-dir- کامپایل کرد، اما افراد کمی پیدا می شوند که بدین طریق عمل کنند. مشکل ديگر Expat، کند بودن چرخه توسعه آن بود.
بدين معنی که قابليت های جديد ندرتا به آن افزوده می شد و بدين ترتيب عملکردهای آن تا حدودی محدود می شد. توسعه های ديگر XML نظير DOMXML از کتابخانه ديگری به نام Libxml2 برای تفسير اسناد XML بهره می برد.
در نهایت چیزی که PHP با آن مواجه بود دو کتابخانه برای تفسیر XML بود که به سبکهای مختلفی، عملکرد يکديگر را تکرار می کردند.
Libxml2 سرآمد کتابخانه های XML :
با انتشار قریب الوقوع PHP 5 به منظور يکی سازی مفسرهای XML، تمام توسعه هايی که با XML کار می کردند بر پايه کتابخانه Libxml2 بنا نهاده شدند. اين کتابخانه یک مفسر XML است که با زبان C نوشته شده و در اصل جعبه ابزاری است که برای پروژه Gnome توسعه يافت.
اين کتابخانه، يک مفسر XML بسيار رايج و پراستفاده است که تقريبا روی هر توزيع NIX* امروزی به صورت پيش فرض نصب شده است. از آنجا که اين کتابخانه با جديت و پشتکار بيشتری توسعه يافته، از تمام ويژگيهای جديد و پيشرفته XML نظير Xpath، صحت سنجی DTD، پشتيبانی از HTML و. . . حمايت می کند. بعد از صحبتهای زيادی که در ليست توسعه PHP انجام شد، تصميم بر اين شد که اين کتابخانه را همراه PHP قرار ندهند زيرا حجم آن تقريبا به پای حجم خود بسته PHP می رسيد و به دليل انتشارات مکرر PHP، همراه سازی آن، به مشکل عديده ای منجر می شد. هر چند اين کتابخانه تقريبا روی همه سيستم ها يافت می شود(برای نسخه های Win32 فایل libxml2. dll در کنار PHP گنجانده شده است) به اين علت بروزرسانی(Upgrade) آن به سادگی صورت گرفته و نياز به کامپايل مجدد PHP نمی باشد چون اين کتابخانه بطور Dynamic لينک می شود. تصادفا Libxml2 از شیوه ای نظیر Expat هم پشتیبانی می کند و از نظر رفتار و عملکرد تقریبا مشابه کتابخانه Expat اصلی است. این بدین معناست که در اکثر مواقع تفاوتی در رفتار توسعه XML مبتنی بر Expat در PHP 4 با توسعه متناظر آن در PHP 5 نمی باشد. سرعت کتابخانه جدید در تفسیر اسناد XML به طرز قابل توجهی بالاست بویژه وقتی درخت DOM در حافظه ساخته می شود. وقتی از SAX استفاده می کنید، در برخی موارد کتابخانه Expat اصلی سریعتر عمل می کند.
به همین علت است، هنوز افرادی که تنها از SAX استفاده می کنند می توانند توسعه XML در PHP 5 را با مشخص کردن دستورالعمل پیکربندی with-libexpat-dir- کامپایل کنند. به خاطر داشته باشید از آنجا که خود کتابخانه Expat دیگر همراه PHP نیست، اگر خواستید راه ذکر شده را طی کنید می بایست از نصب جداگانه آن در سیستم، قبل از پیکربندی و کامپایل PHP اطمینان حاصل کنید. شيوه قديمی:
قديمی ترين شيوه تفسير اسناد XML، استفاده از خانواده توابع *_xml_parser می باشد که تغییر زیادی بین PHP 4 و ۵ نکرده اند. تنها تغییرات ممکنه، به دلیل ناسازگاری اندک کتابخانه های زیربنایی تفسیر XML است. این متدولوژی یا روش تفسیر از Simple API for XML یا به اختصار SAX بهره می برد که یک واسط رویدادگراست؛ (Event-Driven) شیوه کار SAX بر اینست که ابتدا اداره کننده های رویدادی (Event-Handler) را برای آن تعریف می کنیم و سپس مفسر در برخورد با رویداد یا Eventای، اداره کننده مناسب را صدا زده و داده ها را به آن ارسال می کند. یک رویداد می تواند مواجهه با یک تگ XML، بروز خطا، برخورد با ارجاعی به یک موجودیت خارجی‌(External Entity) و یا پردازش مشخصات DTD باشد. مزیت SAX در این است که نیازی به بارگذاری تمام سند در حافظه نیست؛ این امتیاز بویژه برای فایلهای XML بزرگ مطلوب است که اگر در حافظه بارگذاری شود، حافظه گزافی را می طلبد. مزیت دیگر آن، پشتیبانی از شیوه جریانی داده هاست،(Stream) یعنی قابلیت تقسیر XML به محض ورود داده ها از یک منبع خارجی نظیر HTTP Feed را میسر می سازد به جای اینکه صبر کنیم تا تمام سند دریافت شود و بعد به مرحله تفسیر قدم بگذاریم. آز آنجا که مفسر با تمام سند کار نمی کند، بنابراین قادر به بهینه سازی تفسیر سند، که مستلزم دانستن ساختار سند است، نمی باشد. بدین معنا که برای اسناد XML کوچک که حافظه زیادی هم نمی خواهند، استفاده از DOM برای ساخت درخت DOM در حافظه به مراتب سریعتر است. برای اداره کردن رویدادهای SAX در PHP می بایست تابع یا متدی از یک کلاس، برای مدیریت آن رویداد تعیین شود. حداقل باید توابعی برای مدیریت سه رویداد (آغاز تگ، پایان تگ و داده تگ) مشخص کنید.
<?php
$x = xml_parser_create(); // initialize XML parser
// specify tag start and end handlers
xml_set_element_handler($x,'tag_start_func', 'tag_end_func');
// this function will handle the data inside the tag
xml_set_character_data_handler($x, 'tag_data_func');
xml_parse($x, "xml_file.xml"); // parse document
xml_parser_free($x); // free memory
?>
فرآيند تفسير هيچ داده ای را به عنوان خروجی برنمی گرداند؛ کار جمع آوری داده و برگشت آن به طريقی بر عهده توابع اداره کننده رويداد نهاده شده است.
اين توابع می بايست بدانند که در حال حاضر روی کدام تگ عمليات را انجام می دهند و کدام رويداد در حال پردازش می باشد و با استفاده از متغيرهای سراسری يا خصيصه های کلاس در حين تفسير سند، داده ها را ذخيره کنيم.
<?php
function tag_start_func($x, $tag, $attr) {
global $tmp_data;

$tmp_data = array($tag, $attr, '');
}
?>
در تکه کد بالا، تابع tag_start_func يک آرايه موقتی ايجاد می کند و نام تگ فعلی و خصيصه های(Attributes) آن را در صورت وجود در اين آرايه ذخيره می کند.
همانطور که می بينيد ما سومين عنصر آرايه را هم با مقدار رشته کاراکتر پوچ مقداردهی می کنيم تا در آينده، داده تگ (Tag Data) را در آن ذخيره کنيم. اگر تگ دارای خصيصه ای باشد، اين خصايص در متغير attr$ ذخيره می شود.
اين خصايص در يک آرايه قرار می گيرند و هر خصیصه، یک عنصر این آرایه را تشکیل می دهد به اين ترتيب که نام خصيصه کليد آن عنصر است. اگر هيچ خصيصه ای موجود نباشد، در اين متغير مقدار NULL قرار می گيرد.
تکه کد زير تابعی است که در هنگام برخورد مفسر با داده های محصور در تگ فراخوانی می شود. کار اين تابع بسيار ساده است و تنها هر داده ای را که مفسر به عنوان آرگومان ورودی به آن ارسال می کند را به عنصر دوم (اندیس آرایه از صفر شروع می شود) آرايه موقتی ما اضافه می کند.
اگر دقت کنيد با استفاده از عملگر =. داده های جديد به داده های قبلی اضافه می شوند زيرا اگر داده های تگ بسيار بزرگ باشد يا حاوی کاراکترهای خط جديد(New Line) باشند، در چند بخش به تابع ارسال می شوند. از اين رو، استفاده از عملگر فوق به ما اطمينان می بخشد که تمام داده های تگ بازيابی می شوند بجای اينکه تنها بخش آخر داده ها را داشته باشيم.
<?php
function tag_data_func($x, $data) {
global $tmp_data;
$tmp_data[2] .= $data;
}
?>
حال اگر به پايان تگ برخورد کنيم، مفسر تابع tag_end_func را فراخوانی می کند. در اين تابع، داده ها را داخل متغير سراسری final$ قرار می دهيم که اين متغير در انتهای فرآيند تفسير، حاوی داده های سند XML ماست.
نام تگ بعنوان کليد آرايه final$ استفاده شده که هر عنصر آرايه خود به آرايه ای از مقادير اشاره دارد، زيرا يک تگ ممکن است بيش از يک بار در سند XML بکار رود. مقدار ذخيره شده برای هر تگ، شامل تمام خصيصه های تگ و مقادير هر يک است. به محض اينکه داده ها را در متغير final$ ذخيره کرديم ديگر به آرايه موقتی tmp_data$ نيازی نداريم و آن را نابود می کنيم و بدين ترتيب مقادير فعلی آن با داده های تگ بعدی در تعارض نيست.
<?php
function tag_end_func($x, $tag) {
global $final, $tmp_data;
if (isset($final[$tag])) {
$final[$tag] = array();
}
$final[$tag][] = array('val' => $tmp_data[1],
'attr' => $tmp_data[2]);
unset($tmp_data);
}
?>
قسمت اول اين سلسله مقالات را مطالعه فرموديد در قسمتهای بعدی در مورد SimpleXML، XPath، DOM، XSL و ساخت سرويس دهنده و سرويس گيرنده SOAP مقالاتی خواهيد خواند و همانند مقاله امروز، تکه کدهای ساده اما کاربردی متناسب با هر موضوع را در لابلای متن مقاله خواهید یافت.
نيما شايانفر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 29 ، ديروز : 3 ، مجموع : 1147


﻿ DHCGRAPHIC ARTICLES ABOUT : MYSQL AND MYISAM ENGIN
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : MYSQL AND MYISAM ENGIN, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
تابع RAND
موتور ذخيره سازی MyISAM

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 26
موتور ذخيره سازی MyISAM
برای کنترل عملياتهای همزمان، MyISAM از مکانيزم قفل گذاری در سطح جدول استفاده می کند. وقت بيشتری برای توضيح اين مکانيزم می گذارم چون اغلب درک درستی از آن نيست. در حقيقت، سه نوع قفل در MyISAM وجود دارد.
قفل READ LOCAL:
اين نوع قفل، توسط پرس و جوهایی(Query) که تنها به خواندن نياز دارند، استفاده می شود، يعنی صرفا عمليات به هنگام سازی(Update) را بلاک می کند تا از تغيير داده ها به هنگام خواندن جلوگيری کند. ساير پرس و جوهای خواندن و درج های همزمان هم قابل انجام هستند؛ اگر يک دستور INSERT بتواند داده جديدی را به آخر فايل MYD. اضافه کند به جای اينکه فضاهای خالی حاصل از عمليات DELETE را پر کند، ديگر منتظر قفل از نوع READ LOCAL نمی ماند.
READ يا قفلهای اشتراکی:
اين نوع قفل گذاری، عملياتهای به هنگام سازی و تمام عملياتهای درج را مسدود می کند. اين نوع قفل عموما وقتی استفاده می شود که يک ابزار خارجی نظیر myisamcheck نيازمند دسترسی مستقيم به فایل يک جدول است.
WRITE يا قفلهای انحصاری:
اين نوع قفل توسط عملياتهای حذف(DELETE) و به هنگام سازی(UPDATE) و گاهی اوقات هم دستورات درج(INSERT) استفاده می شود. ساير دسترسی ها به جدول مربوطه اعم از خواندن و نوشتن، مسدود می شوند تا به هنگام سازی ها دچار اختلال نشوند.
منظور ما از Blocking يا مسدود سازی اينست که يک Thread يا اتصال ممکن است منتظر کامل شدن عملیاتهای Thread ديگر و رهاسازی قفلی که روی جدول گذاشته است، بماند. در حاليکه اين امکان وجود دارد که به صورت دستی قفلها را قرار دهیم، خود سرويس دهنده MySQL بطور ضمنی، قفل گذاری های لازمه را برای اجرای هر دستوری که اجرا می کند، اعمال می کند.
MyISAM از Transaction يا تراکنش پشتيبانی نمی کند. در نتيجه، اين قالب ذخيره سازی در مد AUTOCOMMIT=1 عمل می کند که هر دستور، اتميک است. دقت داشته باشيد، MyISAM به ساختارهايی نظير INSERT . . . SELECT و CREATE TABLE . . . SELECT به چشم يک دستور نگاه می کند. MyISAM با معماری ساده ای که دارد، کارايی بالاتر و سرريز(Overhead) کمتری را از لحاظ حافظه و بکارگيری ديسک دارد.
تهيه نسخه پشتیبان از اين جداول توسط ابزار mysqldump که ساختار و داده ها را به صورت دستورات SQL ذخیره می کند و برنامه mysqlhotcopy(نسخه باینری از فایلهای جدول) امکان پذير است. هر دوی اينها روی جدولی که قرار است از آن نسخه پشتيبان گرفته شود، قفل اشتراکی می گذارند.
در صورت وجود رابطه بين جداول، قفل اشتراکی ديگری برای اطمينان از صحت اطلاعاتی نسخه پشتيبان مورد نياز است. در هنگام بروز مشکل، جداول با قالب سطر ثابت خيلی آسان تر قابل بازيابی هستند؛ زيرا ابزارهای بازيابی، دقيقا طول هر رکورد و نقطه شروع آن را می دانند. در صورت خرابی سيستم، عموما شاخص ها تحت تاثير قرار می گيرند که می توان دوباره اين شاخصها را ساخت.
البته برای جدوال بزرگ، دوباره سازی شاخصها، زمان قابل توجهی را به خود اختصاص می دهد. MyISAM MERGE يک جدول MyISAM MERGE، خودش، هيچ داده ای ندارد، اما در عوض به چندين جدول MyISAM یکسان اشاره می کند. هر پرس و جو از جدول ادغامی، ممکن است روی یک یا چند جدول دیگر اعمال شود که از لحاظ کارکرد مشابه UNION VIEW است. برای نمونه، ادغام کردن جداول وقتی استفاده می شود که بخواهيم داده های دوره ای را که در چندين جدول ذخيره می شود را تحليل کنيم. ذخيره چنین داده هایی در يک جدول هم از لحاظ اندازه و هم جنبه مدیریتی و پشتیبان گیری غير عملی است.
CREATE TABLE sales200401(
saleid INT UNSIGNED NOT NULL PRIMARY KEY ,
dt DATETIME,
INDEX ( dt )
) ENGINE = MYISAM ;# MySQL returned an empty result set (i.e. zero rows).
CREATE TABLE sales200402(
saleid INT UNSIGNED NOT NULL PRIMARY KEY ,
dt DATETIME,
INDEX ( dt )
) ENGINE = MYISAM ;# MySQL returned an empty result set (i.e. zero rows).
CREATE TABLE sales2004(
saleid INT UNSIGNED NOT NULL PRIMARY KEY ,
dt DATETIME,
INDEX ( dt )
) ENGINE = MERGE UNION = ( sales200401, sales200402 ) ;# MySQL returned an empty result set (i.e. zero rows).
در قسمت بالا به بررسی ISAM که يک Storage Engine يا Database Engine يا راحتر بگیم Table Type منسوخ شده ای که در MySQL به کار گرفته می شود، صحبت کرديم. امروز به بررسی موتور ذخيره سازی MyISAM که اکثر جداول ما لااقل قبل از نسخه ۴، بر پايه همين نوع است می پردازم.
MyISAM فرمت توسعه یافته ISAM است که از نسخه ۳. ۲۳ به بعد MySQL، موتور ذخيره سازی پيش فرض هم می باشد؛ يعنی با ساخت يک جدول با استفاده از دستور CREATE TABLE، اگر در آخر، نوع جدول مشخص نشود، خود MySQL نوع MyISAM را بر می گزيند.
علاوه بر تدارک امکانات شاخص گذاری و مدیریت فیلدهای اطلاعاتی که در ISAM وجود نداشت، MyISAM از مکانیزم قفل گذاری در سطح جدول بهره می برد که امکان عملیاتهای خواندن و نوشتن همزمان را میسر می سازد. نکته ای که در رابطه با جداول از اين نوع وجود دارد، اينست که هر چند وقت يکبار باید با اجرای فرمان OPTIMIZE TABLE، فضای هرزه يا به قولی گپ(GAP) حاصله از انجام عملیاتهای بروز رسانی را بازیابی کرد.
MyISAM با تکیه بر اينکه عملياتهای خواندن را سريعتر انجام می دهد، شايد مهمترين دليل محبوبيت و مقبول عام قرار گرفتن MySQL در حيطه فعاليتهای توسعه وب است. البته هنگاميکه بدانيم، اکثر قريب به اتفاق عملياتهای ما، خواندن است. کمی تخصصی تر وارد قضيه بشيم. من هميشه دوست دارم که معماری و به قول معروف Infrastructure تکنولوژی که با اون سرکار دارم رو بدونم، چون در درک بهتر اون فن آوری کمک شايانی می کند. با موتور ذخيره سازی MyISAM با ايجاد هر بانک اطلاعاتی(Database) يک دايرکتوری هم در شاخه Data در ريشه پوشه MySQL ساخته می شود. (با توجه به تنظیمات پیش فرض؛ چون می شود داده ها را در محل دیگری غیر از این شاخه ذخیره کرد. ) و هر جدول در مجموعه جداگانه ای از فايلها ذخيره می شود.
برای هر جدول، یک فایل با پسوند frm. که حاوی اطلاعاتی در مورد ساختار جدول است - این فایل در واقع شمای داخلی دستور CREATE TABLE هست.
- فایل با پسوند MYD.
که دارای داده های خام جدول است و فایل دیگر با پسوند MYI. حاوی شاخصهایی است که به جدول مذکور متعلق است و برخی اطلاعات آماری مربوط به جدول را هم در خود دارد.
فایل داده صرفا دارای داده های سطر است که حداقل Overhead را دارد. Symlink کردن يک دايرکتوری بانک اطلاعاتی، شيوه رايجی است و برای ذخيره سازی داده ها در ديسک يا پارتيشن ديگری صورت می گيرد که حال اين کار هم به دليل پرفورمنس يا کارآيی بيشتر و هم ايمنی و امنيت انجام می گيرد.
از نسخه ۴. ۰ به بعد Symlink کردن هر جدول هم به طور کامل پشتيبانی می شود. در صورتی که ساختار جدول ما، دارای ستونهای از نوع TEXT ،VARCHAR و BLOB نباشد، از قالب سطر(Row Format) ثابت MyISAM استفاده می شود. در چنين حالتی هر فيلد دارای طول ثابتی بوده و متعاقب آن طول سطرها هم يکسان می باشد.
اين بدين معنی است که با حذف یک سطر، می توان سطر ديگری با همان طول را جايگزين آن کرد و بدين ترتيب سطرها ديگر تکه تکه(Fragment) نمی شوند. در ضمن، موتور ذخيره سازی برای دسترسی به يک سطر، از شماره سطر استفاده می کند؛ که اين باعث کوچکتر شدن شاخصها شده و کارايی کل سيستم را بهبود بخشيده و به طور موثرتری از حافظه استفاده می کند. البته شماره سطری که من ذکر کردم، کاملا يه چيز داخلی هست، چون همانطور که می دانيد در جداول بانک اطلاعاتی رابطه ای، سطرها ترتيب خاصی ندارند.
حال اگر هنگام تعريف جدول از ستونهای با نوع TEXT، VARCHAR و BLOB استفاده شود، از قالب سطر پويای MyISAM استفاده می شود. در واقع، اين مورد تنها روی ستونهای از نوع VARCHAR اعمال می شود، آن هم در صورتيکه حداکثر مقدار طول را بزرگتر از ۳ انتخاب کنيم.
(VARCHAR(x); x>3) در اين قالب ذخيره سازی، سطرها فضاهای مختلفی اشغال می کنند. فضاهای آزادی که با پاک کردن سطرها یا بروز کردن آنها حاصل می شود، قابل استفاده مجدد است. با اينکه اين قالب از نظر مقدار فضای ذخيره سازی بسيار کارآمد است، تکه تکه شدن سطرها ممکن است رخ دهد که با گذشت زمان باعث کاهش پرفورمنس و کارآيی بانک می شود؛ که همونطور که گفتيم با استفاده از دستور OPTIMIZE TABLE هر چند وقت يکبار، عملی مشابه Defragmentation ای که تو ويندوز انجام می دهيم، روی سطرهای جدول هم اعمال می شود.
داده های از نوع TEXT و BLOB جدا از ساير داده های سطر ذخيره می شود، بنابراين برای بروز رسانی ساير داده ها، سرویس دهنده بانک اطلاعاتی لازم نیست بین داده های غالبا حجیم این ستونها حرکت کند. قالب سطر فشرده MyISAM فقط خواندنی است که با بهره گیری از ابزار myisampack می توان هر جدول معمولی را تا ۷۵ درصد فشرده کرد. در اين روش داده های سطر به طور مستقيم قابل دسترسی است و هر رديف به طور منحصر به فرد با الگوريتمهای فشرده سازی خاص هر نوع ستون(Column Type)، فشرده می شود.
برای بایگانی کردن اسناد فروش، لاگها و هر داده ای که به صورت دوره ای جمع آوری می شود، این شیوه ذخیره سازی مناسب است. در ضمن اين روش برای داده های فقط خواندنی که از يک منبع خارجی وارد سيستم می شوند هم کارآمد است. سطرهای جدول فشرده شده را می توان روی سی دی يا هر رسانه ذخيره سازی فقط خواندنی، ذخيره کرده و به همين صورت توسط سرويس دهنده MySQL از آنها استفاده کرد. در حال حاضر، موتور ذخیره سازی MyISAM از سه نوع روش شاخص گذاری استفاده می کند که این روشها RTREE ،BTREE و FULLTEXT می باشد. معمولا از شاخصهای BTREE استفاده می شود.
شاخصهای RTREE هم مخصوص شاخص گذاری داده های جغرافیایی(GIS) است. شاخصهای FULLTEX هم برای پیاده سازی سیستم جستجوی Full Text لحاظ شده اند. (این سیستم جستجو اجازه جستجوی منطقی را فراهم می کند. ) در مطلب بعدی در مورد مکانيزم قفل گذاری، نحوه پشتيبان گيری و جدول MyISAM MERGE صحبت می کنم.
نيما شايانفر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 27 ، ديروز : 3 ، مجموع : 1145


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND MYSQLI FUNCTION
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND MYSQLI FUNCTION, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 34
آشنايي با ماژول Mysqli در PHP 5
يكي از ويژگي هاي جالبي كه در php 5 ارائه شده است يك Extension جديد به نام ext/mysqli مي باشد كه همانند ext/mysql سابق به عنوان يك رابط براي كار با پايگاه داده mysql از آن استفاده مي شود. برای برنامه های کاربردی در مقیاس بزرگتر ماژول جدید MySQLi به کاربران اجازه می دهد که از ویژگی های جدید MySQL 4.1 در برنامه های خود استفاده کنند که بازدهی بیشتری را نسبت به نسخه های قبلی MySQL فراهم می کند.
از اواسط دهه 90 تاكنون ext/mysql نقش خود را به عنوان يك پل رابط ميان PHP و MySQL به خوبي ايفا كرده است. اگرچه ext/mysql نقاط ضعف كمي داشته است ولي توانسته است كه همگام با تغييرات PHP و MySQL پيش رود.
اما وقتي كه PHP 5 و MySQL 4.1 پا به عرصه نهادند ext/mysql نشان داد كه براي سازگاري با پيشرفت هاي زياد اين دو نسخه، فقدان هايي را دارد.يكي از اين نفاط ضعف مربوط به برقراري ارتباط پايدار و دايمي با پايگاه داده (mysql_pconnect()) بود. ويژگي ها و امكاناتي توسط MySQL ارائه شد كه ext/mysql هنوز قادر به سازگاري با آنها نبود. براي رفع اين مشكلات Georg Richter شروع به ساخت يك extension جديد براي PHP 5 كرد كه با ويژگي هاي ارائه شده در MySQL 4.1 و نسخه هاي بالاتر همگام باشد.
مهمترين ويژگي هاي ارائه شده توسط ext/mysqli ارائه يك واسط روالي (Procedural Interface) كه بسيار شبيه واسط ext/mysql مي باشد ارائه يك واسط شي گرا(Object-Oriented Interface) كه در مقايسه با واسط روالي از انعطاف پذيري بيشتري برخوردار است و كار با آن راحت تر است(با توجه به امكانات شي گرايي در PHP 5) پشتيباني از پروتكل باينري جديد MySQL كه در نسخه 4.1 عرضه شد.(اين پروتكل جديد در مقايسه با قبلي از بازدهي بيشتري برخوردار است و امكانات گسترده اي همچون Prepared Statement را پشتيباني مي كند) .
پشتيباني از تمام ويژگي هاي مجموعه كتابخانه كاربري MySQL C كه شامل قابليت تنظيم گزينه هاي پيشرفته اتصال از طريق mysqli_init() و توابع وابسته مي شود.
به دو دليل توصيه مي شود كه به اين ماژول جديد switch كنيد و از اين به بعد با اين ماژول كار كنيد:
  • سرعت بـيشتر
  • امنيت بيشتر
حرف i در انتهاي ext/mysqli به معناي ,improved, interface, ingenious, incompatible incomplete مي باشد.
نحوه كار با ext/mysqli *قبل از كدنويسي توجه داشته باشيد كه براي استفاده از اين ماژول، شما بايد PHP 5 و MySQL 4.1 را نصب كرده باشيد.كدهاي اين مقاله از پايگاه داده World استفاده مي كنند كه به صورت رايگان از آدرس http://www.mysql.com/documentation/index.html قابل دريافت مي باشد.
برنامه ساده زير ابتدا به پايگاه داده متصل مي شود و با ارسال يك پرس و جو(Query) به Server ، دريافت نتايج و نمايش آنها و سپس بستن اتصال به كار خود خاتمه مي دهد:
<?php

/* Connect to a MySQL server */
$link = mysqli_connect (
'localhost', /* The host to connect to */
'user', /* The user to connect as */
'password', /* The password to use */
'world'); /* The default database to query */

if (!$link) {
printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());
exit;
}

/* Send a query to the server */
if ($result = mysqli_query($link, 'SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) {

print(\"Very large cities are:\n");

/* Fetch the results of the query */
while( $row = mysqli_fetch_assoc($result) ){
printf(\"%s (%s)\n", $row['Name'], $row['Population']);
}

/* Destroy the result set and free the memory used for it */
mysqli_free_result($result);
}

/* Close the connection */
mysqli_close($link);
?>
بعد از اجراي اسكريپت بالا بايد خروجي را به صورت زير مشاهده كنيد:
Very large cities are:

Mumbai (Bombay) (10500000)
Seoul (9981619)
São Paulo (9968485)
Shanghai (9696300)
Jakarta (9604900)
همانطور كه در كد مشاهده مي كنيد در اينجا هيچ تفاوت خاصي بين ext/mysql و ext/mysqli مشاهده نمي شود جز افزوده شدن حرف i به آخر توابع!
حال اگر از واسط شي گرا استفاده كنيد و برنامه بالا را مجددا بازنويسي كنيد به انعطاف پذيري بيشتر و راحتي كار با اين واسط جديد پي مي بريد:
<?php

/* Connect to a MySQL server */
$mysqli = new mysqli('localhost', 'user', 'password', 'world');

if (mysqli_connect_errno()) {
printf("Can't connect to MySQL Server. Errorcode: %s\n", mysqli_connect_error());
exit;
}

/* Send a query to the server */
if ($result = $mysqli->query('SELECT Name, Population FROM City ORDER BY Population DESC LIMIT 5')) {

print(\"Very large cities are:\n");

/* Fetch the results of the query */
while( $row = $result->fetch_assoc() ){
printf(\"%s (%s)\n", $row['Name'], $row['Population']);
}

/* Destroy the result set and free the memory used for it */
$result->close();
}

/* Close the connection */
$mysqli->close();
?>
همانطور كه مشاهده مي كنيد اطلاعات مربوط به اتصال در اشياي $mysqli و $result ثبت مي شود و براي اجراي دستورات نيازي به مشخص كردن اين اطلاعات نداريم. همچنين وقتي در بين نتايج پرس و جو به صورت سطر به سطر توسط تابع fetch_assoc() حركت مي كنيم ديگر نيازي به ساخت يك handle براي كار با ركوردها نداريم.
استفاده از ويژگي Prepared Statements در پرس و جوها
مزيت Prepared Statements اين است كه به كاربران امكان ساخت query هاي بسيار ايمن تر، با بازدهي بيشتر و راحت تر را مي دهد. به دو صورت مي توان از اين ويژگي بهره برد:
bound parameter prepared statements و bound result prepared statements bound parameter prepared statements اين امكان را به ما مي دهد كه براي Query هاي خود قالب (Template) درست كنيم و آنها را در Server ذخيره كنيم. وقتي نياز به اجراي Query داشتيم اطلاعات لازم را براي پر كردن Query به Server مي فرستيم و سپس Query كامل را اجرا مي كنيم. اين كار دو مزيت دارد:
اول اينكه زمان كمتري صرف تجزيه و تحليل Query در هنگام اجرا مي شود. و دوم اينكه از حملات تزريقي SQL(SQL injection attacks) جلوگيري مي شود.
در زير يك مثال كامل از به كارگيري اين ويژگي را در پرس و جوها مشاهده مي كنيد:
<?php
$mysqli = new mysqli('localhost', 'user', 'password', 'world');

/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

$stmt = $mysqli->prepare(\"INSERT INTO CountryLanguage VALUES (?, ?, ?, ?)");
$stmt->bind_param('sssd', $code, $language, $official, $percent);

$code = 'DEU';
$language = 'Bavarian';
$official = "F";
$percent = 11.2;

/* execute prepared statement */
$stmt->execute();

printf(\"%d Row inserted.\n", $stmt->affected_rows);

/* close statement and connection */
$stmt->close();

/* Clean up table CountryLanguage */
$mysqli->query(\"DELETE FROM CountryLanguage WHERE Language='Bavarian'");
printf(\"%d Row deleted.\n", $mysqli->affected_rows);

/* close connection */
$mysqli->close();
?>
توجه كنيد كه تابع bind_param() يك رشته كوتاه را به عنوان اولين پارامتر خود مي گيرد. اين پارامتر String Format مي باشد و نوع متغيرهاي ارسالي را مشخص مي كند. در مثال بالا sssd مشخص مي كند كه $code و $language و $official از نوع String مي باشند و $percent از نوع float يا Double مي باشد. مشخص كردن اين نوع داده ها باعث مي شود كه ext/mysqli بداند كه چگونه داده ها را براي فرستادن كدگذاري كند و اين كار باعث بازدهي بالا مي شود.جدول زير نوع داده هاي قابل قبول را نشان مي دهد:
BIND TYPE
COLUMN TYPE

i
All INT types

d
DOUBLE and FLOAT

b
BLOBs

s
All other types
اگر با ASP.NET هم آشنايي داريد، در زير مي توانيد نحوه به كارگيري اين ويژگي را درASP.NET هم مشاهده كنيد و با PHP 5 مقايسه كنيد:
Dim cnn As New SQLConnection(\"server=LOCALHOST;User id=SA;password=;database=Northwind\")
Dim InsertCommand As SqlCommand = New SqlCommand()
InsertCommand.Connection = cnn
Dim sql As String
sql = \"INSERT INTO categories (categoryName) VALUES (@newCatName)\"

InsertCommand.CommandText = sql

InsertCommand.Parameters.Add(\"@newCatName\", SqlDbType.NVarChar, 250).Value = \"Category Name\"
Bound result prepared statements اين امكان را مي دهد كه مقدار فيلدهاي دريافتي از پايگاه داده را به متغير هاي دلخواه نسبت دهيم(چيزي شبيه تابع list كه عناصر يك آرايه را به متغير هاي دلخواه نسبت مي دهد).
مثال زير استفاده از اين ويژگي را نشان مي دهد:
<?php
$mysqli = new mysqli("localhost", "user", "password", "world");

if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country WHERE Code LIKE ? LIMIT 5")) {

$stmt->bind_param("s", $code);
$code = "C%";

$stmt->execute();

/* bind variables to prepared statement */
$stmt->bind_result($col1, $col2);

/* fetch values */
while ($stmt->fetch()) {
printf("%s %s\n", $col1, $col2);
}

/* close statement */
$stmt->close();
}
/* close connection */
$mysqli->close();

?>
iran php
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 30 ، ديروز : 3 ، مجموع : 1148


﻿ DHCGRAPHIC ARTICLES ABOUT : RAND FUNCTION IN MYSQL DATA BASE
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : RAND FUNCTION IN MYSQL DATA BASE, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
تابع RAND
موتور ذخيره سازی MyISAM

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 25
تابع RAND
فرض کنید مجموعه ای از مقادير را در اختيار داريم و می خواهيم از ميان اين مقادير، يک يا چند فقره به صورت تصادفی انتخاب کنيم. تا اينجا صورت کلی مساله رو داشته باشيد. مسلما راه حلها و روشهای زيادی به ذهتون خطور می کنه. اما من صورت مساله را کمی اختصاصی تر تعریف می کنم. می خواهم از ميان چندين رکورد موجود در يک جدول بانک اطلاعاتی، يک يا چندين رکورد را به تصادف انتخاب کنم و نمی خواهم که تمام رکوردها را به حافظه منتقل کرده و از بين آنها و با کمک توابع زبان اسکريپتی به هدف خود برسم. ميخواهم اين کار را با خود MySQL انجام دهم یعنی در سمت خود بانک اطلاعاتی؛ چاره چيست؟! MySQL تابعی دارد به نام ()RAND که وقتی فراخوانده شود، عددی تصادفی بين ۰ تا ۱ را توليد می کند. امتحان کنيد:
mysql> SELECT RAND(), RAND(), RAND();
اگر اين تابع را با يک آرگومان عدد صحيح فراخوانی کنيم، ()RAND از اين مقدار جهت Seed کردن مولد عدد تصادفی بهره می برد. هرگاه شما مولد را با مقدار معینی Seed کنيد، تابع ()RAND رشته ای تکراری از اعداد توليد می کند.
mysql> SELECT RAND(1);
mysql> SELECT RAND(20000000);
mysql> SELECT RAND(1);
mysql> SELECT RAND(20000000);
اگر بخواهيد اين تابع را با مقادير تصادفی Seed کنيد، مقدار Seed، می بايست از منبعی بی نظم باشد. چنين منبعی می تواند Timestamp فعلی يا شناسه اتصال(Connection Identifier) باشد که به تنهايی يا تواما مورد استفاده قرار می گيرند. پس خواهيم داشت:
mysql> SELECT RAND(UNIX_TIMESTAMP()) AS rand1,
-> RAND(CONNECTION_ID()) AS rand2,
-> RAND(UNIX_TIMESTAMP()+CONNECTION_ID())
-> AS rand3;
حال که با اساس کار اين تابع آشنا شديم، دوباره به صورت مساله نگاهی مياندازيم؛ از اين تابع می توان برای تصادفی کردن ترتيب سطرها استفاده کرد. ميشه گفت که اين آرايش تصادفی سطرها با افزودن عبارت ORDER BY حاصل می شود. اينکه مکانيزم و نحوه کار دقيقا به چه صورت هست از حوصله اين مقاله خارج است(بر عهده شما) اما به اختصار، توضيحی در اين باره می دهم. وقتی شما از ()ORDER BY RAND استفاده می کنيد، MySQL مجموعه از اعداد تصادفی را به مجموعه نتايج شما نسبت می دهد و نتايج را برحسب اين اعداد تصادفی، مرتب می کند. با اين تفاسير، اگر بخواهيم از ميان چندين رکورد، يک رکورد را انتخاب کنيم، ابتدا از عبارتی که ذکر شد، استفاده می کنيم و سپس در انتهای کوئری با نوشتن LIMIT1 مشخص می کنيم که تنها يک فقره مورد نياز است. (اولین رکورد بعد از مرتب سازی تصادفی رکوردها) برای مثال برای شبيه سازی پرتاب يک تاس، می توان يک جدول با نام die ايجاد کرد که دارای سطرهايی با مقادير صحيح ۱ تا ۶ است. سپس با استفاده از دستور زير تاس را پرتاب می کنيم!
mysql> SELECT n FROM die ORDER BY RAND() -> LIMIT 1;
همانطور که می بينيد، انتخاب با جايگزينی صورت می پذيرد (تو ریاضی چی بهش میگن؟! ).
يعنی وقتی مهره ای از کيسه بيرون می آوريم، دوباره آن را داخل کيسه می گذاريم. پس می توان دوباره آن را انتخاب کرد.
بنابراين در گزينش های بعدی احتمال اين وجود دارد که همان مهره را انتخاب کنيم. از ديگر نمونه هايی که در آنها انتخاب با جايگزينی وجود دارد:
** انتخاب يک آگهی تبليغاتی(Banner Ad) به منظور نمايش در يک صفحه وب(سیستم تبلیغات چرخشی سایت TopWeblogs.
com را با همین روش درست کرده بودم) ** انتخاب يک نقل قول از بزرگان و نمايش آن(بالای وبلاگ محسن را نگاه کنید) ** انتخاب يک تصوير از گالری عکس و نمايش آن ** و ساير کاربردهايی از اين دست نمونه ای از انتخاب بدون جایگزینی:
** قرعه کشی و انتخاب یک کاربر خوش شانش! اگر بخواهيم، بيش از يک فقره انتخاب کنيم چه؟ کافيست آرگومان LIMIT را به عدد دلخواه تغيير دهيم. مثلا LIMIT 5 روش ديگر وقتی است که بدانيم ستونی از جدولمان دارای مقادير پشت سر هم و مسلسلی از ۱ تا n است.
در چنين شرايطی، بجای اينکه عمليات مرتب سازی را روی کل جدول انجام دهيم، ابتدا یک مقدار تصادفی انتخاب کرده(البته در همان گستره ۱ تا n) و سپس سطر متناظر با آن مقدار را انتخاب می کنيم.
( این روش در صورتی که این ستون دارای شاخص باشد و تعداد رکوردهای(سطرها) جدول زیاد باشد، بسیار سریعتر از ORDER BY RAND() LIMIT 1 عمل می کند. )
mysql> SET $id = FLOOR(RAND()*n)+1;
mysql> SELECT ... FROM tbl_name WHERE id = $id;
* بعلاوه ۱ در سطر اول پرس و جوی بالا، برای اينست که متغير داخلی id@ برابر صفر نشود.
* پرس و جوهای(Query) فوق را می توانيد مستقيما در ترمينال مبتنی بر فرمان MySQL وارد کنيد.
برای اين کار در ويندوز با تایپ cmd در پنجره Run، وارد محيط داس شويد و از دايرکتوری bin واقع در ريشه دايرکتوری MySQL فرمان زير را اجرا کنيد:
(اگر کاربر root دارای رمزعبور باشد به آخر دستور زير پارامتر p- را اضافه می کنيد. )
D:\mysql\bin>mysql -u root
* تا حال حتما به فوايد اين روش پی برده ايد، خيلی ها هنوز کل مجموعه نتايج را خوانده و در يک آرايه می ريزند و از بين کليدهای آن آرايه، مقداری را به تصادف انتخاب می کنند.
نيما شايانفر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 10 ، ديروز : 3 ، مجموع : 1128


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND EROR HANDLING
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND EROR HANDLING, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 30
بررسی خطاها در ASP.NET - قسمت اول
هنگامی که در یک صفحه ASP.NET خطایی رخ می دهد، ASP.NET اطلاعاتی راجع به خطا به Client می فرستد. در اين مقاله به نحوه راه اندازی و اعلام خطاها به کاربر،نمایش یا عدم نمایش خطاها برای کاربران، سفارشی کردن صفحات خطا و نوشتن خطاها در Event Log می پردازيم.

• سفارشی کردن(Customize) صفحات خطا
• بررسی خطاها بوسیله برنامه نویسی
• نوشتن در گزارش رویداد(Event Log)
• خلاصه بخش

هنگامی که در یک صفحه خطایی رخ می دهد، ASP.NET اطلاعاتی راجع به خطا به Client می فرستد. خطاها به چهار دسته تقسیم می شوند:

• خطاهای وضعیتی(Configuration errors): هنگامی رخ می دهد که ترکیب و یا ساختار فایل Web.config در سلسله مراتب ترکیبی(Configuration) نادرست باشد.
• خطاهای مفسر(Parser errors): هنگامی رخ می دهد که اصطلاحا Syntax يا ترکیب ASP.NET در یک صفحه ناقص باشد.
• خطاهای زمان کامپایل(Compilation errors): هنگامی رخ می دهد که جملات(Statements) در یک صفحه در زبان(Language) تعیین شده، نادرست باشد.
• خطاهای زمان اجرا(Run-time errors): هنگام اجرای یک صفحه رخ می دهد، و این خطاها در زمان کامپایل قابل شناسایی نیستند.
در حالت پیش فرض، اطلاعاتی که جهت خطای زمان اجرا نمایش داده می شود بصورت فراخوانی از پشته هستند (زنجیره ای از فراخوانی های رویداد که وقفه را راه اندازی می کند). هنگامی که مد اشکالزدایی فعال باشد، ASP.NET شماره خطی از کد که خطای زمان اجرا در آن واقع شده نشان می دهد. مد اشکالزدایی یک ابزار مفید جهت اشکالزدایی برنامه است. مد اشکالزدایی در سطح صفحه توسط کد زیر فعال می شود:
<% @ Page Debug = "true" %>
مد اشکالزدایی در سطح برنامه نیز با استفاده از فایل Web.config در شاخه اصلی بصورتی که در مثال نشان داده شده فعال می شود.
<configuration>
<system.web>
<compilation debug = "true"/>
</system.web>
</configuration>
نکته:
اجرا در مد اشکالزدایی موجب کاهش محسوس کارایی برنامه می شود. قبل از انتشار نسخه پایانی برنامه خود حتما این مد را غیرفعال کنید.
سفارشی کردن صفحات خطا :
بسته به شرایط محیط نیاز به بررسی خطاهای برنامه به روشهای مختلفی می باشد.برای مثال، زمان برنامه نويسی(Development) احتمالا نیاز به مشاهده جزئیات صفحات خطا که ASP.NET جهت راهنمایی شناسایی و تصحیح مشکلات فراهم کرده، می باشد. اما اگر برنامه در مرحله استفاده توسط کاربر باشد احتمالا نیاز به نمایش جزئیات خطا برای کاربر نیست که می توان از قابلیت عدم نمایش خطا برای clientهای محلی(Local) در ASP.NET استفاده کرد (clientهای موجود در همان کامپیوتر سرور). برای راهنمایی clientها می توان هنگام بروز خطا آنها را به صفحه خطایی هدایت کرد.
مثال سفارشی کردن خطاها در فایل Web.config برای برنامه ها:
<configuration>
<system.web>
<customErrors defaultRedirect = "genericerror.htm" mode = "RemoteOnly" />
</system.web>
</configuration>
توسط کد زیر clientهای محلی می توانند صفحه پیش فرض جزئیات خطا ASP.NET را ببینند اما clientهای دیگر(Remote) به صفحه سفارشی genericerror.htm هدایت می شوند. این صفحه میتواند یک صفحه aspx. نیز باشد.ASP.NET مسیر صفحه ای که خطا در آن رخ داده را به شکل یک آرگومان QueryString به صفحه خطا می فرستد. توجه شود که اگر اجرای صفحه خطا هم خطایی تولید کند یک صفحه خالی به client غیر محلی(Remote) ارسال می شود.
<%@ Page Language="C#" Description="Error page"%>

<html>
<head>
<title>Error page</title>
</head>

<body>
<h1>Error page</h1>
Error originated on: <%=Request.QueryString["ErrorPage"] %>
</body>
</html>
نکته :
تنها فایلهایی که در aspnet_isapi.dll در IIS نگاشته شده اند، اینگونه خطاها را ایجاد می کنند. فایلهایی که در aspnet_isapi.dll بکار نرفته اند، توسط ASP.NET انجام نمی شوند و خطای IIS ایجاد می کنند. برای اطلاعاتی راجع به وضعیت(Configuration) خطاهای سفارشی IIS به مستندات IIS مراجعه کنید.
در زیر وضعیت attributeها و مقادیر برچسب را تشریح می کند.

Attribute | توضیح
mode | نشاندهنده فعال یا غیر فعال بودن خطاهای سفارشی و یا نمایش و عدم نمایش آن برای کامپیوترهای راه دور( Remote ) می باشد. مقادیر: On ، Off ، RemoteOnly (پیش فرض) .
defaultRedirect | نشاندهنده آدرس پیش فرضی که جستجوگر باید هنگام بروز خطا به آن رجوع کند، می باشد.این خاصیت اختیاری است.

خاصیت Mode مشخص می کند که آیا خطاها برای clientهای محلی و یا clientهای راه دور و یا هر دو نمایش داده شوند. نتایج هر کدام از تنظیمات در زير شرح داده شده است.

Remote host request | Local host request | Mode
صفحه خطای سفارشی . | صفحه خطای سفارشی . | On
صفحه خطای ASP.NET . | صفحه خطای ASP.NET . | Off
صفحه خطای سفارشی. | صفحه خطای ASP.NET . | RemoteOnly
مثال زیر نشان می دهد چگونه ترکیب استفاده می شود.
[Web.config]
<configuration>
<system.web>
<customErrors defaultRedirect="genericerror.htm" mode="On"/>
</system.web>
</configuration>
['Genericeroor.htm']
<html>
<head>
<title>An Error Has Occured</title>
</head>
<body bgcolor = "beige">
<font face = "verdana">
<h4>We're Sorry...</h4>
An error has occured on the page you were requesting. If this problem persists, please contact the site administrator.
<p>
<hr>
</font>
</body>
</html>
[Custom1.aspx]
<html>

<script language="C#" runat="server">

void Error_500(Object sender, EventArgs e) {
String foo = null;
Response.Write(foo.ToString());
}

</script>

<body>
<form runat="server">
<h4><font face="verdana">Cause an Error to Occur...</font></h4>
<asp:button text="500 Server Error" OnClick="Error_500" width="150" runat="server"/><p>
</form>
</body>

</html>
علاوه بر هدایت به سمت صفحه عمومی برای همه خطاها، می توان برای کد خاصی از خطاها، صفحات خاصی را مشخص نمود. ترکیب از برچسب داخلی که کدهای HTTP را به صفحات خطای سفارشی مرتبط می کند، پشتیبانی می کند. برای مثال:
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="/genericerror.htm">
<error statusCode="500" redirect="/error/callsupport.htm"/>
<error statusCode="404" redirect="/error/notfound.aspx"/>
<error statusCode="403" redirect="/error/noaccess.aspx"/>
</customErrors>
</system.web>
</configuration>
جدول زیر attributeها و مقادیر برچسب را شرح می دهد.
Attribute توضیح :
StatusCode کد خطای HTTP، که صفحه خطای سفارشی باید آن را استفاده کند.مثال: 403 Forbidden، 404 Not Found، یا 500 Internal Server Error .
Redirect آدرسی که جستجوگر client در صورت بروز خطا باید به سمت آن هدایت شود.
مثال زیر نشان می دهد که چگونه از برچسب استفاده کنیم. توجه شود که مثال یک صفحه aspx را برای خطای "File Not Found"مشخص کرده است و آدرس صفحه مفقود شده ازطریق QueryString ارسال می شود.
[Custom2.aspx]
<html>

<script language="C#" runat="server">

void Error_404(Object sender, EventArgs e) {
Response.Redirect("nowhere.aspx");
}

void Error_500(Object sender, EventArgs e) {
String foo = null;
Response.Write(foo.ToString());
}

</script>

<body>
<form runat="server">
<h4><font face="verdana">Cause an Error to Occur...</font></h4>
<asp:button text="404 Not Found" OnClick="Error_404" width="150" runat="server"/><p>
<asp:button text="500 Server Error" OnClick="Error_500" width="150" runat="server"/><p>
</form>
</body>

</html>
[Notfound.aspx]
<%@ Page Language="C#" %>
<html>
<head>
<title>An Error Has Occured</title>
</head>
<body bgcolor="ccffcc">
<font face="verdana">
<h4>We could not locate the page you requested...</h4>
<% if ( Request.QueryString["aspxerrorpath"] != null ) { %>
<%=HttpUtility.HtmlEncode(Request.QueryString["aspxerrorpath"])%>
<% } %>
<p>
Perhaps you mis-typed the URL? Please try again, or visit our search page for help.
<p>
<hr>
</font>
</body>
</html>
نسرین قاسمپورملکی
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 26 ، ديروز : 3 ، مجموع : 1144


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND EROR HANDLING
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND EROR HANDLING, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 38
بررسی خطاها در ASP.NET - قسمت دوم
قسمت اول
بررسی خطاها بوسیله برنامه نویسی :
 خطاها را میتوان در هر دو سطح صفحه و برنامه توسط کد راه اندازی کرد. کلاس پایه Page دارای متد Page_Error است، که میتوان از خاصیت override آن در صفحات خود بهره برد. این متد هر زمان که اتفاق بی دلیلی در زمان اجرا رخ دهد، فراخوانی می شود.
<script language="C#" runat="server">

void Page_Error(Object source, EventArgs e) {
String message = "<font face=verdana color=red>"
+ "<h4>" + Request.Url.ToString() + "</h4>"
+ "<pre><font color='red'>"
+ Server.GetLastError().ToString() + "</pre>"
+ "</font>";

Response.Write(message);
}

</script>
مثال زیر متدPage_Error را نشان میدهد.
[error2.aspx]
<html>

<script language="C#" runat="server">

void Error_500(Object sender, EventArgs e) {
String foo = null;
Response.Write(foo.ToString());
}

void Page_Error(Object sender, EventArgs e) {
String message = "<font face=verdana color=red>"
+ "<h4>" + Request.Url.ToString() + "</h4>"
+ "<pre><font color='red'>" + Server.GetLastError().ToString() + "</pre>"
+ "</font>";

Response.Write(message);
Server.ClearError();
}

</script>

<body>
<form runat="server">
<h4><font face="verdana">Cause an Error to Occur...</font></h4>
<asp:button text="500 Server Error" OnClick="Error_500" width="150" runat="server"/><p>
</form>
</body>

</html>
می توان برخی اقدامات مفید ازقبیل ارسال یک ایمیل به مسئول سایت برای گفتن اینکه صفحه بدرستی اجرا نشده، انجام داد.ASP.NET مجموعه کلاسهایی در فضانام System.Web.Mail دقیقا به همین منظور داراست. برای فراخوانی این فضانام از دستور @Import در بالای صفحه خود به شکل زیر استفاده می کنیم:
<%@ Import Namespace="System.Web.Mail" %>
میتوان از اشیاء MailMessage و SmtpMail جهت ارسال برنامه وار ایمیل استفاده نمود.
MailMessage mail = new MailMessage();
mail.From = "automated@www.contoso.com";
mail.To = "administrator@www.contoso.com";
mail.Subject = "Site Error";
mail.Body = message;
mail.BodyFormat = MailFormat.Html;
SmtpMail.Send(mail);
مثال زیر نشان میدهد که چگونه ایمیلی در پاسخ به خطای صفحه ارسال می شود.
نکته :
این مثال در حقیقت تا زمانی که سرویس Mail SMTP بر روی سیستم فعال نشده باشد، ایمیلی ارسال نمی کند. برای اطلاعات بیشتر در رابطه با سرویس Mail SMTP، در مستندات IIS جستجو شود.
[error3.aspx]
<%@ Import Namespace="System.Web.Mail" %>

<html>

<script language="VB" runat="server">

Sub Error_500(sender As Object, e As EventArgs)
Dim foo As String = Nothing
Response.Write(foo.ToString())
End Sub

Sub Page_Error(Sender As Object, E As EventArgs)
Dim message As String = "<font face=verdana color=red>" _
& "<h4>" & Request.Url.ToString() & "</h4>" _
& "<pre><font color=red>" & Server.GetLastError().ToString() & "</pre>" _
& "</font>"

Response.Write(message)
Response.Write("An error has occured on this server, and the administrator of the site has been notified.")

Dim mail As New MailMessage
mail.From = "automated@www.contoso.com"
mail.To = "administrator@www.contoso.com"
mail.Subject = "Site Error"
mail.Body = message
mail.BodyFormat = MailFormat.Html
SmtpMail.Send(mail)

Server.ClearError()
End Sub

</script>

<body>
<form runat="server">
<h4><font face="verdana">Cause an Error to Occur...</font></h4>
<asp:button text="500 Server Error" OnClick="Error_500" width="150" runat="server"/><p>
</form>
</body>

</html>
علاوه بر راه اندازی خطاها در سطح صفحه، ممکن است نیاز به بررسی خطاها در سطح برنامه باشد. به همین منظور، از رویداد Application_Error در Global.asax استفاده می شود. این رویداد برای هر پیشامد غیرمنتظره ای در برنامه اجرا می شود.
void Application_Error(Object sender, EventArgs e) {
//...Do something here
}
نوشتن در گزارش رویداد (Event Log) :
فضانام System.Diagnostics کلاسهایی را جهت نوشتن گزارش رویداد ویندوز مهیا کرده است. برای استفاده از این فضانام در صفحات، در ابتدا باید فضانام به شکل زیر فراخوانی شود:
<%@ Import Namespace="System.Diagnostics"%>
کلاس EventLog گزارش را در خود ذخیره می کند. همچنین متدهای ایستایی برای بازیابی و یا ایجاد گزارش فراهم ساخته و می تواند جهت نوشتن گزارش ارسالی از طریق کد، معرفی شود. مثال زیر مراحل را طی متد Application_Error از Global.asax نشان می دهد. هرگاه وقفه غیرمنتظره ای در برنامه اتفاق بیافتد، یک ورودی شامل پیغام خطا و ردیابی پشته در گزارش برنامه ایجاد می شود.
void Application_Error(Object sender, EventArgs e) {

String Message = "\n\nURL:\n http://localhost/" + Request.Path
+ "\n\nMESSAGE:\n " + Server.GetLastError().Message
+ "\n\nSTACK TRACE:\n" + Server.GetLastError().StackTrace;

// Create event Log if it does not exist

String LogName = "Application";
if (!EventLog.SourceExists(LogName)) {
EventLog.CreateEventSource(LogName, LogName);
}

// Insert into event log
EventLog Log = new EventLog();
Log.Source = LogName;
Log.WriteEntry(Message, EventLogEntryType.Error);

}
کد کاملی برای مثال بالا در زیر موجود است. توجه شود که این کد به جهت جلوگیری از ورود به گزارش رویداد ویندوز سیستم شما غیرفعال شده و بنابراین نمی تواند اجرا شود. اگر مایل به مشاهده اجرای این کد باشید یک ریشه مجازی IIS که دربرگیرنده شاخه شامل این فایل است، ایجاد کنید.
[Global.asax]
<%@ Import Namespace="System.Diagnostics" %>

<script language="C#" runat="server">

void Application_Error(Object sender, EventArgs e) {

String Message = "\n\nURL:\n http://localhost/" + Request.Path
+ "\n\nMESSAGE:\n " + Server.GetLastError().Message
+ "\n\nSTACK TRACE:\n" + Server.GetLastError().StackTrace;

// Create Event Log if it does not exist

String LogName = "Application";
if (!EventLog.SourceExists(LogName)) {
EventLog.CreateEventSource(LogName, LogName);
}

// Insert into Event Log
EventLog Log = new EventLog();
Log.Source = LogName;
Log.WriteEntry(Message, EventLogEntryType.Error);

}
خلاصه :
 1. خطاها به چهار رسته تقسیم می شوند:خطاهای وضعیتی،خطاهای پارسر،خطاهای زمان کامپایل، و خطاهای زمان اجرا.
2. بطور پیش فرض، اطلاعاتی که برای خطای زمان اجرا نمایش داده می شوند،بصورت فراخوانی از پشته می باشد(زنجیره ای از فراخوانی های رویداد که وقفه را راه اندازی می کند). هنگامی که مد اشکالزدایی فعال باشد، ASP.NET شماره خطی از کد که خطای زمان اجرا در آن واقع شده نشان می دهد.
3. قابلیت تعیین نمایش یا عدم نمایش خطاها به clientهای محلی، clientهای راه دور و یا هر دو در ASP.NET وجود دارد. بطور پیش فرض، خطاها فقط برای clientهای محلی (clientهای موجود در همان کامپیوتر سرور ) نمایش داده می شوند. همچنین می توان برای خطاهایی که بروز می کند ،کاربر را به صفحه خطای سفارشی هدایت کرد.
4. علاوه بر هدایت به سمت صفحه عمومی برای همه خطاها، می توان برای کد خاصی از خطاها، صفحات خاصی را مشخص نمود. ترکیب از برچسب داخلی که کدهای HTTP را به صفحات خطای سفارشی مرتبط می کند،پشتیبانی می کند.
5. خطاها را میتوان در هر دو سطح صفحه و برنامه توسط کد راه اندازی کرد.کلاس پایه Pageدارای متد Page_Error است، که میتوان از خاصیت override آن در صفحات خود بهره برد.این متد هر زمان که اتفاق بی دلیلی در زمان اجرا رخ دهد،فراخوانی می شود.
6. فضانام System.Web.Mail کلاسهایی را جهت ارسال ایمیل از طریق برنامه در اختیار قرار می دهد که می تواند ابزار مفیدی جهت اعلام بروز خطا به مدیر برنامه باشد.
7. علاوه بر راه اندازی خطاها در سطح صفحه ، از رویداد Application_ErrorدرGlobal.asax برای بررسی خطاها در سطح برنامه استفاده می شود.این رویداد برای هر پیشامد غیرمنتظره ای در برنامه اجرا می شود.
8. فضانام System.Diagnosticsکلاسهایی را جهت نوشتن در گزارش رویداد ویندوز مهیا کرده است.
نسرین قاسمپورملکی
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 11 ، ديروز : 3 ، مجموع : 1129


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET - STRING FUNCTION IN C#
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET - STRING FUNCTION IN C#, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 31
کارکردن با رشته‌ها و متن‌ها در ASP.NET
اغلب متنهايی که کاربران يک سايت توسط فرم‌ها ارسال می‌کنند و يا اطلاعاتی که از يک بانک دريافت می‌شود، نياز به بررسی و يا اعمال تغييرات دارد. خوشبختانه ASP.NET مجموعه امکانات بسيار خوبی برای کارکردن با رشته‌ها ارائه نموده است. بعبارت ديگر با استفاده از کلاس String برای ذخيره متون در برنامه، امکانات زيادی را برای کار کردن با رشته‎های حرفی خواهيم داشت.
در مثال‌های زير سعی کرده‌ام مهمترين و پرمصرف‌ترين دستورات کار با رشته‌ها را معرفی کنم.
1) انتخاب قسمتی از متن (mid)
دستور mid بر اساس فرم زير قابل استفاده است :
A = متغير متنی يا يک رشته متن
B = شماره کارکتر شروع انتخاب
C = تعداد کارکتر انتخاب
Dim aString As String = "SomeString"
Dim bString As String
bString = Mid(aString, 3, 3) ' Returns "meS"
Response.Write(bString)
2) انتقال بخشی از يک متن به داخل يک متغير :
Substring بر اساس روش زير قابل استفاده می باشد :
A = شماره کارکتر شروع انتخاب
B = تعداد کارکتر انتخاب
Dim aString As String = "A String"
Dim bString As String
bString = aString.Substring(2, 6) ' Returns "String"
Response.Write(bString)
3) جمع نمودن چند رشته با يکديگر :
String.Concat می‌تواند چند رشته را در کنار هم قرار دهد و يا مجموع اطلاعات يک آرایه را با هم ادغام نمايد.
Dim myString As String
Dim aString(10) As String
Dim t As Integer
For t = 0 To 9
aString(t) = CStr(t)
Next t

myString = String.Concat(aString) ' Returns "0123456789"
Response.Write(myString)
4) ادغام رشته‌ها به همراه قرار دادن کارکتر جدا کننده :
String.Join اين امکان را فراهم می‌کند تا ضمن ادغام چند رشته، در بين اطلاعات کاراکتر جداکننده نيز قرار دهيم.
Dim shoppingItem(2) As String
Dim shoppingList As String
shoppingItem(0) = "Milk"
shoppingItem(1) = "Eggs"
shoppingItem(2) = "Bread"
shoppingList = String.Join(",", shoppingItem) 'Returns "Milk,Eggs,Bread"
Response.Write(shoppingList)
5) اضافه کردن متن جدید به يک رشته (Insert) :
برای اضافه کردن متن جدید به يک رشته کافی است از Insert به روش زير استفاده نماييم:
متغير رشته‌ای.Insert(A, B)
A = شماره کارکتری که اضافه شدن از آن شروع می‌شود
B = متنی که می‌خواهيم اضافه کنيم
Dim aString As String = "This is My Stng"
Dim myString As String
myString = aString.Insert(13, "ri") ' Returns "This is My String"
Response.Write(myString)
6) جدا نمودن يک رشته بر اساس يک کارکتر تکراری :
گاهی اوقات لازم است بر خلاف String.Join متن يک رشته را که به طور مثال با "،" به قطعات مشخص تقسيم شده است را از هم جدا نماييم. برای اين منظور همانند مثال زير عمل نماييد:
Dim shoppingList As String = "Milk,Eggs,Bread"
Dim shoppingItem(2) As String
shoppingItem = shoppingList.Split(","c)
Dim s As String
For Each s In shoppingItem
If s.Trim() <> "" Then
Response.Write(s & "<BR>")
End If
Next s
7) جایگزينی متن در رشته (Replace) :
هرگاه نياز به تعويض و جايگزينی يک متن در يک رشته داشته باشيم می‌توانيم از Replace همانند مثال استفاده کنيم:
Dim myString As String = "Shopping List"
Dim aString As String
aString = Replace(myString, "o", "i") ' Returns "Shipping List".
Response.Write(aString)
رسول هاجری
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 12 ، ديروز : 3 ، مجموع : 1130


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND .NET FRAMWORK 2.0
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND .NET FRAMWORK 2.0, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 57
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
نسل اول ASP.NET در قالب نسخه‎های 1.0 و 1.1 ارائه گشت. گذشت زمان و کسب تجربيات متعدد، پيدايش نيازهای جديد، ضعف های موجود و نيز به دليل ايجاد راه حل‎های تکراری ولی پرکاربرد توسط برنامه نويسان جهت حل برخی مسائل که همواره وقت زيادی را از آنها می گرفت، همگی سبب شدند تا مايکروسافت به فکر گسترش تکنولوژی NET. و ASP.NET به عنوان جزء مهمی از آن باشد. حاصل کار پيدايش نسخه بهتر شده دات نت و مهمتر از آن ASP.NET 2.0 جهت ارائه در سال 2005 بود.
مقدمه :
زبانهای کامپيوتری و چارچوبهای کاری با توجه به نيازهای روز طراحان سيستمهای نرم افزاری روز به روز تغييير کرده و گسترده تر می شوند. ASP.NET مهمترين راه حل مايکروسافت برای طراحان صفحات پويای وب نيز از اين قاعده مستثنی نيست. اين قابليت مهم تکنولوژی NET. که به اعتقاد بسياری از طراحان و کارشناسان بهترين در نوع خودش می باشد هر روز به منبعی کارآمد تر برای ساخت سايتهای بزرگ تبديل می شود.
بعد از نسخه اوّل و دوم ASP.NET در نسخه های 1.0 و 1.1 در سالهای 2002 و 2003 که تفاوت چندانی با هم نداشتند نيازهای جديد، ضعف های گذشته و راه حل های متداول که همواره وقت زيادی را از طراحان می گرفت باعث شد مايکروسافت به فکر گسترش تکنولوژی NET. و ASP.NET به عنوان جزء مهمی از آن باشد. نتيجه مجموعه‎ی Visual Studio .NET Whidbey بود که در سال 2004 به بازار آمد.
اين نسخه تفاوتهای اساسی و زيادی با نسخه های قبلی دارد که با به بازار آمدن اين نسخه لازم است طراحان به فکر يادگيری قابليت ها و خصوصيات جديد باشند لذا بر آن شدم تا اين مقاله را برای ساده شدن راه طراحان ايرانی به رشته تحرير در آورم. به قولی که حضرت مولانا می فرمايد:
وقت آن شد که به زنجير تو ديوانه شويم (جناب بيل گيتس)
بند را بر گسليم از همه بيگانه شويم!!!
البته مفهوم اين شعر چيز ديگری است!! ولی تمامی علاقه مندان و طراحان برای رشد سريع تر اين تکنولوژی در ايران بايد آن را زودتر فرا گيرند.
اين مقاله بر اساس موضوع بندی و شيوه نگارش مقاله ای ديگر با همين عنوان در MSDN به طور خلاصه ولی با حفظ تمام مفهوم و در جهت ساده سازی با استفاده از کدهای مثال در مقاله اصلی نگاشته شده است.
اهداف ASP.NET 2.0 :
طراحان از ساخت ASP.NET 2.0 چهار هدف اصلی را دنبال می کردند:
۱- افزايش اعتبار و کاربردی بودن برنامه های تحت Web .
در گذشته بيشتر برنامه های کاربردی تحت وب روی Microsoft Information Services (IIS) 5.0 اجرا می شدند. ASP.NET 2.0 بر اساس IIS 6.0 ساخته شده است که مدل پردازشی جديدی را برای برنامه های کاربردی ايجاد می کند. مهمترين خصوصيت جديد آن اين است که هر برنامه کاربردی در پروسه منفرد مخصوص به خود پردازش شده و نمی تواند برنامه های کاربردی ديگر را تحت تاثير قرار دهد. ساده تر اينکه برنامه های کاربردی نمی توانند برنامه های ديگر را مختل کنند. هر برنامه به طور کامل جدا از بقيه اجرا می شود. پس اگر يک برنامه مختل شد بقيه تاثير نمی پذيرند.
۲- کاهش خطوط کد لازم برای اعمال متداول.
ASP.NET 2.0 شامل Wizard ها و کنترلهايی است که به شما در طراحی اعمال متداول کمک می کنند (برای مثال دسترسی به داده ها).
۳- خصوصيات جديد کاربری برای شخصی سازی برنامه های کاربردی Web .
ASP.NET 2.0 شامل کنترلهای ساخته شده برای کمک به مديريت Account کاربران و شخصی سازی محتوا و لايه بندی برنامه های کاربردی است. سرويس عضو گيری به شما در مديريت کاربران کمک می کند. کنترلهای جديد Login به همراه سرويس عضو گيری ساخته شده اند تا ايجاد Account و Login کاربران را بدون نياز به هيچ کدی خودکار سازی کنند.
۴- افزايش خصوصيات طراحی برای عمومی تر کردن ظاهر برنامه ها و لايه های آنها.
ASP.NET 2.0 شامل Master Pageها، Themeها و Skinها برای ساخت برنامه های کاربردی بزرگ وب با يک فرم طراحی ثابت برای صفحات است.
در ادامه به مرور جزئی تر اين اهداف و نحوه پياده سازی آنها می پردازيم.
کوچ از ASP.NET 1.x :
 اگر شما برنامه کاربردی در حال ساخت با نسخه ASP.NET 1.x داريد هيچ نگران نباشيد چون ASP.NET 2.0 به طور کامل با ASP.NET 1.x هماهنگ است. اين به اين معنا است که برنامه های کاربردی ASP.NET 1.x بدون هيچ مشکلی روی ASP.NET 2.0 اجرا می شوند ولی خواهيد ديد که لازم است برای بهتر شدن برنامه های کاربردی خود آنها را بروز کنيد به طور کلی مدل گسترش ASP.NET 2.0 تغيير کرده است.
تغييرات در معماری :
 اساس معماری ASP.NET هميشه بر انعطاف و توسعه پذيری استوار بوده است. ASP.NET 2.0 نيز اين روش را با مدل های Provider جديد که پشتيبان کننده خصوصيات جديد هستند دنبال کرده است. Utilityها و APIهای جديد برای گسترش کارايی و تنظميات سايت ها اضافه شده اند. تمام اينها برای افزايش سرعت و سادگی در گسترش برنامه های کاربردی ASP.NET 2.0 طراحی شده اند.
مدل Provider :
 بسياری از خصوصيات جديد در ASP.NET 2.0 بر مبنای ارتباط بين برنامه کاربردی تحت Web و منبع داده ای قرار گرفته اند بنابراين برای دسترسی به اين هدف ASP.NET 2.0 از مجموعه ای از تامين کنندگان استفاده می کند.
مدل Provider در واقع ابزاری است که به گسترش دهندگان در چارچوب ASP.NET 2.0 برای رسيدن به منابع داده و رفع نيازهای لازم برای نيل به اين هدف طراحی شده است. برای مثال طراح می تواند برای سيستم ذخيره اطلاعات مشخصات از يک منبع داده استفاده کند. بيشتر تامين کنندگان برای کار با بانکهای اطلاعاتی در سيستمها طراحی شده اند پس برنامه نويس مختار است که Methodها و کلاسهای لازم برای هر تامين کننده را انتخاب کند:
ASP.NET 2.0 Providers :
مدل Provider مجموعه ای از محيط های کاربری را تعريف می کند و به منابع داده ای لازم برای فرامين خاص مرتبط می سازد.
ASP.NET از Providerهای گسترده و گوناگونی استفاده می کند که بعضی از مشهورترين و مهمترين آنها عبارتند از:
Membership: اين سيستم عضويت تعيين اعتبار و مديريت کاربران را پشتيبانی می کند.
Profile: اعمال مربوط به اطلاعات کاربری مخصوص به هر Profile را پشتيانی می کند.
Personalization: اين Provider تامين کننده تنظيمات هر بخش شبکه و لايه های مخصوص هر کابر را پشتيبانی می کند.
Site Navigation: اين Provider نقشه فيزيکی محل ذخيره صفحات ASP.NET را تامين می کند و برای تعيين انواع تغييرات در لينک های مورد استفاده در کنترلهای به کار رفته در صفحات به کار می رود.
Data Provider: ابزار ADO.NET هميشه از اين مدل Provider برای ارتباط بين يک Database (بانک اطلاعاتی) و API خود استفاده کرده است. ASP.NET 2.0 نيز مانند گذشته از اين قابليت مهم تکنولوژی NET. بهره می گيرد و در اين راه از خصوصيات جديد و پيش فرض در ADO.NET استفاده می کند.
هر يک از اين Providerها به طور مستقل از سايرين عمل می کنند پس شما می توانيد Provider مخصوص Profile را با Profile مخصوص Membership بدون هيچ مشکلی جا به جا کنيد. در ادامه اين مقاله مثال های خاصی در مورد چگونگی استفاده از اين تامين کنندگان در بخش های مختلف ASP.NET 2.0 خواهيد ديد.
مدل کد نويسی ASP.NET 2.0 :
در ASP.NET 1.x شما می توانيد يک صفحه ASP.NET را به دو شيوه طراحی کنيد: اولين راه نوشتن مستقيم خطوط کد در بين کدهای HTML (اصطلاحا Code Inline) و دومين راه نوشتن کدهای برنامه به صورت جداگانه Code Behind بود. تکنيک دوم تکنيکی جديد و مهم بود چرا که در روش اوّل که از گذشته مورد استفاده بوده کدهای برنامه نويسی با کدهای HTML در کنار يکديگر باعث ناخوانايی و مشکل در تغييرات چه در ظاهر و چه در متن کدهای برنامه بودند.
مدل Code Behind يک کلاس خارجی برای نگهداری کدها ايجاد می کرد در حاليکه ASPX کدهای HTML و Tag های آنرا نگهداری می کرد. اين تکنيک کدها را از محتوا جدا می کرد ولی مشکلات ديگری را ايجاد می کرد و آن هم نياز برنامه نويس به نگهداری دو فايل مجزا برای هر صفحه بود. ASP.NET 2.0 هنوز هر دوی اين مدلها را با تغييراتی نسبتا اساسی پشتيبانی می کند.
Code Inline :
اين مدل کد نويسی حالا مدل اصلی و پيش فرض برای Visual Studio 2005 است و جای مدل Code Behind را گرفته، هر کدی که شما به صفحه اضافه کنيد به طور خودکار به بلاک Script در فايل ASPX به جای کلاس Code Behind اضافه می شود. Visual Studio 2005 هنوز کد را در حالت نمايش مخصوص خود نشان می دهد به عبارتی ديگر شما در استفاده از Visual Studio تغييری نمی دهيد به جز اينکه کدهای شما به طور خودکار و مستقيم داخل صفحه ASPX به جای کلاسی مجزا وارد می شود.

نکته قابل توجه اين است که هنوز کدها از محتوا از طريق بلاکهای Script جدا هستند ولی در يک فايل قرار می گيرند. پس شما به عنوان يک برنامه نويس نبايد نگران دو فايل باشيد و فقط با يک فايل در گير هستيد.
Code Behind :
 اگر شما می خواهيد با يک فايل کد جدا گانه کار کنيد لازم است شما در زمان ايجاد يک صفحه ASPX اين کار را انجام دهيد خوشبختانه اين کار به سادگی کليک رو يک Check Box در زمان ايجاد فايل صفحه است.
تفاوت اساسی بين Code Behind در ASP.NET 1.x و ASP.NET 2.0 اين است که فايل Code Behind اکنون به عنوان Partial Class به جای يک Class کامل محسوب می شود. يک Partial Class يک ساختار جديد NET. است که به شما اجازه می دهد يک کلاس منفرد را در فايلهای منبع مختلف استفاده کنيد. در ASP.NET 2.0 يک Partial Class کاملا برای فايلهای Code Behind مناسب است به گونه ای که از روابط Inherit که در مدل قبلی Code Behind استفاده می شد بی نياز است.

دو Partial Class يعنی Code Behind و ASPX در زمان Compile شدن به درون يک کلاس منفرد فراخوانی می شوند، آنگاه فايل Code Behind از تمام تعاريف کنترلها و فراخوانيهايی که با مدل قبلی Code Behind به اشتراک گذاشته شده اند مجزا است.
مهمترين تفاوت اساسی قابل مشاهده در فايل Code Behind اين است که ديگر شامل تمام کدهای خودکار و عمومی اضافه شده به هر صفحه برای مشخص کردن ارتباطات، منابع و کنترلها نيست. يک فايل Code Behind قديمی شامل ناحيه Initialization برای تعريف هر کنترل قرار داده شده در هر صفحه است:
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label Label1;
private void Page_Load(object sender, System.EventArgs e) { }
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
void Page_Load(object sender, EventArgs e)
{
Label1.Text = "Hello ASP.NET 2.0";
}
}
از زمانی که تعاريف کنترلها به صفحه ASPX وارد شده اند فايل جديد تمام اين کدها را حذف کرده است:
namespace ASP {
public partial class Webform1_aspx
{
void Page_Load(object sender, EventArgs e)
{
Label1.Text = "Hello ASP.NET 2.0";
}
}
}
می توانيد ببينيد که فايل Code Behind جديد ساده تر است. فايل Code Behind به طور خودکار به تمام کنترلهای اضافه شده به هر صفحه ASP.NET دسترسی دارد.
Code directory :
آخرين تغيير بزرگ در مدل کدنويسی دسترسی مستقيم به يک مساله در ASP.NET است. بيشتر برنامه های کاربردی تحت Web به يک يا چند کلاس پشتيبانی کننده نياز دارند. متد قبلی ايجاد يک پروژه جداگانه برای هر کلاس و اضافه کردن يک Reference به پروژه پشتيبانی کننده از درون برنامه کاربردی تحت Web بود.
حتی اگر شما پروژه جديد ايجاد نمی کرديد لازم بود يک Reference به فضای نام (Name Space) مورد استفاده در برنامه های خود ايجاد کنيد. نگهداری چند پروژه جداگانه برنامه ها را مشکل تر و بزرگتر می کردند که معمولا برای طراحانی که از يک يا دو کلاس ساده استفاده می کردند مناسب نبود.
ASP.NET 2.0 روش جديدی را با اضافه کردن کدهای پشتيبانی ارائه کرده است و آن يک Directory جديد با نام Code/ است که به طور خودکار به برنامه های کاربردی اضافه می شود و به عنوان يک منبع توسط برنامه کاربردی ASP.NET شناخته می شود. اين به اين معنی است که هر کلاسی که داخل اين Directory اضافه شود به طور خودکار توسط صفحات ASPX در برنامه های کاربردی شما قابل دسترسی هستند.
کامپايلر Visual Studio .NET 2005 و ASP.NET به طور خودکار اسمبلی های لازم را از اين کلاسها ايجاد می کنند و آنها را در اسمبلی های برنامه های کاربردی تحت وب شما قرار می دهند.
تنظيمات و نگهداری سايت :
يکی از مشکلات بزرگ طراحان ASP.NET در گذشته، تنظيم مشخصات المانهای فايل Web.Config بود که متنوع و Case Sensitive بودند در ASP.NET 2.0 و Visual Studio .NET 2005 شما خصوصيات جديدی داريد که در اجرای فرامين شما را ياری می دهند.
Intellisense در Web.Config :
 متاسفانه معادل فارسی مناسبی برای Intellisense به ذهنم نرسيد. ولی اين قابليت مهم زبانهای Visual همان پنجره ای است که خصوصيات و متدهای اشيا مختلف را در زمان تايپ کدها به نمايش می گذارد.
اول از همه خصوصيت جديد و مهم Intellisense اين است که برای هر فايل XML که دارای فرم تعريف شده ای است عمل می کند. برای فايل Web.Config اين به آن معناست که شما کمک کامل Intellisense را برای ويرايش اين فايل از طريق Visual Studio در اختيار داريد.

Intellisense :
برای کاهش شانس تنظيمات اشتباه در فايل کمک زيادی به شما می کند. از طرفی ASP.NET 2.0 همچنين شامل يک Administrative Web site و کنسول مديريتی مايکروسافت است که کارها را آسانتر می کند.
Administrative Web site :
برای پياده سازی پروسه مديريت کاربران، ASP.NET 2.0 يک ابزار تنظميات وب سايت در اختيار شما می گذارد اين ابزار يک وب سايت ساده است که تنها از طريق يک ارتباط امن يا يه طور مستقيم از Local host قابل دسترسی است به وسيله اين ابزار يک Administrator می تواند يک برنامه کاربردی را با تنظيم خدماتی مثل مديريت کاربر، امنيت و Profileها مديريت کند. اين ابزار همچنين اجازه می دهد که به سادگی شمارنده ها، خطايابی و Trace کردن اطلاعات برای برنامه را تنظيم کنيد.
کنسول مديريتی مايکروسافت :
 ASP.NET 2.0 يک کنسول مديريتی مايکروسافت (MMC) برای IIS ارائه می کند که به شما کمک می کند تصميم بگيريد برنامه ها بايد با چه نسخه ای از NET. Framework اجرا شوند.
همچنين MMC IIS به شما کمک می کند نسخه ای که برنامه کاربردی شما در ASP.NET از آن استفاده می کند را مشخص کنيد و محل فايل Web.Config را نشان می دهد. همچنين اين کنسول دارای يک Botton مخصوص Edit Configuration برای تنظيم مشخصات فايل Web.Config بدون نياز به دسترسی مستقيم به فايل Web.Config است.
تنظيمات اضافه شده به API :
همچنين شما کلاس System.Configuration.Configuration را در اختيار داريد. اين API به شما کمک می کند به فايلهای تنظيمی XML از طريق کدهای برنامه دسترسی داشته باشيد.اين به شما اجازه می دهد ابزارهای جديدی ايجاد کنيد. کد زير روش فعال کردن Authentication را برای برنامه کاربردی روی Local Machine نشان می دهد:
[C#]
Configuration cfg = Configuration.GetConfigurationForUrl("/Application_name");
Response.Write( cfg.Web.Authentication.Mode.ToString() );

[VB.NET]
Dim cfg As Configuration =
Configuration.GetConfigurationForUrl("/Application_name")
Response.Write( cfg.Web.Authentication.Mode.ToString() )
کد زير نيز حالت authentication Forms-Based را برای يک برنامه کاربردی فعال می کند:
[C#]
Configuration cfg = Configuration.GetConfigurationForUrl("/MyApp");
cfg.Web.Authentication.Mode = HttpAuthenticationMode.Forms;
cfg.Update();

[VB.NET]
Dim cfg As Configuration = & _
Configuration.GetConfigurationForUrl("/MyApp")
cfg.Web.Authentication.Mode = HttpAuthenticationMode.Forms cfg.Update()
تمام خصوصيات بالا به شما کمک می کنند که مقدار وقت و تلاشتان را برای انجام تنظيمات برنامه های کاربردی کاهش دهيد.
تغييرات در Development :
ASP.NET 2.0 و Visual Studio 2005 همچنين مقدار زيادی از تغييرات مورد نياز برای گسترش برنامه های کاربردی وب در طول زمان را تغيير داده اند. در اين بخش نگاهی به برخی از خصوصيات جديد می اندازيم که در ASP.NET 1.x نيز موجود بوده اند و اکنون کاملتر شده اند يا تغيير کرده اند.
ارتباط با Server :
در ASP.NET 1.x و نسخه های قديمی Visual Studio .NET شما برای ارتباط با يک IIS بايد از Microsoft FrontPage Server Extensions استفاده می کرديد. به عنوان يک طراح شما همچنين بايد برای ايجاد سايتهای جديد به IIS دسترسی می داشتيد که اين برای شرکتهای بزرگ ايجاد مشکلاتی می کرد، پس اين فرآيند تسهيل شد:
The Development Server :
اول برای گسترش Visual Studio .NET 2005 يک Server ساخته شده به بازار آمده اين Web Server فقط از طريق درخواستهای محلی قابل دسترسی است.
بنابر اين از نظر امنيتی قابل اطمينان نيست. اين Server خصوصيات جديد خطايابی را پشتيبانی می کند و می تواند به عنوان يک ابزار گسترش برای برنامه های کاربردی جديد وب به کار رود. زمانی که شما آماده انتقال و نصب نهايی برنامه های خود بوديد به سادگی می توانيد آنها را به IIS منتقل کنيد.
The Production Server :
اکنون زمانی که شما به IIS وصل می شويد انتخابهای متعددی داريد. زمانی که يک برنامه کاربردی وب را در Visual Studio .NET باز می کنيد شما برای انتخاب متد Connection مورد سوال قرار می گيريد.
شما می توانيد Microsoft FrontPage Server Extensions ،FTP ،Share Point يا مکانيسم های گوناگون ديگر را نيز برای انتقال فايلها به Server مورد استفاده قرار دهيد.
کامپايل کردن برنامه های کاربردی ASP.NET 2.0 :
تغيير بزرگ ديگر در ASP.NET 1.x مربوط به راه هايی است که برنامه های کاربردی وب می توانند کامپايل شوند. در ASP.NET 1.x برنامه ها در زمان اولين درخواست يا حالت Batch در زمان Start Up کامپايل می شدند. هر دو روش مزايا و معايبی داشتند. مهمترين عيب آنها اين بود که شما بايد کدهای کامپايل نشده را به Server می فرستاديد که اين می توانست بسته به نوع مديريت امنيتی شما برای نيازهای امنيتی خطر ساز باشد.
ASP.NET 2.0 متد جديد کامپايل کردن را در اختيار شما می گذارد که همان Pre-Compile کدهای داخلی به اسمبلی های باينری برای نصب (deployment) است که در نتيجه برنامه ها روی اسمبلی هايی که می توانند برای مدت طولانی نامگذاری و علامت گذاری شوند و فايلهای منبع گوناگون مثل تصاوير بنا می شوند.پس برنامه کاربردی Pre-Compile شده دارای امنيت بيشتری نسبت به برنامه های عادی ASP.NET است.
کيوان نيّری
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 13 ، ديروز : 3 ، مجموع : 1131


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND .NET FRAMWORK 2.0
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND .NET FRAMWORK 2.0, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 35
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
نسل اول ASP.NET در قالب نسخه‎های 1.0 و 1.1 ارائه گشت. گذشت زمان و کسب تجربيات متعدد، پيدايش نيازهای جديد، ضعف های موجود و نيز به دليل ايجاد راه حل‎های تکراری ولی پرکاربرد توسط برنامه نويسان جهت حل برخی مسائل که همواره وقت زيادی را از آنها می گرفت، همگی سبب شدند تا مايکروسافت به فکر گسترش تکنولوژی NET. و ASP.NET به عنوان جزء مهمی از آن باشد. حاصل کار پيدايش نسخه بهتر شده دات نت و مهمتر از آن ASP.NET 2.0 جهت ارائه در سال 2005 بود.
Navigation در سايت :
 يکی از مشکلات عمده و معمول در ASP.NET 1.x کار با کنترلهايی است که نياز به آدرس نسبی صفحات ديگر در سايت را دارند مثل کنترل HyperLink که برای اشاره به به صفحه ديگری روی سايت آدرس نسبی آن صفحه را می پذيرد. حال اگر اين صفحه در يک شاخه قرار داشته باشد و اين کنترل به صفحه ای در شاخه ديگری اشاره کند با جابه جا شدن صفحه اول اين آدرس نسبی نيز بايد تغيير کند. ASP.NET 1.x راه حل مناسبی برای اين مشکل ارائه نکرده بود و شما بايد کدهای HTML داخل کنترل ها را تغيير می داديد. ASP.NET 2.0 خصوصيات جديد مناسبی برای بهبود Navigation در سايت و کاهش نياز به تغيير و عمليات درصفحات وب را ارائه می کند.
ASP.NET 2.0 به شما اجازه می دهد برنامه های کاربردی خود را بر مبنای يک ساختار منطقی (Logical Structure) تعريف کنيد. استفاده از ساختار منطقی برای Navigation به شما کمک می کند تا يک مسير Navigation برای برنامه های کاربردی خود با استفاده از رابطه بين صفحات وب به جای مبنا قرار دادن آدرس هر يک از صفحات وب به طور منفرد تعريف کنيد. با اين روش شما می توانيد صفحات خود را دچار تغيير ساختار کنيد بدون آنکه نيازی به تغيير کدها باشد. با استفاده از ساختار منطقی همچنين نيازهای مربوط به Navigation مثل Menu ها ، Tree View ها و . . . نيز برطرف می شود.
فايل Web.SiteMap :
کلاس SiteMap در ASP.NET 2.0 ساختار منطقی را برای وب سايت شما برآورده می کند. شما می توانيد اين ساختار را با استفاده از XML يا تامين کننده Navigation که در ASP.NET 2.0 موجود است تعريف کنيد يا می توانيد از تمام ساختارهای ديگر داده و تامين کننده دلخواه استفاده کنيد. بعد از اينکه يک بار کليت کار را تعريف کرديد می توانيد از ساختار Navigation در راه های مختلفی استفاده کنيد. يک ساختار منطقی (Logical Structure) می تواند با دو گام ساده ساخته شود:
۱- ايجاد يک فايل XML که با نام Web.SiteMap اجرا می شود که صفحات موجود در سايت را در يک روش سلسله مراتبی قرار می دهد. Visual Studio.NET 2005 به شما اجازه می دهد فايل های جديد با پسوند Site. را با انتخاب گزينه Add New Item و انتخاب قالب SiteMap ايجاد کنيد و در زمان کار با اين نوع فايل ها Intellisense به شما کمک می کند.
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode title="Home" url="default.aspx">
<siteMapNode title="Article 1" url="~/articles/demoarticle1.aspx" >
<siteMapNode title="Article 2" url="~/articles/demoarticle2.aspx" >
<siteMapNode title="Article 3" url="~/articles/demoarticle3.aspx" >
</siteMapNode>
<siteMapNode title="Picture Gallery" url="~/PhotoAlbum/PhotoAlbums.aspx">
<siteMapNode title= "Meetings" url="~/PhotoAlbum/PictureAlbum.aspx?albumid=1">
<siteMapNodetitle="Activities" url="~/PhotoAlbum/PictureAlbum.aspx?albumid=2">
<siteMapNode title= "Training" url="~/PhotoAlbum/PictureAlbum.aspx?albumid=3">
</siteMapNode>
</siteMap>
۲- انتخاب کنترل SiteMap DataSource از ToolBox و وارد کردن آن به صفحه (Drap & Drown آن). اين کنترل به طور خودکار به ساختار منطقی سايت که شامل Web.SiteMap می شود مقيد می گردد تا زمانی که کنترل SiteMap DataSource روی صفحه است شما می توانيد به سادگی آنرا به کنترلهای ديگری مثل Tree View و Menu ها مقيد کنيد.
<%@ page language="VB" master="~/Mysite.master" %>
<asp:content id="Content1" contentplaceholderid="LeftSideContent">
<H2>Navigation </h2>
<asp:treeview id="Navigation tree" runat="server" datasourceid="NavSource">
</asp:content>
کنترلهای Navigation :
 ASP.NET 2.0 همچنين مجموعه ای از کنترلهای Navigation که می تواند با سرويس Navigation در سايت استفاده شوند به شما ارائه می کند. با استفاده از کنترلهای و شما می توانيد يک ساختار Navigation هميشگی برای برنامه خود ايجاد کنيد. کنترل جديد برای عمومی کردن يک ساختار Navigation برای يک Bread Crum Trail استفاده شود.
نقشه گذاری URL :
 خصوصيت جديد ديگر ASP.NET 2.0 برای Navigation نقشه گذاری URL است. سايت ها معمولا نياز به URL های طولانی، سخت و پيچيده دارند (به URL ها MSDN نگاه کنيد!!). اگر شما بخواهيد URL های خود را در يک برنامه کاربردی ASP کلاسيک مخفی کنيد شما بايد يک ISAPI Handler مناسب برای پردازش دوباره درخواست ها بنويسيد. ASP.NET 2.0 تنظيمات URL Mapping را به فايل Web.Config اضافه کرده است که با استفاده از آن يک برنامه نويس می تواند يک نقشه گذاری برای مخفی کردن يک URL به URL های مناسب برای کاربر ايجاد کند.
<urlMappings enabled="true">
<add url= "~/Home.aspx"mappedUrl="~/Default.aspx?tabid=0" >
</urlMappings>
تنظيمات نشان داده شده در بالا بايد تمام درخواستها برای صفحه Home.aspx را نقشه گذاری ( و Redirect) کند به صفحه Default.aspx?tabid=0
دسترسی به داده ها و منابع داده :
دسترسی به داده ها در ASP.NET 1.x بر مبنای Connection ها و Command هايی است که اطلاعاتی را که می توانند به کنترلهای مختلف ASP.NET مقيد کنند.
ASP.NET 2.0 ارتباط با ADO.NET را با تامين کردن منابع داده ای که کدها را برای باز کردن کپسولهای Connection ها و Command در يک فايل XML در داخل فايل Web.Config به کار می گيرد. مثل ASP.NET 1.x شما می توانيد يک Wizard را در Visual Studio 2005 را برای ايجاد منابع داده ای به کار گيريد. ASP.NET 2.0 با منابع داده ای زير می تواند مرتبط شود:
Microsoft Access: منبع داده ای Access می تواند به طور خودکار به يک پايگاه داده ای Access متصل شده و Query های مناسب را ايجاد کند.
اشيا(Objects): کنترل ObjectDataSource در بالای قسمت مرکزی رديف لايه داده ها يا ديگر مجموعه اشيا قرا دارد. شما می توانيد از اين شئ برای ارتباط دادن يک يا چند مجموعه داده ها که می توانند به کنترلهای مقيد سازی داده ها مرتبط شوند استفاده کنيد.
DataSet: منبع DataSetDataSource می تواند به داده های فهرستی مثل فايلهای مجزا شده با کاما يا فايلهای XML مرتبط شود.
XML: منبع XMLDataSource به داده های سلسله مراتبی در يک فايل XML متصل می شود. تفاوت اوليه بين XMLDataSource و DataSetDataSource در XMLDataSource است که برای مقيد سازی به کنترلهای سلسله مراتبی مثل TreeView مناسب تر است. همچنين DataSetDataSource برای کنترلهای فهرستی مثل DataGrid مناسب تر است.
نقشه سايت: SiteMapDataSource يک منبع داده ای برای کنترلهای Navigation در سايت فراهم می کند.
کنترلهای جديد مقيدسازی داده ها :
ASP.NET 2.0 همچنين شامل دو کنترل جديد مقيد سازی داده ها است. کنترل اول GridView است که روی DataGrid با تامين کدهای قابل تنظيم برای ويرايش خانه های جدول نشان دادن سطرها در صفحات مختلف، مرتب سازی، پاک سازی، انتخاب و بقيه اعمال معمول بسط يافته است.
کنترل دوم DetailsView است که بررسی جزئيات مربوط به رابطه مکمل GridView و DataGrid را بر عهده دارد.
کنترل DetailView يک رکورد را در هر زمان به نمايش می گذارد که کنترل بيشتری را برای نمايش، ويرايش، پاک سازی و يا ايجاد رکوردها به شما می دهد.
برنامه های کاربردی Web برای دستگاه های Mobile :
امکان دارد شما به عنوان يک برنامه نويس با برنامه های کاربردی ASP.NET با Microsoft Mobile Internet Toolkit يا MMIT و کنترلهای خاص موبايل مواجه شده باشيد. در ASP.NET 2.0 کنترلهای موبايل و MMIT به عنوان يک چارچوب کاری اصلی نقش ايفا می کنند. به طور معمول کنترلهای ASP.NET 2.0 مدل بازگشت توافقی که دارای رابطه مشابهی با کنترلهای قديم Mobile است تامين می کنند. تمام اين اعمال فقط در قالب يک بسته قال انعطاف و ساده برای استفاده در دسترس هستند.
خصوصيات جديد در ASP.NET 2.0 :
معمولا هر بروز رسانی کلی در يک چارچوب کاری با اضافه شدن خصوصيات جديد و کلی همراه می شود که در اين بخش به بررسی اين خصوصيات در ASP.NET 2.0 می پردازيم.
Master Pages :
 اين خصوصيت جديد به شما در طراحی و گسترش برنامه های کاربردی بر اساس يک ظاهر ثابت کمک می کند. اين خصوصيت به شما کمک می کند تا يک قالب ثابت را برای چندين صفحه وب طراحی کرده و در آنها استفاده کنيد.
اولين هدف Master Pages جلوگيری از نياز به طراحی يک قالب و تکرار کد آن در صفحات مختلف است. فايده ديگر اين خصوصيت اين است که اگر شما نيازی به تغيير قالب صفحات داشته باشيد به جای نياز به تغيير تمام صفحات تنها يک صفحه را تغيير می دهيد. اين خصوصيت مشابه تکنيک Visual Inheritance در فرمهای Microsoft Windows است.
Master Page ها مشابه صفحات ديگر ASP.NET هستند و تفاوت آنها تنها در محيط (که پسوند اين صفحات master. به جای aspx.) و برخی کنترلهای خاص است. Master Pages می توانند شامل يک يا چند کنترل باشند. اين کنترلها نواحی مورد نياز برای تغيير در محتوا را شامل می شوند. اساساً هرچه در ContenetPlaceHolder نيست در تمام صفحات به نمايش در می آيد.
Visual Studio 2005 به طور خودکار بيشتر اين کد را برای شما ايجاد می کند پس شما نيازی به نوشتن کدهای پيچيده HTML نداريد. يک Master Page می تواند شامل قطعه کد زير باشد:
<%@ master language="C#" compilewith="site.master.cs" classname="ASP.site_master" %>
<html>
<head runat="server"><title>Untitled Page</title></head>
<body>
<form runat="server">
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
</form>
</body>
</html>
جدای از اين تغييرات کليدی هر Master Page می تواند شامل هر کنترلی که در صفحات عادی ASP.NET موجود است نيز باشد.
اگر چه Master Page ها و Frame ها دارای اهداف يکسانی هستند ولی Master Page ها وظيفه مندی خاصی را ارائه می کنند. بر خلاف Frameها استفاده از Master Page ها به شما قابليت های زير را می دهد.
۱- يک بار طراحی کنيد و به تعداد دلخواه استفاده نمائيد. بعبارت ديگر در اين حالت ساختار و نمای کلی يک صفحه از Master Page و محتوای آن از صفحه مربوطه گرفته می شود و در نهايت و برخلاف Frame ما تنها يک صفحه عادی وب خواهيم داشت.
۲- امکان استفاده آسان و راحت از انواع کنترلها به جای تگ های دست و پا گير HTML در مقايسه به Frameها و نحوه ساخت آنها. همه اين کارها توسط Visual Studio برای شما به آسانی انجام می گردد.
۳- سازگاری کامل صفحات محتوا با Master Pages. پس شما نبايد ترسی از اين داشته باشيد که ورود کدهای HTML محتوا به صفحه لايه های ديگر را تحت تاثير قرار دهد.
خلاصه اينکه Master Page ها به طرز بسيار جالبی فرآيند ساخت برنامه های کاربردی وب بر مبنای ظاهر ثابت را بدون توجه به تعداد صفحات ساده سازی کرده است.
صفحات محتوا (Content Pages) :
صفحات محتوا به Master Page ملحق می شوند و يک محتوا را برای کنترلهای ContentPlaceHolder در Master Page ها تعريف می کنند. صفحه محتوا شامل کنترلهای است که به منبع کنترل در Master Page از طريق ContentPlaceHolder ID پيوند خورده است. صفحات محتوا و Master Page ها در يک دسترسی به صورت يک جا به هم می پيوندند.
<%@ page language="VB" master="~/Mysite.master" %>
<asp:content id="Content1" contentplaceholderid="LeftSideContent">
<H2>Navigation </h2>
<asp:treeview id="Navigation tree" runat="server" datasourceid="NavSource"/>
</asp:content>
<asp:content id="Content1" contentplaceholderid="RightSideContent">
<asp:label runat="server">Support section</asp:label>
</asp:content>
يک بار ديگر: کاربر حقيقتا يک درخواست را برای صفحه محتوا ارسال می کند ولی ASP.NET به طور خودکار اين محتوا را با Master Page آميخته و به کاربر ارسال می کند.
Master Page های تو در تو :
 در مثالهای مجزا Master Pageها بايد لايه بندی شوند تا دسترسی به کنترل روی سايت محقق شود. برای مثال ممکن است شرکت شما يک سايت داشته باشد که يک قسمت بالايی و پايينی ثابت برای هر صفحه دارد ولی بخش حسابداری شما قالب متفاوتی با بخش IT داشته باشد.
با استفاده از Master Pageهای لايه بندی شده در Master Page های سطح بالای شرکت، شما می توانيد کنترل کاملی روی محتوايی که به نمايش در می آيد داشته باشيد. نکته اساسی اين است که به ياد داشته باشيد در نهايت يک صفحه توسط يک کاربر درخواست شده و يک صفحه توسط او دريافت می گردد اگر چه ممکن است چند صفحه Master Page و محتوا مورد پردازش قرار گيرند.
باطل کردن Master Pageها :
هدف اساسی Master Pageها ايجاد يک ظاهر ثابت برای همه صفحات در برنامه کاربردی شماست اگر چه ممکن است حالتهايی پيش آيد که ممکن است شما بخواهيد محتوای متفاوتی را به صفحه خود وارد کنيد. که برای حل اين مشکل به سادگی از يک کنترل محتوايی استفاده می کنيد.
برای باطل کردن خصوصيات يک Master Page به طور پويا شما بايد بخشهای عمومی (Public) کلاس Master Page را برنامه ريزی کنيد که شامل آن چيزهايی است که شما ايجاد کرده ايد. بنابراين اگر می خواهيد خصوصيات title و keyword از بخش head را در صفحات HTML باطل کنيد شما بايد تابعی بسازيد که خصوصيات پيش فرض را در Master Page شما ويرايش کند:
<head runat="server" id="Head1">
<title><% =m_HtmlTitle %></title>
<meta name="keywords" content="<% =GetKeywords() %>" >
<meta name="description" content="A newsletter focused on meeting the needs of .NET developers, providing cool tips for the advanced programmer, and keeping you informed on what's happening with .NET!" >
<LINK href="<% =Request.ApplicationPath %>/portal.css" type="text/css" rel="stylesheet">
</head>
Themes و Skins :
 می دانيد که يک طراح برای زيبا سازی و تغيير ظاهر صفحات خود نياز به استفاده از فايلهای CSS يا استفاده از CSS به صورت ضمنی دارد. اين مساله منجر به استفاده از يک شکل ثابت در صفحات می شود. برای حل اين مشکل نيز در ASP.NET 2.0 راه حلهايی در نظر گرفته شده است.
Themes :
 Theme ها مشابه CSS Styleها هستند چرا که هر دو برای تعريف خصوصيات و صفات معمول در يک يا چند صفحه به طور ثابت استفاده می شوند ولی به هر شکل Theme ها تفاوتهايی نيز با Style Sheet ها دارند:
۱- Theme ها می توانند خصوصيات زيادی را برای هر کنترل تعريف کنند در حاليکه Style ها فقط مجموعه ای از صفات معمول را تعريف می کنند.
۲- Theme ها می توانند شامل فايلهای مختلفی باشند در حاليکه CSS Style ها نمی توانند.
۳- Theme ها به مانند Style Sheet ها از شيوه نامه آبشاری استفاده نمی کنند.
۴- Theme ها می توانند شامل Refrence به Style Sheet ها باشند.
هر برنامه کاربردی يک شاخه Themes دارد. هر Theme خاص زير شاخه مخصوص به خود را دارد که شامل فايلهای Skin و بقيه فايلهای خود است.
تعريف يک Theme :
 شما می تونيد Theme ها و Skin ها را در زير شاخه هايی که از شاخه Themes مشتق می شوند تعريف کنيد.هر زير شاخه شامل يک Theme است. هر زير شاخه شامل فايلهای skins. است که به مانند ديگر منابع مورد استفاده توسط Theme ها مانند Style Sheet ها و تصاوير قرار گرفته اند.
تعريف معمولی و نرمال Skin در فايلهای Skin. موجود است و بسيار شبيه به تگهای مورد استفاده در نمونه کنترلهای فايلهای ASPX است. برای مثال، در شاخه Themes يک زير شاخه با نام Pink ايجاد کنيد. برای ايجاد يک فايل skin. برای Theme خود به سادگی کد زير را اضافه کنيد و در شاخه Pink ذخيره کنيد:
<asp:DropDownList runat="server" BackColor="hotpink" ForeColor="white" />
<asp:DataGrid runat="server" BackColor="#CCCCCC" BorderWidth="2pt"
BorderStyle="Solid" BorderColor="#CCCCCC" GridLines="Vertical"
HorizontalAlign="Left">
<HeaderStyle ForeColor="white" BackColor="hotpink" />
<ItemStyle ForeColor="black" BackColor="white" />
<AlternatingItemStyle BackColor="pink" ForeColor="black" />
</asp:DataGrid>
آنگاه Theme می تواند در تمام صفحات برنامه کاربردی شما مورد استفاده قرار گيرد. بنابر اين رنگ پس زمينه Data Grid شما به رنگ صورتی تيره در می آيد.
استفاده از يک Theme :
Theme ها می توانند به صورتهای زير به کار روند:
۱- در صفحه با استفاده از تگ منفرد <% "page language="VB" theme="Pink @%>.
۲- در تمام سايت با استفاده از المانهای تنظيمی فايل Web.config بصورت </"pages theme="Pink> .
فايل Web.Config فايل اصلی تنظيمات برای هر برنامه کاربردی است. تاثير استفاده از Theme ها را می توانيد در کنترلهای خود ببينيد.
Skins :
يک Skin مجموعه ای از قالبها و خصوصيات است که می تواند برای استاندارد سازی اندازه فونت و ديگر صفات کنترلها روی يک صفحه به کار رود. شما می توانيد Skinها را برای ايجاد يک ظاهر مشخصی برای کنترلها به کار گيريد که اين تنظيمات می تواند توسط شما يا کاربر در زمان دسترسی به صفحه صورت گيرد. Skinها می توانند با استفاده از خصوصيت SkinID در کنترلها در آنها به کار روند.
<!- Default Skin -->!>
<asp: label runat="server" Font-names="verdana, arial" font-size="10pt" ForeColor= "#000066" BackColor="transparent"/>
<!- Title Skin -->!>
<asp: label runat="server" id="foo" skinid="Title" Font-names="verdana, arial" font size="18pt" ForeColor= "#000066" BackColor="transparent" font-bold="true" font-underline="true"/>
وقتی يک بار يک Skin را تعريف کرديد می توانيد آنرا در کنترلهای مختلف خود که دارای SkinID هستند به کار گيريد.
به کار گيری يک Skin برای يک کنترل :
اگر يک Skin پيش فرض موجود باشد و با استفاده از يک Theme تعريف شده باشد Skin پيش فرض به طور خودکار در يک کنترل استفاده می شود. اگر شما خصوصيت SkinID را برای کنترل تعريف کنيد، Skin پيش فرض با Skin خاصی که در خصوصيت SkinID به آن اشاره شده جا به جا می شود. اين خصوصيت می تواند در زمان گسترش يا اجرا تنظيم شود.
عضويت (User Membership) :
يکی از مسائل در گسترش ASP مساله سيستم عضويت است که بايد از ابتدا توسط برنامه نويس طراحی شود. اين کار مشکل نيست ولی وقت گير است. سيستم عضويت و کنترلهای Login اين مساله را تا حد زيادی بهبود بخشيده است.
به طور خلاصه بايد گفت اين سيستم يک ساختار کامل برای عضويت کاربران و مديريت آن را برای شما ايجاد کرده است. اين سيستم اطلاعات را در يک پايگاه داده به صورت کاملا امن ذخيره می کند. اين سيستم به طور پيش فرض از Microsoft Access و Microsoft SQL Server پشتيبانی می کند. ولی شما می توانيد نيازهای دلخواه خود را از طريق ايجاد تنظيمات در فايل Web.Config ايجاد کنيد. همچنين شما می توانيد از کنترلهای جديد Login در ASP.NET 2.0 برای خودکار سازی سيستم ورود و خروج و ثبت نام کاربران استفاده کنيد.
کنترلهای Login :
ASP.NET 2.0 کنترلهای Login را برای کمک به ايجاد و مديريت سيستم کاربری در اختيار شما می گذارد بدون آنکه نيازی به نوشتن حتی يک خط کد داشته باشيد. شما می توانيد به سادگی کنترل <asp:CreateUserWizard> را به صفحه خود وارد کنيد و از آن برای ثبت نام کاربران به صورت مرحله مرحله استفاده کنيد.
همچنين اين کنترلهای جديد محيط مناسبی را در اختيار شما می گذارند تا ظاهر آنها را با برنامه کاربردی خود منطبق کنيد. خصوصياتی مثل Label و Value و Error message validation نيز برای هر خصوصيت موجود است. با استفاده از کنترلهای LoginName و LoginStatus شما می توانيد به هر کاربر يک پيغام خوش آمد مناسب ارائه کنيد بدون آنکه نيازی به حتی يک خط کد داشته باشيد.
کنترل LoginView به شما کمک می کند تا مشخص کنيد چه محتوايی به هر کاربر نشان داده می شود (بدون نوشتن يک خط کد). محتوا با توجه به نقش و سطح دسترسی هر کاربر تعيين می شود. در برنامه های کاربردی ASP شما بايد کدهايی را برای انجام اين اعمال می نوشتيد تا پيامهای مناسب هر کاربر را نمايش دهد و محتوای مناسب هر کاربر را به او ارائه کند.
Profile ها :
خصوصيات مربوط به Profile در ASP.NET 2.0 به شما اجازه می دهند تا اطلاعات هر کاربر که با سايت به اشتراک گذاشته را تعريف و ذخيره کنيد. در برنامه های ASP شما بايد کد نوشته شده خود را برای جمع کردن اطلاعات کاربر گسترش می داديد و برای session کاربر ذخيره می کرديد و در پايگاه های داده ای لازم ذخيره می کرديد. Profile ها مستقيما از طريق شئ Profile در هر صفحه ASPX قابل دسترسی اند.
تعريف يک Profile :
از طريق فايل Wen.Config يا Machine.Config و مقادير می توانيد اطلاعات کاربری مربوط به Profile مثل نام، آدرس و آدرس پست الکترونيک و.
. را برای هر کاربر تعريف کنيد.
<profile>
<group name="BillingAddress">
<add name="Street" type="System.String" />
<add name="City" defaultValue="Toronto" type="System.String" />
<add name="StateProv" type="System.String" />
<add name="ZipPostal" type="System.String" />
</group>
</profile>
بعد از ايجاد اين خصوصيات ASP.NET 2.0 به طور خودکار از محتوای آنها محافظت می کند.
استفاده از Profile ها :
زمانی که يک Profile را تعريف کرديد Visual Studio 2005 به طور خودکار اطلاعات آن را از طريق شئ Profile در اختيار شما می گذارد.
Visual Studio 2005 همچنين به طور کامل Intellisense را برای هر Profile پشتيبانی می کند. هر زمانی که شما تغييری را در تعريف يک Profile انجام داديد Visual Studio به طور خودکار Intellisense را به درستی برای شما تغيير داده و به سرعت بعد از اعمال تغييرات در فايل Web.Config در اختيار شما می گذارد.
کيوان نيّری
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 14 ، ديروز : 3 ، مجموع : 1132


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND .NET FRAMWORK 2.0
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND .NET FRAMWORK 2.0, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 49
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
قسمت اول: بكارگيری Master Page ها :
اكثر قريب به اتفاق وب سايتها دارای يك قالب مشخص می باشند. بطوريكه اگر در آن وب سايت به گشت و گذا بپردازيم و صفحات مختلف آن را مرور كنيم متوجه می شويم كه همه صحفحات از يك قالب خاص پيروی مي كنند. بعنوان مثال لوگوی مربوط به معرفي وب سايت در همه صفحات وجود دارد. يا اينكه قسمتهای سمت راست يا سمت چپ كه معمولا" منويی از لينكها می باشند در تمام صفحات شكل ظاهری خود را حفظ می كنند. برنامه نويسان ASP.NET می دانند كه با معرفی User Control ها چه كمك شايانی به آنها جهت ايجاد قالب های ثابت و يا قابل تغيير برای يك وب سايت شد. ( البته كاربرد User Control ها تنها در ايجاد قالبها نيست). به كمك User Control ها می توانیم تا با يكبار ايجاد يك قالب و برنامه نويسی های مربوطه، آن را در هرصفحه aspx كه خواسته باشيم استفاده كنيم.
اكنون با عرضه ASP.NET 2 (نسخه بتا) و معرفی Master Page تهيه قالب برای يك وب سايت از آنچه كه فكرش را هم می كرديم ساده تر شده است. در اين مقاله قصد داريم تا شما را با نحوه ايجاد و استفاده از Master Page تحت ASP.NET 2 و در محيط Web Developer 2005 Express Edition آشنا كنيم. برای همقدم شدن در ايجاد و اجرای مثالی كه در اين مقاله ایجاد می شود به موارد زير نياز است.
  • Web Developer 2005 Express Edition
  • The .NET Framework 2 beta
  • چند تصوير برای استفاده در لوگو و قسمتهای ديگر

ايجاد يك وب سايت :
برای ايجاد يك وب سايت با استفاده از ‌‌Web Developer و بر پايه ASP.NET 2 مراحل زير را دنبال كنيد.
١- در Web Dev از منوی فايل گزينه New Web Site را انتخاب كنيد كه با اينكار صفحه New Web Site ظاهر می شود.
٢- در زير گزينه Project Types زبان برنامه نويسی مورد نظرتان را انتخاب كنيد ( در اين مثال زبان#C انتخاب می شود). زبانی كه در اينجا انتخاب می شود بعنوان زبان پيش فرض در كل پروژه در نظر گرفته می شود ولی اين امكان برای شما محیاست كه برای هر صفحه از اين پروژه يك زبان جداگانه را انتخاب كنيد.
٣- در زير عنوان Visual Studio installed templates گزينه ASP.NET Web Site را انتخاب كنيد.
٤- در قسمت Location نام مسيری را كه می خواهيد صفحات را در آنجا نگه داريد وارد كنيد. مثلا" C:\WebSite\WebSite1
اكنون Web Dev يك صفحه پيش فرض بنام Default.aspx برای شما ايجاد می كند. اين صفحه را ببنديد و به سراغ ايجاد يك Master Page برويد.
ايجاد يك Master Page :
Master Page يك قالب برای صفحات شماست كه در واقع قالب بندی و ظاهر صفحات شما را مشخص می كند. در اين قسمت شما ابتدا يك Master Page ايجاد می كنيد. سپس با استفاده از يك table ، آن را طوری تقسيم بندی می كنيم که بتوان در قسمت بالايی آن لوگوی سايت، در قسمت چپ منو و در پايين صفحه footer را قرار داد. شما همچنين با كنترل Content Placeholder آشنا خواهيد شد كه بكمك آن می توانيدمحتوای صفحات مختلف را در Master Page داشته باشيد.
برای ايجاد يك Master Page :
١- در Solution Explorer بر روی نام وب سايتي كه ايجاد كرده ايد راست كليك كرده و گزينه Add New Item را انتخاب كنيد.
٢- در زير قسمت Visual Studio Installed Templates گزينه Master Page را انتخاب كنيد و نام آن را Master1 بگذاريد.
٣- گزينه Place code in separate file را انتخاب كنيد چرا كه می خواهيم كد نويسی در Code behind انجام شود.
٤- زبان مورد نظر خود را در قسمت Language انتخاب كنيد.
حال Master Page جديد در قسمت Source View ظاهر مي شود. همانطور كه مشاهده مي كنيد در قسمت بالای صفحه تعريف بجای وجود دارد. همچنين در قسمت body ، كنترل asp.contentplaceholder وجود دارد كه محلی در Master Page می باشد كه در runtime محتويات صفحات مختلف در آن جايگزين می شود. در مورد اين كنترل در ادامه همين مقاله بيشتر می خوانيد.
شكل دادن به Master Page :
Master Page مشخص می كند كه صفحات aspx چگونه در وب سايت شما به نظر آيند. Master Page می تواند شامل هر تركيبی از متن های استاتيك و وب كنترلها باشد. همچنين Master Page ها می توانند شامل چندين كنترل ContentPlaceholder باشند. كه مشخص كننده محل قرارگرفتن داده های ديناميك در هنگام نمايش صفحه می باشد.
در اين مقاله شما از يك table برای نسبت دادن مكانهايی خاص به المانهای موجود در Master Page استفاده خواهيد كرد. سپس كنترل ContentPlaceHolder را كه از قبل در Master Page موجود بوده است را در خانه ای از table جای گذاری خواهيم كرد.
براي اضافه كردن table و تغييرات مربوطه در Master Page بصورت زير عمل كنيد.
١- به قسمت Design View در صفحه Master Page برويد.
٢- با استفاده از پنجره مشخصات، رنگ پس زمينه Master Page يعنی گزينه BgColor را به دلخواه تغيير دهيد.
٣- از منوي Layout گزينه Insert Table را انتخاب كنيد.
٤- در صفحه Insert Table بر روی Tamplate كليك كنيد. از ليست موجود گزينه Header, footer and side را انتخاب كنيد.
٥- پس از اضافه شدن table ، مطابق زير اندازه خانه های آن را تغيير دهيد. عرض ستون سمت چپ برابر 80، ارتفاع رديف بالايی برابر 80، و ارتفاع رديف پايينی برابر 80
٦- رنگ پس زمينه هر سلول از table را به دلخواه تغيير دهيد و VAlign مربوط به هر سلول را در حالت top قرار دهيد.
برای اضافه كردن محتویات استاتيك به Master Page مطابق زير عمل كنيد.
١- سلول سمت راست پايين را انتخاب كرده و عبارتي نظير “Copyright … “ را در آن بنويسيد.
٢- از گروه Navigation موجود در toolbox يك كنترل Menu به سلول بالايی table اضافه كنيد. (مشاهده می كنيد كه در ASP.NET 2 برای ايجاد منو ديگر نياز به كد نويسی نداريد. كنترل Menu تقريبا" همه امكانات منوهايی كه مد نظر داريد را در اختيار شما می گذارد) حال مشخصه Orientation از كنترل Menu را Horizontal انتخاب كنيد. از منوی Common Menu Task که در کنار کنترل Menu ظاهر می شود، گزينه Edit Menu Items را انتخاب كنيد.
٣- در زير عنوان Items، آيكون مربوط به اضافه كردن آيتم به منو را دوبار كليك كنيد تا دو آيتم به منو اضافه شوند. اولين آيتم را انتخاب كرده و Text آن را Home و NavigationUrl آن را به Home.aspx انتخاب كنيد. براي آيتم دوم Text را About و NavigationUrl را About.aspx انتخاب كنيد.
٤- يك تصوير را بعنوان لوگو در سلول بالايی table قرار دهيد.
براي اضافه كردن ContentPlaceHolder طريقه زير را بكار گيريد:
١- كنترل ContentPlaceHolder موجود رابه سلول سمت راست از رديف وسط table انتقال دهید.
٢- حاصل كار تا اينجا را ذخيره كنيد.
ايجاد محتوا برای يك Maste Page :
شما با ايجاد يك صفحه ASP.NET كه ضميمه Master Page می شود. می توانيد محتوای يك Master Page را تعيين کنید. در اين مقاله شما دو صفحه aspx كه هر دو بعنوان محتوای Master Page تعيين می شوند را به پروژه اضافه خواهيد كرد. اين دو صفحه با توجه به آيتم هايی كه به منو اضافه كرده ايم قطعا" دو صفحه home و about خواهند بود.
براي اضافه كردن صفحه home.aspx چنين عمل كنيد:
١- بر روي نام وب سايت در قسمت Solution Explorer راست كليك كرده و Add New Item را انتخاب كنيد.
٢- در زير عنوان Visual Studio Installed Templates بر روی Web Form كليك كنيد.
٣- عنوان صفحه را به Home تغيير دهيد.
٤- زبان مورد نظر خود را در قسمت Language انتخاب كنيد.
٥- Select Master Page را انتخاب كرده و بر روی Add كليك كنيد تا صفحه Select a Master Page ظاهر شود.
٦- حال Master1.master را انتخاب كرده و بر روی ok كليك كنيد.
صفحه home همانند شكل زير به پرو‍ژه اضافه خواهد شد.
همانطور كه مشاهد می كنيد قسمتهای استاتيك كه در Master Page آن را طراحی كرديم، در اينجا بصورت مات ديده می شود. اين بدين معناست كه شما در اين صفحه نمی توانيد آنها را تغيير دهيد.
حال به دلخواه خود المانها و كنترلهای مختلفی را به صفحه home.aspx اضافه كنيد. برای اين منظور بر روی نوار عنوان كنترل ContentPlaceHolder راست كليك كرده و گزينه CreateCustomContent را انتخاب كنيد. حال در كنترل ContentPlaceHolder يك جمله مانند “Welcome to my website” تايپ كرده و حاصل كار را ذخيره كنيد.
صفحه about.aspx را نيز بمانند صفحه home به وب سايت اضافه كنيد. حال می توانيدحاصل كار خود را با فشار دادن دكمه های Ctrl+F5 مشاهده كنيد.
ASP.NET محتوای صفحات home و about را با Master Page تركيب كرده و به نمايش در می آورد. همان طور كه مشاهده می كنيد در ASP.NET 2 پروژه ها بر روی شماره پورتهای تصادفی در Localhost اجرا می شوند.
مجید شهاب فر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 15 ، ديروز : 3 ، مجموع : 1133
Copyright © 2003-2004 dhc graphic ® Corporation . allrights reserved.
Web Design and Develope By Ali Rahmani khah

Warning: session_destroy(): Session object destruction failed in /home/dhcgraph/public_html/article/detail.php on line 457


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND .NET FRAMWORK 2.0
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND .NET FRAMWORK 2.0, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 24
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
قسمت دوم : تغيير Master Page ها بصورت ديناميكي
در قسمت اول از اين مقاله آموختيد كه چگونه مي توان بوسيله Master Page ها در ASP.NET 2.0 بسادگي طرح بندي هاي مختلي را براي فرم هاي وب ايجاد كرد.
تحت شرايطي بعضا" ممكن است به تغيير يك Master Page بصورت ديناميكي نياز پيدا كنيم. مثلا" ممكن است در يك وب سايت براي موضوعات مختلف طرح بندي سايت تغيير كند. بديهي است كه براي اين منظور بسته به نيازمان Master Page هاي مختلفي را در ابتداي كار مي بايست ايجاد كنيم. در اين مقاله مي آموزيد كه چگونه مي توان بصورت ديناميكي يك Master Page را با ديگري جايگزين كرد.
براي اين منظور Master Page دوم را به وب سايتمان كه در قسمت اول مقاله ايجاد كرديم اضافه كرده و يك كنترل button براي سوئيچ كردن بين Master Page ها اضافه مي كنيم. از آنجا كه Master Page دوم بسيار شبيه اولي مي باشد لذا تنها كافيست يك كپي از آن تهيه كرده و براي تمايز، رنگ پس زمينه آن را تغيير دهيم.
براي اين منظور مراحل زير را دنبال كنيد:
1- در Solution Explorer بر روي Master1.master راست كليك كرده و گزينه كپي را انتخاب كنيد.
2- بر روي نام وب سايت راست كليك كرده و گزينه paste را انتخاب كنيد.
3- Master Page كپي شده را به Master2.master تغيير نام دهيد.
4- فايل Master2.master را در حالت Html باز كرده و در قسمت Master1 ،@Master را به Master2 تغيير دهيد.
Master Language="C#" CompileWith="Master2.master.cs" ClassName="Master2_master@"
5- به حالت Design View برويد.
6- در پنجره properties از ليست باز شو كه در قسمت بالاي اين پنجره قرار دارد گزينه DOCUMENT را انتخاب كنيد.
?- مقدار BgColor را به دلخواه تغيير دهيد.
?- Master Page جديد را در حالت سورس كد باز كنيد و نام كلاس را از Master1_master به Master2_master تغيير دهيد.
براي اضافه كردن يك button جهت تغيير ديناميكي Master Page ها مطابق زير عمل كنيد:
1- يك كنترل از نوع LinkButton به پايين صفحه Master2.master اضافه كرده و براي آن يك نام انتخاب كنيدمثلا" “Change to MP1” .
2- بر روي button دو بار كليك كنيد تا تابع رويداد كليك آن ايجاد شود. سپس كد زير را به آن اضافه كنيد.
void LinkButton1_Click(object sender, EventArgs e)

{

Session("masterpage") = "MasterPage1.master";

Response.Redirect(Request.Url.ToString());

}
كد فوق موجب بار گزاري نام Master Page اول در Session شده و سپس صفحه جاري دوباره فراخواني مي شود.
3- صفحه Master1.master را باز كنيد و يك كنترل LinkButton مطابق مراحل فوق به آن اضافه كنيد و نوشته روي آن را “Change to MP2” قرار دهيد.
4- در تابع مربوط به رويداد كليك آن كد زير را اضافه كنيد.
void LinkButton1_Click(object sender, EventArgs e)

{

Session("masterpage") = "MasterPage2.master";

Response.Redirect(Request.Url.ToString());

}
5- صفحه About.aspx را در حالت سورس كد باز كنيد.
6- تابع Page_PreInit را اضافه كرده و كد زير را در آن بنويسيد.
كد فوق باعث جايگزين كردن محتويات [Session[“masterpage” با مقدار مشخصه Me.MasterPageFile مي شود. اين كار مي بايست حتما" در تابع Page_PreInit صورت گيرد. زيرا در يك WebForm قبل از هرگونه مقدار دهي اوليه مي بايست تكليف Master Page آن مشخص شود. و بهترين گزينه تابع Page_PreInit مي باشد. لذا قرار دادن اين كد در توابعي مثل Page_Init و Page_Load كه بعد از تابع Page_PreInit فراخوانده مي شوند، تأثير گذار نخواهد بود.
حال بعد از اعمال مراحل فوق حاصل كار را مطابق زير امحان مي كنيم:
1- CTRL+F5 را فشار دهيد تا صفحه home در browser نمايان شود.
2- به صفحه About رفته و بر روي Chage to MP2 کليک کنيد. مشاهده مي کنيد که صفحه About با Master2.master باز خواهد شد.
3- بر روي Change to MP1 کليک کنيد. مي بينيد که اينبار صفحه About با Master1.master باز مي شود.
مراحل فوق يك مثال بسيار ساده براي تغيير Master Page ها بصورت داناميكي را شامل مي شدند. امروزه بعضي از وب سايتها مثل MSN.com اين قابليت را براي كاربران عضو محيا ساخته اند كه بتوانند طرح بندي صفحه مربوط به خود را بصورت ديناميكي براحتي تغيير دهند. مسلما" استفاده از Master Page ها براي اين منظور كار را بسيار ساده و سريع خواهد نمود.
مجيد شهاب فر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 16 ، ديروز : 3 ، مجموع : 1134


﻿ DHCGRAPHIC ARTICLES ABOUT : PHP AND TIDY FUNCTION
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : PHP AND TIDY FUNCTION, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توسعه Tidy
آشنايي با ماژول Mysqli در PHP 5
PHP 5 و XML ( بخش 1 )
PHP 5 و XML ( بخش 2 )
PHP 5 و XML ( بخش 3 )
نمايش ۵ مراجعه کننده آخر سايت
ساخت ٿايلهای PDF در PHP
كار با Data Object ها در php 5 ( بخش 1 )
كار با Data Object ها در php 5 ( بخش 2 )
مشخصه ها و رفتارهای استاتيک

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 24
توسعه Tidy
يکی از توسعه های جديدی که همراه PHP 5 معرفی شد، توسعه* Tidy (تایدی) هست که کارش تر و تمیز کردن سندهای HTML و XML درهم برهم و تبدیل آنها به اسناد معتبر و خوش نما هست. این امکان زمانی مفید واقع میشه که بخواهید محتویاتی را که خارج از برنامه شما تولید شده اند را نمایش دهید. برای روشن تر شدن موضوع مثالی می آورم. فرض کنید بازدیدکنندگان سایتتان بتوانند مستقیما پیامی ارسال کنند و آن پیام برای سایرین به نمایش گذارده شود و برای جذاب تر شدن پیغام ها، اجازه استفاده از تگ های HTML را به منظور قالب بندی پیغام ها داده اید. از طرفی هم نمی خواهید، کاربرانی که از HTML سردر نمی آورند، صفحات غیر معتبری تولید کنند. بررسی این موارد به طور دستی مسلما کار پرزحمتی است اما با کمک توسعه Tidy می توان این پروسه را کاملا مکانیزه کرد. هم چنین از Tidy می توان برای قالب بندی مجدد اسناد استفاده کرد که این امر یا در جهت کاهش حجم فایل صورت می پذیرد و یا برای خوانا تر شدن اسناد توسط انسان قابل اجراست. مورد اول باعث صرفه جویی در پهنای باند وب سایت شما می شود و در نتیجه علاوه بر اینکه صفحات سایت سریعتر انتقال می یابند، هزینه ی کلی میزبانی وب هم کاسته می شود؛ حال آنکه مورد دوم پروسه اشکالزدایی را تسهیل می بخشد و مجبور نیستید به دنبال تگ های آواره ای بگردید که سهوا از قلم افتاده اند.
توسعه Tidy همراه PHP توزیع می شود ولی بطور پیش فرض فعال نیست؛ چون مستلزم نصب کتابخانه Tidy می باشد. این کتابخانه را می توانید از :
http://tidy.sourceforge.net
دریافت کنید و هنگام کامپایل کردن PHP گزینه with-tidy=DIR-- را اضافه کنید تا پشتیبانی از Tidy فعال شود.(DIR نام دایرکتوری است که کتابخانه Tidy در آنجا مستقر است.)
مقدمات :
کار با Tidy بسيار ساده است و فرآیندی سه مرحله ای است. ابتدا فايل را تفسير کرده، سپس محتويات آن را تميز می کنید و نهايتا فايل اصلاح شده را ذخيره يا چاپ می کنيد.
از تابع ()tidy_parse_file برای خواندن فايل مورد نظر استفاده می شود. اين فايل در واقع فايلی است که می خواهيم محتويات آن پاکسازی شده و نقص های آن برطرف شود.
<?php
$tidy = tidy_parse_file('index.html');
?>
اگر فايلی در کار نبود و داده های شما به صورت رشته کاراکتری بود از تابع ()tidy_parse_string کمک بگيريد.
همانطور که در مثال پایین مشاهده می کنید، عمدا تگ پایانی i را جا انداخته ایم.
<?php
$tidy = tidy_parse_string('I am <b>bold and I am <i>bold and italic</b>');
?>
تبديل سند از طريق تابع ()tidy_clean_repair صورت می گيرد که به عنوان ورودی يک Resource از نوع Tidy را به آن می فرستيم.
<?php
$tidy = tidy_parse_string('I am <b>bold and I am <i>bold and italic</b>');
tidy_clean_repair($tidy);
?>
مقدار بازگشتی اين تابع در صورتی که کار بخوبی پيش برود مقدار True و در صورت بروز خطا مقدار False است. توجه کنيد که اين تابع سند تر تميز شده و شسته رفته را به عنوان خروجی خود بر نمی گرداند؛ بدين منظور از تابع ()tidy_get_output برای بازيابی سند اصلاح شده استفاده می کنيم.
<?php
$tidy = tidy_parse_string('I am <b>bold and I am <i>bold and italic</b>');
tidy_clean_repair($tidy);
print tidy_get_output($tidy);
?>
خروجی دستورهای فوق را در زير می بينيد:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title></title>
</head>
<body>
I am <b>bold and I am <i>bold and italic</i></b>
</body>
</html>
همانطور که می بنيد توسعه Tidy کاری فراتر از جبران تگ پايانی i را انجام داده و رشته کاراکتر ارسالی را تبديل به يک سند HTML 3.2 معتبر کرده است.
پيکربندی Tidy :
می رسيم به نحوه پيکربندی Tidy؛ راه های زبادی برای پيکربندی يا Configure کردن Tidy وجود دارد. اختياراتی که جهت پيکربندی Tidy به کار می رود را می توان در يک آرايه يا فايل ذخيره کرد. برای مثال تکه کد زير تنها بخش Body از سند اصلاح شده را نمايش می دهد.
<?php
$options = array('show-body-only' => true);
$tidy = tidy_parse_string('I am <b>bold and I am <i>bold and italic</b>');
tidy_clean_repair($tidy);
print tidy_get_output($tidy);
?>
خروجی تکه کد بالا هم طبيعتا به صورت زیر است:
I am <b>bold and I am <i>bold and italic</i></b>
این امکان وقتی مفید هست که یک Message Board دارید و می خواهید پیام های کاربران را در آن نمایش دهید. از آنجا که این پیام ها داخل Template سایت شما جای می گیرند، دیگر لازم به یک سند کامل HTML نخواهید داشت و صرفا بخش Body کفایت می کند.
در مثال فوق، اختيارات يا دستورالعمل های پيکربندی را داخل يک آرايه قرار داديم؛ همانظور که گفتم اين دستورالعملها را داخل يک فايل هم می توان نوشت و نام فايل را به عنوان ورودی به تابع tidy_parse_string ارسال کرد. دقت کنيد که در فايل پيکربندی هر دستورالعمل می بايست در يک خط جديد قرار بگيرد و از کالن(:) می توان جهت جداسازی نام و مقدار دستورالعمل استفاده کرد. اگر در فايل پيکربندی داشته باشيم:
show-body-only: true logical-emphasis: true
و نام فایل را tidy.cnf بگذاریم، تکه کد:
<?php
tidy = tidy_parse_string('I am <b>bold and I am <i>bold and italic</b>', 'tidy.cnf');
tidy_clean_repair($tidy);
print tidy_get_output($tidy);
?>
خروجی زير را خواهد داشت.
I am <strong>bold and I am <em>bold and italic</em></strong>
مشاهده می کنید که با روشن کردن گزينه logical-emphasis تگ های i و b به معادل های منطقی آنها تبديل شدند.
در جدول پايين مهمترین و متداول ترین گزينه های پيکربندی Tidy را آورده ام. برای مشاهده ليست کامل، به اينجا مراجعه کنيد.
نام | توضيح | مقادير | مقدار پيش فرض
clean | آيا Tidy تگ هاي Font را به CSS تبديل كند؟ | Boolean | no
hide-endtags | آيا تگ هاي پاياني حذف شود؟ | Boolean | no
indent | تورفتگي تگ هاي Block-level نظير تگ p | yes,no,auto | no
indent-spaces | مقدار فاصله براي هر تورفتگي | Integer | 2
markup | تهيه نسخه قابل چاپ فايل | Boolean | yes
output-xml | خروجي XML به جاي HTML | Boolean | no
output-xhtml | خروجي XHTML به جاي HTML | Boolean | no
show-body-only | خروجي محتويات بخش Body | Boolean | no

بهينه سازی فايلها توسط Tidy :
Tidy اختیاراتی را فراهم آورده است که به موجب آن می توان حجم فایلهای خروجی را کاهش داد. با حذف فضاهای خالی(Whitespaces) زائد، توضیحات(Comments) و تبدیل تگ های font به CSS این امر محقق می شود.
یک نمونه پیکربندی ساده جهت حذف تمام کاراکترهای غیرضروری موجود در یک فایل:
<?php
$options = array(
'clean' => true,
'drop-proprietary-attributes' => true,
'drop-empty-paras' => true,
'hide-comments' => true,
'hide-endtags' => true,
'join-classes' => true,
'join-styles' => true,
'wrap' => 0,
);

$tidy = tidy_parse_file('http://www.example.org/', $options);
tidy_clean_repair($tidy);
print $tidy;
?>
با وضع چنين گزينه هايی جهت پيکربندی، توانستيم آن تگهای HTML ای که مرورگر کاری با آنها ندارد و به عبارتی در هنگام نمايش صفحه، آنها را در نظر نمی گيرد حذف کنيم؛ همچنين استايلهای تکراری موجود در فايل را به يک استايل واحد تبديل کرديم.
به خاطر داشته باشيد که مقدار بهينه سازی که در حجم فايلهای خود انجام می دهيد به ازای هر صفحه ای که سرويس دهنده به سمت سرويس گيرنده ارسال می کند، باعث تاثیر بسزايی در کاهش پهنای باند مصرفی و هزينه اخذ شده جهت اين مهم دارد و به عبارتی چاره درد سايتهايی با ترافيک بالاست. جدول پايين، حاوی گزينه های پيکربندی Tidy جهت بهينه سازی فايلهاست:
نام | توضيح | مقادير | مقدار پيش فرض
clean | آيا تگ هاي نمايشي نظير center با استايلهاي مربوطه جايگزين شود؟ | Boolean | no
drop-proprietary-attributes | آيا خصيصه هاي اختصاصي كه توسط برخي برنامه هاي نظير FrontPage توليد مي شود حذف شود؟ | Boolean | no
drop-font-tags | حذف تگ هاي font در صورتيكه گزينه clean فعال باشد. | Boolean | no
drop-empty-paras | حذف تگ هاي p خالي | Boolean | yes
hide-comments | پاك كردن توضيحات | Boolean | no
hide-endtags | حذف تگ هاي پاياني در صورت امكان(البته با توجه به Document Type) | Boolean | no
join-classes | ادغام كلاس هاي مرتبط با هم | Boolean | no
join-styles | ادغام استايلهاي مرتبط با هم | Boolean | yes
wrap | عرض Line Wrapping (مقدار صفر براي از كار انداختن Wrapping) | Integer | 68

واسط شی گرايی(Object-Oriented Interface) :
Tidy علاوه بر واسط رويه ای خود، دارای واسط شی گرايی نيز می باشد.
<?php
$tidy = new Tidy('I am <b>bold and I am <i>bold and italic</b>');
$tidy->cleanRepair( );
print $this->getOutput( );
?>
نظير ساير توسعه ها که علاوه بر واسط رويه ای دارای واسط شی گرايی هم هستند، متدهای Tidy از شيوه نامگذاری studlyCaps استفاده می کند. اين نوع نامگذاری را کوهان شتری ميگويند و توصيه می شود که برنامه نويسان هنگام توسعه برنامه های کاربردی اين قاعده را رعایت کنند. (برای دوستانی که معنی studlyCaps را نمی دانند، بايد عرض کنم قاعده این شیوه نامگذاری بر این اساس است که حرف اول نام متد را کوچک و حرف اول ساير کلمات را بزرگ می نويسيم. روش ديگر استفاده از زيرخط(Underscore) است که برنامه نويسان قديمی با آن مانوس هستند؛ بدين ترتيب که کلمات را با زيرخط از هم جدا می کنیم.) در ضمن يک منبع يا Resource از نوع Tidy را نمی توان به متدهای آن ارسال کرد چون منبع در خود آبجکتی که نمونه گرفته ايم، ذخيره می شود.
نيما شايانفر
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 17 ، ديروز : 3 ، مجموع : 1135


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND USER FORM
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND USER FORM, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 32
شناسايی کاربران بر اساس فرمهای وب
برنامه‎های وب ASP.NET می توانند از سه روش مختلف برای شناسائی و تاييد کاربران وب سايت استفاده کنند. اين روش ها عبارتند از: Windows Authentication ، Forms-Based Authentication و Passport Authentication. اين مقاله به اين نوع سوالات پاسخ می دهد و شما را قدم به قدم با چگونگی شناسايی کاربران آشنا می کند.
اين مقاله شامل بخشهای زير می باشد:
• ملزومات
• ايجاد یک برنامه ASP.NET با استفاده از Visual Studio.NET (زبان: Visual Basic.NET)
• پيکربندی تنظيمات امنيتی در فايل Web.config
• ايجاد يک جدول در پايگاه داده برای ذخيره جزئيات و مشخصات کاربران
• ايجاد يک فرم Logon.aspx که محل شناسايی کاربران می باشد
• انجام کدنويسی برای برخی از رويدادها که بتوان کاربران را اعتبارسنجی کرد
• ايجاد يک صفحه default.aspx
• موارد ديگر
• منابع
ملزومات :
در ابتدا لازم است ملزومات زير را بر روی سيستم خود آماده کنيد:
Microsoft Visual Studio .NET
Microsoft SQL Server
Microsoft Internet Information Server (IIS) version 5.0 or later

ايجاد یک برنامه ASP.NET با استفاده از Visual Studio.NET (زبان: Visual Basic.NET) :
۱- Visual Studio .NET را باز کنيد.
۲- يک برنامه وب ASP.NET را با زبان Visual Basic.NET ايجاد نماييد.
پيکربندی تنظيمات امنيتی در فايل Web.config :
اين قسمت نشان می دهد که چگونه قسمتهای و فايل Web.config را تنظيم کنيم تا برنامه ASP.NET ساخته شده در قسمت بالا برای تاييد کاربران بر مبنای فرمها پيکربندی شود. برای اين کار مراحل زير را انجام دهيد.
۱- فايل Web.config را از پنجره Project Explorer باز کنيد.
۲- مد authentication را برابر "Forms" قرار دهيد.
۳- تگ را قرار دهيد و خصوصيات مناسب آنرا تکميل کنيد (برای ديدن ليست کامل اين خصوصيات می توانيد به مستندات QuickStart مراجعه کنيد).
قسمت authentication در فايل Web.config بايد به شکل زير باشد. می توانيد همين کد را کپی کرده و از منوی Edit در Visual Studio.NET گزينه Paste as HTML را انتخاب کنيد.
<authentication mode="Forms">
<forms name=".ASPXFORMSDEMO" loginUrl="logon.aspx"
protection="All" path="/" timeout="30" />
</authentication>
۴- حال بايد با تغيير قسمت authorization به شکل زير مانع از ورود افراد ناشناس به صفحات شويد:
<authorization>
<deny users ="?" />
<allow users = "*" />
</authorization>
ايجاد يک جدول در پايگاه داده برای ذخيره جزئيات و مشخصات کاربران :
اين مرحله چگونگی ايجاد يک جدول در پايگاه داده، برای ذخيره نام، کلمه عبور و نقش (وظيفه) کاربران را نشان می دهد.
۱- برنامه Notepad را باز کنيد.
۲- کد اسکريپت SQL زير را در آن کپی کنيد:
if exists (select * from sysobjects where id =
object_id(N'[dbo].[Users]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[Users]
GO
CREATE TABLE [dbo].[Users] (
[uname] [varchar] (15) NOT NULL ,
[Pwd] [varchar] (25) NOT NULL ,
[userRole] [varchar] (25) NOT NULL ,
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Users] WITH NOCHECK ADD
CONSTRAINT [PK_Users] PRIMARY KEY NONCLUSTERED
(
[uname]
) ON [PRIMARY]
GO

INSERT INTO Users values('user1','user1','Manager')
INSERT INTO Users values('user2','user2','Admin')
INSERT INTO Users values('user3','user3','User')
GO

INSERT INTO Users values('user1','user1','Manager')
INSERT INTO Users values('user2','user2','Admin')
INSERT INTO Users values('user3','user3','User')
GO
۳- فايل را با نام Users.sql ذخيره کنيد.
۴- SQL Server را باز کنيد. فايل Users.sql را در Query Analyzer باز کنيد (برای دسترسی به محيط Query Analyzer می توانيد آنرا از منوی Tools در SQL Server اجرا کنيد). از ليست Databases پايگاه داده Pubs را انتخاب کنيد و اسکريپت (فايل Users.sql) را اجرا کنيد. اين کار جدولی به نام Users را در پايگاه داده Pubs ايجاد می کند و داده های نمونه ای را در آن برای استفاده در برنامه ASP.NET قرار می دهد. می توانيد به جای Pubs از پايگاه داده ديگری هم استفاده کنيد که در اين صورت، هنگام تعيين Connection String مربوط به آبجکت Connection بايد نام آن پايگاه داده را به جای Pubs قرار دهيد.
ايجاد يک فرم Logon.aspx که محل شناسايی کاربران می باشد :
۱- يک فرم به نام Logon.aspx را به پروژه اضافه کنيد.
۲- در نمای HTML فرم Logon.aspx کد زير را بين دو تگ Form اضافه کنيد:
<h3>
<font face="Verdana">Logon Page</font>
</h3>
<table>
<tr>
<td>UserName:</td>
<td><input id="txtUserName" type="text" runat="server"></td>
<td><ASP:RequiredFieldValidator ControlToValidate="txtUserName"
Display="Static" ErrorMessage="*" runat="server"
ID="vUserName" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input id="txtUserPass" type="password" runat="server"></td>
<td><ASP:RequiredFieldValidator ControlToValidate="txtUserPass"
Display="Static" ErrorMessage="*" runat="server"
ID="vUserPass" />
</td>
</tr>
<tr>
<td>Persistent Cookie:</td>
<td><ASP:CheckBox id="chkPersistCookie" runat="server" autopostback="false" /></td>
<td></td>
</tr>
</table>
<input type="submit" Value="Logon" runat="server" ID="cmdLogin"><p></p>
<asp:Label id="lblMsg" ForeColor="red" Font-Name="Verdana" Font-Size="10" runat="server" />
در اين فرم کاربرانی که می خواهند وارد سايت شوند شناسايی می شوند. اين فايل را ذخيره کنيد.
انجام کدنويسی برای برخی از رويدادها که بتوان کاربران را اعتبارسنجی کرد :
اين قسمت حاوی کدی است که در فايل code-behind فرم Logon.aspx ) یعنی( Logon.aspx.vb قرار می گيرد.
۱- فايل logon.aspx.vb را باز کنيد.
۲- فضانام های مورد نياز را در فايل code-behind وارد کنيد:
Imports System.Data.SqlClient Imports System.Web.Security
۳- يک تابع به نام ValidateUser ايجاد کنيد که مشخصات کاربران را برای اعتبارسنجی در پايگاه داده جستجو می کند. برای اين کار می توانيد از کد زير استفاده کنيد. (Connection String موجود در اين کد بايد مطابق با پايگاه داده شما باشد پس در صورت لزوم بايد آنرا مطابق با سيستم خودتان تغيير دهيد. در اينجا نام کامپيوتر من DOTNET می باشد و SQL Server به صورت Local نصب شده است).
Function ValidateUser(uid As string, passwd As string) As Boolean
Dim cnn As SqlConnection
Dim cmd As SqlCommand
Dim dr As SqlDataReader
Dim retVal As Boolean = False
cnn = New SqlConnection("Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=pubs;Workstation ID=DOTNET;")
cmd = New SqlCommand("Select * from users where uname = '" & uid & "'", cnn)
cnn.Open()
dr = cmd.ExecuteReader()
While (dr.Read())
If Strcomp(dr.Item("Pwd"), passwd, 1) = 0 Then
retVal = True
End If
End While
cnn.Close()
ValidateUser = retVal
End Function
۴- شما می توانيد از يکی از روشهای زير برای ايجاد کوکی شناسايی بر اساس فرمها استفاده کرده و در رويداد cmdLogin_ServerClick کاربر را به صفحه‎ی مناسب هدايت کنيد. يکی از دو قطعه کد زير را برای رويداد cmdLogin_ServerClick بنويسيد:
- متد RedirectFromLoginPage را برای ايجاد خودکار کوکی شناسايی فراخوانی کنيد و کاربر را به صفحه ی مناسب هدايت کنيد:
Private Sub cmdLogin_ServerClick(ByVal sender As Object, ByVal e As System.EventArgs) _
Handles cmdLogin.ServerClick
If ValidateUser(txtUserName.Value,txtUserPass.value) Then
FormsAuthentication.RedirectFromLoginPage(txtUserName.Value, _
chkPersistCookie.Checked)
Else
lblMsg.Text = "Unknown User! try again."
End If
End Sub
- برچسب شناسايی (authentication ticket) را بسازيد و آنرا رمزنگاری کنيد. يک کوکی بسازيد و آنرا به پاسخ درخواست انجام شده از صفحه اضافه کنيد و کاربر را هدايت کنيد. اين روش امکانات زيادی را در رابطه با نحوه ساخت کوکی به شما می دهد. مثلا می توانيد داده های دلخواه خود را به کوکی اضافه کنيد:
Private Sub cmdLogin_ServerClick(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles cmdLogin.ServerClick
If Validateuser(txtUserName.Value,txtUserPass.Value) Then
Dim tkt As FormsAuthenticationTicket
Dim cookiestr As String
Dim ck As HttpCookie

tkt = New FormsAuthenticationTicket(1, txtUserName.Value, DateTime.Now(), _
dateTime.Now.AddMinutes(30), chkPersistCookie.Checked, "your custom data")
cookiestr = FormsAuthentication.Encrypt(tkt)
ck = new HttpCookie(FormsAuthentication.FormsCookieName(), cookiestr)
if (chkPersistCookie.Checked) then ck.Expires=tkt.Expiration
ck.Path = FormsAuthentication.FormsCookiePath()
Response.Cookies.Add(ck)

Dim strRedirect As String
strRedirect = Request("ReturnURL")
If strRedirect <> "" Then
Response.Redirect(strRedirect, True)
Else
strRedirect = "default.aspx"
Response.Redirect(strRedirect, True)
End If
Else
lblMsg.Text = "Unknown User! try again."
End If
End Sub
ايجاد يک صفحه default.aspx :
در اين قسمت يک صفحه به نام default.aspx می سازيم. اين صفحه برای کاربرانی است که شناسايی شده اند و قرار است که به اين صفحه هدايت شوند. اگر کاربری بدون اين که شناسايی شده باشد اين صفحه را درخواست کند به صفحه logon.aspx هدايت می شود.
۱- يک فرم جديد به نام default.aspx به پروژه اضافه کرده و آنرا در نمای HTML باز کنيد. کد زير را در بين تگ های
اضافه کنيد:
<input type="submit" Value="SignOut" runat="server" id="cmdSignOut">
اين دکمه برای خارج شدن (log out) از صفحه default.aspx استفاده می شود. با کليک بر روی اين دکمه کوکی ساخته شده از بين می رود. اين فرم را ذخيره کنيد.
۲- فضانام لازم را در فايل code-behind مربوط به فرم default.aspx وارد کنيد:
Imports System.Web.Security
۳- کد زير را برای رويداد cmdSignOut_ServerClick اضافه کنيد:
Private Sub cmdSignOut_ServerClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles cmdSignOut.ServerClick
FormsAuthentication.SignOut()
Response.Redirect("logon.aspx", True)
End Sub
۴- اکنون می توانيد از اين برنامه استفاده کنيد. همه فايلها را ذخيره کرده و برنامه را اجرا کنيد.
موارد ديگر :
• ممکن است شما بخواهيد که کلمه های عبور کاربران را به صورت امن و رمزنگاری شده در پايگاه داده ذخيره کنيد. در اين صورت می توانيد از تابعی به نام HashPasswordForStoringInConfigFile که يکی از توابع سودمند کلاس FormsAuthentication می باشد استفاده کنيد. به کمک اين تابع می توانيد کلمه های عبور را قبل از ذخيره کردن در پايگاه داده رمزنگاری کنيد.
• ممکن است بخواهيد اطلاعات مربوط به SQL Connection را در فايل پيکربندی (Web.config) ذخيره کنيد تا راحتتر بتوانيد آنرا تغيير دهيد.
• ممکن است بخواهيد کدهايی را برای جلوگيری از ورود هکرهايی که قصد دارند از ترکيبات مختلف کلمه های عبور برای ورود به سايت استفاده کنند، در نظر بگيريد. برای مثال می توانيد منطقی را پياده سازی کنيد که فقط تعداد مشخصی اقدام ورود به سايت را قبول می کند و اگر کاربری در تعداد معينی از انجام عمل ورود نتواند وارد سايت شود، در پايگاه داده با علامت زدن نام اين کاربر، ديگر اين کاربر غير فعال شده و با وارد کردن مشخصات درست نيز نتواند وارد سايت شود مگر اين که با بازديد از صفحه ای ديگر از سايت یا با تماس با واحد پشتيبانی شما بتواند حساب خود را دوباره فعال کند!
• به دليل اين که کاربر با کوکی تاييد اعتبار شناسايی می شود، ممکن است از Secure Socket Layer يا SSL در برنامه استفاده کنيد تا کسی نتواند کوکی و ساير اطلاعات باارزشی که در حال انتقال هستند را بدست آورد.
• تاييد اعتبار بر مبنای فرمها نيازمند اين است که کاربران سايت کوکی ها را در مرورگر خود فعال کنند.
• پارامتر timeout در بخش پيکربندی <authentication> مدت زمانی که کوکی تاييد اعتبار دوباره ايجاد می شود را تايين می کند، شما می توانيد هر مقداری را که مناسب می دانيد به اين پارامتر اختصاص دهيد.
احسان وليزاده
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 18 ، ديروز : 3 ، مجموع : 1136


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND C#
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND C#, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 31
کاهش حجم خروجی در ASP.NET
مساله سرعت بارگذاری صفحات (چه به صورت Static طراحی شده باشند چه به صورت Dynamic) از مباحث مهم در طراحی حرفه ای صفحات وب است اين مساله در کشور ما با توجه به سرعت نسبتا پايين خطوط اينترنت اهميت مضاعفی می يابد از طرفی در سايتهای بزرگ که طبعا حجم بيشتری هم دارند مساله پهنای باند مصرفی نيز مورد توجه قرار می گيرد که رابطه مستقيمی با سرعت بارگذاری صفحات دارد چرا که سرعت بارگذاری صفحات نيز رابطه مستقيمی با حجم صفحات دارد.
در واقع عامل اصلی در سرعت بارگذاری صفحات حجم کدهای HTML صفحات است. صفحات چه به صورت Static طراحی شده باشند چه به صورت Dynamic در نهايت به صورت کدهای HTML در سمت Client به نمايش در می آيند. اگر چه در صفحات Dynamic ميزان محاسبات روی Server نيز نقش دارند ولی با توجه به رشد قدرت سخت افزار و نرم افزار اين عامل روز به روز کم رنگ تر می شود.
حال بحث را به ASP.NET محدود می کنيم. اگر با ساختار پاسخ گويی به درخواستهای کاربران توسط IIS در ASP.NET آشنا باشيد، می دانيد که پس از پردازش کدهای صفحات و تعيين کدهای HTML آنها را به سمت Client می فرستد. حال برای حل مشکل سرعت صفحات حجيم راه حل هايی ايجاد شده است که ريشه در فشرده سازی و کاهش حجم کدهای HTML ارسالی به سمت کاربر و بازگشايی کدهای HTML در سمت Client دارد.
روشهای بسيار قوی و توانايی در اين زمينه وجود دارند که می توانند تا متوسط هشتاد درصد در سرعت و پهنای باند مصرفی صرفه جويی کنند. و بسته های نرم افزاری آنها در سايتهای داخلی و خارجی موجودند(مانند بسته نرم افزاری ASP.JET). ولی سوالی که مطرح می شود اينست که بازگشايی کدهای فشرده شده در سمت Client بر چه اساسی صورت می گيرد؟ پاسخ اين است که در استاندارد HTTP 1.1 الگوريتمهای به صورت پيش فرض برای فشرده سازی صفحات در نظر گرفته شده اند که فشرده سازی نيز توسط همين الگوريتمها صورت می گيرد.
مقاله پيش روی شما به روشی می پردازد که جدا از مساله بازگشايی کدهای فشرده سازی شده است. پس در استاندارد HTTP 1.0 نيز قابل استفاده است ولی درصد کمتری از فشرده سازی را نسبت به روشهای مذکور انجام می دهد (بين 7 تا 30 درصد).
می دانيم در طراحی کدهای HTML در اکثر نرم افزارهای طراحی Editor ها برای خوانايی کدها و خطايابی، آنها را با فواصل و شکست خطوط مناسبی به نمايش گذاشته و به همين صورت نيز ذخيره می کند. اين فواصل اضافی توسط مرورگرها در نظر گرفته نمی شوند ولی حجم زائدی را اشغال می کنند. در اين مقاله با استفاده از يک کلاس نوشته شده در Visual Basic.NET اين فواصل را پيش از ارسال کدهای HTML به سمت Client از بين می برد و از فوايد اين روش اين است که برای سايتهای کوچکتر و وبلاگها به سهولت قابل استفاده است و در صورتی که در سايتهای بزرگ Client ها از استاندارد HTTP 1.0 استفاده کنند می توانند با استفاده از اين روش خلا موجود را تا حدی پوشاند.
در اينجا ذکر اين نکته لازم است که الگوريتمهای مورد استفاده در فشرده سازی صفحات نمی توانند کدهای حاصل از روش موجود در اين مقاله را فشرده کنند و حاصل کدهايی خواهد بود که در مرورگر به نمايش در نمی آيد زيرا اين روشها بر مبنای شکست خطوط و فواصل پيش فرض واقعند. در صورتی که قصد استفاده از اين روشها را در کنار هم داريد لازم است روش زير را توسط شروط لازم به استاندارد HTTP 1.0 محدود کنيد.
نکته قابل توجه ديگر اين است که کلاس به کار رفته در اين مقاله تعدادی از فواصل زائد موجود در Tag ها و کدهای معمول را حذف می کند و شما به سادگی می توانيد مطابق الگوی به کار رفته Tag ها و کدهای ديگری را به اين کلاس اضافه کنيد.
روش استفاده :
اين مقاله از فضای نام HttpResponse.Filter برای کاهش حجم خروجی استفاده می کند. برای استفاده از اين الگوريتم لازم است که کد کلاس WhitespaceFilter موجود در زير را در يک فايل به نام WhitespaceFilter.vb ذخيره نموده و به پروژه خود اضافه کنيد و خط زير را به متد Application_BeginRequest در فايل Global.asax اضافه کنيد:
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)

' Fires at the beginning of each request

Response.Filter = New WhitespaceFilter(Response.Filter)

End Sub
در صورتی که هدف شما استفاده از اين روش در صفحات خاصی است کافيست به جای عمل فوق کد بالا را در متد Load صفحات هدف اضافه کنيد با کد موجود در فايل Global.asax را مانند مثال زير با شروط لازم تغيير دهيد:
Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)

' Fires upon attempting to authenticate the use

If Request.Url.PathAndQuery.ToLower.IndexOf("makethumbnail") = -1 Then

Response.Filter = New WhitespaceFilter(Response.Filter)

End If

End Sub
بهتر است برای مقايسه حجم صفحات HTML خود قبل از استفاده از اين روش يکی از صفحات خود را در مرورگر مشاهده کرده و توسط يک Editor مانند NotePad محتوای آن را بررسی کنيد و آن را به صورت يک فايل متنی ذخيره کنيد.سپس بعد از استفاده از اين روش همان صفحه را مجددا بررسی کرده و به صورت فايل ديگری ذخيره سازی کنيد.بعد از آن حجم دو فايل را با هم مقايسه کنيد تا برای هر صفحه به درصد فشرده سازی صفحات پی ببريد.
بررسی کدهای کلاس WhitespaceFilter :
حال به بررسی کدهای مربوط به اين Class می پردازيم:
Imports System.IO

Imports System.Text.RegularExpressions
اين فيلتر از ايجاد فضاهای خالی غير ضروری د رخروجی جلوگيری می کند:
' This filter gets rid of all unnecessary whitespace in the output.

Public Class WhitespaceFilter

Inherits Stream

Private _sink As Stream

Private _position As Long

Public Sub New(ByVal sink As Stream)

_sink = sink

End Sub 'New
اين قسمت از کد در صورت ايجاد هر گونه تغيير نبايد تغيير کند.
#Region " Code that will most likely never change from filter to filter. "
اين اعضا از Stream مهم هستند.
' The following members of Stream must be overridden.

Public Overrides ReadOnly Property CanRead() As Boolean

Get

Return True

End Get

End Property

Public Overrides ReadOnly Property CanSeek() As Boolean

Get

Return True

End Get

End Property

Public Overrides ReadOnly Property CanWrite() As Boolean

Get

Return True

End Get

End Property

Public Overrides ReadOnly Property Length() As Long

Get

Return 0

End Get

End Property

Public Overrides Property Position() As Long

Get

Return _position

End Get

Set(ByVal Value As Long)

_position = Value

End Set

End Property

Public Overrides Function Seek(ByVal offset As Long, ByVal direction As System.IO.SeekOrigin) As Long

Return _sink.Seek(offset, direction)

End Function 'Seek

Public Overrides Sub SetLength(ByVal length As Long)

_sink.SetLength(length)

End Sub 'SetLength

Public Overrides Sub Close()

_sink.Close()

End Sub 'Close

Public Overrides Sub Flush()

_sink.Flush()

End Sub 'Flush

Public Overrides Function Read(ByVal MyBuffer() As Byte, ByVal offset As Integer, ByVal count As Integer) As Integer

_sink.Read(MyBuffer, offset, count)

End Function

#End Region
Write متد اصلی انجام عمل فيلتر است.
' Write is the method that actually does the filtering.

Public Overrides Sub Write(ByVal MyBuffer() As Byte, ByVal offset As Integer, ByVal count As Integer)

Dim data(count) As Byte

Buffer.BlockCopy(MyBuffer, offset, data, 0, count)
اينجا ASCII Encoding استفاده نکنيد چون IDE برخی ار کاراکترها مثل ® را با کاراکترهای UTF-8 عوض می کنند اگر از ASCII Encoding استفاده کنيد B را به جای علامت ® دريافت می کنيد.
           ' Don't use ASCII encoding here.
          The .NET IDE replaces some characters, such as
          &reg;

' with a UTF-8 entity. If you use ASCII
          encoding, you'll get B. instead of the registered

' trademark symbol.

Dim s As String
          = System.Text.Encoding.UTF8.GetString(data)
جا به جا کردن کاراکترهای موجود در کنترلها با فضاهای خالي.
بررسی Semi-colon در اين قسمت به علت وجود اين کاراکتر در توضيحات Java Script موجود در کامپوننت است.
با اين راه ما مقدار را حفظ می کنيم.
' Replace control characters with either spaces or nothing

' The funky semi-colon handling is there because of a JavaScript comment in a component.

' This way, we keep the carriage returns that actually matter.

s = s.Replace(ControlChars.Cr, Chr(255)).Replace(ControlChars.Lf, "").Replace(ControlChars.Tab, "")

s = s.Replace(";" & Chr(255), ";" & ControlChars.Cr)

s = s.Replace(Chr(255), " ")
حذف فضاهای خالی اضافي :
' Eliminate excess whitespace.

Do

s = s.Replace(" ", " ")

Loop Until s.IndexOf(" ") = -1
حذف توضيحات پيش فرض و شناخته شده : ما در قالبهای خود از سه توضيح استفاده می کنيم که در هر صفحه ای از سايت وارد می شوند.بنا بر اين در زمان خروج ضفحات مط توانيم انها را حذف کنيم.با اين راه توضيحات برای نگهداری و عيب يابی موجودند ولی در زمان انتشار صفحات حذف می شوند.
' Eliminate known comments.

' We use three comments in our template. These comments go on every single page on the site.

' Obviously, we can kill them when they are going out. This way, the comments stay in for

' maintenance, but are trimmed before release.

s = s.Replace("<!-- Page Content Goes Above Here -->", "")

s = s.Replace("<!-- Page Content Goes Below Here -->", "")

s = s.Replace("<!-- Do not get rid of this &nbsp; on data pages -->", "")
حذف برخی فضاهای خالی وارد شده که از بين بردن آنها مجاز است.به دلايلی يک فضای خالی قبل از هدايت کننده DOCTYPE وارد می شود.
' Eliminate some additional whitespace we can kill

' For some reason, a single space gets emitted before each of our DOCTYPE directives.

s = s.Replace(" <!DOCTYPE", "<!DOCTYPE")
اينها فضاهای خالی معمولی هستند که می توانيم حذف کنيم:
' These are the most common excess whitespace items we can remove.

s = s.Replace("<li> ", "<li>").Replace("</td> ", "</td>").Replace("</tr> ", "</tr>").Replace("</ul> ", "</ul>").Replace("</table> ", "</table>").Replace("</li> ", "</li>")

s = s.Replace("<LI> ", "<LI>").Replace("</TD> ", "</TD>").Replace("</TR> ", "</TR>").Replace("</UL> ", "</UL>").Replace("</TABLE>", "</TABLE>").Replace("</LI> ", "</LI>")

s = s.Replace("<td> ", "<td>").Replace("<tr> ", "<tr>")

s = s.Replace("<TD> ", "<TD>").Replace("<TR> ", "<TR>")

s = s.Replace("<P> ", "<P>").Replace("<p> ", "<p>")

s = s.Replace("</P> ", "</P>").Replace("</p> ", "</p>")

s = s.Replace("style=""display:inline""> ", "style=""display:inline"">")

s = s.Replace(" <H", "<H").Replace(" <h", "<h").Replace(" </H", "</H").Replace(" </h", "</h")

s = s.Replace("<UL> ", "<UL>").Replace("<ul> ", "<ul>")

s = s.Replace(" <TABLE", "<TABLE").Replace(" <table", "<table")

s = s.Replace(" <li>", "<li>").Replace(" <LI>", "<LI>")

s = s.Replace(" <br>", "<br>").Replace(" <BR>", "<BR>").Replace("<br> ", "<br>").Replace("<BR> ", "<BR>")

s = s.Replace(" <ul>", "<ul>").Replace(" <UL>", "<UL>")
جا به جايی Tag های بلند با معادل کوتاه آنها:
' Replace long tags with short ones

s = s.Replace("<STRONG>", "<B>").Replace("<strong>", "<b>")

s = s.Replace("</STRONG>", "</B>").Replace("</strong>", "</b>")
جا به جايی برخی نمادهای HTML با کدهای کاراکتری درست معادل آنها:
' Replace some HTML entities with true character codes

s = s.Replace("&brkbar;", "|")

s = s.Replace("&brvbar;", "|")

s = s.Replace("&shy;", "-")

s = s.Replace("&nbsp;", Chr(160))

s = s.Replace("&lsquor;", "'")

s = s.Replace("&ldquor;", """")

s = s.Replace("&lsquo;", "'")

s = s.Replace("&rsquor;", "'")

s = s.Replace("&rsquo;", "'")

s = s.Replace("&ldquo;", """")

s = s.Replace("&rdquor;", """")

s = s.Replace("&rdquo;", """")

s = s.Replace("&ndash;", "-")

s = s.Replace("&endash;", "-")
اگر اين کار را انجام ندهيم JavaScript روی سايت عمل نمی کند:
' If we don't do this, JavaScript horks on the site

s = s.Replace("<!--", "<!--" & ControlChars.Cr)

s = s.Replace("}", "}" & ControlChars.Cr)
آخرين شانس برای از بين بردن فضاهای خالي:
' Last chance to eliminate excess whitespace

Do

s = s.Replace(" ", " ")

Loop Until s.IndexOf(" ") = -1
در نهايت کاری که انجام داده ايم را خارج می کنيم:
' Finally, we spit out what we have done.

Dim outdata() As Byte = System.Text.Encoding.UTF8.GetBytes(s)

_sink.Write(outdata, 0, outdata.GetLength(0))

End Sub 'Write

End Class
کيوان نيّری
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 19 ، ديروز : 3 ، مجموع : 1137


﻿ DHCGRAPHIC ARTICLES ABOUT : C# AND VB.NET IN ASP.NET
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : C# AND VB.NET IN ASP.NET, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 37
به رمز درآوردن اطلاعات
تا به حال به این فکر افتاده اید که یک سری اطلاعات را به صورت رمز در آورید و از دید کاربر پنهان کنید؟ برای مثال یک QueryString یا اطلاعات ذخیره شده داخل یک کوکی. گاهی هم بد نیست بعضی از اطلاعات داخل بانک اطلاعاتی خود را به صورت رمز ذخیره کنید تا در صورت سرقت آن، حداقل برخی اطلاعات حساس شما تا حدی محفوظ بماند. در این مقاله سعی میکنیم یک روش استاندارد برای به رمز در آوردن رشته ها را با هم مرور کنیم.
برای اینکه همراه ما پیش بروید در VS.net یک پروژه جدید C# Application به صورت ASP.net Web Application ایجاد کنید. WebForm1.aspx به صورت پیش فرض در مقابل شما قرار میگیرد، از Toolbox یک Label داخل WebForm1 درگ کنید، به صورت پیش فرض نام آن Label1 خواهد بود.
معرفی Base64String :
Base64String نوعی از String است (و با خصوصیات یک string معمولی) که کاربر نمیتواند آن را تشخیص دهد، (اگر کسی را میشناسید که میتواند به من هم بگویید!) برای مثال جمله "I LOVE ASP.net"، در Base64String میشود "SSBMT1ZFIEFTUC5uZXQ=". اما چطور؟
string String = "I LOVE DHCGRAPHIC.net";
byte [] Byte = System.Text.Encoding.ASCII.GetBytes(String);
Label1.Text = Convert.ToBase64String(Byte);
در خط اول ما یک string معمولی را ساختیم در خط بعدی آن را به byte تبدیل کردیم و Byte نامیدیم، در خط سوم Byte را به صورت Base64String در آوردیم و توسط Label1 به نمایش در آوردیم. فکر خوبی است که عملیات رمز سازی را همین جا تمام کنیم چون Base64String برای کاربر معمولی قابل مشاهده نیست! اما اگر چند خط بالا را با این خط ها عوض کنیم چه میشود؟
string MyBase64String = "SSBMT1ZFIEFTUC5uZXQ=";
byte[] MyByte =Convert.FromBase64String(MyBase64String);
Label1.Text = System.Text.Encoding.ASCII.GetString(MyByte);
حدس بزنید نتیجه چه میشود؟! بله "I LOVE DHC GRAPHIC.net"! در حقیقت ما همان راهی را که رفته بودیم برگشتیم! ابتدا Base64String را به byte تبدیل کردیم و سپس byte را به string معمولی. پس اگر برای ما مهم باشد که اطلاعات رمز شده ما برای کسی قابل بازگشت نباشد هنوز کارمان تمام نشده است. حالا که یاد گرفته اید با Base64String کار کنید بگویید:
"VHJ5IHRvIGZpbmQgd2hhdCB5b3UgbmV2ZXIgbG9vc2U= " چیست ؟! من جوابش را پیدا کردم و به صورت رمز در آوردم "jcUKVu8D4dlpy4BHw6bgefaVMWW9x0qV " جواب است ، امتحان کنید آن را به روش قبلی به string تبدیل کنید و ببیند آیا به جواب منطقی می رسید؟ برای رسیدن به جواب اصلی باید بتوانید آن را رمز گشایی کنید!.
Cryptography با استفاده از TripleDES و MD5 :
در بالا با Base64String آشنا شدیم حالا وقت آن است که با یکی از روشهای معمول رمز سازی در دات نت آشنا شویم این روش فقط یکی از روشهای معمول رمزسازی در دات نت است برای آشنایی با روشهای دیگر از MSDN راهنمایی بگیرید . بیایید ابتدا با عبارتهای تازه‌ی این مبحث آشنا شویم:
TripleDES: برای رمز سازی سه بار از الگوریتم DES استفاده میکند.
DES: مخفف Data Encryption Standard.
MD5: یک الگوریتم کار آمد رمز سازی است که در بسیاری از زبانهای برنامه نویسی دیگر نیز و جود دارد. MD5 عضوی با نام ComputeHash دارد که یک تابع Hash یا (Hash function) است.
توابع Hash یا (Hash functions) یک binary string با طول دلخواه را به یک binary string با طول کوتاه و ثابت! تبدیل میکند، و این خاصیت را دارد که هرگز برای دو ورودی مجزا یک خروجی یک یکسان وجود نخواهد داشت (به عبارت دیگر توابع Hash تضمین میکنند که هر ورودی خروجی منحصر به فردی را داشته باشد). خوب برای به رمز در آورن کافی است مانند مثال زیر عمل کنیم (فعلا آن را اجرا نکنید!)
byte[] IV = new byte[8] {240, 32, 45, 29, 0, 76, 173, 59};
string cryptoKey = "All you need is Love";
string MyString = "I LOVE ASP.net";
byte[] buffer = System.Text.Encoding.ASCII.GetBytes(MyString);
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
des.Key = MD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(cryptoKey));
des.IV = IV;
byte[] CodedBuffer = des.CreateEncryptor().TransformFinalBlock(buffer,0,buffer.Length);
Label1.Text = System.Convert.ToBase64String(CodedBuffer,0,CodedBuffer.Length);
ابتدا بگذارید ببینیم IV و cryptoKey چیستند؟ :
DESCryptoServiceProvider (و به دنبال آن TripleDESCryptoServiceProvider) دارای یک Key و یک IV مخفف Initialization Vector هستند که برای رمز کردن داده ها از آن استفاده میشود (همان طور که لازم نیست بدانیم کی برد و موس چگونه دستورات ما را به سخت افزار کامپیوتر منتقل میکنند تا از آنها استفاده کنیم، لازم نیست به دنبال این باشیم که Key و IV در DESCryptoServiceProvider دقیقا چگونه کار میکنند فقط کافی است بدانیم از آنها چطور استفاده کنیم). باید توجه داشته باشیم اگر فراموش کنیم IV را مقدار دهی کنیم در هنگام اجرا IV یک مقدار تصادفی خواهد گرفت که برگردان داده های رمز شده را غیر ممکن میکند!.
در مثال بالا IV را از جنس byte تعریف کردیم و cryptoKey از جنس string به صورت "All you need is Love" مقدار دهی کردیم که در حقیقت "All you need is Love" کلید رمز ما خواهد بود. MyString همان stringای است که باید به صورت رمز در بیاید. (اگر کمی از #C سر در بیاورید با چند خط بعدی مشکلی نخواهید داشت).
des.Key : حالا وقت آن شده است که Key را مقدار دهی کنیم، اما باید آن را توسط MD5.ComputeHash به صورتی مناسب برای Key بودن تبدیل کنیم و فراموش نکنیم که MD5.ComputeHash، از string به عنوان ورودی نمیتواند استفاده کند و باید قبل از آن cryptoKey خود را به حالت byte تبدیل کرده باشیم (System.Text.ASCIIEncoding.ASCII.GetBytes(cryptoKey)).
و حالا وقت خوبی است تا CreateEncryptor برای رمز سازی اقدام کند و TransformFinalBlock مقدار Hash شده‌ای برای منطقه مشخص شده ای از آرایه های byte مشخص شده حساب میکند. اما توجه داشته باشید که ما byte رمز شده لازم نداریم بلکه string رمز شده میخواهیم پس در قدم آخر باید یک Base64String تولید کنیم.
سوالی که پیش می‌آید این است که TripleDESCryptoServiceProvider و MD5CryptoServiceProvider کجا هستند؟ فضای نام System.Security.Cryptography پاسخ این سوال است پس حالا میتوانید پروژه‌ای را که ایجاد کرده بودیم بیاورید و به جای کد های قبلی کدهای مثال بالا را در آن قرار دهید و فراموش نکنید که namespace جدید را به صورت using System.Security.Cryptography به بالای کدهای خود اضافه کنید.
این روش بر خلاف بعضی از روشهای یک طرفه، قابلیت بازیابی اطلاعات رمز شده را دارا میباشد، فقط کافی است ازCreateDecryptor استفاده کنیم :
byte[] IV = new byte[8] {240, 32, 45, 29, 0, 76, 173, 59};
string cryptoKey = "All you need is Love";
string CodedString64 = "zNvKahC6S/+8xMX3o658wQ==";
byte[] buffer = Convert.FromBase64String(CodedString64);
TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider();
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
des.Key = MD5.ComputeHash(System.Text.ASCIIEncoding.ASCII.GetBytes(cryptoKey));
des.IV = IV;
byte[] CodedBuffer = des.CreateDecryptor().TransformFinalBlock(buffer,0,buffer.Length);
Label1.Text = System.Text.Encoding.ASCII.GetString (CodedBuffer);
خوب حالا میتوانید به من بگویید "jcUKVu8D4dlpy4BHw6bgefaVMWW9x0qV " (که همان جواب معمای ما هم بود) چیست ؟ صد در صد خیر! مگر اینکه من به شما IV و Key آن را بگویم! IV مانند مثال و Key نیز "red rose" است! حالا اگر مطالب را دنبال کرده باشد احتمالا به راحتی میتوانید رمزگشایی کنید! .
چند نکته امنیتی :
آیا این روش، روش قابل اطمینانی است؟ باید بگویم تا وقتی نخواهید اطلاعات چند صد هزار دلاری یا اسناد محرمانه ای را به رمز تبدیل کنید احتمالا میتوانید روی آن حساب کنید مخصوصا که TripleDES سه بار با الگوریتم DES آن را به رمز تبدیل کرده است (سه بار رمز شکستن به راحتی سه بار رمز کردن نیست!). شما میتوانید برای سخت تر کردن کار رمزشکن از Key های مختلفی استفاده کنید ( البته سعی کنید برای رمز کردن کلمه عبور، نام کاربری یا email را به عنوان کلید رمز قرار ندهید! چون شما جزو اولین 10000 نفری نیستید که این کار را کرده اند!). حفاظت اطلاعات شما در گروی امن بودن server ای است که سایت شما روی آن قرار دارد، همینطور از قرار دادن Key در Web.config به عنوان یک کار خلاقانه! جدا خودداری کنید.
حسین روزنامه چی
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 20 ، ديروز : 3 ، مجموع : 1138


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND RSS
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND RSS, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 28
ساخت يک خروجی RSS درASP.NET
RSS يک راه استاندارد برای به اشتراک گذاشتن محتوای سايت ها با ديگران است. RSS يا همان Really Simple Syndication چيزی نيست به جز يک نشانه گذاری استاندارد شده XML که محتوايی که قصد به اشتراک گذاشتن آن را داريد را توصيف می کند. در اين مقاله قصد داريم چگونگی ساخت يک فايل RSS را در ASP.NET بررسی کنيم.
فرمت RSS :
همان طور که قبلا اشاره شد RSS چيزی به جز يک XML نشانه گذاری شده با تگ های مخصوص نيست. کد زير يک نمونه ساده RSS را نشان می دهد.
<rss version="2.0">
<channel xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<title>DHCGRAPHIC New Articles RSS Feed</title>
<language>fa-IR</language>
<copyright>(c) 2004 by dhcgraphic.com</copyright>
<pubDate>Sun, 08 Aug 2004 06:11:37 GMT</pubDate>
<lastBuildDate>Sun, 08 Aug 2005 06:11:37 GMT</lastBuildDate>
<generator>DHCGRAPHIC rss generator</generator>
<item>
<title>کاهش حجم خروجی در ASP.NET</title>
<link>http://www.dhcgraphic.net/article/article.aspx?id=10</link>
<pubDate>Sun, 25 Jul 2004 19:30:00 GMT</pubDate>
</item>
</channel>
</rss>
اجازه بدهيد به تگ های اين سند کمی دقيق تر نگاه کنيم :
rss : تشکيل دهنده تگ ريشه سند است که شامل نسخه سند RSS هم می باشد. آخرين نسخه RSS نسخه 2 است.
channel : گره ريشه سند RSS می تواند تگ channel هم داشته باشد. اين تگ هم به نوبه خود می تواند شامل گره های tile , link و item باشد.
title : مشخص کننده عنوان سند RSS است.
link : اين تگ URL سايت ارايه دهنده RSS را مشخص می کند.
description : جزييات و اطلاعات بيشتر مربوط به اين سند را مشخص می کند.
copyright : اطلاعات مربوط به کپی رايت سند را مشخص می کند.
generator : اين تگ Application ای که اين سند را ساخته معرفی می کند.
علاوه بر تگ های بالا، يک سند RSS می تواند يک يا چند تگ item داشته باشد. تگ item مشخص کننده همان محتوايی است که می خواهيد به اشتراک بگذاريد مثلا يک مقاله يا يکی از پست های يک وبلاگ. هر تگ item به علاوه شامل زيرگره های زير است.
title : اين تگ عنوان آيتم را مشخص می کند مثلا عنوان مقاله.
link : اين تگ URL آن آيتم را نشان می دهد مثلا آدرس مقاله در وب.
description : اين تگ آيتم را توصيف می کند، در مورد يک مقاله می تواند شامل خلاصه مقاله باشد.
pubDate : اين تگ تاريخ انتشار آن آيتم را نشان می دهد. فرمت معمول برای نمايش اين تاريخ به صورت Sun, 25 Jul 2004 12:00:00 GMT است.
چگونه يک سند RSS بسازيم ؟
حالا که با ساختار يک فايل RSS آشنا شديد، به سراغ دات نت می رويم. چگونه در دات نت يک فايل RSS بسازيم؟ دات نت مجوعه ای غنی ای از کلاس های مرتبط با XML دارد. برای ساختن فايل RSS ما از کلاس XML Text writer استفاده می کنيم. ولی می خواهيم يک راه حل کلی داشته باشيم که با هر وب سايتی کار کند. معنی اين حرف اين است که کد ما بايد مستقل از يک جدول يا يک فيلد خاص در ديتابيس سايت باشد. برای اين کار ما يک کلاس در VS.NET می سازيم. منبع تگ های سند XML ما هم يک ديتاست است که از جدول دلخواه ما در ديتابيس ساخته می شود. کلاسی که قصد نوشتن آن را داريم ويژگی ها (properties) و متدهای (methods) زير را دارد :
ويژگی ها(properties) :
Outputstream : يک شی جريان ( Stream ) که خروجی سند در آن نوشته می شود.
RssTitle : مقدار تگ title را در زير تگ channel مشخص می کند.
PublisherUrl : مقدار تگ link را در زير تگ channel مشخص می کند.
Description : مقدار تگ description را در تگ channel مشخص می کند.
Copyright : مقدار تگ copyright را در زير تگ channel مشخص می کند.
Generator : مقدار تگ generator را در زير تگ channel مشخص می کند.
ItemSource : تعيين کننده شی ديتاستی است که سطرهای آيتم را شامل می شود.
ItemTitleField : نام Datacolumn ( ستون داده ای در ديتاست ) که مقدار تگ title از تگ item را نشان می دهد.
ItemURLField : نام Datacolumn که مقدار تگ link از تگ item را مشخص می کند.
ItemDescriptionField : نام Datacolumn که مقدار تگ description از تگ item را معرفی می کند.
ItemPublicationDateField : نام Datacolumn که مقدار تگ pubDate از تگ item را نشان می دهد.
متدها :
PublishRss : اين متد سند نشانه گذاری شده RSS را در Outputstream می نويسد.
در زير کد کامل کلاس RSS را می بينيد، توجه کنيد که برای سادگی و نمايش سريع به جای properties از متغيرهای عمومی ( Public ) استفاده شده است.
Public Class Rss
Public OutputStream As Stream
Public RssTitle As String
Public PublisherUrl As String
Public Description As String
Public Copyright As String
Public Generator As String
Public ItemSource As DataSet
Public ItemTitleField As String
Public ItemUrlField As String
Public ItemDescriptionField As String
Public ItemPublicationDateField As String
Public Shared Function PublishRss(ByVal r As Rss)
Dim writer As New XmlTextWriter(r.OutputStream,
System.Text.Encoding.ASCII)
writer.WriteStartElement("rss")
writer.WriteAttributeString("version", "2.0")
writer.WriteStartElement("channel")
writer.WriteElementString("title", r.RssTitle)
writer.WriteElementString("link", r.PublisherUrl)
writer.WriteElementString("description", r.Description)
writer.WriteElementString("copyright", r.Copyright)
writer.WriteElementString("generator", r.Generator
For Each row As DataRow In r.ItemSource.Tables(0).Rows
writer.WriteStartElement("item")
writer.WriteElementString("title", row(r.ItemTitleField))
writer.WriteElementString("link", row(r.ItemUrlField))
writer.WriteElementString("description",
row(r.ItemDescriptionField))
writer.WriteElementString("pubDate",
CType(row(r.ItemPublicationDateField),
DateTime).ToString("ddd, dd MMM yyyy 12:00:00 tt G\MT"))
writer.WriteEndElement()
Next
writer.WriteEndElement()
writer.WriteEndElement()
writer.Flush()
End Function
End Class
در کد کلاس بالا متد PublishRss مهمترين اتفاقی است که در کلاس می افتد. ابتدا ما يک نمونه از کلاس System.XML.XmlTextwriter ساخته ايم. اين کلاس سريع ترين راه برای نوشتن اسناد XML است. بعد OutputStream را به تابع پاس کرده و encoding سند را مشخص کرديم. در مورد اين کد از ASCII استفاده شده است. بعد از اين شروع به نوشتن بخش های مختلف سند RSS خودمان کرديم. در کلاسXmlTextwriter ما از متدهای زير برای نوشتن سند خودمون استفاده کرديم:
WritestartElement : اين متد تگ شروع را برای يک تگ خاص می نويسد (هر تگ شامل يک تگ شروع هست و يک تگ پايان مثلا channel تگ شروع و channel تگ پايان می باشد) .
WriteAttributeString : خواص تگ باز فعلی را می نويسد.
WriteElementString : مقدار هر تگ که بين تگ شروع و تگ پايان قرار دارد را می نويسد.
WriteEndElement : تگ پايان را برای تگی که اخيرا باز بوده می نويسد. نيازی نيست که تگ های داخلی تر را مشخص کنيد.
Flush : اين متد، تمام خروجی های بافرشده را به مقصد منتقل می کند.
توجه کنيد که شما بايد متدهای WriteStartElement و WriteEndElement را برای بهتر شکل دادن به سند خودتان استفده کنيد.
ساختن وب فرم ASP.NET :
حالا که يک کلاس کلی نوشتيم، می تونيم از اين کلاس در وب فرم خودمان استفاده کنيم. يک ساختار که به عنوان نمونه می توانيد در بانک اطلاعاتی از آن استفاده کنيد به شکل زير می باشد. از اطلاعات اين ساختار در بانک اطلاعاتی برای ساخت سند RSS استفاده می گردد.
Article_ title - Varchar (255)
Article_ Description -Varchar (1000)
Article_ url - Varchar (255)
Article_ pubdate - DateTime
ما به کمک يک تابع به نام GetDataSet اطلاعات را به ديتاست می دهيم، اين ديتاست به عنوان منبع برای توليد فايل RSS مورد استفاده قرار می گيرد. برای پر کردن ديتاست از يک DataAdapter استفاده می کنيم :
Function GetDataSet() as DataSet
Dim cnn as New SqlConnection("connection string here")
sql = "select * from sometable order by Article_pubdate desc"
Dim da As New SqlDataAdapter(sql,cnn)
Dim ds as New DataSet()
da.Fill(ds,"MyArticles")
Return ds
End Function
برای ايجاد يک خروجی RSS از محتوای سايت، بايد يک نمونه از کلاس Rss که نوشتيم بسازيم، سپس ويژگی های مختلف آن را مقداردهی کنيم و سپس متد GetDataSet را فراخوانی کنيم. بعد از اينکه ديتاست را بدست آورديم فقط کافی است که خصوصيت ItemSource شئ گرفته شده از کلاس Rss را به همين ديتاست مقدار دهيم. به علاوه دو خصوصيت از شئ response يعنی ContentEncoding و ContentType را هم مقدار می دهيم.
Private Sub Page_Load(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles MyBase.Load
Dim r As New Rss
Dim ds As DataSet = GetDataSet()
r.OutputStream = Response.OutputStream
r.RssTitle = "DotNetBips.com Latest Articles"
r.PublisherUrl = Request.Url.Host
r.Description = "DotNetBips.com - Applying.NET"
r.Copyright = "Copyright (C) DotNetBips.com."
r.Generator = "DotNetBips.com RSS Generator"
r.ItemSource = ds
r.ItemTitleField = "Article_title"
r.ItemDescriptionField = "Article_Description"
r.ItemPublicationDateField = "Article_pubdate"
r.ItemUrlField = "Article_url"
Response.ContentEncoding = System.Text.Encoding.UTF8
Response.ContentType = "text/xml"
Rss.PublishRss(r)
Response.End()
End Sub
حالا تابع PublishRss را فراخوانی می کنيم و شئ گرفته شده از کلاس Rss را به اين تابع پاس می کنيم. تمام شد! حالا يک خروجی XML بر اساس استاندارد RSS داريم.
حامد سعیدی فرد
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 21 ، ديروز : 3 ، مجموع : 1139


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND XML WITH C#
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND XML WITH C#, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 29
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
اشاره :
اين مقاله به تشريح يکی از متداول‌ترين و مناسب‌ترين راه‌های توليد صفحات وب برای سايت‌های با محتوای ديناميک از جمله سايت‌های ناشر خبر و مقاله به کمک XML می‌پردازد. روشی که در اين مقاله توضيح داده شده برای تمام فناوری‌های ايجاد صفحات ديناميک از جمله ASP.NET ،PHP ،JSP‌ و ColdFusion قابل اجراست اما در اين مقاله تنها به روش پياده سازی تکنيک مورد بحث با استفاده از ASP.NET اشاره شده است. برای اينکه بتوانيد از اين مقاله حداکثر استفاده را داشته باشيد، لازم است قبلا با مبانی XML و XSL آشنايی نسبی داشته باشيد ولی برای آندسته از خوانندگان که اطلاعات خيلی کمی دراين باره دارند، توضيحات مقدماتی آورده شده است.
صورت مساله :
اگر يک طراح و برنامه‌نويس صفحات وب باشيد، حتما تاکنون متوجه شده‌ايد که يکی از روش‌های متداول برای نمايش محتوای اطلاعاتی در سايت‌های خبری اينست که به ازای هر خبر يا مقاله‌ی قابل نمايش در صفحات سايت، يک رکورد متناظر در پايگاه داده‌های (پايگاه داده) سايت قرار دهيم و اطلاعات درون فيلدهای هر رکورد را به محض درخواست بازديدکننده، داخل يک صفحه Template از جنس ASP يا ASP.NET و غيره نمايش دهيم. اما اگر احيانا به ساختار سايت‌های خبری بزرگ مانند CNN و news.com توجه کرده باشيد، ممکن است از خود پرسيده باشيد <چطور تعداد صفحات وب ديناميک اين سايت بسيار اندک يا در حد صفر است؟> چرا بعضی از سايت خبری بزرگ برای نمايش اخبار و مقالات خود از صفحات html به جای asp و aspx و php و jsp استفاده می‌کنند؟ چه رازی بر اين شيوه حاکم است و اصولا اين روش چه مزيتی دارد؟
به زبان ديگر، سوال اساسی اينست که آيا برای نمايش محتوای ديناميک در يک سايت وب، حتما مجبور به استفاده از صفحات ديناميک مانند ASP.NET و PHP‌ و غيره هستيم؟ يا اينکه ترفند ديگری هم وجود دارد؟
بررسی موضوع :
در واقع پاسخ مثبت است. بسته به اينکه منطق شما برای توليد صفحات خبر و مقاله چگونه باشد، تکنيک‌های متفاوتی برای اين منظور وجود دارد که تنها يکی از آنها بکارگيری صفحات ديناميک است. روشهای ديگری هم برای نمايش محتوای ديناميک در سايت وجود دارند که ما يکی از آنها را که بهتر به نظر می‌رسد، بررسی خواهيم کرد. اما شايد يادآوری اين نکته بد نباشد که ببينيم روش مرسومی که غالبا سايت‌های کوچک و متوسط خبری بکار می‌برند ( و مورد نظر اين مقاله هم نيست) چگونه عمل می‌کند.
در روش متداول که آسان ترين روش نيز هست، شما به ازای تمام مقالات و اخباری که فرمت مشابهی دارند، فقط و فقط يک صفحه نمايش دهنده خبر يا مقاله، آنهم از جنس ASP.NET يا ASP می‌سازيد و به کمک آن، محتوای خبر يا مقاله مورد نظر را نمايش می‌دهيد. شما در حقيقت از روش رندرکردن (Render) صفحه در زمان نمايش استفاده می‌کنيد.
مهمترين کاری که بايد در اين تکنيک صورت گيرد، انتقال مقدار فيلد کليدی هر رکورد (معمولا فيلد id) به صفحه Template مذکور و خواندن اطلاعات همان رکورد از طريق يک فرمان SQL می‌باشد. به عنوان مثال با اجرای URL زير در يک سايت فرضی:
article.aspx?id=102632
مقدار id مساوی عدد 102632 به عنوان کليد رکورد به صفحه ASP.NET‌ انتقال يافته و در داخل صفحه، يک جا به کمک فرمانی مانند عبارت زير:
SELECT * FROM Articles WHERE ID=@id
اطلاعات فيلدهای مربوط به اين رکورد را می‌خوانيم و سپس در طول صفحه از طريق کدهايی مانند عبارت زير:
<#% DataBinder.Eval( Container, “DataItem.ArticleTitle” ) %>
داخل صفحه Template نمايش می‌دهيم.
چنانکه ملاحظه می‌کنيد، در اين روش هربار که کاربری قصد مشاهده خبر يا مقاله مورد نظر (با کد 102632) را داشته باشد، يکبار فرآيند فوق اجرا شده و صفحه ديناميک رندر می‌شود و سپس برای بازديدکننده نمايش داده ميشود.
در روش ديگری که مقصود اين مقاله است، ما مايل هستيم به ازای هر خبر يا مقاله، يک صفحه استاتيک متمايز داشته باشيم، طوری که کاربر برای مشاهده مطلب مورد نظر، به عنوان مثال با کليک کردن روی صفحه‌ای با نام 102632.htm بتواند آن را مشاهده کند. در اين روش بايد تکنيکی را پيدا کنيم که قبلا به ازای تمام رکوردهای خبر و مقاله درون بانک اطلاعاتی، يک صفحه وب توليد و روی server ذخيره کرده باشيم.
مزايای توليد صفحات استاتيک از روی رکوردهای پايگاه داده :>
قبل از هرچيز می‌خواهيم بدانيم اصولا فايده روش مذکور چيست و درحالی که خيلی ساده می‌توانيم از طريق ترفند article.aspx?id=102632 يک خبر يا مقاله خاص را به سادگی نمايش دهيم، چرا بايد به ازای هر خبر يک صفحه جداگانه وب توليد کنيم؟
۱- صفحات استاتيک سريعتر اجرا می‌شوند :
مهمترين دليل برای روی آوردن به اين روش آنست که به اين ترتيب سرعت نمايش صفحات سايت شما بالا می‌رود زيرا صفحات ديناميک مانند ASP.NET و PHP نياز به رندر شدن دارند درحالی که صفحات HTML‌ برای نمايش روی مرورگر کاملا آماده هستند. گذشته از اينها اگر يک سايت خبری پربيننده باشد، تعدد پردازش‌های ديناميک، فشار زيادی را روی سرور ايجاد می‌کند که در مجموع راندمان آن را پايين می‌آورد. حتی اگر سايت شما بيننده اندکی داشته باشد، در صورتی که از روش Shared Hosting استفاده کنيد، توانايی سرور برای همان تعداد اندک بازديدکننده چندان بالا نخواهد بود و شما در همان ميزان اندک نيز شاهد کاهش راندمان سايت متناظر با افزايش تعداد بازديدکنندگان خواهيد بود.
۲- Load‌ روی پايگاه داده کم می ‌شود .
حسن بزرگ ديگری که از بکارگيری روش توصيه شده در اين مقاله حاصل می‌شود آنست که فشار روی پايگاه داده کم می‌شود. به عنوان يک توصيه کلی و يک اصل تجربه شده همواره به خاطر داشته باشيد که هرچه استفاده از پايگاه داده ها در يک سايت کمتر باشد بهتر است! اين هنر نيست که شما برای تکميل هر فرآيند کوچکی در سايت خود از پايگاه داده‌ استفاده کنيد زيرا افزايش ميزان استفاده از بانک اطلاعاتی موجب کند شدن سرعت نمايش صفحات از يک سو و نيز بالا رفتن ميزان منابع سيستمی مورد نياز برای پردازشهای ديناميک (resources) از سوی ديگر می‌شود. بنابراين همواره در جستجوی روش هايی باشيد که از پايگاه داده‌کمتر استفاده شود. استفاده موجز و مختصر و موثر از پايگاه داده يک روش صد در صد توصيه شده از سوی برنامه نويسان باتجربه است.
۳- وابستگی سايت شما به پايگاه داده کم می‌شود .
به طور کلی وقتی تعداد صفحات ديناميک يک سايت کمتر می‌شود، وابستگی آن به پايگاه داده‌ نيز کمتر می‌شود و اين به معنی کاهش منابع اشکال زا در هنگام وقوع خطاست. به عنوان مثال سايتی که شديدا به پايگاه داده ها وابسته است در صورتی که برای چند دقيقه پايگاه داده دچار مشکل يا down شود، ممکن است ده‌ها بازديدکننده را با خطا يا exception مربوط به در دسترس نبودن بانک اطلاعاتی مواجه کند. سايتی که از صفحات استاتيک بيشتر استفاده می‌کند کمتر در اين مواقع دچار اشکال و نارسايی می‌شود.
۴- جستجوی صفحه برای ماشين‌های جستجو آسان می‌شود .
دقت کنيد که برخی از موتورهای جستجو، چه آنهايی که روی کل اينترنت کار می‌کنند و چه آنهايی که روی يک سايت مشخص عمل می‌کنند، با برخی پارامترهای انتقال داده شده به يک صفحه ديناميک مشکل دارند. بهترين و سريع‌ترين روش ممکن برای ايندکس شدن صفحات وب يک سايت در يک موتور جستجو اينست که آن صفحه اساسا به صورت استاتيک باشد.
۵- استناد به URL‌ يک خبر يا مقاله خاص برای مردم آسانتر می‌شود .
فراموش نکنيد که وقتی آدرس يک خبريا مقاله درسايت شمابه صورتarticle.aspx?id=102632&cat=214&sessionid=423442 و مشابه اينها (يا در اغلب اوقات حتی پيچيده‌تر) است، به خاطر سپاری آدرس و يا درج آن در کتاب‌های و مجلات و روزنامه‌ها سخت‌تر می‌شود. درحالی که آدرس يک صفحه به صورت 102632.htm خيلی راحت‌تر است و احتمال اينکه موقع نوشتن يا تايپ يا حتی به خاطر سپردن آدرس، اشتباهی صورت بگيرد کمتر است.
۶- آرشيو کردن اخبار و مقالات بهينه‌تر می‌شود .
يادتان نرود که اگر قرار باشد سايت شما برای مدت چند سال فعاليت کند آنوقت بايد حجم عظيمی از اطلاعات را به صورت ديناميک داخل پايگاه داده‌ نگهداری کنيد. اينکار هم هزينه شما را بالا می‌برد ( بخصوص اگر از SQL Server‌ يا MySQL‌ يا ORACLE‌ و DBMS‌های ديگر استفاده کرده باشيد) و نگهداری‌اش سخت می‌شود. اگر مهمترين کاربرد بانک اطلاعاتی در سايت شما نگهداری محتوای اخبار و مقالات است، بهتر است فقط آخرين x رکورد را داخل پايگاه داده‌ دم دست نگه داريد و بقيه رکوردها را از بانک اطلاعاتی خارج، و به طريقی که صلاح می‌دانيد (مثلا ذخيره کردن به صورت صفحات استاتيک وب) آرشيو کنيد. به اين ترتيب رکوردهای قديمی شما خيلی ساده از طريق جابجا کردن صفحات وب، قابل انتقال خواهند بود و اگر زمانی تصميم بگيريد Host‌ خود را عوض کنيد، برای جابجا کردن داده‌های درون پايگاه داده‌ مکافات نخواهيد داشت!
۷- برای نمايش صفحات سايت به Host ارزان‌تری نياز خواهيد داشت .
به کمک روش توليد مکانيزه صفحات استاتيک می‌توانيد تمام يک سايت را با صفحات معمولی HTML بسازيد، بدون اينکه نيازمند استفاده از قابليت‌های يک web server خاص باشيد. مثلا اگر از يک ميزبان ارزان قيمت استفاده می‌کنيد که به شما اجازه استفاده از امکانات پيشرفته‌ای چون پايگاه داده را نمی‌دهد، می‌توانيد سايت خود را به طور کامل به صورت استاتيک بسازيد. به اين ترتيب که روی يک دستگاه خانگی سايت خود را شبيه‌سازی می‌کنيد و صفحات استاتيک را با روش توضيح داده شده در اين مقاله توليد می‌کنيد و سپس حاصل کار را در دوره‌های زمانی مشخص به ميزبان سايت اصلی خودتان upload می‌کنيد. البته اگر سايت خود را تمام استاتيک بسازيد، امکان پياده سازی قابليت‌هايی مانند جستجو (منظور خود صفحه جستجوگر است نه صفحاتی که مورد جستجو قرار می‌گيرند) را نخواهيد داشت.
بهروز نوعی پور
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 22 ، ديروز : 3 ، مجموع : 1140


﻿ DHCGRAPHIC ARTICLES ABOUT : ASP.NET AND XML WITH C#
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ASP.NET AND XML WITH C#, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 34
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
پس از بررسی مزايای توليد صفحات استاتيک به کمک XML و ASP.NET در قسمت اول اين مقاله، به چگونگی انجام اين کار می پردازيم.
توليد مکانيزه صفحات استاتيک به کمک XML :
اکنون روش مورد نظر در اين مقاله را بررسی می‌کنيم. در اين روش به جای اينکه يک صفحه ديناميک از جنس ASP‌ يا ASP.NET بسازيم که محتوای هر خبر يا مقاله را نمايش بدهد، يک صفحه Template از جنس XSL می‌سازيم و محل قرارگرفتن داده‌های فيلدهای هر رکورد را داخل صفحه مشخص می‌کنيم. برای ساختن صفحات Template مذکور بايد ابتدا صفحات وب را به فرمت XHTML تبديل کنيم. سپس با قراردادن فيلدهای موردنظر،‌ صفحه XHTML را به XSL تبديل کنيم.
تبديل HTML‌ به XHTML :
ساختن صفحات XHTML بسيار ساده است. کافی است صفحه معمولی خود را بسازيد و محل قرارگرفتن فيلدها را مشخص کنيد (مثلا از طريق تايپ کردن نام هر فيلد) و سپس به کمک يک مبدل HTML به XHTML صفحه وب خود را به فرمت سازگار با XHTML تبديل کنيد. برنامه‌ای مانند Dreamweaver به کمک يک فرمان ساده، اين کار را به راحتی آب خوردن انجام می‌دهد!
تفاوت يک HTML معمولی با يک HTML سازگار با فرمت XHTML چندان زياد نيست. درواقع کنترلی بايد روی صفحه انجام شود تا مطمئن شويم که tagهای صفحه در قياس با قواعد XML اصطلاحا well-form هستند. مثلا در فرمت XML هر tag که شروع می‌شود بايد حتما پايانی داشته باشد. مثل <table></table> اگر بعضی از tag ها قرار است که تنها باشند (مثل <br>) اين tag‌ ها بايد به صورت مثلا </br> اصلاح شوند. چند تغيير جزئی ديگر نيز بايد صورت گيرد تا صفحه کاملا با فرمت XHTML سازگار باشد. حتی اگر يک کاراکتر هم ناسازگار با قواعد XML‌ باشد، امکان استفاده از روش توضيح داده شده در اين مقاله وجود نخواهد داشت. ضمنا، کلاس و شئ XML‌ در دات‌نت بعضی از کاراکترها و ترکيب‌های کاراکتری را نيز نمی‌پذيرد. مثلا ;nbsp& که نمايانگر يک space‌ يا فاصله است، از ديد مفسر XML در دات نت مجاز نيست و به جايش بايد همان کاراکتر space‌ را تايپ کنيد. نگران نباشيد. محدوديت‌هايی که در اين زمينه وجود دارند بسيار اندک هستند و تقربيا صفحه خود را با حدود يکی دو درصد تغيير می‌توانيد به يک XHTML قابل استفاده برای کلاس XML‌ تبديل کنيد.
يادآوری مهم : ضروری است که صفحات فارسی خود را از جنس يونی‌کد و با کاراکترست utf-8 بسازيد. زيرا شئ xml در دات نت تنها در اين صورت می‌تواند اطلاعات فارسی را بدون مشکل پردازش کند.
تبديل XHTML‌ به XSL :
اين قسمت از کار مهمترين قسمت ساختن Template مورد نظر است. برای اينکار بايد با استاندارد XSL و تکنيک‌ها و زبان آن آشنا شويد. XSL بحث مفصلی دارد و برای آموختن آن کتاب‌های متعددی چاپ شده است که لازم است حداقل يکی از آنها را به عنوان مرجع دم دست داشته باشيد. من برای سهولت کار، چند تکنيک ساده و پرکاربرد XSL‌ را که در اين مقاله نياز داريم، داخل فايل مثالی که ضميمه مقاله است، پياده کرده‌ام که می‌توانيد از آنها به عنوان الگو استفاده کنيد. XSL‌ به معنی eXtensible Stylesheet Language است. XSL در دنيای فناوری XML مشابه CSS در دنيای HTML است. اگر با CSS ها آشنايی داشته باشيد، درک کاری که XSL‌ انجام می‌دهد چندان برايتان مشکل نخواهد بود. همانطور که از CSS برای فرم دادن به صفحات وب استفاده می‌کنيم، از XSL‌ نيز برای فرم دادن به محتويات فايلهای XML‌ استفاده می‌کنيم.
تکنيک‌هايی که برای پردازش فايل‌های XSL و قراردادن داده‌های XML‌ استفاده می‌شود اصطلاحا XSLT نام دارد (به انتهای عبارت XSL کلمه Transformation‌ را بيفزاييد).
قلب فرآيندی که اتفاق می‌افتد به اين شرح است :
- داده‌های شما، يعنی اطلاعات رکوردهای خبر و مقاله بايد به فرمت XML درآيند. - کد برنامه، فايل XSL شما را باز می‌کند و آن را برای يافتن tag های مخصوص نمايش فيلدهای اطلاعاتی جستجو می‌کند و به محض پيدا کردن محل فيلد، اطلاعات آن را جايگزين می‌کند.
به عنوان مثال عبارت <"xsl:value-of select="ArticleTitle> معادل گزينه‌ای است که چند پاراگراف بالاتر به عنوان روش نمايش فيلد ArticleTitle در صفحه ASP.NET شرح دادم. به عنوان نمونه ديگر، در زبان XSL با استفاده از syntax زير می‌توانيم يک حلقه بسازيم :
<xsl:for-each select="//Table">
...
</xsl:for-each>
که حلقه روی فيلدهای جدول Table‌ تکرار می‌شود.
کاری که ما در برنامه خود انجام می‌دهيم اينست که ابتدا رکوردهای بانک اطلاعاتی را با استفاده از شئ xml در دات نت به XML‌ تبديل می‌کنيم سپس با استفاده از کلاس xslt يک فايل XSL را بازميکنيم و داده ها را درون آن ميريزيم و حاصل را به صورت يک HTML معمولی ذخيره می‌کنيم. همين!
کد برنامه توليد مکانيزه صفحات وب با استفاده از ASP.NET :
کاری که ما بايد انجام دهيد اينست که يک صفحه ASP.NET بسازيم که عمليات توليد صفحه استاتيک را به طور خودکار انجام دهد تا بتوانيم حاصل فرآيند را خيلی ساده روی سايت publish کنيم. البته می‌توانيم ASP.NET‌ را طوری بنويسيم که خودش در محل مشخص شده توسط ما صفحات HTML‌ توليد شده را save کند. در اينصورت بايد ميزبان شما قابليت استفاده از فناوری ASP.NET‌ را در اختيار شما قرار دهد وگرنه مجبوريد صفحات را روی دستگاه خودتان توليد کنيد و بعد حاصل کار را به صورت دستی يا به هر روش ديگر upload کنيد.
و حالا سورس کد :
( من از VB.NET استفاده کرده ام ولی خودتان می‌دانيد که چقدر تبديل آن به #C‌ آسان است)
۱- برای اجرای برنامه لازم است کلاسهای مورد نياز را import کنيم :
Imports System.Text
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports System.IO.Path
Imports System.Xml
Imports System.Xml.Xsl
۲- من فرض را براين می‌گذارم که شما يک datagrid خودتان ساخته‌ايد و می توانيد در اين صفحه ASP.NET رکوردهای اخبار و مقالاتتان را مديريت کنيد. من در اين مقاله روش اينکار را توضيح نمی‌دهم چون روشش خيلی آسان و سرراست است و در همه سايت‌های مربوط به ASP.NET ميتوانيد يک دوجين مقاله درباره روش نمايش رکوردهای بانک اطلاعاتی توسط datagrid پيدا کنيد. شما بايد همچنين در اين datagrid امکان select کردن يک رکورد (جهت انجام پردازشها مورد نياز اين مقاله) را اضافه کنيد. اين کار نيز آسان است و من قصد آموزش آن در اينجا را ندارم.
۳- همه عمليات را يک تابع بسيار ساده و جادويی انجام می‌دهد :
Function GenerateOneHTML(ByVal RecordID As Integer) As Boolean

'single node-----------------------
Dim myData As DataSet = GetDataSet()
Dim doc As XmlDataDocumen t= New XmlDataDocument(myData)
Dim FileName As String
Dim ln As Integer
Dim node As XmlElement = doc.DocumentElement.SelectSingleNode("//Table[ID=" + RecordID.ToString + "]")

If Not node Is Nothing Then
Dim doc2 As XmlDocument = New XmlDocument
doc2.LoadXml(node.OuterXml)

'Generate HTML file name
FileName = RecordID.ToString
Dim HTMLsPath As String = Server.MapPath("\") + "Articles" + Trim(doc2.SelectSingleNode("//Category").InnerText) + "\"

'Transform
Dim xslt As XslTransform = New XslTransform
xslt.Load(HTMLsPath + "temp.html")
Dim writer As XmlTextWriter = New XmlTextWriter(HTMLsPath + FileName + ".htm", System.Text.Encoding.UTF8)
'writer.Formatting = Formatting.Indented
'writer.Indentation = 2
xslt.Transform(doc2, Nothing, writer, Nothing)

writer.Close()
End If

Return True
End Function
از جزئيات اين تابع نترسيد. خيلی ساده در سه مرحله، يعنی در سه سوت (!) کار را تمام می‌کند.
من اين تابع را بعد از يک ماه تلاش مداوم به اين صورت خلاصه و مفيد نوشتم و خيالتان راحت باشد که صد در صد کار می‌کند. فقط توجه کنيد که نام فيلدهای استفاده شده در اين تابع با توجه به نامگذاری فيلدهای پايگاه داده خودم صورت گرفته است و شما بايد اين جزئيات تابع را مطابق نياز خود تغيير دهيد. مراحل سه گانه فوق به اين شرح هستند :
۱- خواندن xml از روی dataset .
۲- توليد نام فايل خروجی .
۳- تبديل (Tarnsform) .
سومين مرحله که مهترين مرحله است، درواقع همان عمليات XSLT است. در اينجا بايد گفت دست طراحان معماری دات نت درد نکند که با چهار خط کد می‌توان يک فرآيند XSLT‌ را کامل کرد!
مرحله اول :
در اين مرحله از روی dataset يک xml‌ می‌سازيم :
'single node-----------------------
Dim myData As DataSet = GetDataSet()
Dim doc As XmlDataDocument = New XmlDataDocument(myData)
Dim FileName As String
Dim ln As Integer
Dim node As XmlElement = doc.DocumentElement.SelectSingleNode("//Table[ID=" + RecordID.ToString + "]")
توجه کنيد که من روش ساختن dataset‌ را توضيح نداده‌ام ولی شما خودتان می‌توانيد تابع GetDataSet را مطابق نيازتان بنويسيد. اين کار يکی از آسان‌ترين و ابتدايی ترين روشهای کار با رابط برنامه‌نويسی ADO.NET است (لابد می‌دانيد که دو روش عمده برای خواندن اطلاعات از بانک اطلاعاتی وجود دارد، يکی شئ DataReader و ديگری شئ DataSet) و من در اينجا برای اجتناب از طولانی شدن مقاله، از توضيح دادن آن صرف‌نظر کردم.
شئ جادوئی XmlDataDocument کارش تبديل dataset به XML است. خط آخر اين مرحله يک شئ XmlElement از روی همان رکوردی که می‌خواهيم اطلاعاتش را بخوانيم می‌سازد. دقت کنيد که چطوری نام جدول پايگاه داده و id رکورد را که به صورت input وارد تابع کرده‌ام، به اين شئ خورانده می‌شود.
مرحله دوم :
حالا بايد از روی خروجی xml شئ مذکور يعنی node.OuterXml يک شئ XmlDocument بسازيم و dataset را کنار بگذاريم (توجه کنيد که در سورس اصلی تابعی که نوشته‌ام، مرحله دوم و سوم را داخل يک شرط if قرار داده‌ام تا اگر رکورد مورد نظر پوچ بود اين دو مرحله اجرا نشوند):
Dim doc2 As XmlDocument = New XmlDocument
doc2.LoadXml(node.OuterXml)

'Generate HTML file name
FileName = RecordID.ToString
Dim HTMLsPath As String = Server.MapPath("\") + "Articles" + Trim(doc2.SelectSingleNode("/Category").InnerText) + "\"
در واقع يک XmlDocument در کد برنامه دات نت، معرف يک xml است. و در تمام اين مقاله هرجا گفتم کلاس (يا شئ xml در دات نت) بيشتر مقصودم همين شئ بود. البته کل اشياء بکار رفته در اين مقاله از کلاس مادر System.xml و System.xml.xsl مشتق شده اند.
در ادامه اين مرحله من کمی با اطلاعات فيلد RecordID بازی کرده ام تا يک نام دلخواه و يک path مناسب برای دخيره کردن فايل HTML‌ نهايی جور کنم. همچنين اگر خواستيد روی داده‌های رکورد مورد نظر، پيش از قرارگرفتن در XSL تغييری انجام دهيد، مثلا تاريخ ميلادی را به شمسی تبديل کنيد، جايش همين مرحله است. با استفاده از syntax زير می‌توانيد به محتويات يک فيلد از اين رکورد دسترسی داشته باشيد (قابل خواندن و نوشتن):
doc2.SelectSingleNode("//FieldName").InnerText
مرحله سوم :
در اين مرحله عمليات جادويی تبديل صورت می‌گيرد!
خط اول يک XslTransform معرفی کرده ام. اين شئ يک تابع بدقلق اما فوق‌العاده نيرومند دارد که حدود ده تا تعريف overload دارد. يعنی می‌توان اين تابع را به چندين روش فراخوانی کرد. پيدا کردن حالت مناسب برای اين تابع خودش مکافاتی بود (!) ولی حالا نتيجه کار بسيار ساده از آب درآمده است. من فايل XSL که به روش توضيح داده شده ساختم را به اسم temp.html در همان مسيری (path) که می‌خواهم فايل خروجی را ذخيره کنم قرار دادم. ابتدا با استفاده از تابع load اين فايل را باز می‌کنم. سپس با استفاده از يک شئ جادويی ديگر به نام XmlTextWriter يک مجرای خروجی (يک stream) برای تابع Transform فراهم می‌کنم:
'Transform
Dim xslt As XslTransform = New XslTransform
xslt.Load(HTMLsPath + "temp.html")
Dim writer As XmlTextWriter = New XmlTextWriter(HTMLsPath + FileName + ".htm", System.Text.Encoding.UTF8)
'writer.Formatting = Formatting.Indented
'writer.Indentation = 2
xslt.Transform(doc2, Nothing, writer, Nothing)

writer.Close()
ذکر چند نکته در اينجا ضروری است:
۱- آدرسی که در مرحله دوم ساختم را به XmlTextWriter می‌دهم.
۲- فرمت يونی‌کد را نيز برای XmlTextWriter مشخص می‌کنم.
۳- اگر دلم خواست، از property فرمتينگ نيز استفاده می‌کنم:
writer.Formatting = Formatting.Indented
writer.Indentation = 2
اين property خيلی جالب و در عين حال دردسرساز است. کارش اينست که خروجی HTML شما را برای خواندن سورس آن فرم بدهد. اگر اينکار را نکنيد، XmlTextWriter تمام فايل HTML شما را در يک خط (!) می‌نويسد. هنگام نمايش HTML هيچ اتفاق يا مشکل خاصی پيش نمی‌آيد اما اگر برويد روی مرورگر گزينه view source را بزنيد متوجه می‌شود که خواندن اين فايل واقعا مکافات است!
Property فوق اين مشکل را برطرف می‌کند و خروجی HTML‌ را طوری توليد می‌کند که بشود سورس آن را (مثل آدم‌!) خواند. فقط اشکالش اينست که در برخی Layout‌ ها به دليل انداختن يک سری space اضافه، صفحه را از ريخت می‌اندازد. در مورد سايت من چنين مشکلی پيش آمد و من بيخيال فرمتينگ شدم. Property دوم که Indentation نام دارد ميزان تاثير گذاری فرمتينگ را مشخص می‌کند. عدد 2 نرمال است. اگر بيشتر بدهيد، nesting سورس HTML را بيشتر می‌کند، خودتان امتحان کنيد، متوجه خواهيد شد.
سرانجام فرمان آسمانی Transform انجام می‌شود. همه مقاله را به خاطر اين تابع پرتشريفات نوشتم. می‌خواستم از اول بگويم اين تابع چه تابع خوبی است، توی رودربايستی افتادم و اين مقاله را نوشتم!
فراموش نکنيد که مجرای XmlTextWriter را بايد پس از اتمام کار بست. حالا اگر به پوشه‌ای که می‌خواستيد فايلتان آنجا ذخيره شود مراجعه کنيد می‌بينيد که يک صفحه وب تر و تميز حاوی مقاله يا خبر شما آنجا نشسته و اسم دلخواه شما را نيز به خود گرفته است (در اينجا همان کد id).
بايد datagrid خودتان را طوری بسازيد که بشود از طريق يک checkbox کنار هر رکورد، آنهايی که مايليد صفحه خبر يا مقاله‌اش را بسازيد، مشخص کرد. سپس يکی يکی id اين رکوردها را به تابع مورد بحث می‌دهيد تا به ازای هرکدام از آنها يک صفحه بسازد. توجه کنيد که تکرار اجرای اين فرمان روی يک رکورد موجب overwrite شدن فايل قبلی می‌شود. يعنی می‌توانيد به سادگی فايل را update کنيد.
اگر خواستيد Layout سايت تان را تغيير دهيد، کافی است فايل XSL خود را يکبار دستکاری کنيد. اينکار خيلی ساده است. اگر XSL‌ را با پسوند htm يا html‌ ذخيره کنيد، برنامه‌ای مانند Dreamweaver آن را مانند يک صفحه وب معمولی باز می‌کند تا بتوانيد ويرايشش کنيد. بعد از تغيير XSL، يکبار ديگر فرمان Transformation را روی رکورهای مقالات و اخبار تکرارکنيد تا صفحات جديد را بدست آوريد.
نتيجه‌گيری :
اگر به صورت مساله اول مقاله برگرديم، حالا متوجه می‌شويم اين سايت‌های خبری بزرگ دنيا چطوری بدون استفاده از صفحات ديناميک، سايتهای فعالی دارند. در واقع کلکش خيلی آسان بود.
بهروز نوعی پور
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 23 ، ديروز : 3 ، مجموع : 1141


﻿ DHCGRAPHIC ARTICLES ABOUT : ADO.NET
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ADO.NET, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 41
ASP.NET و پايگاه داده ( قسمت اول )
در اين مقاله شما در مورد کار با با پايگاه داده در ASP.NET آشنا خواهيد شد. بدين معنا که در صدد هستيم تا رويه ای کلی از مفاهيم، روشها وابزارهای مورد استفاده در ASP.NET جهت برقراری ارتباط با پايگاه داده، نشان دادن داده ها، دستکاری داده ها، بهنگام سازی و.
. توسط اشيايی چون مهيا کننده های بانک های اطلاعاتی، DataSetها XML، و .
. معرفی می شود.
اگر تا بحال با پايگاه داده کار نکرده ايد شايد provider يک پايگاه داده برای شما نامفهوم باشـد. بطور خلاصه راهی را که بايد طی کرد تا به پايگاه داده متصل شده، آنرا باز کرده و داده ها را دستکاری کرده و دستورات را اجرا نمود، بوسيله يک تهيه کننده اطلاعات مشخص می شود. در ASP.NET معمولا از دو روش برای اين کار استفاده می شود. روش اول اينکه اگر پايگاه داده شما از نوع SQL Server باشد بايستی با مدل SQLClient کار کرد و اگر پايگاه داده شما غير از SQL Server باشد (در حال حاضر) بايد از روش ديگر يعنی مدل OleDb استفاده نمود. بعنوان مثال اگر پايگاه داده شما Oracle ،Sybase و يا Access باشد بايد از روش OleDb استفاده کنيد.
روش کار بدين صورت است که ابتدا بايستی فضانام زير را در صفحاتی که از بانک اطلاعاتی استفاده می شود فراخوانی کرد:
<% @ Import NameSpace="System.Data" %>
<% @ Import NameSpace="System.Data.OleDb" %>
برای برقراری ارتباط با پايگاه معمولا از عبارت زير استفاده می شود:
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"
حتی می توانيد عمليات فوق را بصورت ذيل انجام دهيد:
Dim objCommand As New OleDbCommand( SQL string, Connection string )
روشهای فوق دقيقا يک کار مشابه را انجام می دهند با اين اوصاف که در عبارت آخر بجای شئ ارتباطی از يک رشته ارتباطی استفاده شده است. تا اين مرحله هنوز عبارات فوق را به اجرا در نياورده ايم. برای اين کار راه های متفاوتی وجود دارد:
- از ExecuteNonQuery زمانی استفاده می شود که قصد برگرداندن داده ها از پايگاه مورد نظر نباشد مثلا در مواقعی که از دستورات SQL جهت درج (Insert) و بهنگام سازی (Update) استفاده شود.
objCommand.ExecuteNonQuery
- از ExecuteReader برای خواندن و برگرداندن اطلاعات از پايگاه استفاده می کنيم.
Dim ObjRead As OleDbDataReader
objRead=objCommand.ExecuteReader
- برای دستکاری يک تک مقدار مشخص و مورد نظر از متد ExecuteScalar استفاده می شود.
برای خواندن داده ها معمولا از کلاس DataReader استفاده می شود -برای خواندن نه برای اضافه کردن يا بروز کردن- اين شئ بصورت مستقيم به پايگاه داده دسترسی دارد و فقط خواندنی (Read Only) است. البته اين خاصيت محدوديتی برای آن است اما برای خواندن ساده داده روشی کامل بشمار می رود.
Dim objReadaer As OleDbDataReader
objReader=objCommand.ExecuteReader
Whlie objReader.Read
Response.write(objReader.GetString(0)& " <br> " )
End While
عبارت فوق جهت نمايش و چاپ داده ها بکار می رود. متد Read خواندن را تا زمانيکه به پايان نتايج نرسد ادامه می دهد و عبارت objReader.GetString(0) برای برگرداندن نسخه رشته ای ستونهای رکورد کاربرد دارد. در ليست زير چند متد ديگر برای برگرداندن مقادير داده ای متغيرها آمده است:
GetBoolean(x) مقدار منطقی را بر می گرداند.
GetChar(x) مقدار کاراکتری را برمی گرداند.
Get DataTypeColumn(x) نوع داده را در ستون برميگرداند.
GetString(x) مقداررشته ای را برمی گرداند.
شاهو طوفانی
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 24 ، ديروز : 3 ، مجموع : 1142


﻿ DHCGRAPHIC ARTICLES ABOUT : ADO.NET
IRAN GRAPHIC AND WEB DESIGN ARTICLE AND FURUM , THIS PAGE CONTENT ARTICLE ABOUT : ADO.NET, DHCGRAPHIC ARTICLE
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
ارسال مقاله توسط ايميل
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 47
ASP.NET و پايگاه داده ( قسمت دوم )
اين مقاله به بررسی استفاده از شئ DataSet و بکارگيری شئ DataAdapter در واکشی اطلاعات از يک پايگاه داده می پردازد.
در اين بخش شما به دانسته های بخش اول نياز داريد. شئ بعدی که مورد بحث قرار می گيرد کلاس Data Adapter است. OleDBDataAdapter اطلاعات را می گيرد و يک ارتباط منطقی بين داده ها و کلاس Dataset ايجاد ميکند. بطور کلی ميتوان گفت Data Adapter در نظر اول معادل Data Command می باشد.روش استفاده از Data Adapter ها بطور معمول بصورت زير تعريف می شود:
Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)
ملاحظه می کنيد که شئ Adapter از دو پارامتر- يکی رشته دستورات SQL و ديگری رشته ارتباطی - برای فرستادن دستورات به پايگاه داده استفاده می کند. بطور معمول DataAdapter برای پرکردن DataSetها و بروز کردن پايگاه بوسيله يک DataSet و اجرا کردن دستورات بکار می رود. اکنون نمای کلی از کاربرد فوق را در زير می بينيد:
Dim ds As DataSet = New DataSet()
objAdapter.Fill(ds,"Users")
متد Fill جهت اجرای دستور تنظيم شده در Data Adapter بکار می رود. بعبارت ديگر اطلاعات واکشی شده از پايگاه داده در يک جدول با نامی که ما تعيين می کنيم (Users) ذخيره می شود.
نکته ضروری اينست که تکنيک Mappings در اکثر مواقع کارساز است. Mappings عبارت است از ساختن يک نام مستعار (Alias) برای نام جداول در يک Dataset. اين aliasها هيچگونه تاثيری در منبع داده ندارد و وقتی که بوسيله DataAdapter فرستاده می شود بصورت خودکار بنام پيش فرض تبديل ميشود. اين تکنيک باعث خوانايی کد و راهنمايی برنامه نويس در ارجاع های بعدی وشتشخيص جداول فراخوانی شده ميشود.
objAdapter.TableMappings.Add("adbtable","Users")
with objAdapter.tableMapping(0).ColumnMappings
.Add("PID","ID")
.Add("LAstName","Lname")
.Add("StreetAddress","Addy")
End with
objAdapter.Fill(ds)
در تکنيک فوق بجای استفاده از عبارت ds.Tables("adbtable") ميتوانيم Ds.Tables("Users") را بکار ببريم. در بخشهای آينده ديگر فوايد استفاده از Mappings آمده است. همچنين کلاس CommandBuilder برای بهنگام کردن يک بانک که بوسيله Dataset صورت گرفته يک شيوه صحيح بشمار ميرود:
Dim cmdBLD As New OleDBCaommandBuilder(objAdapter)
که در عبارت فوق شئ objAdapter بعنوان پارامتر به دستور CommandBuilder فرستاده شده و سپس بوسيله متد Update منبع داده بهنگام می شود:
objAdapter.Update(ds,"Users")
در ادامه، مثال زير بعنوان جمع بندی مطالب قبلی آمده است. توجه داشته باشيد در مثال زير نتيجه ای بعشنوان خروجی در مرورگر نمايش داده نمی شود و فقط از منبع داده ای اطلاعات خوانده شده و يک شئ Dataset پر می شود:
<%@ Import NameSpace="System.data" %>
<%@ Import NameSpace="System.Data.OleDB" %>

<Script Language="VB" Runat="Server">

Sub Page_Load( Sender As Object, E As EventArgs)
Dim objConn As New OleDBConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA Source=e:\db\users.mdb")

objConn.Open()
Dim ds As DataSet=New DataSet
Dim objAdapter As New OleDBDataAdapter("Select * From Users",objConn)
Dim objcmdBLD As New OleDBCommandBuilder(objAdapter)
Obj.Adapter.Fill(ds,"Users")
End Sub

</Script>
شاهو طوفانی
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 25 ، ديروز : 3 ، مجموع : 1143


﻿ WEB DESIGN AND GRAPHIC ARTICLES AND FURUM , DHCGRAPHIC ARTICLES
IRAN GRAPHIC AND WEB DESIGN ARTICLES AND FURUM , DHCGRAPHIC ARTICLES
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
مقالات
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه php در سايت موجود است را ملاحظه نماپيد .
PHP
11 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي را كه در زمينه mysql در سايت موجود است را ملاحظه نماپيد .
MY SQL
2 | تعداد مقاله :
0 | تعداد اسكريپت :
در اين قسمت ميتوانيد مجموع مقالاتي كه در زمينه asp.net در سايت موجود است را ملاحظه نماييد .
ASP.NET
13 | تعداد مقاله :
0 | تعداد اسكريپت :
در این قسمت میتوانید مجموع مقالاتی که در زمینه ado.net در سايت موجود است را ملاحظه نماييد .
ADO.NET
2 | تعداد مقاله :
0 | تعداد اسكريپت :
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
حفره‌ى امنيتى بزرگ درPHP
تيم نويسنده‌ى PHP نسخه‌ى روزآمدسازى جديدى براى از بين بردن باگ‌هاى متعدد اين زبان برنامه‌نويسى منتشر كرده است . نويسندگان PHP هشدار داده اند كه كاربران بايد نسخه‌ى روزآمدسازى PHP 4.3.10 را به سرعت نصب كنند.
PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .
Java ES پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد.
سان نرم‌افزار Java Enterprise را به روز مى‌كند
سان مايكروسيستمز نسخه‌ى جديدى از نرم‌افزار سازمانى سان به نام Java Enterprise System 3 خود را منتشر كرده است. بنا بر اظهارات سان، محصول Java ES در حدود سيصد و شصت مشترى دارد.
ColdFusion MX 7 منتشر شد .
ColdFusion MX 7 به بازار آمد
شرکت ماکرومدیا که قدرتمند ترین ابزارهای ساخت برنامه های تحت وب را عرضه میکند این بار بیش از همیشه فلش را در کنار کلدفیوژن 7 به کار گرفته تا کمی رقبا را بترساند !
توسعه Tidy

يکی از توسعه های جديدی که همراه PHP 5 معرفی شد، توسعه* Tidy (تایدی) هست که کارش تر و تمیز کردن سندهای HTML و XML درهم برهم و تبدیل آنها به اسناد معتبر و خوش نما هست. این امکان زمانی مفید واقع میشه که بخواهید محتویاتی را که خارج از برنامه شما تولید شده اند را نمایش دهید.(ادامه مطلب)
تابع RAND

فرض کنید مجموعه ای از مقادير را در اختيار داريم و می خواهيم از ميان اين مقادير، يک يا چند فقره به صورت تصادفی انتخاب کنيم. تا اينجا صورت کلی مساله رو داشته باشيد. مسلما راه حلها و روشهای زيادی به ذهتون خطور می کنه. اما من صورت مساله را کمی اختصاصی تر تعریف می کنم. می خواهم از ميان چندين رکورد موجود در يک جدول بانک اطلاعاتی، يک يا چندين رکورد را به تصادف انتخاب کنم و نمی خواهم که تمام رکوردها را به حافظه منتقل کرده و از بين آنها و با کمک توابع زبان اسکريپتی به هدف خود برسم. ميخواهم اين کار را با خود MySQL انجام دهم یعنی در سمت خود بانک اطلاعاتی؛ چاره چيست؟! MySQL تابعی دارد به نام ()RAND که وقتی فراخوانده شود، عددی تصادفی بين ۰ تا ۱ را توليد می کند.(ادامه مطلب)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)

پس از بررسی مزايای توليد صفحات استاتيک به کمک XML و ASP.NET در قسمت اول اين مقاله، به چگونگی انجام اين کار می پردازيم.
اکنون روش مورد نظر در اين مقاله را بررسی می‌کنيم. در اين روش به جای اينکه يک صفحه ديناميک از جنس ASP‌ يا ASP.NET بسازيم که محتوای هر خبر يا مقاله را نمايش بدهد .(ادامه مطلب)
ASP.NET و پايگاه داده ( قسمت دوم )

اين مقاله به بررسی استفاده از شئ DataSet و بکارگيری شئ DataAdapter در واکشی اطلاعات از يک پايگاه داده می پردازد.
در اين بخش شما به دانسته های بخش اول نياز داريد. شئ بعدی که مورد بحث قرار می گيرد کلاس Data Adapter است.(ادامه مطلب)
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش مقالات ) : امروز : 38 ، ديروز : 3 ، مجموع : 1156


﻿ DHCGRAPHIC NEWS IN THE FIELD IT THIS PAGE NEWS CONTENT ABOUT : PHP
IRAN NEWSPAPER IN THE FILED GRAPHIC AND WEB DESIGN AND IT , THIS PAGE CONTENT : dell- england>NEWS IN THE PERSIAN LANGUEGE , FREE AND EASY SUBMITED FOR NEWSMAIL IN THE DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
ارسال خبر توسط ايميل به دوستانتان
صفحه بدون عكس
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 57
تاريخ خبر : 1383-11-4
PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .
مهم‌ترين نقص PHP اين بوده كه اجازه مى‌داده است حمله‌كنندگان، كدهاى موذيانه‌اى را بر روى سيستم كاربر اجرا كنند.
حفره‌ى امنيتى بزرگ درPHP

تيم نويسنده‌ى PHP نسخه‌ى روزآمدسازى جديدى را منتشر كرده است كه به عقيده‌ى پژوهش‌گران امنيتى مستقل، براى از بين بردن باگ‌هاى متعدد اين زبان برنامه‌نويسى به كار مى‌رود. از آن جايى كه برخى از باگ‌ها به راحتى قابل شناسايى هستند، نويسندگان PHP هشدار داده اند كه كاربران بايد نسخه‌ى روزآمدسازى PHP 4.3.10 را به سرعت نصب كنند. مهم‌ترين نقص PHP اين بوده كه اجازه مى‌داده است حمله‌كنندگان، كدهاى موذيانه‌اى را بر روى سيستم كاربر اجرا كنند. نسخه‌ى روزآمدسازى PHP باعث مى‌شود برخى از اين نقصان‌ها، از كار بيافتد. حمله‌كنندگان مى‌توانند با سواستفاده از آسيب‌پذيرى‌هاى موجود،اطلاعات محرمانه را از پردازش‌ وب سرور Apache به دست آورند و محدوديت‌ها را به كنار نهند. گفته‌ شده است كه نسخه‌ى روزآمدسازى PHP، باگ غيربحرانى را نيز برطرف مى‌سازد. يادآور مى‌گردد كه PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .

منبع : computer weekly

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش اخبار رايانه ) : امروز : 5 ، ديروز : 7 ، مجموع : 1680


﻿ DHCGRAPHIC NEWS IN THE FIELD IT THIS PAGE NEWS CONTENT ABOUT : COLD FUSION 7 MX
IRAN NEWSPAPER IN THE FILED GRAPHIC AND WEB DESIGN AND IT , THIS PAGE CONTENT : VIRUS ZAFI-D>NEWS IN THE PERSIAN LANGUEGE , FREE AND EASY SUBMITED FOR NEWSMAIL IN THE DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
ارسال خبر توسط ايميل به دوستانتان
صفحه بدون عكس
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 33
تاريخ خبر : 1383-11-28
ColdFusion MX 7 منتشر شد .
فعال کردن شرایط جستجوی بیشتر . امکان جستجو در یک Resault Set . (یعنی جستجویی در میان نتایج یک جستجوی دیگر ) و ... از امكانات اين بسته جديد ميباشد .
ColdFusion MX 7 به بازار آمد

شرکت ماکرومدیا که قدرتمند ترین ابزارهای ساخت برنامه های تحت وب را عرضه میکند همچنان به نوآوری هایش ادامه میدهد و این بار بیش از همیشه فلش را در کنار کلدفیوژن 7 به کار گرفته تا کمی رقبا را بترساند !
قابلیت هایی نسخه 7 بشرح زیر است :
· تولید فرم های پر محتوای فلش : بصورت پویا با یک تگ کلدفیوژن با امکاناتی نظیر تغییر پوسته فرم !
· تولید پویای مقالات قابل پرینت در فلش و امکان تبدیل آنها به فایل های PDF و FlashPaper
· امکان ساخت گزارش های تصویری مانند نرم افزار excel بر روی وب
· امکان ساخت برنامه هایی برای برقراری ارتباط با کاربر از طریق SMS و مسنجر ها .
· استفاده از extension های جدید در دریم ویور
· امکام پکیج کردن یک برنامه بهمراه فایل های runtime کلدفیوژن در یک آرشیو جاوا (WAR or EAR) برای گسترش آسان و سریع روی سرور های J2EE
· امکان محافظت از کد های کلدفیوژن: با تبدیل آنها به بایت کد های جاوا برای گسترش روی وب و اجرا آنها.
· امکان جستجوی قدرتمند تر : فعال کردن شرایط جستجوی بیشتر . امکان جستجو در یک Resault Set . (یعنی جستجویی در میان نتایج یک جستجوی دیگر ) و . . .

منبع : حسين شرفي

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش اخبار رايانه ) : امروز : 6 ، ديروز : 7 ، مجموع : 1681


﻿ DHCGRAPHIC NEWS IN THE FIELD IT THIS PAGE NEWS CONTENT ABOUT : JAVA ENTERPRISE
IRAN NEWSPAPER IN THE FILED GRAPHIC AND WEB DESIGN AND IT , THIS PAGE CONTENT : VIRUS IN JAPAN>NEWS IN THE PERSIAN LANGUEGE , FREE AND EASY SUBMITED FOR NEWSMAIL IN THE DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
ارسال خبر توسط ايميل به دوستانتان
صفحه بدون عكس
بازگشت به صفحه اصلي مقالات
تعداد بازديد : 22
تاريخ خبر : 1384-2-12
Java ES پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد.
سيستم جديد Grid Service Provisioning سان براى كمك به سرپرستان در به كارگيرى ابزارهاى شبكه از طريق مرورگر وب طراحى شده است.
سان نرم‌افزار Java Enterprise را به روز مى‌كند

سان مايكروسيستمز نسخه‌ى جديدى از نرم‌افزار سازمانى سان به نام Java Enterprise System 3 خود را منتشر كرده است. بنا بر اظهارات سان، محصول Java ES در حدود سيصد و شصت مشترى دارد.
اين نسخه‌ى جديد شامل عملكردهاى جديدى نظير Java System Identity Manager جديد سان بوده كه تكنولوژى نرم‌افزارى براى كمك به توليد كنندگان در حفاظت از داده‌هاى حساس و كاهش هزينه‌هاى ايجاد سيستم‌هاى مديريت شناسه است.
جان لويا كونو، نايب رييس گروه نرم‌افزار سان گفته است: Sun Java Enterprise System به تغيير و دگرگونى كه از سال پيش در بازار آغاز شده، ادامه خواهد داد.» وى گفته است: «با از ميان برداشتن موانع سنتى پيچيگى و هزينه‌هاى نرم‌افزار، Sun Java Enterprise System، نيازهاى كسب و كار را با مجموعه‌اى يكپارچه از خدمات شبكه‌ى سازمانى در يك رديف قرار مى‌دهد.
بسته‌ى نرم‌افزارى Java ES همچنين پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد. يكى از اجزاى جديد Java ES كه پيش از اين ارايه نمى‌شده،System Portal Server Mobile Access است كه براى كمك به توليد كنندگان در ايجاد سيستم‌هايى كه اطلاعات شخصى را با استفاده از ابزارهاى موبايل بى‌سيم ارايه مى‌دهند، طراحى شده است.
جزء جديد ديگرى كه در اين محصول وجود دارد، Java Studio Enterprise است. به علاوه، سيستم جديد Grid Service Provisioning سان براى كمك به سرپرستان در به كارگيرى ابزارهاى شبكه از طريق مرورگر وب طراحى شده است.
هزينه‌ى اين نسخه‌ى جديد در ازاى هر كارمند در هر سال، صد و چهل دلار آمريكا است. اين مبلغ شامل هزينه‌ى دسترسى به نرم‌افزار براى به كارگيرى در سازمان به علاوه‌ى ليسانس‌هاس استفاده از نسخه‌هاى گوناگون ابزارهاى سان است.

منبع : NewsFactor

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش اخبار رايانه ) : امروز : 7 ، ديروز : 7 ، مجموع : 1682


﻿ DHCGRAPHIC NEWS IN THE FILED IT AND GRAPHIC AND WEB DESIGN
IRAN NEWSPAPER IN THE FILED GRAPHIC AND WEB DESIGN AND IT , THIS PART CONTENT LATEST NEWS ON THE COMPUTER IN THE PERSIAN LANGUEGE , FREE AND EASY SUBMITED FOR NEWSMAIL IN THE DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
تازه ترين خبرها :
لپ‌تاپ جديد sony vaio
اين محصول كم‌نظير sony داراى پردازشگر 2.8Intel ، PDR 512mb حافظه 80 GB هاردديسك و DVD Burner با ارزان‌ترين قيمت مى‌باشد كه اين امكان را به شما مى‌دهد تا با اين قيمت از بهترين محصولات VAIO استفاده كنيد.
sony vaio
کاربران می توانند از کيف الکترونيکی خود که نوعی اعتبار است، هزينه ها را به صورت آنلاين بپردازد .
گوگل بانکدار اينترنتی می شود
جستجوگر اينترنتی گوگل آماده می شود تا امسال يک سيستم پرداخت الکترونيکی را ارايه دهد که پيش بينی می شود نه تنها درآمد اين شرکت را تقويت می کند، بلکه تهديدی مالی برای يکی از بزرگترين آگهی دهندگانش، سايت eBay خواهد بود.
اين تکنولوژى يک محوطه چند مايلى بسيار وسيع را مى تواند تحت پوشش قرار دهد
اينتل پردازنده پرسرعت وي مكس را ارایه کرد
شرکت اينتل نخستين پردازنده مخصوص اينترنت پرسرعت بى سيم را با عنوان Wimax ارايه کرد. اينتل اميدوار است که اين تکنولوژى به بازار کامپيوتر در نقاطى که دسترسى به اينترنت پرسرعت گران قيمت و پرهزينه است رونق بخشد.
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
شركت جستجوى اينترنتى گوگل قصد دارد در زمينه تحقيقات فضايى با سازمان فضانوردى آمريكا ناسا مشاركت كند.اين شركت همچنين اعلام كرد در مركز تحقيقات ناسا در قلب دره سيليكون مجموعه جديد دانشگاهى به وسعت بيش از ‪ ۹۰‬هزار متر مربع بنا خواهد كرد.
نفوذ هكرها از طريق حفره‌هاي جاوا
شركت Sun Microsystems يک جفت مشکل امنيتی موجود در جاوا را که به هکرها اجازه مي‌داد تا کامپيوترهای با سيستم عامل ويندوز، لينوکس و سولاريس را در اختيار بگيرند، برطرف کرد.
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
شركت سامسونگ ادعا كرده است كه به سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت در ثانيه دست يافته است.. اين حافظه جديد 70درصد سريع‌تر از GDDR3 2/1 گيگابيتي است.
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
مايکروسافت 761 ميليون دلار براى Real مى پردازد
شرکت مايکروسافت اعلام کرد که قصد دارد 761 ميليون دلار براى پایان دادن به اختلاف خود با شرکت نرم افزارى Realnetworks بپردازد.
به گفته دو شرکت قرارداد در اين زمينه به گونه اى تنظيم شده که راه هاى گسترش همکارى دو شرکت در آينده هموار شود.
مايکروسافت به خاطر ارايه نرم افزار پخش موسيقى و با عنوان جلوگيرى از حضور نرم افزارهاى رقيب اين شرکت در ويندوز بارها از سوى مراجع مختلف مورد جريمه قرار گرفته است.
راب گلاسر مدير Realnetworks درباره اين موضوع گفت: شرکت ما دوره اى را پشت سرگذاشته و از امروز دوره جديدى را با مايکروسافت آغاز کرده است.
به جز طراحى و تطبيق نرم افزارى Real براى ويندوز مايکروسافت قول داده است که بازى هاى پولى اين شرکت را روى نرم افزارى MSN خود ارايه دهد.
يک سال قبل مايکروسافت از سوى اتحاديه اروپا به دليل دنبال کردن رويه ضد رقابتى به پرداخت 597 ميليون دلار محکوم شده بود و به نظر مى رسد پرداخت غرامت به شرکت Realnetworks که يکى از شاکيان اين شرکت بود اقدامى در جهت رفع اين معضل از مقابل توسعه آينده ويندوز و عرضه آن در مناطق مختلف جهان باشد.
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش اخبار رايانه ) : امروز : 11 ، ديروز : 7 ، مجموع : 1686


﻿ WEB DESIGN AND GRAPHIC PERSIAN SITE , DHCGRAPHIC ABOUT US
WEB DESIGN AND GRAPHIC SITE , THIS IS PERSIAN SITE , OUR SITE HELP YOU IN THE WEB DESIGN AND DEVELOPE FOR YOUR BUSINESS AND MARKETING ALSO THIS SITE CONTENT COMPUTER NEWSPAPER - FREE ARTICLE AND TUTORIAL IN FIELD ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , MACROMEDIA AND ADOBE PRODUCTS
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
طراحي و برنامه
نويســــــي وب
طراحي سي دي مولتي مديا
گــرافيك و چاپ
ساخت و پخش آگهي تلوزيوني
موسسه تبليغاتي
خانه طرح
در اين قسمت ميتوانيد مقالات آموزشي پيوسته اي را در زمينه كامپيوتر را ملاحظه نمائيد . | آموزش

در اين قسمت ميتوانيد مقالات تخصصي در زمينه كامپيوتر را ملاحظه نمائيد . | مقالات
نقشه سايت
به سایت موسسه تبلیغاتی خانه طرح
خوش آمديد

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

گستره فعاليت ها :
طراحی و برنامه نویسی وب ،طراحی و برنامه نویسی سی دی های مولتی مدیا ، طراحي و گرافیک ، چاپ ، واسط تصويري نرم افزار ، هنر ديجيتال و برگزاري گالري هاي الكترونيك در اينترنت ، تولید و پخش آگهی های تلوزیونی .
درباره بخش IT سایت :
هدف اين بخش از سايت پوشش رسانه اى اخبار و آموزش مربوط به فناورى اطلاعات و ارتباطات است و در اين زمينه درسه بخش اخبار، مقالات و آموزش به فعاليت مى پردازد.
بخش اخبار کامپیوتر موسسه تبلیغاتی خانه طرح ضمن اين که خود به توليد مطلب مى پردازد سعى دارد مطالب مفيد سايت ها و گاه وبلاگ هاى فارسى را منعکس کند. هر چند در اين زمينه قوانين و رويه هاى مشخص براى بهره بردارى از مطالب سايت هاى اينترنتى فارسى زبان وجود ندارد اما موسسه تبلیغاتی خانه طرح تلاش مى کند در اين راه صرفا از مطالب سايت هايى استفاده کند که اجازه استفاده از مطالب خود را به ديگر سايت ها داده اند.
موسسه تبلیغاتی خانه طرح ، خصوصا در زمينه استفاده از مقالات بلند سايت هاى مختلف سعى ميکند تنها به بخشى از مقاله اشاره کند و خواننده را به خواندن اصل مقاله در سايت اصلى ترغیب نمايد . على رغم اين ، سايت يا نويسندگان وبلاگى که مطالبشان در این سایت قرار داده شده ، در صورت عدم رغبت به این موضوع مى تواننداعتراض خود را با مديريت سايت admin@dhcgraphic.com در ميان بگذارند.
همچنين موسسه تبلیغاتی خانه طرح از همه متخصصان و صاحب نظران و نويسندگان دعوت مى نمايد تا مطالب خود را براى اين سايت ارسال نمايند. همچنين شرکت هاي کامپيوتري و توليد کنندگان اخبار نيز مي توانند اخبار خود را ارسال نمايند. در صورتی که تصمیم داشتید مطالب خود را ایمیل کنید ، لطفا مقالات و اخبار خود را به صورت فايل word و با فرمت يونيکد ارسال نماييد. مطالب و اخبار ارسال شده صرفا پس از بازبينى و تاييد سردبيرى منتشر خواهند شد.
ارسال مطلب براى سايت از طريق ایمیل و همینطور بخش هائی که برای این منظور قرار داده شده است امکان پذيرمیباشد .
سايت موسسه تبلیغاتی خانه طرح از ابتداى فعاليت خود هيج گونه محدوديتى را براى استفاده از مطالب آن در رسانه ها و مطبوعات و ديگر سايت ها نگذاشته است اما اميدوار است کسانى که در مطبوعات، سايت هاى اينترنتى و شبکه هاى راديويى تلويزيونى از مطالب اين سايت استفاده مى کنند حتما به نام منبع و نويسنده آن مطلب اشاره کنند .
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( كل سايت ) : امروز : 12 ، ديروز : 1 ، مجموع : 877


﻿ WEB DESIGN AND GRAPHIC PERSIAN SITE , DHCGRAPHIC HOME
WEB DESIGN AND GRAPHIC SITE , THIS IS PERSIAN SITE , OUR SITE HELP YOU IN THE WEB DESIGN AND DEVELOPE FOR YOUR BUSINESS AND MARKETING ALSO THIS SITE CONTENT COMPUTER NEWSPAPER - FREE ARTICLE AND TUTORIAL IN FIELD ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , MACROMEDIA AND ADOBE PRODUCTS
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
طراحي و برنامه
نويســــــي وب
طراحي سي دي مولتي مديا
گــرافيك و چاپ
ساخت و پخش آگهي تلوزيوني
موسسه تبليغاتي
خانه طرح
در اين قسمت ميتوانيد مقالات آموزشي پيوسته اي در زمينه كامپيوتر را ملاحظه نمائيد . | آموزش

در اين قسمت ميتوانيد مقالات تخصصي در زمينه كامپيوتر را ملاحظه نمائيد . | مقالات
نقشه سايت
نقشه سایت

WEB DESIGN , SEO AND GRAPHIC IN DHCGRAPHIC STUDIO OUR SITE HELP YOU IN THE WEB DISIGN FOR YOUR BUSINESS
گرافیک و چاپ : graphic and print in design house advertising center

طراحی یکی از قوی ترین ابزار های استراتژیک برای پیشبرد فروش یا رواج یک محصول است. برای این که شخصیتی قوی برای محصول شما ساخته شود نه تنها تمام عناصر مرتبط به هویت آن بلکه "تجربه" این شخصیت نیز باید فراموش نشدنی و منحصر به فرد باشد . نشان، رنگ، طراحی حروف ، نام ، مدیریت هنری ، و تصویر سازی، همگی در تقویت شخصیت محصول دست دارند.
موسسه تبلیغاتی خانه طرح با بیش از 10 سال سابقه در زمینه های تبلیغاتی و استفاده از طراحان با تجربه و مجرب میتواند شما را در این مهم یاری دهد .

طراحی و برنامه نویسی وب : web design and develope in design house advertising center
برای ورود به فضای اینترنتی و بهره مندی از مزایای این فضای متفاوت، بهترین راه، بهره گیری از یک سایت اینترنتی است. با راه اندازی یک وب سایت، شما می توانید براحتی فعالیت و یا محصولات خود را معرفی کرده، با مخاطبان و مشتریان خود در ارتباط باشید و از تمام امکانات موجود، برای رشد فعالیت خود استفاده کنید.
ما شما را در مورد اينکه چگونه سايت خود را طراحي ، پياده سازي و راه اندازي کنيد راهنمايي مي کنيم ، براي موتور هاي جستجو تنظيم مي نماييم و به حدي سبک و خلاصه اش مي کنيم که هر کسي در سطح جهان با کند ترين خطوط اينترنتي بتواند آن را مشاهده کند . شما ميتوانيد قسمت اخبار ، بانک هاي اطلاعاتي و ديگر قسمت هاي سايت را که اطلاعات متغيير دارند با ورود به بخش مديريت سايت و ارايه کلمه عبور به روز آوري کنيد. اين فرايند به سادگي استفاده از يک سيستم پست الکترونيکي تحت وب ( مانند Hotmail يا yahoo ) مي باشد.
طراحی و برنامه نویسی cd های مولتی مدیا : cd programing design house advertising center
صفحات فشرده چندرسانه با قابلیت نمایش روی انواع پلتفرم ها. مناسب برای معرفی محصولات ، خدمات ، آثار هنری و نتایج سمینار ها.
روند تولید سی دی های چند رسانه در موسسه تبلیغاتی خانه طرح تا حدودی مشابه طراحی وب سایت می باشد. با این تفاوت که به دلیل نبود محدودیت هایی که در اینترنت وجود دارد تاکید بیشتری روی کیفیت و کمیت تصاویر متحرک ، موسیقی و تصاویر می شود. ما با استفاده از آخرین تکنولوژی ها و نرم افزار ها ، همچون ( authurware , director , flash ) و همچنین ( sql server , delphy ) سی دی های شما را طراحی و برنامه نویسی میکنیم .
ساخت و پخش آگهی های تلوزیونی : tv advertising in design house advertising center

موسسه تبلیغاتی خانه طرح با بهره گیری از بهترین و مجرب ترین کارگردانان و ایده پردازان تلوزیونی و همچنین با استفاده از بهترین تجهیزات تصویر برداری و ادیت با داشتن مجوز از اداره بازرگانی صدا و سیما میتواند تیزر های تلوزیونی شما را به بهترین نحو تولید نموده و با بیشترین تخفیف ها پخش نماید .
همچنین این موسسه میتواند با بهره گیری از بهترین واحد سیار مجهز به دوربین های بتاکم و میکس صدا از سمینارها ، کنفرانس ها و جلسات شما تصویر برداری کاملا حرفه ای نموده و یا از خطوط تولید شما در هر location مستند سازی نماید .
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( كل سايت ) : امروز : 11 ، ديروز : 1 ، مجموع : 876


﻿ WEB DESIGN AND GRAPHIC PERSIAN SITE , DHCGRAPHIC OUR WORK
WEB DESIGN AND GRAPHIC SITE , THIS IS PERSIAN SITE , OUR SITE HELP YOU IN THE WEB DESIGN AND DEVELOPE FOR YOUR BUSINESS AND MARKETING ALSO THIS SITE CONTENT COMPUTER NEWSPAPER - FREE ARTICLE AND TUTORIAL IN FIELD ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , MACROMEDIA AND ADOBE PRODUCTS
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
طراحي وبرنامه
نويســــــي وب
طراحي سي دي مولتي مديا
گــرافيك و چاپ
ساخت و پخش آگهي تلوزيوني
موسسه تبليغاتي
خانه طرح
در اين قسمت ميتوانيد مقالات آموزشي پيوسته اي در زمينه كامپيوتر را ملاحظه نمائيد . | آموزش

در اين قسمت ميتوانيد مقالات تخصصي در زمينه كامپيوتر را ملاحظه نمائيد . | مقالات
نقشه سايت
نقشه سایت
dhc graphic studio
our work in design house advertising studio
برای دیدن نمونه کارها بر روی دکمه های زیر کلیک نمائید .
سربرگ | تقویم | پوستر | جعبه | برچسب | کاتالوگ

WEB DESIGN , SEO AND GRAPHIC IN DHCGRAPHIC STUDIO OUR SITE HELP YOU IN THE WEB DISIGN FOR YOUR BUSINESS

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

مشاوره طراحي وب : خدمت جديدي از موسسه تبلیغاتی خانه طرح
  • اگر در مورد انتخاب host خود ترديد داريد يا ميخواهيد آن را تغيير دهيد.
  • اگر ميخواهيد سايت خود را ارزيابي کنيد و بدانيد پيمانکار قبلي چگونه عمل کرده است.
  • اگر در مورد مباحث حقوقي ثبت Domain مشکل داريد.
  • اگر در انتخاب تکنولوژي دچار مشکل هستيد، براي مثال نميدانيد که آيا به تکنولوژي هاي چند رسانه اي احتياج داريد يا خير ، چه بانک اطلاعاتي احتياج داريد يا در سرور بايد از چه تکنولوژي استفاده کنيد.
مشاوران ما ميتوانند به شما کمک کنند تا حضور شما در وب تقويت شود و در مسير صحيح قرار گيرد ، با ما تماس بگيريد .
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( كل سايت ) : امروز : 15 ، ديروز : 1 ، مجموع : 880


﻿ WEB DESIGN AND GRAPHIC PERSIAN SITE , DHCGRAPHIC CONTACT US
WWW.DHCGRAPHIC.NET
SET TO YOUR HOME PAGE | ADD TO YOUR FAVORITE
dhcgraphic.net
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تعداد بازديد كنندگان ( كل سايت ) : امروز : 14 ، ديروز : 1 ، مجموع : 879
تاريخ :24 مهر ماه 1384
تماس با موسسه تبليغاتي خانه طرح
نام / نام خانوادگي :
شركت / موسسه :
پست الكترونيكي :
تارنما :
كشور :
شهر / استان :
محل درج متن مورد نظر
همچنين ميتوانيد جهت تماس با ما از طريق پست الكترونيكي contact@dhcgraphic.com
اقدام نمائيد .

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )


404 WRONG PAGES - DHCGRAPHIC EROR PAGE

www.dhcgraphic.net
SET TO YOUR HOME PAGE | ADD TO YOUR FAVORITE
dhcgraphic.net
WEB DESIGN AND GRAPHIC SITE , THIS IS PERSIAN SITE , OUR SITE HELP YOU IN THE WEB DESIGN AND DEVELOPE FOR YOUR BUSINESS AND MARKETING ALSO THIS SITE CONTENT COMPUTER NEWSPAPER - FREE ARTICLE AND TUTORIAL IN FIELD ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , MACROMEDIA AND ADOBE PRODUCTS
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
THIS IS 404 EROR PAGE
WRONG PAGES , THIS FILE NOT FOUND
YOUR IP : 195.96.133.5
DESIGN HOUSE ADVERTISING CENTER
DHCGRAPHIC STUDIO

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
Copyright 2003-2004 dhc graphic Corporation . allrights reserved.


﻿ WEB DESIGN AND GRAPHIC PERSIAN SITE , DHCGRAPHIC SERVICES
WWW.DHCGRAPHIC.NET
SET TO YOUR HOME PAGE | ADD TO YOUR FAVORITE
dhcgraphic.net
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تعداد بازديد كنندگان ( كل سايت ) : امروز : 13 ، ديروز : 1 ، مجموع : 878
تاريخ :24 مهر ماه 1384
طراحي و برنــــامه
نويســــــــــي وب
طراحي سي دي هاي مـــولتي مديا
گــرافيـــــك و چاپ
ساخت و پخش آگهيهاي تلوزيونــي
موسسه تبليغاتي
خانه طرح
در اين قسمت ميتوانيد مقالات آموزشي پيوسته اي را در زمينه كامپيوتر را ملاحظه نمائيد . | آموزش

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

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

فلسفه کاری:
  • طراحی خوب و قابل استفاده با روش های ساخت مطمئن و کم هزینه.
  • نو آوری و حفظ توجیه اقتصادی محصولات / خدمات .
  • ارائه کردن خدمات بیش از انتظار مشتری .
طراحی و گرافیک
طراحی وب و بانکهای اطلاعاتی
برخلاف تصور معمول، طراحی فرآیند پیچیده ای است که با دیالوگ بین طراحان استراتژی موسسه ، یعنی قالبا مدیران و طراحان هویت گرافیکی / تصویری محصول آغاز می شود.
طراحی یکی از قوی ترین ابزار های استراتژیک برای پیشبرد فروش یا رواج یک محصول است. برای این که شخصیتی قوی برای محصول شما ساخته شود نه تنها تمام عناصر مرتبط به هویت آن بلکه "تجربه" این شخصیت نیز باید فراموش نشدنی و منحصر به فرد باشد.
نشان، رنگ، طراحی حروف ، نام ، مدیریت هنری ، و تصویر سازی، همگی در تقویت شخصیت محصول دست دارند.
آیا تا به حال به این موضوع فکر کرده اید که اگر کسی روی آرم ، لوگو یا نام محصول شما را بپوشاند ، محصول یا وب سایت شما با محصول یا سایت رقبای شما چه تفاوتی خواهد داشت؟
ایده های مرده به جای تقویت شخصیت محصول یا خدمات شما ، آن را ضعیف می کنند یا بد تر از آن ، محصول شما را به موسسات ، ایده ها ، محصولات ، نحوه زندگی و کسانی منتسب می کنند که شما آن ها را نمی شناسید و مخاطبان شما احتمالا آن ها را دوست ندارند.
بیشتر موسسات تبلیغاتی هوش و شعور مخاطب پیام را دست کم می گیرند. ولی حقیقت این است که مخاطبان شما افرادی درست مثل شما هستند ، آنها با دقت به پیام شما فکر می کنند ، محصول شما را ارزیابی می کنند ، در باره موقعیت شما و رقبایتان داوری می کنند و در انتها انتخاب می کنند.
گستره فعالیت ها مربوط به طراحی گرافیک و شخصیت پردازی یک نشان تجاری و کار هایی که در این ضمینه در موسسه تبلیغاتی خانه طرح انجام شده در این ستون نمی گنجد.
ما به شما یک کمپین تبلیغاتی را پیشنهاد میکنیم :
کمپین تبلیغاتی موثر ترین روش براي پيشبرد فروش محصولات و خدمات شما است.
به دلیل وجود برنامه ریزی دقیق ، بودجه بندی مناسب و ایجاد یک پیام قوی و یک دست برای مخاطبین ، موسسه تبلیغاتی خانه طرح به مشتریان خود توصیه میکند که به فعالیت های تبلیغاتی خود به شکل یک کمپین نگاه کنند.
تجربه نشان داده است که این روش باعث کاهش محسوس هزینه های تبلیغاتی می گردد، چرا که دیدگاهی مشترک برای استودیو ، مشتری و مخاطب ایجاد می کند و از دوباره کاری جلوگیری می کند.
متد برخورد ما با کمپین تبلیغاتی مشتريانمان به اين گونه است:
ما خودمان را به عنوان معماران سازنده Brand یا نشان تجاری می شناسیم. همچنین معتقدیم سلسله حرکتهای تبلیغاتی و هزینه های مرتبط با آن نباید در طول زمان تبدیل به جزیره های دورافتاده و پراکنده ای شود که نتیجه آن بازخورد منفی یا اصلا نداشتن بازخورد است. دست به کار میشویم و آنقدر جستجو می کنیم تا جوهر سازنده یک نشان تبلیغاتی را پیدا کنیم. این پروسه در واقع سیر حرکت اطلاعات دریافتی از مشتری و یا حتی تهیه این اطلاعات ، تا اطلاعات خلاق است. اصلی ترین کار در این راه جهش از یک ایده فکر استراتژیک به یک ایده بزرگ است.متناسب ساختن این ایده بزرگ به ایده ای مناسب برای زندگی ، تبلیغات است.
به صورت عملی این متد منجر به :
  • تقوبت روابط عمومي با روش هاي موثر و ارزان قيمت
  • يکدست کردن شخصيت گرافيکي موسسه يا محصول
  • اجرای انواع رسانه هاي مختلف را بسته به نياز و بودجه در نظر گرفته شده
  • اجرای مجموعه به دست آمده با بهترين کيفيت و در حداقل زمان
  • مطالعه عکس العمل مشتريان و مصرف کنندگان و درس گرفتن از آن و تصحيح استراتژي براي حرکات تبليغاتي بعدي
سود کارفرما را به طور خلاصه میتوان در موارد زیر تقسیم نمود:
  • مشخص بودن بودجه
  • قابلیت اصلاح در طول مسیر
  • قابلیت مانور در برابر رقبا
  • بررسی تاثیر حرکتهای انجام شده بر روی فروش محصول یا خدمات
نتیجه اینکه:
این موارد باعث ایجاد اطمینان در ارتباط مجموعه با کارفرما تا حدی میشود که در واقع ما به شکل یک شریک تجاری خوب برای ارتباطات کارفرما با مشتریانش به حساب می آییم.
در اين بخش شما راجع به تکنيک هايي که ما براي ارايه کردن بدون وقفه اطلاعات به هزاران نفر به طور روزانه به کار مي بريم اطلاعاتي به دست خواهيد آورد.
علاوه بر اين شما خواهيد دريافت که ما چگونه روند تعريف پروژه هاي طراحي وب را خرد کرديم و به شکل بسته هاي کوچکي درآورديم تا روند تصميم گيري مشتريان را ساده تر و سريع تر کرديم.
طراحان و برنامه نويسان آينده وب سايت شما نيازي به "شکستن" سايت قبلي شما ، به منظور اضافه کردن ايده ها و امکانات جديد نخواهند داشت.
کد نوشته شده توسط ما در هارموني کامل با استاندارد هاي کنسرسيوم جهاني وب مي باشد. به همين دليل نيازي به نگراني در مورد جايگاه (Platform) مشتري شما نيست.
هنگامي که پروژه اي بسيار سنگين و پيجيده باشد ما توانايي اين را داريم که هر بسته را به عناصر سازنده اش تقسيم کنيم و اجازه دهيم شما دقيقا آن خدماتي را که نياز داريد انتخاب کنيد. قابل انعطاف ترین برنامه ریزی برای طراحی وب سایت :
همکاری با تیم نرم افزار / روابط عمومی موسسه شما، هنگامی که زمان و بودجه محدود است .
برای همکاری با موسسه تبلیغاتی خانه طرح در زمینه طراحی وب چندین سناریوی ممکن وجود دارد. لطفا آنها را مطالعه کنید و ایده آل ترین روش همکاری با ما رابیابید .
  • طراحی مستقل و کامل یک وب سایت از ابتدا تا انتها به صورت "کلید تحویل"
  • طراحی و پیاده سازی Logic سایت
  • طراحی سفارشی واسط تصویری برای موسساتی که برنامه نویسی را خودشان انجام میدهند و تنها نیاز به واسط تصویری جذاب و آسان برای استفاده دارند
  • کارگردانی و مدیریت محتوایی وب سایت
طراحی بانک اطلاعاتی :

آنالیز و طراحی صحیح بانک اطلاعاتی بسیاری از مشکلات مربوط به توسعه و نگهداری نرم افزارمخصوصا نرم افزارهای تحت وب را آسان می سازد.
سناریو های متنوعی درزمینه بانک اطلاعاتی وجود دارد:
  • طراحی بانک اطلاعاتی
  • پیاده سازی بانک اطلاعاتی
  • طراحی و پیاده سازی بانک اطلاعاتی
در موسسه تبلیغاتی خانه طرح امکان اجرای هر یک از موارد فوق بر روی :
  • Oracle ® 9i
  • MySQL 4 و بالاتر
  • MS SQL Server ® 7 و بالاتر
  • MS Access ® 7 و بالاتر
وجود دارد.
به هر تقدیر، پلتفرم های پیشنهادی ما جهت نرم افزارهای مبتنی بر وب بر اساس کارایی و Performance به ترتیب زیر میباشد :
  • ® PHP , MySQL / Oracle
  • ® ASP.NET, MS SQL Server
  • ® COLD FUSION, MS SQL Server
  • ® J2EE , JSP , ORACLE
برنامه نويسي وب :
راه حل های برنامه نویسی در موسسه تبلیغاتی خانه طرح مبتنی بر نیاز مشتری انتخاب می شوند.
در عین حال موسسه تبلیغاتی خانه طرح ، تمایل دارد که مشتریان را به استفاده از راه حل های مبتنی بر نرم افزار آزاد (Open Source) تشویق نماید.
به هر تقدیر معمولا از دو مجموعه تکنولوژی زیر در این موسسه استفاده می شود :

  • ASP.NET / PHP / COLD FUSION
  • MySQL, MS SQL , ORACLE
  • ® Windows
  • ® Linux

هر تکنولوژی راه حلي جامع براي حضور در وب در کلاس خود است و هر مشتري مي تواند تکنولوژی اي را که براي نياز هاي موسسه خود کافي است انتخاب کند.

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش


﻿ WEB DESIGN AND GRAPHIC TUTORIALS AND FURUM , DHCGRAPHIC TUTORIALS
IRAN GRAPHIC AND WEB DESIGN TUTORIAL AND FURUM , THIS PART CONTENT LATEST TUTORIAL FOR ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , DELPPHY , MACROMEDIA AND ADOBE PRODUCTS AND LINUX AND ETC,IN TEN PERSIAN FREE AND EASY ACOUNT TO DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آموزش
در اين قسمت ميتوانيد مطالب پيوسته اي را در زمينه زبان قدرتمند c# ملاحظه نماييد .
ASP.NET (C#)
4 | تعداد دروس
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
حفره‌ى امنيتى بزرگ درPHP
تيم نويسنده‌ى PHP نسخه‌ى روزآمدسازى جديدى براى از بين بردن باگ‌هاى متعدد اين زبان برنامه‌نويسى منتشر كرده است . نويسندگان PHP هشدار داده اند كه كاربران بايد نسخه‌ى روزآمدسازى PHP 4.3.10 را به سرعت نصب كنند.
PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .
Java ES پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد.
سان نرم‌افزار Java Enterprise را به روز مى‌كند
سان مايكروسيستمز نسخه‌ى جديدى از نرم‌افزار سازمانى سان به نام Java Enterprise System 3 خود را منتشر كرده است. بنا بر اظهارات سان، محصول Java ES در حدود سيصد و شصت مشترى دارد.
ColdFusion MX 7 منتشر شد .
ColdFusion MX 7 به بازار آمد
شرکت ماکرومدیا که قدرتمند ترین ابزارهای ساخت برنامه های تحت وب را عرضه میکند این بار بیش از همیشه فلش را در کنار کلدفیوژن 7 به کار گرفته تا کمی رقبا را بترساند !
آموزش سي شارپ درس 4

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

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش آموزش ) : امروز : 1 ، ديروز : 1 ، مجموع : 395


﻿ DHCGRAPHIC TUTORIALS ABOUT : c# - asp.net
IRAN GRAPHIC AND WEB DESIGN TUTORIAL AND FURUM , THIS PART CONTENT LATEST TUTORIAL FOR ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , DELPPHY , MACROMEDIA AND ADOBE PRODUCTS AND LINUX AND ETC,IN TEN PERSIAN FREE AND EASY ACOUNT TO DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آموزش
در اين قسمت ميتوانيد مطالب پيوسته اي را در زمينه زبان قدرتمند c# ملاحظه نماييد .
ASP.NET (C#)
4 | تعداد دروس
دروس مرتبط
آموزش سي شارپ درس 1
آموزش سي شارپ درس 2
آموزش سي شارپ درس 3
آموزش سي شارپ درس 4

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي آموزش
تعداد بازديد : 28
آموزش سي شارپ درس 1
در طي سلسله مقالاتي مي خواهيم با 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;
ulong 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 و غيره در آينده بيشتر صحبت خواهيم كرد .
وحيد نصيري
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش آموزش ) : امروز : 7 ، ديروز : 1 ، مجموع : 401


﻿ DHCGRAPHIC TUTORIALS ABOUT : c# - asp.net
IRAN GRAPHIC AND WEB DESIGN TUTORIAL AND FURUM , THIS PART CONTENT LATEST TUTORIAL FOR ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , DELPPHY , MACROMEDIA AND ADOBE PRODUCTS AND LINUX AND ETC,IN TEN PERSIAN FREE AND EASY ACOUNT TO DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آموزش
در اين قسمت ميتوانيد مطالب پيوسته اي را در زمينه زبان قدرتمند c# ملاحظه نماييد .
ASP.NET (C#)
4 | تعداد دروس
دروس مرتبط
آموزش سي شارپ درس 1
آموزش سي شارپ درس 2
آموزش سي شارپ درس 3
آموزش سي شارپ درس 4

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي آموزش
تعداد بازديد : 17
آموزش سي شارپ درس 2
در اين قسمت مي خواهيم با يك سري از اصول اوليه ي شيء گرايي در سي شارپ كمي آشنا شويم. لازم به ذكر است ، بسياري از مواردي كه در اين قسمت مطرح مي شوند فقط براي آشنايي شما است و در آينده بيشتر بحث و مرور خواهند شد.
آشنايي با فضاهاي نام (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() ;
}
}

}
}
وحيد نصيري
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش آموزش ) : امروز : 8 ، ديروز : 1 ، مجموع : 402


﻿ DHCGRAPHIC TUTORIALS ABOUT : asp.net - c#
IRAN GRAPHIC AND WEB DESIGN TUTORIAL AND FURUM , THIS PART CONTENT LATEST TUTORIAL FOR ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , DELPPHY , MACROMEDIA AND ADOBE PRODUCTS AND LINUX AND ETC,IN TEN PERSIAN FREE AND EASY ACOUNT TO DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آموزش
در اين قسمت ميتوانيد مطالب پيوسته اي را در زمينه زبان قدرتمند c# ملاحظه نماييد .
ASP.NET (C#)
4 | تعداد دروس
دروس مرتبط
آموزش سي شارپ درس 1
آموزش سي شارپ درس 2
آموزش سي شارپ درس 3
آموزش سي شارپ درس 4

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي آموزش
تعداد بازديد : 23
آموزش سي شارپ درس 3
ساختارهاي تصميم گيري : در بسياري از موارد هنگام برنامه نويسي لازم است تا از عبارات شرطي استفاده كنيم. براي انجام اينكار دو روش عمده وجود دارد. استفاده از if و يا switch . از if بيشتر براي مقايسه هايي تكي و كوچك استفاده مي شود و حاصل مقايسه ي آن يا true است و يا false .
از عبارت switch هنگامي استفاده مي شود كه مقايسه هاي متعددي بايد در مورد يك مقدار صورت گيرد. هر دو عبارت if و switch توسط عبارتهايي Boolean كنترل مي شوند ( true و يا false ) .
در هنگام استفاده از if اگر عبارت Boolean حاصل اش true باشد اولين قسمت شرط اجرا مي شود و سپس برنامه از انتهاي if ادامه پيدا مي كند. اگر حاصل عبارت Boolean مساوي false باشد كنترل برنامه به قسمت else منتقل مي شود. مثال :
يك پروژه ي جديد console باز كنيد و نام آنرا ex04 بگذاريد. سپس كد زير را در آن وارد و جرا كنيد :
using System;

namespace ex04
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
Console.WriteLine("Enter 1 character to be evaluated");

char cUserInput = (char) Console.Read();

if ( char.IsDigit( cUserInput ) )
Console.WriteLine("The char is a number!");
else
Console.WriteLine("The char is not a number!");

}
}
}
نكاتي در مورد كد فوق :
1- سي شارپ به كوچكي و بزرگي حروف حساس است . براي مثال cUserInput با cUserinput فرق مي كند.
2- حتما بايد بعد از if پرانتزها ذكر گردد.
3- حتما بايد داخل if يك عبارت Boolean ذكر شود مانند if (x<5) .
4- در سي شارپ مقايسه ي تساوي دو عبارت با == و انتساب با = انجام مي شود. ( موارد 1 و 4 مواردي هستند كه اغلب تازه كاران با آن مشكل دارند! ) براي مثال if ( i==3 ) صحيح است اما if ( i==3 ) در سي شارپ معنايي ندارد.
5- اگر بعد از if يك خط كد قرار گيرد نيازي به آوردن آكولاد ها نيست. هنگامي نياز به آكولادها مي باشد كه بيش از يك خط بايد بعد از if قرار گيرد.
6- در سي شارپ همانند اسلاف خودش براي تبديل نوع هاي داده ايي مي توان به صورت زير نيز عمل كرد : (char) Console.Read() ; يعني دريافتي Read به char تبديل مي شود .در اين مورد باز هم صحبت خواهد شد.
7- همانطور كه ذكر شد در سي شارپ همه چيز شيء است حتي نوع هاي پايه ايي مانند char . با استفاده از متد IsDigit آن مي توان چك كرد كه آيا ورودي آن عدد است يا خير؟ ( در مورد متدها صحبت خواهد شد )
استفاده از switch :
بهتر است اين مورد را با يك مثال دنبال كنيم. پروژه ي سي شارپ جديدي به نام ex05 در حالت console در VS.NET باز كنيد. دراينجا مي خواهيم يك كلاس جديد تعريف كرده و توسط خاصيتي كه در آن ايجاد مي كنيم متوجه شويم روز جاري مطابق سيستم چه روزي است . يك كلاس جديد از منوي پروژه ،‌با استفاده از گزينه ي Add class به برنامه اضافه كنيد و نام آنرا در ابتدا clsDate بگذاريد.
using System;

namespace ex05
{
///
/// Summary description for clsDate.
///
public class clsDate
{
public clsDate()
{
//
// TODO: Add constructor logic here
//
}

public string systemDayOfWeek
{
get
{

string res = "" ;
switch( System.DateTime.Now.DayOfWeek.ToString())
{
case "Saturday" :
res = "شنبه" ;
break;

case "Sunday" :
res = "يک شنبه" ;
break;

case "Monday":
res = "دوشنبه" ;
break;

}

return res ;
}

}

}
}
هنگام ذخيره كردن اين كد ويژوال استوديو به شما اخطار مي دهد كه كد داراي حروف يونيكد است. از منوي فايل گزينه ي advanced save options را انتخاب كنيد. در اينجا مي توان نوع ذخيره سازي را يونيكد انتخاب كرد.
براي استفاده از كلاس فوق مانند مطالبي كه در قسمت قبل گفته شد عمل مي كنيم :
using System;

namespace ex05
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
clsDate m_var = new clsDate();
Console.WriteLine( m_var.systemDayOfWeek );
Console.ReadLine();

}
}
}
هر چند حالت console يونيكد را پشتيباني نمي كند ولي اصل برنامه براي ما مهم است و در آينده بيشتر از آن استفاده خواهيم كرد. همانطور كه ملاحظه كرديد اگر از switch استفاده نمي شد بايد از 7 عدد if ‌استفاده مي گرديد كه اصلا ظاهر حرفه اي و شكيلي نداشت! با استفاده از عبارت زير كار مقايسه شروع مي شود. روز سيستم در يافت شده و وارد بدنه ي switch مي گردد. سپس توسط case ها چك مي شود تا تساوي آن با عبارت بعد از case به اثبات برسد.
switch ( System.DateTime.Now.DayOfWeek.ToString())
اگر هر كدام از عبارات بعد از case صحيح بودند كار پس از آن كه در اينجا انتساب است انجام شده و سپس توسط break كنترل برنامه از switch خارج مي شود و ادامه ي كار دنبال مي گردد .
اگر هيچكدام از case ها صحيح نبودند مي توان از گزينه ي default هم در صورت نياز استفاده كرد. اين حالت در يك چنين مواقعي اجرا مي گردد .
وحيد نصيري
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش آموزش ) : امروز : 9 ، ديروز : 1 ، مجموع : 403


﻿ DHCGRAPHIC TUTORIALS ABOUT : asp.net - c#
IRAN GRAPHIC AND WEB DESIGN TUTORIAL AND FURUM , THIS PART CONTENT LATEST TUTORIAL FOR ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , DELPPHY , MACROMEDIA AND ADOBE PRODUCTS AND LINUX AND ETC,IN TEN PERSIAN FREE AND EASY ACOUNT TO DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آموزش
در اين قسمت ميتوانيد مطالب پيوسته اي را در زمينه زبان قدرتمند c# ملاحظه نماييد .
ASP.NET (C#)
4 | تعداد دروس
دروس مرتبط
آموزش سي شارپ درس 1
آموزش سي شارپ درس 2
آموزش سي شارپ درس 3
آموزش سي شارپ درس 4

سوالات و پيشنهادات در زمينه اين مقاله
پست الكترونيكي
متن پيام
براي ثبت سوالات خود الزاما بايستي عضو باشيد.
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
صفحه بدون عكس
صفحه سوالات و پيشنهادات خالي ميباشد
بازگشت به صفحه اصلي آموزش
تعداد بازديد : 49
آموزش سي شارپ درس 4
آرايه ها در سي شارپ :
هنگامي آرايه ها ايجاد مي شوند كه بخواهيم با مجموعه اي از اطلاعات همجنس كار كنيم.
براي نمونه از يك آرايه براي ذخيره تعدادي كاراكتر مي خواهيم استفاده نماييم. آرايه ها هم يك نوع متغير هستند پس بايد تعريف و مقدار دهي اوليه شوند ، نوع و تعداد اعضاي آنها نيز بايد معين گردد. فرض كنيد 10 داده ي هم جنس داريم ( براي مثال رشته (string) ) و مي خواهيم آنها را ذخيره كنيم. يا مي توان 10 متغير مختلف را تعريف كرد و سپس تك تك آنها را مقدار دهي نمود و يا يك آرايه تعريف نمود و سپس در خانه هاي مختلف آن اين ده عضو را چيد. اين مطلب زماني حائز اهميت مي شود كه داده هاي همجنس و به نوعي مرتبط ما تعداد زيادي داشته باشند.
براي تعريف آرايه چندين راه مختلف وجود دارد :
براي تعريف آرايه ابتدا نوع آنرا مشخص مي كنيد سپس [] را بايد جلوي تعريف نوع بگذاريد اين دستور زبان است و چون چرا ندارد! در زبان سي كمي متفاوت بود. اين كروشه ها بعد از نام متغير مي آمدند. و سپس در اينجا نام يك متغير را كه بعدا به آن ارجا مي دهيم خواهيد گذاشت. براي مثال :
int[] table; // not int table[];
حد پايين آرايه صفر بوده براي مثال اگر آرايه chrData[] ده عضو داشته باشد، اولين عضو آن chrData[0] و آخرين عضو آن chrData[9] است. مطلب ديگري كه در مورد آرايه ها خيلي مهم است اندازه ي آن است.
يعني يك آرايه حاوي چند خانه ي خالي است كه ما اجازه داريم آنرا پر كنيم. مثال :
int[] numbers; // declare numbers as an int array of any size
numbers = new int[10]; // numbers is a 10-element array
numbers = new int[20]; // now it's a 20-element array
1- تعريف آرايه اي از رشته ها و مقدار دهي اوليه آن :
string[] strData = new string[2];
2- تعريف و مقدار دهي اوليه :
string [] strData = { "1234","abcd" };
آرايه اي از نوع رشته اي به طول 2 عضو با مقدار دهي اوليه ايجاد شده است. در اين حالت نيازي به تعيين طول آن نمي باشد.
3- روشي ديگر براي مقدار دهي اوليه :
strData[0] = "1234";
strData[1] = "abcd";
مثال :
يك پروژه ي جديد Console سي شارپ را باز كنيد و نام آنرا در ابتدا ex06 بگذاريد. در اين مثال مي خواهيم نحوه ي كار با آرايه ها را مرور كنيم :
using System;

namespace ex06
{
class Class1
{
[STAThread]
static void Main(string[] args)
{
string[] sGoalList = new string[3];
string sReplyStatement = " 'You have choosen Goal ' ";

// Store goals in the array
sGoalList[0] = "Hike the Appalachian Trail";
sGoalList[1] = "Run the marathon";
sGoalList[2] = "Give $1 million to worthwhile causes";

// Store response to goals in the array
//(declaring and initializing on same line)
string[] sGoalResponse = {
"If you are staring from GA, you should get "
+ "started in early spring, so you will "+
"not get caught in snow.",
"Make sure that you have a good pair of shoes.",
"Start saving as soon as possible."};

// Give the user a list of goals to choose from
Console.WriteLine("GOAL LIST");

for(int i = 0; i < sGoalList.Length; i++)
{
Console.WriteLine("Goal " + i +
" - " + sGoalList[i]);
}

// Request the user to choose a goal.
Console.WriteLine (""); // Write an empty line for space
Console.Write("Please choose the number of the "
+ "goal that you want to achieve [0,1,2]: ");

Console.ReadLine();

}
}
}
1- نحوه ي استفاده از عملگر + را براي اتصال رشته هاي بلند در كد فوق مي توان ديد.
2- در سي شارپ پايان خط سمي كولون مي باشد. بنابراين نگراني در مورد چند خطي شدن يك دستور وجود ندارد.
3- هنگامي كه آرايه اي را با مقادير درون آكولادها ، مقدار دهي اوليه مي كنيد لزومي ندارد طول آن آرايه را مشخص كنيد ؛ مانند آرايه sGoalResponse در بالا. در غير اينصورت حتما بايد طول يك آرايه را كه معرف تعداد خانه هاي خالي آن است ، معرفي كنيد مانند آرايه sGoalList .
4- فعلا حلقه ي for را در اين مثال بخاطر داشته باشيد تا در مقاله ي بعدي راجع به آن صحبت كنيم .
وحيد نصيري
نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد
صفحه سوالات و پيشنهادات خالي ميباشد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش آموزش ) : امروز : 5 ، ديروز : 1 ، مجموع : 399


﻿ WEB DESIGN AND GRAPHIC TUTORIALS AND FURUM , DHCGRAPHIC TUTORIALS
IRAN GRAPHIC AND WEB DESIGN TUTORIAL AND FURUM , THIS PART CONTENT LATEST TUTORIAL FOR ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , DELPPHY , MACROMEDIA AND ADOBE PRODUCTS AND LINUX AND ETC,IN TEN PERSIAN FREE AND EASY ACOUNT TO DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آموزش
در اين قسمت ميتوانيد مطالب پيوسته اي را در زمينه زبان قدرتمند c# ملاحظه نماييد .
ASP.NET (C#)
4 | تعداد دروس
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
حفره‌ى امنيتى بزرگ درPHP
تيم نويسنده‌ى PHP نسخه‌ى روزآمدسازى جديدى براى از بين بردن باگ‌هاى متعدد اين زبان برنامه‌نويسى منتشر كرده است . نويسندگان PHP هشدار داده اند كه كاربران بايد نسخه‌ى روزآمدسازى PHP 4.3.10 را به سرعت نصب كنند.
PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .
Java ES پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد.
سان نرم‌افزار Java Enterprise را به روز مى‌كند
سان مايكروسيستمز نسخه‌ى جديدى از نرم‌افزار سازمانى سان به نام Java Enterprise System 3 خود را منتشر كرده است. بنا بر اظهارات سان، محصول Java ES در حدود سيصد و شصت مشترى دارد.
ColdFusion MX 7 منتشر شد .
ColdFusion MX 7 به بازار آمد
شرکت ماکرومدیا که قدرتمند ترین ابزارهای ساخت برنامه های تحت وب را عرضه میکند این بار بیش از همیشه فلش را در کنار کلدفیوژن 7 به کار گرفته تا کمی رقبا را بترساند !
آموزش سي شارپ درس 4

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

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش آموزش ) : امروز : 10 ، ديروز : 1 ، مجموع : 404


﻿ DHCGRAPHIC NEWS IN THE FIELD IT THIS PAGE NEWS CONTENT ABOUT : PHP
IRAN NEWSPAPER IN THE FILED GRAPHIC AND WEB DESIGN AND IT , THIS PAGE CONTENT : dell- england>NEWS IN THE PERSIAN LANGUEGE , FREE AND EASY SUBMITED FOR NEWSMAIL IN THE DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
ارسال خبر توسط ايميل به دوستانتان
صفحه بدون عكس
بازگشت به صفحه اصلي آموزش
تعداد بازديد : 58
تاريخ خبر : 1383-11-4
PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .
مهم‌ترين نقص PHP اين بوده كه اجازه مى‌داده است حمله‌كنندگان، كدهاى موذيانه‌اى را بر روى سيستم كاربر اجرا كنند.
حفره‌ى امنيتى بزرگ درPHP

تيم نويسنده‌ى PHP نسخه‌ى روزآمدسازى جديدى را منتشر كرده است كه به عقيده‌ى پژوهش‌گران امنيتى مستقل، براى از بين بردن باگ‌هاى متعدد اين زبان برنامه‌نويسى به كار مى‌رود. از آن جايى كه برخى از باگ‌ها به راحتى قابل شناسايى هستند، نويسندگان PHP هشدار داده اند كه كاربران بايد نسخه‌ى روزآمدسازى PHP 4.3.10 را به سرعت نصب كنند. مهم‌ترين نقص PHP اين بوده كه اجازه مى‌داده است حمله‌كنندگان، كدهاى موذيانه‌اى را بر روى سيستم كاربر اجرا كنند. نسخه‌ى روزآمدسازى PHP باعث مى‌شود برخى از اين نقصان‌ها، از كار بيافتد. حمله‌كنندگان مى‌توانند با سواستفاده از آسيب‌پذيرى‌هاى موجود،اطلاعات محرمانه را از پردازش‌ وب سرور Apache به دست آورند و محدوديت‌ها را به كنار نهند. گفته‌ شده است كه نسخه‌ى روزآمدسازى PHP، باگ غيربحرانى را نيز برطرف مى‌سازد. يادآور مى‌گردد كه PHP يكى از مشهورترين زبان‌هاى برنامه‌نويسى تحت وب در جهان است .

منبع : computer weekly

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش اخبار رايانه ) : امروز : 8 ، ديروز : 7 ، مجموع : 1683


﻿ DHCGRAPHIC NEWS IN THE FIELD IT THIS PAGE NEWS CONTENT ABOUT : COLD FUSION 7 MX
IRAN NEWSPAPER IN THE FILED GRAPHIC AND WEB DESIGN AND IT , THIS PAGE CONTENT : VIRUS ZAFI-D>NEWS IN THE PERSIAN LANGUEGE , FREE AND EASY SUBMITED FOR NEWSMAIL IN THE DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
ارسال خبر توسط ايميل به دوستانتان
صفحه بدون عكس
بازگشت به صفحه اصلي آموزش
تعداد بازديد : 34
تاريخ خبر : 1383-11-28
ColdFusion MX 7 منتشر شد .
فعال کردن شرایط جستجوی بیشتر . امکان جستجو در یک Resault Set . (یعنی جستجویی در میان نتایج یک جستجوی دیگر ) و ... از امكانات اين بسته جديد ميباشد .
ColdFusion MX 7 به بازار آمد

شرکت ماکرومدیا که قدرتمند ترین ابزارهای ساخت برنامه های تحت وب را عرضه میکند همچنان به نوآوری هایش ادامه میدهد و این بار بیش از همیشه فلش را در کنار کلدفیوژن 7 به کار گرفته تا کمی رقبا را بترساند !
قابلیت هایی نسخه 7 بشرح زیر است :
· تولید فرم های پر محتوای فلش : بصورت پویا با یک تگ کلدفیوژن با امکاناتی نظیر تغییر پوسته فرم !
· تولید پویای مقالات قابل پرینت در فلش و امکان تبدیل آنها به فایل های PDF و FlashPaper
· امکان ساخت گزارش های تصویری مانند نرم افزار excel بر روی وب
· امکان ساخت برنامه هایی برای برقراری ارتباط با کاربر از طریق SMS و مسنجر ها .
· استفاده از extension های جدید در دریم ویور
· امکام پکیج کردن یک برنامه بهمراه فایل های runtime کلدفیوژن در یک آرشیو جاوا (WAR or EAR) برای گسترش آسان و سریع روی سرور های J2EE
· امکان محافظت از کد های کلدفیوژن: با تبدیل آنها به بایت کد های جاوا برای گسترش روی وب و اجرا آنها.
· امکان جستجوی قدرتمند تر : فعال کردن شرایط جستجوی بیشتر . امکان جستجو در یک Resault Set . (یعنی جستجویی در میان نتایج یک جستجوی دیگر ) و . . .

منبع : حسين شرفي

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش اخبار رايانه ) : امروز : 9 ، ديروز : 7 ، مجموع : 1684


﻿ DHCGRAPHIC NEWS IN THE FIELD IT THIS PAGE NEWS CONTENT ABOUT : JAVA ENTERPRISE
IRAN NEWSPAPER IN THE FILED GRAPHIC AND WEB DESIGN AND IT , THIS PAGE CONTENT : VIRUS IN JAPAN>NEWS IN THE PERSIAN LANGUEGE , FREE AND EASY SUBMITED FOR NEWSMAIL IN THE DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
ارسال خبر توسط ايميل به دوستانتان
صفحه بدون عكس
بازگشت به صفحه اصلي آموزش
تعداد بازديد : 23
تاريخ خبر : 1384-2-12
Java ES پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد.
سيستم جديد Grid Service Provisioning سان براى كمك به سرپرستان در به كارگيرى ابزارهاى شبكه از طريق مرورگر وب طراحى شده است.
سان نرم‌افزار Java Enterprise را به روز مى‌كند

سان مايكروسيستمز نسخه‌ى جديدى از نرم‌افزار سازمانى سان به نام Java Enterprise System 3 خود را منتشر كرده است. بنا بر اظهارات سان، محصول Java ES در حدود سيصد و شصت مشترى دارد.
اين نسخه‌ى جديد شامل عملكردهاى جديدى نظير Java System Identity Manager جديد سان بوده كه تكنولوژى نرم‌افزارى براى كمك به توليد كنندگان در حفاظت از داده‌هاى حساس و كاهش هزينه‌هاى ايجاد سيستم‌هاى مديريت شناسه است.
جان لويا كونو، نايب رييس گروه نرم‌افزار سان گفته است: Sun Java Enterprise System به تغيير و دگرگونى كه از سال پيش در بازار آغاز شده، ادامه خواهد داد.» وى گفته است: «با از ميان برداشتن موانع سنتى پيچيگى و هزينه‌هاى نرم‌افزار، Sun Java Enterprise System، نيازهاى كسب و كار را با مجموعه‌اى يكپارچه از خدمات شبكه‌ى سازمانى در يك رديف قرار مى‌دهد.
بسته‌ى نرم‌افزارى Java ES همچنين پشتيبانى چند پلاتفرمى جديدى را براى محيط‌هاى عملياتى تجارى نظير Solaris 10 بر روى Sparc و x86، HP-UX، لينوكس و ويندوزهاى 2000 و XP ارايه مى‌دهد. يكى از اجزاى جديد Java ES كه پيش از اين ارايه نمى‌شده،System Portal Server Mobile Access است كه براى كمك به توليد كنندگان در ايجاد سيستم‌هايى كه اطلاعات شخصى را با استفاده از ابزارهاى موبايل بى‌سيم ارايه مى‌دهند، طراحى شده است.
جزء جديد ديگرى كه در اين محصول وجود دارد، Java Studio Enterprise است. به علاوه، سيستم جديد Grid Service Provisioning سان براى كمك به سرپرستان در به كارگيرى ابزارهاى شبكه از طريق مرورگر وب طراحى شده است.
هزينه‌ى اين نسخه‌ى جديد در ازاى هر كارمند در هر سال، صد و چهل دلار آمريكا است. اين مبلغ شامل هزينه‌ى دسترسى به نرم‌افزار براى به كارگيرى در سازمان به علاوه‌ى ليسانس‌هاس استفاده از نسخه‌هاى گوناگون ابزارهاى سان است.

منبع : NewsFactor

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش اخبار رايانه ) : امروز : 10 ، ديروز : 7 ، مجموع : 1685


﻿ WEB DESIGN AND GRAPHIC TUTORIALS AND FURUM , ASP.NET (C#) TUTORIALS , DHCGRAPHIC TUTORIALS
IRAN GRAPHIC AND WEB DESIGN TUTORIAL AND FURUM , THIS PART CONTENT LATEST TUTORIAL FOR ASP.NET , PHP , COLD FUSION , MYSQL , MS SQL , ORACLE , DELPPHY , MACROMEDIA AND ADOBE PRODUCTS AND LINUX AND ETC,IN TEN PERSIAN FREE AND EASY ACOUNT TO DHCGRAPHIC STUDIO
اخباررايانه مقالات آموزش درباره ما تماس با ما خدمات نمونه كارها خانه
SEARCH
THE WEB
DHCGRAPHIC.NET
ADVANCED SEARCH
تاريخ :24 مهر ماه 1384
آموزش
در اين قسمت ميتوانيد مطالب پيوسته اي را در زمينه زبان قدرتمند c# ملاحظه نماييد .
ASP.NET (C#)
4 | تعداد دروس
دروس مرتبط
آموزش سي شارپ درس 1
آموزش سي شارپ درس 2
آموزش سي شارپ درس 3
آموزش سي شارپ درس 4
آخرين اخبار
گوگل و ناسا در تحقيقات فضايى همكارى مى‌كنند
لپ‌تاپ جديد sony vaio
گوگل بانکدار اينترنتی می شود
به کمک eBay می توانيد فروشگاه اينترنتی باز کنيد
نفوذ هكرها از طريق حفره‌هاي جاوا
سريع‌ترين چيپ گرافيكي با پهناي باند بيش از 2 گيگابيت
بزرگترين حمله هکرى به رايانه هاى ارتش آمريکا
كرم Sober.n به هشتاد و هفت هزار ايميل ارسال شد
فروش اطلاعات محرمانه پليس آلمان در اينترنت
آخرين مقالات
ASP.NET و پايگاه داده ( قسمت دوم )
ASP.NET و پايگاه داده ( قسمت اول )
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش دوم)
توليد صفحات استاتيک به کمک XML و ASP.NET (بخش اول)
ساخت يک خروجی RSS درASP.NET
به رمز درآوردن اطلاعات
کاهش حجم خروجی در ASP.NET
شناسايی کاربران بر اساس فرمهای وب
توسعه Tidy
لذت برنامه نويسي تحت وب با ASP.NET 2 قسمت دوم
لذت برنامه نويسی تحت وب با ASP.NET 2 قسمت اول
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت دوم
کوچ از ASP.NET 1.x به ASP.NET 2.0 - قسمت اول
کارکردن با رشته‌ها و متن‌ها در ASP.NET
بررسی خطاها در ASP.NET - قسمت دوم
آموزش سي شارپ درس 1

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

آموزش سي شارپ درس 2

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

آموزش سي شارپ درس 3

در بسياري از موارد هنگام برنامه نويسي لازم است تا از عبارات شرطي استفاده كنيم. براي انجام اينكار دو روش عمده وجود دارد. استفاده از if و يا switch . از if بيشتر براي مقايسه هايي تكي و كوچك استفاده مي شود و حاصل مقايسه ي آن يا true است و يا false . از عبارت switch هنگامي استٿاده مي شود كه مقايسه هاي متعددي بايد در مورد يك مقدار صورت گيرد. در اين درس راجع به مطالب فوق بحث خواهيم كرد. ( ادامه مطلب )

آموزش سي شارپ درس 4

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

نام كاربري
رمز كاربري
اگر داراي رمز كاربري نميباشيد
لطفا اينجا را كليك كنيد

خانه | نمونه كارها | خدمات | تماس با ما | درباره ما | آموزش

مقالات | اخباررايانه
موسسه تبليغاتي خانه طرح ( با مجوز رسمي از وزارت فرهنگ و ارشاد اسلامي و اداره كل بازرگاني صدا و سيما )
تعداد بازديد كنندگان ( بخش آموزش ) : امروز : 6 ، ديروز : 1 ، مجموع : 400