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


 
سه شنبه، 17 اردیبهشتماه 1387
تغييرات جديد Google Reader

واقعا که کار اين گوگل درسته. انگار ذهن کاربران رو ميخونن. امروز که طبق معمول توي گوگل ريدر رفتم ديدم تغييراتي توش دادن. يکي از تغييراتي که فورا به چشمم اومد عنوان مطالب فارسي بود که راست به چپ شده.

تغيير ديگه اضافه شدن دکمه Share with note زير مطالب هست که با استفاده از اون ميشه علاوه بر شير کردن مطلب ياداشتي هم به اون اضافه کرد.

من چند روز بود با خودم فکر مي کردم کاش توي Google reader ميتونستم مطالب جالب سايتهايي که عضو فيدشون نيستيم رو هم Share کنم. توي تغييرات جديد اين امکان رو هم فراهم کردن. براي اين کار از منو سمت چپ زير Your stuff داخل بخش Notes بشيد و لينک Note in Reader رو داخل نوار ابزار مرورگر بکشيد.

(توي همه مرورگرها نوار ابزاري وجود داره که توي اون ميشه لينک سايتهاي مورد علاقه رو اضافه کرد. براي ديدن اين نوار توي فايرفاکس از منو گزينه View>Toolbars>Bookmarks Toolbar رو تيک بزنيد و توي IE روي يه جاي خالي نوار ابزار راست کليک کنيد و Links رو تيک بزنيد)

براي استفاده از لينک Note in Reader ميتونيد توي صفحه مورد نظرتون براي شير متني رو انتخاب کنيد و Note in Reader رو بزنيد. بعد ميتونيد خيلي ساده اگه خواستيد توضيحي بنويسيد و مطلب رو ارسال کنيد.

واقعا کار تميزي ارائه کردن.

لينکهای سه شنبه، 14 فروردینماه 1386 - [آرشيو]
لينکهای چهارشنبه، 19 مهرماه 1385 - [آرشيو]
سه شنبه، 24 مردادماه 1385
نوشتن وبلاگ با برنامه Windows Live Writer

Microsoft جديدا برنامه‌ای رو به نام Windows Live Writer منتشر کرده که با استفاده از اون می‌شه داخل کامپيوتر مطالب رو نوشت و عکس‌ها رو اضافه، کوچيک بزرگ و مرتب کرد و با يک دکمه مطلب و عکس‌ها رو به وبلاگ انتقال داد و منتشرشون کرد.

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

قرار دادن عکس رو وبلاگقرار دادن عکس توی مطالب با اين برنامه خيلی ساده شده. به راحتی با زدن دکمه «Insert Picture» و انتخاب عکس، اون عکس به مطلب اضافه می‌شه اون وقت همون‌جا می‌تونيم سايزش رو کوچيک بزرگ کنيم و بهش افکت بديم و در صورت نياز اسم وبلاگ رو برای جلو گيری از استفاده غير مجاز بهش اضافه کنيم. محيط شبيه به قالب وبلاگ کمک می‌کنه که دقيقا متوجه بشيم که اندازه عکس قالب رو به هم می‌ريزه يا نه. اين برنامه می‌تونه عکس‌های کوچيک شده رو به عکس با سايز واقعی لينک کنه.

برای اينکه اين برنامه عکس‌ها رو خودش اتوماتيک آپلود کنه می‌شه موقع معرفی وبلاگ مشخصات FTP سايتی رو بهش داد يا در صورتی که سيستم وبلاگ خودش می‌تونه عکس‌ها رو آپلود کنه (مثل Movable Type) از اون شيوه استفاده کرد.

معرفی وبلاگ به اين برنامه خيلی ساده‌اس. با گرفتن آدرس و يوزرنيم/پسورد خودش سيستم و بخش ورود به وبلاگ رو تشخيص می‌ده.

اين برنامه از سيستم‌های:

  • Windows Live Spaces
  • Word Press
  • TypePad
  • Blogger
  • Movable Type

...و چند سيستم ديگه پشتيبانی می‌کنه. اميدوارم خدمات دهندگان ايرانی هم با پشتيانی از سيستم‌هايی که اين برنامه ميشناسه امکان استفاده از سيستم خودشون رو برای مردم فراهم کنند.

برنامه Windows Live Writer رو می‌تونيد از اينجا داونلود کنيد. حجم 4.5 مگ

لينکهای یکشنبه، 4 تیرماه 1385 - [آرشيو]
  • ملت مفتخر | نظرات [9]
    راجع به ايرانی‌ها که هميشه به خودشون افتخار می‌کنن! موافقم باهاش ولی توی آخر مطلب می‌گه ايران هيج نقش مثبتی توی تاريخ نداشته. نظر شما چيه؟
لينکهای شنبه، 3 تیرماه 1385 - [آرشيو]
لينکهای جمعه، 2 تیرماه 1385 - [آرشيو]
لينکهای سه شنبه، 30 خردادماه 1385 - [آرشيو]
سه شنبه، 30 خردادماه 1385
چگونه در ASP.NET صفحات را شبيه به هم بسازيم؟

يکی از ملاک‌های يک سايت حرفه‌ای اينه که تمام صفحات سايت از اين قالب واحد پيروی کنن و هر صفحه‌ای شکلی متفاوت نداشته باشه.

در ASP.NET چيزی وجود داره به اسم User Control که به ما اين امکان را می‌ده که کدها رو بنويسم و طراحی‌های خودمون رو يک بار توش انجام بديم و بعد هر جا و هر چند بار که لازم بود ازش استفاده کنيم.

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

فايل‌های User Cntrolها پسوند ASCX دارن. برای ايجاد User Control توی پنل Solution Explorer روی اسم پروژه راست کليک کنيد از منو Add گزينه Add Web User Control… رو انتخاب کنيد.

اينجا می‌خوايم طرح بالا را برای برای پروژه‌ای که در دفعات قبل ساختيم استفاده کنيم.

کد HTML صفحه بالا با اين صورت است:

<table border="1" width="100%">
    <tr>
        <td bgcolor="#FFFF00" align="center">
            <h1>عنوان سايت</h1>
        </td>
    </tr>
    <tr>
        <td bgcolor="#FFFF00" align="center">صفحه اول - درباره
        ما -محصولات - تماس با ما</td>
    </tr>
    <tr>
        <td height="200px">

به سايت ما خوش‌‌آمديد. اينجا متن اصلی هر صفحه
قرار می‌گيرد و در هر صفحه‌ای اين بخش عوض خواهد شد.


        </td>
    </tr>
    <tr>
        <td bgcolor="#00FF00" align="center">کليه حقوق محفوظ است</td>
    </tr>
</table>

ما دو تا User Control برای بخش بالايی و پايينی ايجاد می‌کنيم و از اون‌ها توی صفحه استفاده می‌کنيم. بخش بالای کد (بالای «به سايت ما خوش‌آمديد») توی يه User Control و بخش پايينی سايت (پايين «عوض خواهد شد») توی يه User Control ديگه قرار می‌گيره.

توی پنل Solution Explorer روی اسم پروژه راست کليک کنيد و از منو Add زير منو Add Web User Control… رو انتخاب کنيد. توی پنجره‌ای که باز می‌شه نام Header رو تايپ کنيد. به بخش بالايی سايت معمولا Header می‌گن به همين خاطر ما اين اسم رو برای اين User Control انتخاب می‌کنيم.

User Control که باز شد توی بخش HTML بريد و کدهای بخش بالايی رو اضافه کنيد:

<table border="1" width="100%" dir="rtl">
    <tr>
        <td bgcolor="#FFFF00" align="center">
            <h1>عنوان سايت</h1>
        </td>
    </tr>
    <tr>
        <td bgcolor="#FFFF00" align="center">صفحه اول - درباره
        ما -محصولات - تماس با ما</td>
    </tr>
    <tr>
        <td height="200px">

(يادتون هست که برای ذخيره صفحات فارسی چيکار بايد می‌کرديم!؟) ما مجبور نيستيم اينجا کدها رو مستقيما وارد کنيم و می‌تونيم در صورت تمايل در بخش Design هم طراحی خودمون رو انجام بديم. بخش بالا می‌تونه حتی فقط شامل عنوان سايت باشه.

يک User Control ديگه به نام Footer به ترتيبی که گفتم ايجاد کنيد و کدهای بخش پايينی صفحه رو بهش اضافه کنيد:

        </td>
    </tr>
    <tr>
        <td bgcolor="#00FF00" align="center">کليه حقوق محفوظ است</td>
    </tr>
</table>

خب حالا ما طراحی صفحات رو داريم و فقط بايد از اون‌های توی صفحات خودمون استفاده کنيم. فايل Default.aspx رو باز کنيد و از توی Solution Explorer کنترل‌های Header و Footer را به داخل صفحه بکشيد:

بعد از اجرای پروژه صفحه شما به اين صورت خواهد بود:

در ASP.NET 2.0 مورد جديدی اضافه شده به نام Master Page که کار طراحی صفحه رو خيلی راحتر می‌کنه. ما می‌تونيم داخل Master Page بالا و پايين صفحه و کلا همه طراحی رو انجام بديم و جای قرار گرفتن نوشته‌های صفحه رو تعيين کنيم. برای استفاده از طراحی فقط کافيه مشخص کنيم هر صفحه از چه Master Pageای استفاده کنه.

حالا می‌تونيد چندتا صفحه جديد درست کنيم و از User Control های خودتون داخل اون‌ها هم استفاده کنيم. می‌خوايم دو تا از لينک‌های بالا رو درست کنيم.

اول صفحه درباره ما رو می‌سازيم. توی Solution Explorer روی اسم پروژه راست کليک کنيد و از منو Add زيرمنو Add Web Form… رو انتخاب کنيد. اسم صفحه جديد رو AboutUs بذاريد. بعد همون طوری که قبلا توضيح دادم Layout صفحه رو FlowLayout بذاريد و بخش‌های Header و Foter رو به اون صفحه اضافه کنيد.

حالا لينک‌های بالا رو درست می‌کنيم. اگه User Control بخش بالايی (Header) باز نيست، بازش کنيد. داخل بخش Design بريد و متن «صفحه اول» رو انتخاب کنيد. بعد دکمه‌های Ctrl+L رو بزنيد و اسم فايل مربوط به صفحه اول رو وارد کنيد:

همين‌کار رو برای «درباره ما» هم تکرار کنيد و به صفحه AboutUs.aspx لينکش کنيد. پروژه رو اجرا کنيد. حالا تقريبا سايتی داريم که شبيه به يه سايت واقعی به نظر می‌رسه!

لينکهای یکشنبه، 28 خردادماه 1385 - [آرشيو]
لينکهای شنبه، 27 خردادماه 1385 - [آرشيو]
دوشنبه، 22 خردادماه 1385
ايجاد و اجرای اولين پروژه ASP.NET - بخش دوم: کدنويسی صفحه

حالا که ظاهر صفحه رو درست کرديم می‌رسيم به نوشتن کد صفحه. همون‌طور که گفتم می‌خوايم کاری کنيم که وقتی روی دکمه کليک شد کدمون اجرا بشه و متن خوش‌آمدگويی نمايش داده بشه. روی دکمه دابل کليک کنيد تا Visual Studio کدهای لازم برای اين کار رو آماده کنه.

همه کنترل‌ها دارای رويداد‌های (Events) هستند که هر موقع اون رويدادها اتفاق افتادند کدی که برای اون رويداد نوشته شده اجرا می‌شه. رويداد OnClick که يکی از پراستفاده‌ترين رويداد‌ها هست وقتی روی کنترل کليک شد اجرا می‌شود. وقتی روی کنترل دابل کليک می‌کنيد Visual Studio تابع مورد نياز رو می‌سازه و اون رو به عنوان رويداد OnClick منصوب می‌کنه. فقط لازمه شما توی اون تابع کدتون رو بنويسيد.

توی ويرايش‌گر تايپ کنيد: Label1 (به ويرايش‌گرتون دست نزنيد تا بعدش بگم چيکار کنيد!)

هميشه يادتون باشه C# به بزرگی کوچيکی حروف به شدت حساسه! و هرگز Label1 برابر با label1 نيست. خيلی از مشکلات برنامه‌ها به همين خاطر پيش می‌آن.

هر کنترلی برای خودش يه اسم منحصربه‌فرد داره که بهش ID می‌گن. ما برای اشاره به هر کدام از کنترل‌های داخل صفحه و کار با هر کدوم بايد از اين ID استفاده کنيم. ID مربوط به Label ما Label1 هستش و چون ما می‌خوايم با اون کار کنيم و متن اون رو عوض کنيم به اين نام اشاره می‌کنيم.

موقع ايجاد يک کنترل‌ Visual Studio به طور خودکار برای اون ID تعيين می‌کنه. مثلا ID اولين Label صفحه Label1 و ID دومين Label صفحه Label2 می‌شه. توی پنل مشخصات می‌تونيد ID کنترل رو ببينيد و عوض کنيد. بهتره برای کنترل‌های خودتون اسم بامسما انتخاب کنيد تا اگر تعداد کنترل‌ها زياد شد برای پيدا کردن اون‌ها به مشکل برنخوريد.

بعد از Label1 يه دونه نقطه بذاريد. اون وقت يه پنجره باز می‌شه مثل اين:

توی C# (و اکثر زبان‌های ديگه) وقتی از نقطه استفاده می‌کنيم که می‌خوايم از يکی از خصوصيات (يا متدهای) مربوط به کلاس مورد نظر خود استفاده کنيم. (Label هم يه نوع کلاس هستش) ما اينجا می‌خوايم خصوصيت Text مربوط به Label رو تغيير بديم به خاطر همين نقطه رو می‌ذاريم که بتونيم به خصوصيت Text برسيم.

ما وقتی نقطه رو می‌زنيم Visual Studio همه موارد مربوط به کلاس رو نشون می‌ده تا بتونيم از بين موارد يکی رو انتخاب کنيم. (با استفاده از اين قابليت می‌تونيم حتی با کلاس‌هايی که آشنايی هم نداريم تا حد زيادی کار کنيم) در ادامه کد Tex… رو وارد کنيد تا مورد Text انتخاب بشه، اون وقت Enter رو بزنيد تا عبارت تکميل بشه.

خب حالا ما به خصوصيت Text مربوط به Label خودمون دسترسی داريم و می‌خوايم توی اون متن خوش‌آمدگويی رو بنويسيم. به عباری ديگه می‌خوايم متنی رو به خصوصيت Text منتصب کنيم. اين کار با علامت = انجام می‌شه. در آخر کد علامت = رو وارد کنيد.

ما چی رو می‌خوايم داخل Label قرار بديم؟ می‌خوايم نام شخص بعلاوه متن خوش‌آمد رو داخل Label بنويسيم. مثلا اگر کاربر اسم «نويد» رو وارد کرده باشه بايد بنويسه: «نويد، خوش‌آمدی!»

برای خوندن متن وارد شده داخل Textbox بايد خصوصيت Text مربوط به Textbox1 را بخونيم. بعد ما اون رو با متن «، خوش‌آمدی!» جمع می‌بنديم. در ادامه کد اين رو وارد کنيد:

Textbox1.Text + "، خوش‌آمدی!"

برای اين‌که C# متوجه بشه با يه رشته متنی طرفه بايد متن رو داخل علامت نقل قول قرار بدين. علامت + هم دو متن رو به هم پيوند می‌ده. در آخر علامت ; را وارد کنيد. در C# بايد آخر همه خط‌ها يک علامت ; باشه. کد نهايی ما به اين صورت خواهد بود:

حالا می‌تونيم پروژه رو اجرا کنيم. اما اول بايد مشخص کنيم پروژه ما با کدوم صفحه شروع به کار کنه. برای اين کار توی Solution Explorer روی فايل Default.aspx راست کليک کنيد و گزينه Set As Start Page رو بزنيد. بعد توی نوار ابزار بالا روی Start کليک کنيد. در صورتی که نوار ابزار مربوطه رو نمی‌بينيد منو View > Toolbars > Debug رو تيک بزنيد.

در صورتی که همه‌چيز مرتب باشه صفحه شما توی Internet Explorer باز می‌شه. اسمی وارد کنيد و نتيجه کار رو ببينيد! موفق باشيد!

لينکهای جمعه، 19 خردادماه 1385 - [آرشيو]
جمعه، 19 خردادماه 1385
ايجاد و اجرای اولين پروژه ASP.NET - بخش اول: طراحی صفحه

اين دفعه می‌خوام نحوه ايجاد يک برنامه خيلی ساده ASP.NET و اجرای اون رو توضيح بدم. می‌خوايم صفحه‌ای ايجاد کنيم که اسم کاربر رو می‌گيره و يه پيام خوش‌آمدگويی نشون می‌ده.

اول پروژه‌ای رو که توی مطالب قبلی ساختيم رو باز کنيد. اگه فايل Default.aspx باز نيست با کليک روی اون توی Solution Explorer بازش کنيد.

معمولا سمت چپ صفحه پنلی به اسم Toolbox هست که از توی اون می‌تونيم اشيائی که مربوط به صفحه هستن رو توی صفحه بکشيم و از اون‌ها برای طراحی صفحه استفاده کنيم. اگر اين پنل رو نمی‌بينيد از منو View گزينه Toolbox رو انتخاب کنيد. اين پنل چندين زبانه داره که ما اينجا از زبانه Web Forms استفاده می‌کنيم.

دفعه قبل گفتم که با اضافه کردن خصوصيت runat="server" به تگ‌های عادی می‌تونيد اون‌ها رو برای استفاده توی ASP.NET آماده کنيد. به اين نوع کنترل‌ها HTML Control می‌گن که برای ايجاد سازگاری بين ASP.NET و صفحات HTML قديمی درست شدن. اما کنترل‌های ديگه‌ای هم وجود دارن به اسم Server Control که نسبت به اون کنترل‌ها قابليت‌های بيشتری دارن. تگ‌های ايجاد شده با اين کنترل‌ها با <ASP:… شروع می‌شن. موارد موجود در زبانه Web Forms شامل Server Controlها می‌شن.

ما به اين کنترل‌ها نياز داريم:

  • کنترل Label که به ما اجازه می‌ده متن داخلش رو با استفاده از کد خودمون تغيير بديم. اين کنترل متن خوش‌آمدگويی ما رو نشون می‌ده.
     
  • کنترل Textbox که به کاربر اجازه می‌ده متنی رو توش وارد کنه. ما با استفاده از کدمون می‌تونيم نوشته کاربر رو بخونيم. از اين کنترل ما برای گرفتم اسم کاربر استفاده می‌کنيم.
     
  • کنترل Button که يک دکمه است و کاربر می‌تونه روی اون کليک کنه. وقتی روی دکمه کليک شد کدی که ما نوشتيم اجرا می‌شه. ما برای اين دکمه کدی می‌نويسيم که اسم کاربر رو از کنترل Textbox بخونه و متن خوش‌آمدگويی رو توی Lable بنويسه.

اول کنترل‌های Label ، Textbox و Button رو از توی Toolbox به داخل صفحه بکشيد.

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

در صورتی که فاصله‌های زياد ايجاد شده با دکمه Enter رو دوست نداريد می‌تونيد از ترکيب دکمه‌های Shift+Enter استفاده کنيد.

می‌بينيد که Label و Button متن پيش‌فرض خودشون رو دارن. برای تغيير متن داخل دکمه روی کنترل Button کليک کنيد. با کليک روی هر کنترل در پنل Properties که معمولا پايين سمت راست صفحه قرار داره ليست خصوصيات اون نمايش داده می‌شه و شما می‌تونيد اون خصوصيات رو ويرايش کنيد. در صورتی که اين پنل رو پيدا نمی‌کنيد از منو View گزينه Properties Window رو انتخاب کنيد.

برای تغيير متن داخل دکمه بايد خصوصيت Text اون رو عوض کنيد. توی پنل خصوصيات (Properties) اين خصوصيت رو پيدا کنيد و توی اون متن «ارسال» رو وارد کنيد. وقتی Enter رو بزنيد می‌بينيد که نوشته داخل دکمه عوض شده. (می‌تونيد خودتون امتحان کنيد ببينيد بقيه خصوصيات باعث چه تغييراتی توی کنترل می‌شن!)

اين کار رو برای کنترل Label هم تکرار کنيد و متن اون رو بکنيد: «لطفا نام خود را وارد کنيد».

ASP.NET و کلا تکنولوژی .NET از يونی‌کد استفاده می‌کنه و به راحتی می‌شه هر جا از کاراکترهای غير لاتين هم استفاده کرد. البته شما هنگام ذخيره صفحاتی که شامل کاراکترهای يونی‌کد هستند بايد مشخص کنيد که به صورت يونی‌کد ذخيره شوند. برای اين کار از منو File مورد Save As… رو بزنيد و بعد روی فلش کوچيک کنار دکمه Save کليک کنيد و Save with Encoding... رو بزنيد و اونجا Unicode (UTF-8 with signature) – Codepage 65001 رو انتخاب کنيد. در صورتی که داخل کد يا HTML باشيد به منو File گزينه Advanced Save Options… اضافه می‌شه که اونجا هم می‌تونيد نوع کدگذاری رو تعيين کنيد.

جمعه، 12 خردادماه 1385
مروری کوتاه بر صفحات ASPX

باز کردن پروژه‌های ايجاد شده قبلی

در مطلب قبلی يه پروژه جديد ايجاد کرديم. حالا می‌خوايم با باز کردن همون پروژه به کار خودمون ادامه بديم. با باز کردن دوباره Visual Studio پنجره‌ای باز می‌شه به اسم Start Page که توی اون اسم چهار پروژه‌ای که اخيرا روی اون‌ها کار می‌کرديم وجود داره که با کليک روی هر کدوم می‌تونيم اون پروژه رو باز کنيم. همچنين با استفاده از منو File > Open > Project می‌تونيد پروژه‌های قبلی رو باز کنيد. پروژه قبلی ما بايد توی C:\Inetpub\wwwroot\ASPNETmojde1 قرار داشته باشه.

بخش طراحی (Design) و بخش برنامه‌نويسی (Code) صفحات

هنگام ايجاد پروژه جديد به طور پيش‌فرض يک فايل ساخته می‌شه به اسم WebForm1.aspx ، بهتره اسم اين فايل رو به Default.aspx تغيير بديد تا اون فايل به عنوان صفحه اول سايتتون در نظر گرفته بشه. برای اين کار توی پنل Solution Explorer روی اسم فايل راست کليک کنيد و Rename رو بزنيد.

همون‌طور که می‌دونيد توی سايت‌ها برای هر صفحه‌ای يه فايل وجود داره. مثلا وقتی وارد Mojde.com می‌شيد صفحه‌ای که می‌بينيد يه فايل هستش، ولی شما که اسم فايلی رو وارد نکرديد! برای سرور يه سری فايل تعريف شده که وقتی شما اسم فايلی رو وارد نمی‌کنيد سرور به طور پيش‌فرض اون فايل‌ها رو می‌آره. مثلا اگه توی بخش آدرس www.mojde.com رو وارد کنيد سرور فايل www.mojde.com/index.html رو بهتون نشون می‌ده. در اينجا index.html فايل پيش‌فرض سرور هستش. توی سرورهای ويندوز Default.aspx يه فايل پيش‌فرض هستش.

اگه فايل Default.aspx باز نيست روش دابل کليک کنيد تا باز بشه. صفحه‌ای که می‌بينيد بهش می‌گن Design View که توی اون می‌تونيد طراحی صفحه خودتون رو انجام بديد. می‌تونيد نوشته‌های خودتون رو توی اون بنويسيد و با استفاده از نوار ابزار Formatting شکل و فرم نوشته‌ها رو تعيين کنيد. (اگه اين نوار ابزار رو نمی‌بينيد بريد توی منو View > Toolbars > Formatting) از منوهای Format و Table هم می‌تونيد استفاده کنيد.

همه اين‌ها باعث ايجاد کد HTML می‌شن. اين کد رو می‌تونيد توی بخش HTML ببينيد و در صورت نياز ويرايش کنيد.

همين‌طور که می‌بينيد کدهای صفحات ASPX تا حد بسيار زيادی شبيه صفحات HTML هستن و فقط چند مورد جديد توی اون‌ها وجود داره. مثلا به بعضی تگ‌ها خصوصيت runat="server" اضافه شده که مشخص می‌کنه تگ شما در سرور قابل دستری، تغيير و دستکاری هست و شما با برنامه خودتون می‌تونيد خصوصيات اون مثل رنگ و فونت و بقيه ظواهر رو تعيين کنيد.

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

توی بخش HTML شما می‌تونيد هر کد HTML را که می‌خواهيد بدون هيچ محدوديتی اضافه کنيد و به صفحه خودتون شکل بديد.

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

برای ديدن کدهای صفحه روی فايل Default.aspx راست کليک کنيد و مورد View Code رو انتخاب کنيد. از دکمه‌های بالای Solution Explorer هم می‌تونيد برای رفت و آمد بين کد و طراحی (Design) استفاده کنيد:

دفعه بعد ساخت يه صفحه ساده با برنامه‌نويسی و اجرای اون رو بهتون ياد می‌دم.

لينکهای چهارشنبه، 10 خردادماه 1385 - [آرشيو]
دوشنبه، 8 خردادماه 1385
ايجاد يک وب‌سايت خالی برای شروع کار

ابتدا در 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 رو بزنيد.

لينکهای یکشنبه، 7 خردادماه 1385 - [آرشيو]
  • مدینه فاضله
    طنز نوشته ابراهيم نبوی در مورد اينکه احمدی نژاد گفته «می‌ترسند ما الگوی کشورهای دیگر شویم»
لينکهای شنبه، 6 خردادماه 1385 - [آرشيو]
  • وبلاگ ستاره قطبی
    اکرم ديداری از آلاسکا می‌نويسد - مطالبی که اسکيموها می‌نويسه خيلی جالبن.
  • نسخه جديد ای‌ميل ياهو
    عين Gmail توی اين سيستم هم از Ajax استفاده کردن. به نظرم از Gmail بهتر درش اوردن. شبيه به Outlook درستش کردن.
جمعه، 5 خردادماه 1385
آموزش 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 هستش و در صورتی که بخواهيد روزی اون رو هم ياد بگيريد راحتر خواهيد بود.

لينکهای پنجشنبه، 4 خردادماه 1385 - [آرشيو]
دوشنبه، 1 خردادماه 1385
تگ‌های پلاگ‌اين 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>

سه شنبه، 16 اسفندماه 1384
قالب حباب

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

قالب‌ برای شش سيستم: بلاگر، بلاگ‌فا، بلاگ‌اسکای، ميهن‌بلاگ، پرشن‌بلاگ و پرشن‌بلاگ تهيه شده.

مطالب قبلی
Start
صفحه اصلی
[سوالات فنی را اينجا ارسال کنيد]
آرشيو



Add to Google Reader or Homepage

Advertisment
Monthly Archive
Categories
Search

Links
يزدی ها
دريافت كد اين ليست
Logo

...
Y! Messenger ID : navidweblog
 MT