روزنوشتهای من درباره اینترنت، کامپیوتر، سایبراسپیس و ...!

March 2006 | بازگشت به صفحه اصلی | June 2006

 
 

May 29, 2006

 
 
 

ايجاد يک وب‌سايت خالی برای شروع کار

ابتدا در Visual Studio 2003 يک پروژه ASP.NET جديد ايجاد می‌کنيم. همه فايل‌های و کلاس‌ها و برنامه‌های سايت داخل يک پروژه قرار می‌گيرد.

يک سايت که با ASP.NET ساخته می‌شود می‌تواند با چندين زبان مثل Visual Basic ، C# و يا J# نوشت بطوری که هر صفحه از يکی از اين زبان استفاده کند ولی در Visual Studio کل پروژه شما فقط با يک زبان نوشته خواهد شد.

ايجاد يک پروژه ASP.NET

  • داخل Visual Studio از منو File گزينه New > Project را انتخاب کنيد.

  • در کادر باز شده نوع پروژه را Visual C# و قالب آن را ASP.NET Web Application انتخاب کنيد.
  • در بخش Location نام پروژه را وارد کنيد. در اين بخش http://localhost/ASPNETmojde1 را وارد کنيد.
به http://localhost/ دست نزنيد. اين مشخص می‌کند که پروژه ASP.NET شما بر روی سرور خود کامپيوترتان ايجاد و اجرا خواهد شد. ASP.NET يک تکنولوژی بر اساس Server است و فقط برروی سرور اجرا می‌شود. اين سرور می‌تواند کامپيوتر خودتان باشد. معمولا پوشه پروژه شما در C:\Inetpub\wwwroot (بسته په پارتيشن ويندوز) ايجاد خواهد شد.
  •  ok را بزنيد تا پروژه ايجاد شود.
در صورتی که Internet Explorer در وضعيت Offline باشد موقع ايجاد يا باز کردن پروژه پيام خطايی دريافت خواهيد کرد. در چنين مواردی Internet Explorer رو باز کنيد و از منو File تيک گزينه Work Offline رو برداريد.

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

برای تغيير اين شيوه یه روش معمولی طراحی صفحات روی يک جای خالی صفحه راست کليک کنيد و از منو Properties رو انتخاب کنيد و بعد از ليست Page Layout گزينه FlowLayout رو انتخاب کنيد.

مديريت و اضافه کردن صفحات

با پنل Solution Explorer که به طور معمول سمت راست صفحه قرار داره می‌تونيد صفحات پروژه رو مديريت کنيد. (در صورتی اين پنل رو نمی‌بينيد از منو View گزينه رو انتخاب کنيد.

برای اضافه کردن صفحه جديد روی نام پروژه راست کليد کنيد و از زير منو Add روی گزينه Add Web Form کليک کنيد و نام صفحه خود رو تعيين کنيد. همونطور که می‌دونيد صفحات ASP.NET که بهشون Web Form گفته می‌شه و بازديدکنندگان سايت بهشون دسترسی دارن پسوند ASPX دارند.

قبل از ارائه ASP.NET ما در برنامه‌های Visual چيزی داشتيم به نام Windows Form که با اون پنجره‌های برنامه‌های معمولی ويندوز رو ايجاد می‌کرديم و اجزايی (مثل دکمه و جعبه متن) روی اون قرار می‌داديم و برای رويدادهايی که برای آن اجزا رخ می‌داد، برنامه می‌نوشتيم. (مثلا می‌گفتيم وقتی روی دکمه کليک شد تاريخ روز از سيستم خونده بشه و توی جعبه متن نشون بده) ASP.NET دقيقا همين شيوه رو توی طراحی وب پياده کرده به همين علت اسم صفحات رو Web Form (مشابه Windows Form) گذاشتن.

برای تغيير اسم يا حذف صفحات هم می‌توانيد از پنل Solution Explorer استفاده کنيد. در اين پنل به طور معمولا فقط منابع اصلی ASP.NET رو که نياز داريد رو نشون می‌ده. برای ديدن همه فايل‌های پروژه (از جمله عکس‌ها) توی اين پنل دکمه Show All Files رو بزنيد.

[ 12:30 AM ]   .   [ Comments (3) ]

 

 

May 26, 2006

 
 
 

آموزش ASP .net

از اين به بعد به اميد خدا می‌خوام آموزش ASP .net رو شروع کنم. خودم چون راهنما نداشتم برای اينکه توی ASP .net بتونم راه بيوفتم خيلی اذيت شدم به خاطر همين دوست دارم تمام اون چيزايی که دوست داشتم توی اون دوران يکی بهم بگه رو با شما درميون بذارم.

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

من از همون اول می‌خوام کار رو به صورت عملی شروع کنم و در خلال کار به موارد تئوری هم اشاره کنم. برای استفاده بهتر از اين سری مطالب بهتره با HTML آشنايی متوسطی داشته باشيد ولی در مورد برنامه نويسی سعی می‌کنم از صفر شروع کنم.

برنامه‌های مورد نياز:

  • Windows XP (Service Pack 2)(البته با NT و 2000 هم می‌شه ولی چون من خودم اين سيستم عامل رو دارم بهتر می‌تونم راهنماييتون کنم)
  • Visual Studio 2003 (نسخه 2005اش هم اومده ولی من هنوز ندارمش و اغلب سرورها هم از ASP .net 2 که توی Visual Studio 2005 مورد استفاده قرار می‌گيره پشتيبانی نمی‌کنن)
  • Access 2003 (اکسس که با مجموعه Office 2003 نصب می‌شه برای بانک اطلاعاتی به کار می‌ره. البته خيلی ضعيفتر از Sql Server هستش ولی برای سايت‌های ساده و آشنايی با اصول کار با بانک اطلاعاتی خوبه)

برای زبان برنامه نويسی از C# (بخونيد سی شارپ) استفاده خواهيم کرد. من توی ASP قديمی از vbscript (نوعی بيسيک) استفاده می‌کردم که خيلی اذيتم می‌کرد برای همين با خودم فکر کردم برای ASP .net از C# استفاده کنم. البته حالا می‌دونم که زياد تفاوتی نمی‌کرد که از Visual basic استفاده می‌کردم يا C#. توی رغبت من به C# کلاسش هم بی‌تاثير نبود!! با اين حال يه دليل منتظی برای استفاده از C# اينه که Syntax و دستورالعمل‌های اون تا حد زيادی شبيه به Java هستش و در صورتی که بخواهيد روزی اون رو هم ياد بگيريد راحتر خواهيد بود.

[ 05:13 PM ]   .   [ Comments (10) ]

 

 

May 22, 2006

 
 
 

تگ‌های پلاگ‌اين Paginate بخش 2

در ادامه مطلب قبلی که تعدادی از تگ‌های پلاگ‌اين Paginate را شرح دادم در اين بخش هم تعدادی ديگری از تگ‌ها را توضيح می‌دهم. اينجا توضيحاتی در مورد کليات اين‌ پلاگ‌اين داده ام.

تگ‌های شرطی

با استفاده از تگ‌های شرطی می‌توان براساس اين‌که کاربر در چه صفحه‌ای قراردارد، متن خاصی را نمايش داد. به علت اين‌که تتگ‌های شرطی پلاگ‌اين paginate کد php توليد می‌کنند، با استفاده از علامت «_» از تگ‌های شرطی خود MT متمايز شده‌اند. اين مسئله به‌اين معنی است که به‌جای تگ <MTElse> بايد از تگ <MTPaginateElse_> استفاده کنيد.

جدول نيز نشان می‌دهد هر کدام از تگ‌های شرطی در چه صفحاتی مثبت (true) می‌شوند:

  • MTPaginateIfFirstPage_
    متون داخل يک تگ فقط در صورتی صفحه، اولين صفحه يا تنها صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfLastPage_
    متون داخل يک تگ فقط در صورتی صفحه، آخرين صفحه يا تنها صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfMiddlePage_
    متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه يک صفحه ميانی باشد (اولين و آخرين صفحه نباش)، نمايش پيدا می‌کنند.
     
  • MTPaginateIfPreviousPage_
    متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه دارای صفحه قبلی باشد (اولين صفحه نباشد)، نمايش پيدا می‌کنند.
     
  • MTPaginateIfNextPage_
    متون داخل يک تگ فقط در صورتی که چندين صفحه وجود داشته باشد و صفحه دارای صفحه بعدی باشد (آخرين صفحه نباشد)، نمايش پيدا می‌کنند.
     
  • MTPaginateIfAllPages_
    متون داخل يک تگ فقط در صورتی صفحه، صفحه‌ای باشد که همه مطالب صفحات را نمايش می‌دهد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfPageHeader_
    متون داخل يک تگ فقط در صورتی بخش جاری اولين بخش صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateIfPageFooter_
    متون داخل يک تگ فقط در صورتی بخش جاری آخرين بخش صفحه باشد، نمايش پيدا می‌کنند.
     
  • MTPaginateElse_
    از اين تگ تنها می‌توان داخل ديگر تگ‌های شرطی اين پلاگ‌اين استفاده کرد. در صورتی که نتيجه تگ شرطی اصلی منفی باشد متون داخل اين تگ نمايش داده می‌شوند.
    در مثال زير اگر کاربر در صفحه‌ای باشد که همه مطلب صفحات را نمايش می‌شود متن «شما همه مطالب را مشاهده می‌کنيد» نمايش داده می‌شود و در غير اين صورت متن «شما تنها بخشی از مطالب را مشاهده می‌کنيد» نمايش داده می‌شود:

<MTPaginateIfAllPages_>
<p> شما همه مطالب را مشاهده می‌کنيد </p>
<MTPaginateElse_>
<p> شما تنها بخشی از مطالب را مشاهده می‌کنيد </p>
</MTPaginateIfAllPages_>

تگ MTPaginateContent

نوشته‌هايی که مايليد صفحه صفحه شوند در داخل اين تگ قرار می‌گيرند. شما با استفاده از خصوصيات زير می‌توانيد طريقه صفحه‌صفحه شدن مطالب را تعيين کنيد:

  • max_words="n"
    اين خصوصيت تعيين می‌کند در هر صفحه حداکثر چند کلمه‌ می‌تواند وجود داشته باشد. مقدار پيش‌فرض 400 است.
     
  • max_bytes="n"
    اين خصوصيت تعيين می‌کند هر صفحه حداکثر چند بايت‌ می‌تواند باشد. در صورت تعيين اين خصوصيت، خصوصيت “max_words” ناديده گرفته خواهد شد.
     
  • max_sections="n"
    اين خصوصيت تعيين می‌کند در هر صفحه حداکثر چند بخش وجود داشته باشد (شما می‌توانيد به‌صورتی که بعدا توضيح داده خواهد شد، محتويات خود را بخش‌بندی کنيد). در صورت تعيين اين خصوصيت، خصوصيات “max_words” و “max_bytes” ناديده گرفته خواهند شد.
     
  • section_start_tag="p"
    اين خصوصيت تعيين می‌کند کدام تگ برای شروع هر بخش در نظر گرفته شود. هر وقت نياز به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. در مثال زير هر پاراگراف (که در HTML با تگ p مشخص می‌شود) در يک بخش قرار می‌گيرد:

    <MTPaginateContent section_start_tag="p">
    ....
    </MTPaginateContent>

  • section_start="section start"
    اين خصوصيت تعيين می‌کند چه جمله‌ای در متن شروع هر بخش را مشخص ‌کند. هر وقت نياز به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. در صورت تعيين اين خصوصيت، مقدار خصوصيت section_start_tag ناديده گرفته خواهد شد. برای اين که شکسته شدن صفحه قبل از متن “<div class=”section”>” اتفاق بيفتد از کد زير بايد استفاده کنيد: )از کد HTML نمی‌توان به طور مستقيم استفاده کنيد. علامت “<” بايد تبديل به “&lt;” و علامت “>” بايد تبديل به “&gt;” شود.)
     
  • section_break="text"
    اين خصوصيت تعيين می‌کند چه جمله‌ای در متن بخش‌ها را از هم جدا می‌کند. هر وقت نياز به اينجاد صفحه جديد وجود داشت، شکستی بين بخش‌ها صورت خواهد گرفت. متن نشان دهنده فواصل بين بخش‌ها (که توسط اين خصوصيت تعيين شده است) در متن اصلی نمايش داده نخواهد شد. به طور پيش‌فرض مقدار اين خصوصيت “__MTPAGINATE_SECTION_BREAK__” است. اين به اين معنی است که هر جا در متن اين را بنويسيد، يک بخش جديد به وجود می‌آيد. برای تعيين “<p>----</p>” به عنوان جدا کننده هر بخش از کد زير بايد استفاده کرد:

<MTPaginateContent section_break="&lt;p&gt;----&lt;/p&gt;">
...
</MTPaginateContent>

  • page_break="text"
    اين خصوصيت تعيين می‌کند چه جمله‌ای در متن باعث ايجاد يک صفحه جديد شود. اين جمله در متن نمايش پيدا نمی‌کند. به طور پيش‌فرض جمله “__MTPAGINATE_PAGE_BREAK__” در متن باعث ايجاد صفحه جديد می‌شود. برای تعيين “<p>====</p>” به عنوان جدا کننده صفحه از کد زير بايد استفاده کرد:

<MTPaginateContent page_break="&lt;p&gt;====&lt;/p&gt;">
...
</MTPaginateContent>

تگ MTPaginateSectionBreak

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

<MTPaginateContent max_bytes="1000">
<MTEntries lastn="20">
<p>
<b><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></b>
<$MTEntryExcerpt$>
</p>
<$MTPaginateSectionBreak$>
</MTEntries>
</MTPaginateContent>

تگ MTPaginatePageBreak

اين محل شکسته شدن صفحه را تعيين می‌کند. در مثال زير بعد از هر مطلب يک صفحه جديد ايجاد می‌شود:

<MTPaginateContent max_bytes="1000">
<MTEntries lastn="20">
<p>
<b><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></b>
<$MTEntryExcerpt$>
</p>
<$MTPaginatePageBreak$>
</MTEntries>
</MTPaginateContent>

[ 11:55 PM ]   .   [ Comments (3) ]

 

 

 

استفاده از مطالب این وبلاگ فقط با اجازه نویسنده آن مجاز می باشد

Design: © Mojtaba Dashtinejad