تبليغاتX
Who CoLoRlEsS

Who CoLoRlEsS

آموزش نوشتن یک لاگین ساده در PHP

ولین قدم بعد از یاد گرفتن بدیهیات پی اچ پی تشخیص هویت کاربرا هست .
به زبون ساده همین لاگین کردن .
نکته 1 - توجه کنید که توی این آموزش کوتاه فرض شده شما دستورات اس کیو ال ، مفاهیم بانک اطلاعاتی و استفاده بانک اطلاعاتی در پی اچ پی رو بلدید .
نکته 2 - در این برنامه ی کوتاه از یک دیتا بیس به اسم db1 و یک جدول با اسم tbl1 با فیلد های user_id, user_name, password استفاده شده .
یک فایل برای کانفیگ دیتا بیس لازم داریم


1.$host = 'localhost';
2.$user = 'root';
3.$pass = 'anything';
4.$db_name = 'db1';

اطلاعات بالا رو توی یک فایل با اسم db-config.php ذخیره کنید . این کار رو به این دلیل می کنیم که اگه نیاز شد هر جای برنامه و توی هر صفحه ای از دیتا بیس استفاده کنیم اطلاعات لاگین رو مستقیما اونجا وارد نکنیم .
بزرگترین مزیت این روش اینه که اگه مجبور بشیم اسم دیتا بیس رو عوض کنیم یا یوزر و پس رو تغییر بدیم باید هر جای برنامه که از دیتا بیس استفاده کردیم این تغییرات رو اعمال کنیم . ولی با استفاده از این روش با تغییر فایل کانفیگ مسائل حله !
خب حالا یه فایل اچ تی ام ال ساده لازم داریم که یه فرم یوزر و پسورد رو ارسال کنه به صفحه ی login.php اسم اون صفحه می تونه index.html باشه .
فایل بعدی که باید بسازیم فایل login.php هستش .

ادامه مطلب
+ نوشته شده در  دوشنبه هفتم اردیبهشت 1388ساعت 13:56  توسط مهدی فروتن  | 

تریگرها در SQL Server

مفهوم تریگر ها :

فرض کنید بخواهید مقدار فیلد شماره درس را در جدول Course تغییر دهید یا حذف کنید . ممکن است این مقدار در جدول Grade وجود داشته باشد . در این صورت ، اگر مقدار شماره درس در جدول course تغییر کند یا حذف شود ، اطلاعات جدول Grade که این شماره درس را دارند ، به رکوردهای نا معتبر تبدیل خواهند شد . به عنوان مثال دیگر ، فرض کنید شماره درسی را در جدول grade وارد کنید ، ولی این شماره درس در جدول Course موجود نیست . برای جلوگیری از این این مشکلات می توانید از تریگر ها استفاده کنید .ترگر ها ، نوع خاصی از رویه های ذخیره شده  اند که در هنگام تغییر داده های جدول برای محافظت از طراحی بانک اطلاعاتی فعال می شوند و از ورود داده های نا معتبر جلوگیری می کنند.

دو تفاوت بین ترگر ها و رویه های ذخیره شده :

۱-      تریگر ها فاقد پارامتر  هستند . ولی رویه های ذخیره شده می توانند پارامتر داشته باشد .

۲-      تریگر ها در هنگام تغییر داده های جدول فعال می شوند ، ولی رویه های ذخیره های ذخیره شده حتما باید فراخوانی شوند تا اجرا گردند.

 هر جدول می تواند حداکثر ۳ تریگر داشته باشد که عبارتند از :

تریگر در هنگام اضافه کردن رکورد (Insert )

o  تریگر در هنگام به روز رسانی رکورد ( Update )

o  تریگر در هنگام حذف رکورد ( Delete )

 به طور پیش فرض ، کلیه تریگر های جدول پس از تغییرات جدول فعال می شوند . این تریگر ها AFTER نام دارند . تریگر های دیگری نیز وجود دارند که INSTEAD OF نامیده می شوند و به جای تغییر در داده های مورد نظر ، باعث فعال سازی خودشان می شوند . در SQL SERVER تریگر ها از دو جدول Inserted و Deleted   استفاده می کنند . این جداول مضابه ساختار جدول پایه ای است که تریگر ، برای آن جدول ایجاد شده است. اگر کوردی به جدول اضافه کنید ، این رکورد علاوه بر این که در جدول پایه اضافه می شوند ، در جدول Inserted نیز اصافه خواهند شد . اگر رکوردی را در جدول پایه تغییر دهید ، این رکورد از جدول پایه حذف به جدول Deleted اضافه خواهد شد . رکورد جدید به جدول پایه و جدول Inserted اضافه می شود.

 نکته :  تریگر ها ، توابع بسیار خوبی برای استفاده هستند و جامعیت بانک اطلاعاتی را بررسی می کنند ، اما موجب افزایش I/O می گردند.



ادامه مطلب
+ نوشته شده در  یکشنبه هجدهم اسفند 1387ساعت 12:23  توسط مهدی فروتن  | 

پشتیبان گیری از بانک اطلاعاتی SQL Server(بافرمت ZIP) و Restore نمودن آن

این مقاله ابزارهایی برای پشتیبان گیری از و بازیابی نسخه پشتیبان از یک بانک اطلاعاتی SQL Server2000 را نشان می دهد .فرمت فایل بانک اطلاعاتی فرمت ZIP می باشد . برای برنامه نویسی ابتدا بایستی Reference مربوط به این کار یعنی کامپوننت SQL-DMO Dll را به پروژه خود اضافه نمایید .برای این کار در پنجره Solution Explorer برروی پروژه راست کلیک و سپس در سربرگ COM Component گزینه Microsoft SQLDMO Object Library را انتخاب و OK نمایید. توابع مربوطه را در زیر می بینید.

۱- تابع مربوط به نمایش نمونه های SQL Server اجرا شده برروی کامپیوتر ونمایش آنها در Combobox


ادامه مطلب
+ نوشته شده در  چهارشنبه بیست و سوم بهمن 1387ساعت 20:43  توسط مهدی فروتن  | 

ارسال ایمیل در ASP.NET با استفاده از HTML Template

شاید شما تاکنون مقالات بسیاری در خصوص ارسال Email در ASP.NET دیده باشید. ضعف اغلب این مقالات در این است که تنها به ذکر ساده ترین نوع ارسال Email بسنده میکنند. در این مقاله شما روش ساختن یک خبرنامه HTML ساده را خواهید آموخت.

آیا تاکنون سعی کرده اید برای سایت خود خبرنامه ایجاد کنید؟ آیا تاکنون وسوسه شده اید که سیستمی طراحی کنید که در صورتی که بینندگان سایت شما نظرات خود را در سایت شما وارد کنند برای آنها یک Email تشکرآمیز ارسال کنید؟ آیا می دانید ساختن یک HTML Template زیبا برای خبرنامه شما و استفاده همیشگی از آن جهت ارسال خبرنامه در ASP.NET بسیار ساده صورت می گیرد؟ آیا تاکنون سیستم نظرخواهی سایت Weblog.iProDev.NET را امتحان کرده و Email تشکر آن را دریافت کرده اید؟

چنانچه سوالات بالا شما را به دانستن بیشتر ترغیب کرده است به شما تبریک می گویم! چرا که در ادامه این مقاله شما روش بسیار ساده ارسال Email های HTML زیبا را بدون اینکه نگران چگونگی کدنویسی HTML متغیر رشته ای Body در MailMessage باشید را فرا خواهید گرفت.

برای شروع بیایید به روش کار نظری بیاندازیم: خوب احتمالا شما با روش ساختن یک نمونه از آبجکت MailMessage که در ASP.NET برای ارسال Email استفاده می شود آشنایی دارید (اگر این چنین نیست در ادامه مقاله به طور اجمالی توضیحاتی ارائه شده است) تنها قسمتی که باید مورد توجه قرار دهید این است که چگونه می توانیم Body نامه خود را به فرمت HTML و بدون نیاز به اینکه تمامی تگها را پشت سر هم در یک رشته طولانی و سردرگم کننده تایپ کنیم، درآوریم. یک ایده جالب این است که ما Template نامه خود را با استفاده از ادیتورهای WYSIWYG مثل FrontPage یا Dreamweaver طراحی کنیم و سپس تمامی کدهای HTML آن را درون یک متغیر رشته ای Import کرده و از آن استفاده کنیم. این کار بسیار آسان است. اما می توان این نامه را برای هر کاربر کمی سفارشی (Customize) کرد! برای مثال شما می توانید در ابتدای نامه کاربر را با نام وی مورد خطاب قرار دهید. بهتر است از این پس توضیحات را همراه با کدنویسی دنبال کنیم. (کلیه کدهای Server Side به زبان VB.NET نوشته شده است) سه گام اساسی برای این کار وجود دارد:
ادامه مطلب
+ نوشته شده در  جمعه هجدهم بهمن 1387ساعت 14:26  توسط مهدی فروتن  | 

وارد کردن حروف فارسی بدون تغییر زبان کیبرد در asp.net

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

 برای اين منظور ويژوال استوديو ۲۰۰۵را باز نموده يک پروژه از نوع Web Site ساخته و در صفحه Default آن دو کنترل تکست باکس (Input (Text)) از برگه Html استاندارد و يک کنترل Button از برگه Standard بر روی فرم بياندازيد.خاصيت هاي id و name را نيز در کنترل تکست باکس ها حتماً مقداردهي کنيد.

 سپس در Enterprise Manager در پايگاه داده Pubs يا هر پايگاه داده دلخواه يک جدول به نام Moshakhasat با ستونهای Name و Family از نوع nvarchar با طول ۱۲ و ۲۰ بسازيد.

 سپس بر روی کنترل Button کليک کنيد تا برای رويداد کليک آن کد زير را بنويسيم. همچنين رشته اتصال به بانک را در فايل Web.Config قرار مي دهيم.


ادامه مطلب
+ نوشته شده در  جمعه هجدهم بهمن 1387ساعت 14:22  توسط مهدی فروتن  | 

مروری بر زبان XAML

در اين بخش قصد دارم، زبان XAML را که نوعي زبان نشانه گذاري مي باشد را تشريح کنم و نحوه استفاده از آن و جايگاه آن را در تکنولوژي WPF و نيز در ويژوال استوديو را بيان کنم.

همانطور که در بخش قبلي (مقدمه اي بر WPF) اشاره اي مختصر کردم، XAML مخفف عبارت EXtensible Application Markup Language مي باشد. زبان XAML که يک زبان توصيفي مي باشد، بر پايه قواعد XML مي باشد. اين زبان در ايجاد برنامه هاي WPF نقش بسيار موثري را بازي مي کند.

اين زبان که همراه با ويژوال استوديو 2008 درون آن موجود و نصب شده مي باشيد، براي نمونه سازي وتعريف آبجکت هاي WPF به کار مي رود. منظور از آبجکت، در اينجا يک واژه کلي مي باشد. از يک خط ساده گرفته تا توليد و ايجاد کنترل هاي پيچيده، همگي قابل پياده سازي با اين زبان توصيفي مي باشند. در واقع WPF اين زبان را براي ايجاد واسط هاي کاربري برنامه هاي خود به کار مي گيرد.
اگر چه در ابتدا ممکن است اينگونه به نظر آيد که استفاده از XAML براي طراحي پنجره ها و يا صفحات و يا هر آبجکت ديگري درون WPF مشکل تر از نحوه ايجاد فرم هاي ويندوزي در مدل هاي برنامه نويسي پيشين باشد، ولي به واقع اينگونه نيست. با کمي تلاش و استفاده از اين زبان، پس از مدتي متوجه خواهيد شد که توسعه برنامه ها و طراحي پنجره هاي برنامه به همراه محتويات درون آن ها، توسط XAML بسيار سريعتر و روان تر از روش هاي پيشين که معمولا به صورت Drag کردن کنترل ها و اشياء بر روي فرم ها بود، مي باشد. علاوه بر اين پس از مدتي خواهيد ديد که ايجاد آبجکت ها و به ويژه ايجاد انواع اشکال با انواع افکت هاي گوناگون بر روي آن ها، توسط XAML به راحتي صورت مي پذيرد. يکي ديگر از ويژگيهاي اين زبان اين است که در ويژوال استوديو، تقريبا بيش از 99% موارد داراي Intellisence بسيار موثر و کارا مي باشد که عمل کد نويسي در اين زبان را بسيار راحت تر مي کند. در ادامه نگاهي گذرا به روش هاي پيشين طراحي خواهيم انداخت و مقايسه خواهيم کرد که استفاده از XAML در توليد برنامه هاي WPF چه اثراتي دارد.

ادامه مطلب:


ادامه مطلب
+ نوشته شده در  چهارشنبه بیست و پنجم دی 1387ساعت 19:5  توسط مهدی فروتن  | 

تبدیل IP Address به Hostname و بلعکس

تبدیل  IP Address به Hostname

گاهی اوقات پیش می آید که شما یک IP Address در اختیار دارید که از روی آن می خواهید Hostname آن را بیابید. انجام این کار بسیار ساده است فقط کافیست که کلاس System.Net.Dns را در  برنامه خود بکار گیرید.

به کمک تابع  Dns.GetHostEntry می توان hostname یک IP Address را بدست آورد. در کد زیر تمامی اطلاعات مربوط به یک IP Address به فرمت IPHostEntry گرفته شده است که یکی از مشخصه های کلاس IPHostName مشخصه HostName می باشد.

using System;

using System.Net;

  IPHostEntry iphost = Dns.GetHostEntry("127.0.0.1");

  string hostName = iphost.HostName;

  // Print out name.

  Console.WriteLine(hostName);

 

همانطور که مشاهده می شود تابع GetHostEntry یک object از نوع IPHostEntry برمی گرداند که بواسطه مشخصه HostName آن می توان به نام host یک IP Address دست پیدا کرد. اگر IP Address مورد نظر معتبر نباشد، مشخصه HostName  به جای نام host عینا" IP Address را شامل می شود.

 

تبدیل Hostname به IPAddress

 برگرداندن hostname به IP Address نیز به سادگی فرآیند فوق می باشد.

به کمک تابع Dns.GetHostEntry می توان به IP Address یک نام host مثلا" www.yahoo.com دست پیدا کرد. در کد زیر  نام یک وب سایت به  تابع نوشته شده داده می شود  که توسط تابع GetHostEntry که نوع برگشتی آن IPHostEntry می باشد، اطلاعات آن از جمله AddressList که از روی آن می توان به IP Address دست پیدا کرد، بر گردادنده می شود.

        public static string HostNameToIP(string hostName)

        {

            IPHostEntry iphost = System.Net.Dns.GetHostEntry(hostName);

            IPAddress[] addresses = iphost.AddressList;

            StringBuilder addressList = new StringBuilder();

            foreach (IPAddress address in addresses)

            {

                addressList.AppendFormat("IP Address: {0};", address.ToString());

            }

            return addressList.ToString();

        }

همانطور که در کد فوق مشاهده می شود IP Address توسط مشخصه AddressList برگردانده می شود که نشاندهده این است که یک hostname می تواند شامل چندین IP Address باشد.

+ نوشته شده در  چهارشنبه بیست و پنجم دی 1387ساعت 19:2  توسط مهدی فروتن  | 

مروری بر LINQ در C# 2008

امروزه دیگر نمی­توان منکر کاربرد نرم­افزار­های کامپیوتری در زندگی روزمره بشر گردید. همچنین در اکثر برنامه­هایی که امروزه بر روی کامپیوتر­ها به کار می­روند، استفاده از بانک­های اطلاعاتی انکارناپذیر است. به همین دلیل از اوایل دهه 80 میلادی تلاش­های فراوانی برای بهبود نرم­افزاری­های بانک اطلاعاتی گردید و منجر به ظهور مدل­های جدید و متعددی برای ایجاد پایگاه­های داده گردید. یکی از این مدل­ها که هم اکنون در بسیاری از نرم­افزارها پیاده سازی شده است مدل RDBMS می­باشد. به عنوان نمونه می­توان SQL Server و همچنین Oracle را نام برد. در حال حاضر، برای ایجاد و توسعه برنامه­های مبتنی بر بانک­های اطلاعاتی، این دو نرم­افزار بیشتر از مدل­های مشابه مورد استفاده قرار می­گیرند.

پس از انتخاب نرم­افزار ارائه دهنده خدمات بانک اطلاعاتی، نوبت به انتخاب زبان برنامه نویسی می­رسد. در اینجا نیز ذکر این مورد کافیست که اگر نگاهی که گذشته داشته باشیم متوجه می­شویم که در بیست سال گذشته زبان­هایِ با قابلیت برنامه نویسی شئ­گرا به عنوان اولین و بهترین زبان برای توسعه نرم­افزارها در نظر گرفته می­شوند. در میان زبان­های با قابلیت برنامه نویسی شئ­گرا زبان #C و Java از امکانات بهتری برخوردارند.

با نگاهی به دو نرم­افزار انتخاب شده در بالا متوجه به تضادی می­شویم که از گذشته تا کنون گریبان­گیر برنامه­نویسان متعددی بوده است. با توجه به اینکه SQL Server یک بانک اطلاعاتی رابطه­ای است پس نمی­توان با آن به صورت شئ­گرا در برنامه­­ها ارتباط برقرار کرد. البته مایکروسافت برای رفع این مشکل تا قبل از سال 2005 فعالیت­هایی نظیر ارائه DataSet و ADO.NET انجام داده است. اما با این حال هنوز نمی­توان به صورت کاملاً شئ­گرا با این مدل از بانک­های اطلاعاتی ارتباط برقرار کرد.

در این میان شرکت­های مطرح نرم­افزاری دنیا مانند Mircrosoft نیز بیکار نمانده­اند و بر روی پروژه­هایی برای رفع مشکل یاد شده در بالا فعالیت نموده­اند. مهمترین و بهترین پروژه­ای که در این مورد بر روی آن کار شده است پروژه LINQ می­باشد. با استفاده از این تکنولوژی دیگر نیاز به کار بردن روش­های متفاوت برای بازیابی اطلاعات از منابع داده­ای گوناگون مانند بانک­های اطلاعاتی رابطه­ای، اسناد XML و حتی اشیاء درون حافظه نیست. در این روش از یک گرامر مشابه برای بازیابی اطلاعات از هر نوع منبع داده­ای استفاده می­شود؛ و البته گرامری که این روش از آن استفاده می­کند به صورت شئ­گرا می­باشد.

در ادامه نگاهی کلی بر فرم کلی این روش خواهیم انداخت و سپس به توضیح و بررسی قسمت­های مخلتف پروژه می­پردازیم.

برای درک کلی گرامر این روش مثال زیر را در نظر بگیرید:

int[ ] i= {1,2,3,4,5,6,7,8,9,10,11};

var query = from p in i

            where p>=5      

            select p;

objectdumper.write(query);
ادامه مطلب
+ نوشته شده در  پنجشنبه نهم آبان 1387ساعت 10:8  توسط مهدی فروتن  | 

Silverlight 2 چیست؟

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

Silverlight 2 داراي يك برنامه نصب 4.6 MB مي باشد كه با برخوردن يك browser با وب سايتي كه در آن از silverlight استفاده شده است اگر كامپيوتر فرد بازديد كننده فاقد Silverlight 2 باشد از وي خواسته مي شود كه نسبت به دانلود و نصب آن اقدام كند (همانند برنامه هاي مربوط به اجراي فايلهاي فلش). نصب Silverlight 2 نيازي به وجود .NET Framework بر روي كامپيوتر بازديدكننده وب سايت ندارد و هر آنچه كه براي اجراي Silverlight 2 لازم است بر روي همين برنامه 4.6 MB موجود مي باشد.

برنامه نويسان براي نوشتن برنامه هاي مبتني بر Silverlight 2 مي توانند از هر زبان برنامه نويسي تحت .NET مثل C# ، VB ، JavaScript ، IronPython و IronRuby استفاده كنند. Silverlihgt ويژگيهاي جالبي را براي توسعه اينگونه برنامه ها دارا مي باشد كه عبارتند از:

WPF UI Framework : Silverlight 2 شامل چارچوب استثنايي UI مي باشد كه ايجاد برنامه هاي پر زرق و برق تحت وب را به مراتب ساده كرده است. اين چارچوب يك موتور قوي گرافيك و متحرك سازي را در بر دارد همچنين قابليتهاي ايجاد واسط كاربري سطح بالا مثل كنترلها، مديريت طرح بندي ( Layout )، data-binding، Styles و پوسته ها و قالب ها را در خود گنجانده است. WPF UI Framework در Silverlight زيرمجموعه اي از خصيصه هاي WPF UI Framework است كه به برنامه نويسان امكان مي دهد كدهاي يكساني را براي برنامه هاي تحت وب و desktop مورد استفاده قرار دهند.

Rich Controls : Silverlight 2 داراي يكسري كنترلهاي واسط كاربري ار پيش ساخته شده مي باشد كه به برنامه نويسان به سرعت بخشيدن به ايجاد برنامه ها كمك مي كند. Silverlight 2 شامل كنترلهاي فرم مثل TextBox ، ChechBox ، RadioButton ، ComboBox و غيره ، پنلهاي مديريت طرح بندي مثل StackPanel ، Grid ، Panel و غيره، كنترلهاي با كاربرد مشترك مثل Slider ، ScrollViewer ، Calender ، DataPicker و غيره، كنترلهاي نمايش داده ها مثل DataGrid ، ListBox و غيره. تمام كنترلهاي موجود در Silverlight 2 قابليت template شدن را دارند كه اين امر برنامه نويسان و طراحان گرافيك را تشويق به اعمال سليقه خود بر روي نحوه نمايش كنترلها مي كند.

Rich Networking Support : Silverlight 2 قابليتهاي شبكه اي خوبي را پشتيباني مي كند كه شامل REST ، WS*/SOAP ، POX ، RSS و سرويسهاي استاندارد HTTP مي باشد. اين پشتيباني باعث مي شود كه برنامه هاي مبتني بر Silverlight مستقيما" به منابع و داده ها بر روي وب دسترسي داشته باشند. همچنين Silverlight قابليت پشتيباني از ارتباط شبكه اي سوكتي را نيز در خود گنجانده است.

Rich Base Class Library : Silverlight 2 مجموعه از كلاسهاي پايه NET. نظير collection ، IO ، generics ، threading ، globalization ، XML ، Local Storage و غيره را شامل مي شود. Silverlight 2 همچنين شاملAPI هايي جهت يكپارچه سازي HTML DOM/JavaScript با كدهاي NET. مي باشد. استفاده از قابليتهاي LINQ نيز از ديگر API هايي است كه Silverlight 2 از آن بهره مي برد.

Rich Media Support : Silverlight 2 شامل رمز گذار و رمز گشاي ويديو (codec) براي نمايش ويديو هاي با كيفيت و نشر آن بر روي وب مي باشد. همچنين استفاده از برخي تكنيكهاي پيشرفته (switching video bitrats on the fly) باعث عدم بافر شدن و با وقفه پخش شدن ويديوها مي شود.

Silverlight 2 به همراه ابزارهاي پشتيباني آن براي Visual Studio 2008 و Expression Blend 2 را مي توانيد از سايت رسمي http://www.silverlight.net دريافت كنيد.

+ نوشته شده در  پنجشنبه دوم آبان 1387ساعت 21:13  توسط مهدی فروتن  | 

آشنائی اوليه با ASP. NET 3.5 و VS 2008

شركت مايكروسافت در نوزدهم نوامبر 2007، رسما" نسخه ASP. NET 3.5 و ويژوال استوديو 2008 را عرضه كرد .

همانند نسخه شماره 3 كه نسبت به نسخه شماره 2 دارای امكانات بيشتری بود ، در اين نسخه نيز نسبت به نسخه قبلی امكانات جديدی اضافه شده است . اسمبلی های اساسی نصب شده توسط نسخه شماره 2 فريمورك ، همچنان در نسخه های 2 و 5 / 3 قابل استفاده می باشند . به عبارت ديگر ، در نسخه شماره 5 / 3 ، مفاهيم و نحوه نوشتن كد و مواردی از اين قبيل نسبت به نسخه شماره 2 تغيير نكرده است. در اين نسخه ، نوع ها ، ويژگی ها و قابليت های جديدی به فريمورك اضافه شده است.

ويژوال استوديو 2008 ، ابزاری قدرتمند برای پياده سازی برنامه های ASP. NET است . برخلاف نسخه قبل كه صرفا" مختص يك نسخه خاص فريمورك بود ( به عنوان نمونه در ويژوال استوديو 2003 ، نسخه ASP.NET 1.1 و در ويژوال استوديو 2005 نسخه ASP. NET 2.0 ) ، از ويژوال استوديو 2008 می توان به همراه چندين نسخه فريمورك استفاده كرد . شما می توانيد از طريق يك ليست drop down ، نوع فريمورك خود جهت پياده سازی برنامه ها ( به عنوان نمونه ASP. NET 2.0 ، ASP. NET 3.0 و يا ASP. NET 3.5 ) را انتخاب نمائيد.
شكل ۱ نحوه انتخاب فريمورك در زمان ايجاد يك وب سايت جديد را در ويژوال استوديو 2008 نشان می دهد.


 

شكل ۱ : نحوه انتخاب فريمورك در زمان ايجاد يك وب سايت جديد در ويژوال استوديو 2008

در ويژوال استوديو 2008 ،‌در محيط طراحی نيز تغييراتی در جهت قدرتمند تر شدن آن ايجاد شده است . افزودن امكاناتی نظير هوشمندی در تايپ و اشكال زدائی كدهای جاوا اسكريپت و قابليت مشاهده و حتی توقف در هسته كد فريمورك دات نت در حين اشكال زدائی نمونه هائی در اين زمينه می باشند .
در اين مقاله مروری خواهيم داشت به ويژگی های جديد 5 / 3 و امكانات جديد مرتبط با ASP. NET در ويژوال استوديو 2008 .

 

ارائه يك نسخه جديد فريمورك دات نت و دستاوردهای آن

زمانی كه يك نسخه جديد ASP. NET ارائه می گردد ، در واقع يك نسخه جديد از فريمورك دات نت نيز ارائه می گردد . كنترل های وب و منطق برخورد با صفحات در كلاس هائی خاص از فريمورك دات نت پياده سازی شده اند .
فريمورك دات نت دارای امكانات فراوانی است كه از آنها در شرايط مختلف استفاده می شود و همه چيز به ASP. NET خلاصه نمی گردد .
متعاقب ارائه يك نسخه جديد از فريمورك دات نت ، امكانات و ويژگی های جديدی نيز به همراه آن ارائه می گردد كه می توان آنها را در سه گروه زير تقسيم كرد :

  • ويژگی هائی از فريمورك كه مختص پياده كنندگان برنامه های ASP.NET ارائه شده اند :اين نوع ويژگی ها جهت پياده سازی برنامه هایASP. NET بسيار مهم و حياتی می باشند . مثلا" پس از معرفی نسخه شماره 2 ASP. NET ، قابليت های جديدی نظير كنترل Gridview و كنترل های نسبت دهی داده نظير sqlDataSource و ObjectDataSource در اختيار پياده كنندگان قرار گرفت .

  • ويژگی هائی از فريمورك كه می تواند برای پياده كنندگان برنامه های ASP. NET نيز مفيد واقع شود : اين نوع از ويژگی ها صرفا" مختص ASP. NET نمی باشند و از آنها می توان در مواردی ديگر نظير WinForm نيز استفاده كرد . از پتانسيل های فوق عموما" در ASP. NET استفاده می گردد . به عنوان نمونه ، فريمورك 2 ، نوع های anonymous و Generics را معرفی و وضعيت Dataset را بهبود بخشيد .
    هيچكدام از موارد فوق مختص ASP. NET نمی باشند ، ولی اغلب توسط پياده كنندگان ASP. NET استفاده می گردند .

  • ويژگی هائی از فريمورك كه توسط پياده كنندگان ASP. NET استفاده نمی گردد . فريمورك دات نت مشتمل بر تعداد زيادی از كلاس هائی است كه به ندرت و يا هرگر توسط پياده كنندگان ASP. NET استفاده نمی گردد نظير كلاس های موجود در System.Windows.Forms .

در ادامه به بررسی دو گروه اوليه خواهيم پرداخت .
در ابتدا لازم است به اين موضوع اشاره نمائيم كه شما می توانيد يك پوستر از فريمورك 5 / 3 با فرمت pdf را از اين محل دريافت نمائيد . علاوه بر وجود تعداد زيادی از كلاس ها و namespace در فريمورك دات نت ، اين پوستر دو چيز را كاملا" شفاف نشان می دهد : اين كه چه ميزان از فريمورك دات نت با ASP.NET مرتبط نيست و امكانات و ويژگی های جديد اضافه شده به هر يك از نسخه های فريمورك دات نت.
شكل ۲ ويژگی های ASP. NET 2.0 و قابليت های جديد اضافه شده در هر يك از نسخه های 3 و 5 / 3 را نشان می دهد


شكل ۲ : امكانات اضافه شده به هر يك از نسخه های فريمورك دات نت

برای كسب اطلاعات بيشتر در خصوص اين موضوع كه چگونه دات نت 5 / 3 ، اسمبلی های اضافه و قابليت های جديدی را به دات نت 2 اضافه كرده است ، به وبلاگ Daniel Moth مبحث "فريمورك 5 / 3 " مراجعه نمائيد .
در وبلاگ فوق و مبحث " Visual Studio 2008 Stack " ، يك تصوير شفاف از تغييرات انجام شده در ويژوال استوديو ، زبان های برنامه نويسی ، كتابخانه های فريمورك و CLR نيز ارائه شده است .

 

مروری بر ويژگی هائی از فريمورك كه مختص پياده كنندگان برنامه های ASP.NET ارائه شده اند

 ASP.NET 3.5 يك نسخه جديد و ارتقاء‌ يافته نسبت به نسخه قبلی است كه سه ويژگی جديد زير در آن از ساير موارد مشهود تر است :

  • حمايت ذاتی از ASP.NET AJAX

  • كنترل ListView

  • كنترل DataPager

قبل از ASP.NET 3.5 ، لازم بود كه در ابتدا فريمورك ASP.NET AJAX مايكروسافت دانلود و بر روی سيستم به عنوان يك الحاقيه نصب گردد . در ASP.NET 3.5 ، كلاس های مرتبط با AJAX مستقيما" در فريمورك دات نت ساخته شده اند تا امكان ساخت سريع و آسان برنامه های وب مرتبط با AJAX در برنامه های ASP.NET فراهم گردد .

ASP.NET 2.0 به همراه خود كنترل های داده جديدی نظير Gridview، DetailsView و FormView را معرفی كرد . كنترل GridView ، ليستی از ركوردها را در يك جدول نمايش می دهد . كنترل های DetailsView و FormView در هر لحظه يك ركورد را نمايش می هند . كنترل DetailView در يك ساختار نمايشی مشابه جدول و FormView در يك layout متاثر از يك template خاص ، اطلاعات خود را نمايش می دهند .
ListView در واقع يك نسخه ارتقاء يافته از كنترل های DataList و Repeater است كه می تواند چندين ركورد را به همراه قابليت هائی‌ نظير Gridview نمايش دهد . با اين تفاوت كه بكارگيری تمپليت ها با انعطاف بيشتری انجام می گردد .

كنترل DataPager به صورت يك نوع اينترفيس free-standing paging كار می كند . به عبارت ديگر كنترل فوق ، يك رابط كاربر paging را تفسير ( به عنوان نمونه صفحه بعد ، قبل ، دكمه آخر ) و با يك كنترل وب داده مرتبط می شود . كنترل فوق صرفا" با آن گروه از كنترل هائی كار می كند كه IPageableItemContainer interface را پياده سازی كرده باشند كه صرفا" ( در حال حاضر ) در كنترل ListView وجود دارد .

برای آشنائی بيشتر با نحوه استفاده از كنترل های ListView و DataPager می توانيد به وبلاگ Scott Guthrie مبحث " كنترل ListView " مراجعه نمائيد. مايكروسافت نيز ويدئوهای جديدی جهت آشنائی با نحوه استفاده از كنترل های ListView و DataPager ارائه كرده است .

 

مروری بر ويژگی هائی از فريمورك كه می تواند برای پياده كنندگان برنامه های ASP. NET نيز مفيد واقع شود

مهمترين ويژگی ارائه شده در نسخه شماره 5 / 3 فريمورك دات نت ، معرفی LINQ ( برگرفته شده از Language Integrated Query ) است . با استفاده از فناوری فوق ، می توان گرامری شبيه SQL را با استفاده از زبان های برنامه نويسی VB و #C نوشت تا پياده كنندگان بتوانند از داده در برنامه های خود استفاده نمايند .
به همراه ويژوال استوديو 2008 يك LINQ to SQL designer ارائه شده است كه به كمك آن می توان يك بانك اطلاعاتی را به عنوان يك LINQ به SQL object model مدل سازی كرد . پس از مدل سازی بانك اطلاعاتی ، می توان به سادگی كدهای مورد نظر خود را به منظور كار با داده نوشت .
كد زير نحوه بازيابی محصولات گروه Test از بانك اطلاعاتی نمونه Northwind را با گرامر مبتنی بر LINQ توسط VB و #C نشان می دهد ( كلاس NorthwindDataContext بر اساس مدل طراحی شده ، ايجاد شده است )

C#
NorthwindDataContext db = new NorthwindDataContext() ;
var Products = from p in db.Products
Where p.category.CategoryName == "Test"
select P;

VB
Dim db AS New NorthwindDataContext Dim products = From p In db.products _
Where p.category.categoryName = "Test" _
Select p

 

LINQ ، به سادگی يك گرامر را جهت كار با داده تعريف می كند . همچنين ، ORMs ( برگرفته شده از Object Relational Mappers ) از قبل تعبيه شده ای وجود دارد كه فريمورك مرتبط را به منظور توليد عبارات LINQ ايجاد می نمايد تا بر روی يك بانك اطلاعاتی و يا XML كار كند .
Scott Guthrie در چندين مقاله با عنوان " استفاده از LINQ برای پياده سازی SQL ORM " به اين موضوع پرداخته است .
ويژوال استوديو 2008 از گرامر LINQ در زمان استفاده از آن به صورت full-IntelliSense حمايت می نمايد . گرامر LINQ از طريق امكانات جديد ارائه شده در فريمورك دات نت نظير خصلت های اتوماتيك ، متدهای extension و عبارات lambda ، امكان پذير می باشد . پرداختن به موارد فوق خارج از حوصله اين مقاله است .
 

مروری بر ويژگی های جديد ويژوال استوديو 2008

ويژوال استوديو 2008 امكانات متعددی را در جهت كمك به پياده كنندگان نظير بهبود محيط Designer ، امكانات پيشرفته ويرايش CSS و اشكال زدائی جاوا اسكريپت ارائه كرده است . در اين نسخه از ويژوال استوديو برای پياده سازی برنامه های وب می توان يكی از محيط های NET 2.0, NET 3.0 و يا NET 3.5 را انتخاب كرد . اين بدان معنی است كه شما می توانيد از ويژوال استوديو برای كار بر روی يك وب سايت پياده سازی شده با ASP.NET 2.0 نيز استفاده نمائيد . در ادامه مروری سريع خواهيم داشت به هر يك از موارد فوق .
در نسخه قبلی ويژوال استوديو ، پياده كنندگان می توانستند از Designer و يا Source view در زمان ويرايش عناصر ويژوال در يك صفحه ASP.NET استفاده نمايند . محيط Designer يك نمايش WYSISYG از صفحه را نمايش می دهد . در Source view ، كدهای markup مربوط به كنترل ها نمايش داده می شود . در ويژوال استوديو 2008 ، يك ويژگی جديد با نام Split screen ارائه شده است كه توسط آن كدهای markup در يك pane و WYSIWYG در pane ديگر نمايش داده می شود . زمانی كه در مد split قرار می گيريم ، همزمان با اضافه كردن محتويات به Designer ، بطور اتوماتيك كدهای markup در Source view بهنگام می گردند( متاسفانه عكس اين حالت درست نيست ) . اگر شما markup جديدی را بطور دستی در Source view درج نمائيد ، مجبور خواهيد بود كه صفحه را save و يا دكمه refresh را كليك نمائيد تا Designer view نيز بهنگام گردد .
شكل ۳ ، Split screen را در ويژوال استوديو 2008 نشان می دهد

شكل ۳ : Split screen در ويژوال استوديو 2008

همزمان با افزايش تعهد مايكروسافت به AJAX ، ويژوال استوديو 2008 امكانات حمايتی بهتری را در ارتباط با جاوا اسكريپت ارائه كرده است . امكانات زمان طراحی و اشكال زدائی بطور كامل بهبود يافته اند . زمانی كه از طريق source view اقدام به نوشتن كدهای جاوا اسكريپت می نمائيد ، امكانات و قابليت های IntelliSense مشابه در زمان نوشتن كدهای سمت سرويس دهنده در اختيار شما گذاشته می شود . اين شامل حمايت از كدهای جاوا اسكريپت inline و اسكريپت هائی است كه از طريق فايل های جاوا اسكريپت خارجی به آنها مراجعه می گردد .
( دستيابی به فايل های اسكريپت از طريق گرامری مشابه امكان پذير است ) .
Scott Guthrie در وبلاگ خود و با عنوان VS 2008 JavaScript IntelliSense به اين موضوع اشاره كرده است كه پياده كنندگان می توانيد حتی تذكرات هوشمند را به توابع جاوا اسكريپت و با استفاده از توضيحات XML اضافه نمائيد . وی همچنين در وبلاگ خود به بررسی قابليت های اشكال زدائی جاوا اسكريپت پرداخته است .
اخيرا"
شركت مايكروسافت عنوان نموده است كه به زودی كد فريمورك دات نت را تحت مجوز MS-RL در اختيار عموم قرار خواهد داد . نكته جالب مرتبط با اين رويداد برای پياده كنندگانی كه از ويژوال استوديو استفاده می نمايند در اين است كه آنها می توانند ويژوال استوديو 2008 را به يك URL اشاره دهند كه شامل نمادهای اشكال زدائی برای فريمورك دات نت است . بدين ترتيب ، در زمان اشكال زدائی امكان ورود به سورس كد فريمورك دات نت فراهم می گردد . اين موضوع می تواند به پياده كنندگان كمك نمايد تا شناخت بهتر و عميق تری نسبت به نحوه عملكرد فريمورك دات نت پيدا نمايند .
هنوز مشخص نشده است ( در زمان نوشتن اين مطلب ) كه آيا مايكروسافت نمادهای اشكال زدائی را از طريق يك URL عمومی در دسترس قرار خواهد داد . پس از عموميت URL ، پياده كنندگان می توانند از طريق ويژوال استوديو به آن اشاره نمايند . جهت كسب اطلاعات بيشتر به وبلاگ Scott Guthrie مراجعه نمائيد .

خلاصه
نسخه جديد ويژوال استوديو و ASP.NET ويژگی های جديد و جالبی را نسبت به نسخه های قبلی در اختيار پياده كنندگان قرار می دهد. در ASP.NET 3.5 ، مايكروسافت فريمورك ASP.NET AJAX را به عنوان بخش لاينفك فريمورك دات نت معرفی كرده است و به همراه ساير كنترل ها ، كنترل های جديد ListView و DataPager را ارائه كرده است .
در ويژوال استوديو 2008 ، تغييرات متعددی نظير افزايش توانمندی پياده كنندگان جهت طراحی رابط كاربر ( يك محيط طراحی قوی تر ) ، بهبود قابليت های ويرايش CSS ، حمايت از اشكال زدائی و تايپ هوشمند جاوا اسكريپت ، قابليت انتخاب نسخه فريمورك برای پياده سازی برنامه وب ارائه شده است
+ نوشته شده در  جمعه بیست و ششم مهر 1387ساعت 11:9  توسط مهدی فروتن  |