یادگیری ASP.NET با پروژه های کدباز

13 09 2009

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

پروژه های کدباز زیر توسط اجتماع کاربری ASP.NET تولید شده اند که مثال های عملی و بسیار مناسبی برای کسانی که می خواهند با فریم ورک ASP.NET برنامه نویسی کنند، فراهم کرده اند.

My Web Pages Starter Kit

My_Web_Pages یک CMS کوچک و جمع و جور برای راه اندازی یک وب سایت شخصی است. تغییر ظاهر آن ساده است. به راحتی می توانید امکانات آن را بر اساس نیازهای خودتان ارتفا دهید. با استفاده از ASP.NET 2.0 توسعه داده شده و برای ذخیره داده ها از روش مبتنی بر فایل های XML استفاده می کند و بیخود شما را درگیر پیچیدگی های SQL Server نمی کند. MasterPage, Themes, Data binding, Navigation, Custom Membership Provider از مفاهیمی هستند که در این پروژه مورد استفاده قرار گرفته اند. توسعه دهندگان این پروژه سعی کردند تا سادگی در استفاده برای کاربران نهایی و سادگی در توسعه برای توسعه دهندگان را حفظ کنند.

TheBeerHouse: CMS and E-commerce Starter Kit

TheBeerHouseاین پروژه به شما کمک می کند تا یک وب سایت تجارت الکترونیکی راه اندازی کنید و آن را به خوبی مدیریت کنید. با مشاهده کدها و مستندات این پروژه با قابلیت های کلیدی موجود در ASP.NET 2.0 آشنا خواهید شد. با نحوه استفاده از Master Page، Theme، Membership، WebParts و کنترل های GridView, FormView، DetailsView آشنا خواهید شد. این پروژه کدباز، مثال مورد استفاده در کتاب “ASP.NET 2.0 Website Programming / Problem – Design – Solution.” است.

Club Site Starter Kit

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

CodePlex Club Site Starter Kit

نسخه گسترش داده شده پروژه اصلی Club Site است که شامل ابزار وبلاگ نویسی و قابلیت های مدیریتی بهتر است. امکانات نسخه اصلی بهبود یافته اند و امکانات جدیدی مثل نظرسنجی، مدیریت لیگ و فاروم به آن اضافه شده است.

Extended  Club Site Starter Kit

نسخه گسترش یافته دیگری از پروژه  Club Site است که صفحات مدیرتی جدیدی برای تعیین نقش های کاربران (User Roles) و ساختار نقشه سایت (Site Map) فراهم می کند. کاربران وب سایت با استفاده از WebParts می توانند صفحات خانگی خودشان را سفارشی کنند و به علت استفاده از قابلیت Theme در ASP.NET 2.0 کاربران می توانند ظاهر سایت را بر اساس سلیقه خود تغییر بدهند.

Job Site Starter Kit

Job

یک اپلیکیشن وب برای راه اندازی وب سایت های کاریابی است. کارفرمایان نیازهای شغلی خود را تعریف می کنند و کارجویان با جستجو میان این نیازها، شغل مورد نظر خود را پیدا می کنند. مفاهیم کلیدی ASP.NET 2.0 از جمله Master Page, Themes, Membership, Roles, Profiles و Data Controls در این پروژه استفاده شده اند. ساده طراحی شده و استفاده از آن برای کاربران ساده است اما امکانات خیلی زیادی ندراد.

Kigg

Kigg

یک وب سایت با کارکرد شبیه به Digg که با استفاده از ASP.NET MVC ، LINQ to SQL و ASP.NET AJAX توسعه داد شده است. کاربران می توانند لینک های خود را ارسال کنند و دیگر کاربران می توانند به آن ها امتیاز دهند.

FlexWiki

FlexWiki

اپلیکیشنی مناسب برای راه اندازی ویکی ها است که برای ذخیره داده هایش از فایل های معمولی استفاده می کند. البته می توانید از مخزن مبتنی بر SQL Server هم استفاده کنید.

YetAnotherForum

YetAnotherForum
یک اپلیکیشن قدرتمند برای راه انداری فاروم های بحث و گفتگو در دنیای دات نت است. YAF هم به صورت جداگانه می تواند نصب شود و هم می تواند به عنوان یک ماژول برای دات نت نیوک مورد استفاده قرار گیرد.

BlogEngine.NET

benlogo80
اپلیکیشن کدباز بسیار قدرتمند برای ایجاد و نوشتن وبلاگ که نصب و استفاده از آن بسیار آسان است. داده های وبلاگ می توانند بر اساس انتخاب کاربر در یک دیتابیس SQL Server یا در فایل های XML ذخیره شوند. این پروژه کدباز با C#x و ASP.NET 2.0 نوشته شده و با مهارتی که در دات نت دارید می توانید به راحتی آن را توسعه دهید.

nopCommerce

nopCommerce

اپلیکیشن تحت وب برای ایجاد وب سایت های تجارت الکترونیکی است که مبتنی بر ASP.NET 3.5 و SQL Server است. این پروژه راه حلی حرفه ای برای تجارت الکترونیکی در اختیار کاربران قرار می دهد و از آخرین تکنولوژی های مایکروسافت برای توسعه آن استفاده شده است.

JobPers

jobpers

یک پروژه کاملاً فارسی برای ایجاد وب سایت های کاریابی/نیرویابی است که با استفاده از ASP.NET 3.5 و LINQ to SQL ساخته شده است. با استفاده از معماری سه لایه و کاملاً شیء گرا توسعه داده شده است. من این پروژه را برای درس مهندسی نرم افزار خودم ارائه داده ام. قرار بود در تابستان کتابی در مورد ASP.NET 3.5 و LINQ to SQL چاپ شود و از این پروژه به عنوان مثال استفاده شود که متاسفانه به علت یکسری مشکلات، این اتفاق رخ نداد. به هر حال هنوز نمی توان با این پروژه یک وب سایت کاریابی و نیرویابی کامل راه اندازی کرد اما برای یادگیری مفاهیم مناسب خواهد بود. این پروژه کدباز بوده و تحت مجوز GPL نسخه 2 توزیع شده است.

farasun.wordpress.com

منبع : ASP.NET Starter Kits and Community Projects

مشترک فید فراسان شوید! نمی دانید فید چیست!؟

مطالب مرتبط :





9+ منبع برای میزبانی پروژه های اوپن سورس و یافتن سورس کد

4 08 2009

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

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

Sourceforge.net

featured-sourceforge-logo

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

CodePlex.com

logo-home

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

Google Code

code_search_logo_lg

مگر میشود درباره “جستجو” نوشت و از گوگل حرفی نزد. سرویس جستجوی کد گوگل یکی از بهترین راهکارها برای یافتن سورس کد در وب است. متاسفانه این سرویس مانند بسیاری دیگر از سرویس های این شرکت برای کاربران داخل کشور ایران مسدود است. علاوه بر این سرویس جستجو، گوگل کد به توسعه دهندگان امکان میزبانی پروژه های اوپن سورس را در اینجا می دهد.

Launchpad

Launchpad_logo

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

GitHub

github_logo

اگر شما برای کنترل نسخه های کدهای پروژه خود از Git استفاده می کنید، این وب سایت بهترین انتخاب برای میزبانی پروژه شما خواهد بود. امکانات مدیریت پروژه و تیمی خوبی دارد و از امنیت بسیار مناسبی برخوردار است. GitHub به شما اجازه می دهد تا در مخزن کدهای عمومی پروژه های اوپن سورس موجود در این سایت جستجو کنید و به نتیجه دلخواه خود برسید.

CodeFetch.com

cofe

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

Koders

logo_big_bd

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

Merobase

meroBaseLogo

این وب سایت خودش را Component Finder معرفی کرده است. فکر می کنم با همین دو کلمه کاربرد این سرویس را متوجه شده باشید. کامپوننت ها اجزای نرم افزاری آماده ای هستند که برنامه نویسان می توانند از آن ها برای سرعت بخشیدن به روند توسعه پروژه خود استفاده کنند. به طور مثال قبل از اینکه بخواهید یک کامپوننت “ساعت” برای خودتان بسیازید، ابتدا در این سرویس دنبالش بگردید، شاید یک نفر قبلاً این کار را انجام داده باشید!

DZone Snippets

dzlogo-tagline-small

کاربران DZone هر روز سورس کدهای جدیدی را در این وب سایت قرار می دهند. این سرویس پیشرفت فوق العاده ای از زمان تاسیس خود داشته و نسبت به سرویس های مشابه خود از کیفیت بهتری برخوردار است. در این سایت کدهای زبان های اوپن سورس مثل PHP, Python, Java, Ruby یافت می شود و از کدهای دات نتی خبری نیست!

farasun.wordpress.com

اگر شما هم منبعی برای یافتن پروژه های اوپن سورس و سورس کد سراغ دارید با من و خوانندگان وبلاگ در میان بگذارید.

مشترک فید فراسان شوید! نمی دانید فید چیست!؟

مطالب مرتبط :





تفاوت میان HyperLink و LinkButton در ASP.NET

9 12 2008

برای برنامه نویسان ASP.NET
در ASP.NET شما چندین راه برای فرستادن کاربر به یک صفحه جدید در پیش روی خود دارید. دو تا از کنترل هایی که می توانید برای این کار استفاده کنید عبارتند از HyperLink و LinkButton. هر دوی این کنترل ها قابلیت فرستادن کاربر به یک صفحه جدید را دارند و به اصطلاح عمل Redirecting را انجام می دهند. مهمترین تفاوتی که این دو کنترل در عمل دارند، این است که LinkButton یک PostBack به سرور ارسال می کند اما HyperLink مانند تگ Anchor در HTML فقط یک درخواست به مرورگر کاربر می فرستد. LinkButton دقیقاً شبیه یک Button معمولی عمل می کند اما شکل ظاهری آن مثل یک Hyperlink معمولی است.

از آنجا که LinkButton یک PostBack به سرور می فرستد، شما می توانید کارهای مختلفی را با آن انجام دهید. مثل پر کردن یک DataSet یا ست کردن یک متغیر Session. تفاوت مهم دیگری که این دو کنترل با هم دارند این است که کنترل HyperLink رویدادی به نام OnClick ندارد و تنها کاری که می تواند انجام دهد، Redirect کردن کاربر به آدرسی است که در مشخصه NavigateURL برای آن مشخص کرده اید.

asp_linkbutton_hyperlink

چه موقع از HyperLink و چه موقع از LinkButton استفاده کنیم؟

مواقعی که احتیاج دارید یک PostBack به سرور بفرستید (احتیاج به پردازش تحت سرور دارید) و با داده های صفحه وب کار کنید از LinkButton استفاده کنید و مواقعی که می خواهید فقط کاربر را به یک آدرس دیگر بفرستید از کنترل HyperLink استفاده کنید.

البته به نظرم بهتره به جای این دو کنترل به راحتی از دستور Response.Redirect استفاده کنید.

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :

پ.ن 1 : درسته که من در این وبلاگ تا به حال به صورت مستقیم در مورد ASP.NET ننوشته بودم، اما این دلیل نمیشه که بلد نباشم و ننویسم در این مورد. یکی از دوستان از من تقاضا کردند، منم از این به بعد می نویسم. در ضمن من ASP.NET تدریس می کنم ;)

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

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





عملگر ؟؟ در سی شارپ

27 11 2008

یکی از عملگر(=Operator)های جالب سی شارپ که شاید خیلی ها با آن آشنایی ندارند، عملگری است به نام “??” که جهت مشخص کردن یک مقدار پیش فرض برای انواع های داده ای nullable به کار می رود. این عملگر شبیه به دستوارت شرطی عمل می کند، بدین صورت که اگر مقدار سمت چپ آن null باشد، مقدار سمت راست را برمی گراند و در غیر این صورت مقدار سمت چپ را برمی گرداند. فکر می کنم با یک مثال کاملاً متوجه منظورم خواهید شد :

string A = null;
string B = A ?? "DefaultValue";

در مثال بالا متغیری به نام A از نوع string تعریف کردیم و مقدار پیش فرض آن را برابر null قرار دادیم. سپس در خط دوم متغیر دیگری به نام B تعریف کردیم تا کاربرد عملگر ?? را درک کنید. در این خط، متغیر B مقدار رشته ای Default Value را در خود ذخیره خواهد کرد، زیرا سمت چپ آن (که متغیر A است) مقدار null دارد.

البته متغیرهای string قابلیت پذیرش null را دارند و به اصطلاح به آن nullable type می گویند. سودمندی عملگر ?? وقتی معلوم می شود که شما می خواهید مقدار پیش فرض برای انواع non-nullable type مانند int تعریف کنید; وقتی احتمال می دهید که امکان دارد در این گونه متغیرها مقدار null ذخیره شود. شاید شما هم با این مشکل برخورد کرده باشید که برخی مواقع به طور ناخواسته مقدار null به یک متغیر non-nullable مانند int نسبت داده می شود که در این موقعیت یک خطای کامپایلری دریافت خواهید کرد. اگر در این موارد از توابع تبدیل (cast) استفاده کنید یک InvalidOperationException دریافت خواهید نمود که باید آن را handle کنید. البته به راحتی می توانید با یک if ساده این مشکل را حل کنید اما در اینگونه موارد بهترین راه حل استفاده از عملگر ?? خواهد بود. برای در این موضوع به مثال زیر توجه کنید :

int? A = null;
int B = A ?? 0;

توجه داشته باشید، شما به صورت صریح نمی توانید مقدار null به انواع داده ای non-nullable نسبت بدهید، بلکه بایستی مانند مثال بالا، پس از نوشتن data type مورد نظر خود کاراکتر ? را قرار دهید. در خط دوم، ابتدا مقدار A بررسی می شود، اگر برار null بود (در اینجا) مقدار پیش فرض صفر را بر می گرداند، در غیر این صورت مقدار A را بر خواهد گرداند.

عملگر ؟؟ راه بسیار خوبی برای نسبت دادن متغیرهای nullable به متغیرهای non-nullable است.

عملگر ؟؟ در MSDN

farasun.wordpress.com

Subcribe to Farasun feedمشترک فراسان شويد

farasun.wordpress.com

مطالب مرتبط :