یادگیری Castle ActiveRecord با مثال – قسمت سوم

قسمت اول | قسمت دوم

در ادامه می خواهیم اعمال CRUD را برای هر یک از کلاس های برنامه پیاده سازی کنیم. اگر از هر یک از کلاس های دامین برنامه یک نمونه بسازید متوجه خواهید شد که به علت مشتق شدن تمامی این کلاس ها از کلاس ActiveRecordBase تمامی اعمال مورد نظر ما توسط CAR پیاده سازی شده اند! یعنی شما نیازی نیست برای انجام اعمال CRUD متدهایی جدیدی به کلاس های دامین برنامه اضافه کنید. در واقع Castle ActiveRecord یک لایه دسترسی به داده های کامل برای شما مهیا می کند. کافیست شما قوانین تجاری برنامه خود را با override کردن متدهای کلاس ActiveRecordBase اعمال کنید.

برای درک بهتر فرض کنید می خواهیم یک کتاب جدید ایجاد و به دیتابیس اضافه کنیم. کد زیر را برای این کار می نویسیم :

using (new SessionScope())
 {
 Book book = new Book()
 {
 BuyPrice = 1000,
 SalePrice = 1200,
 Title = "Castle ActiveRecord"
 };
 book.Categories = new List<Category>();
 Category category = new Category() { Title = "ORM" };
 category.Save();
 book.Categories.Add(category);
 Author author = new Author() { Title = "Iman Nemati" };
 author.Save();
 book.Author = author;
 Publisher publisher = new Publisher() { Title = "Farasun" };
 publisher.Save();
 book.Publisher = publisher;
 book.Save();
 }

خوشبختانه این کد آنقدر واضح است که نیازی به توضیح اضافه ندارد. یکی از مزایای مهم استفاده از یک ORM همین واضح بودن کدهاست. متد Save ابتدا شیء را برای داشتن یک ID معتبر بررسی می کند و سپس بر اساس آن عمل Insert یا Update را انجام خواهد داد. در اینجا از SessionScope برای Insert کردن آبجکت های مختلف استفاده کردیم. با این کار Castle ActiveRecord یک ISession را برای ذخیره کردن تمام آبجکت های ما در دبتابیس بکار می گیرد. برای ذخیره کردن یک آبجکت به تنهایی نیاز به استفاده از SessionScope ندارید.

حالا فرض کنید می خواهیم شیء کتابی که در بالا به دیتابیس اضافه کردیم را به روز رسانی کنیم. مثلاً عنوان کتاب را عوض کنیم. برای این کار ابتدا باید اطلاعات کتاب مورد نظرمان را در یک آبجکت Load کنیم، اطلاعات آن را تغییر دهیم و برای ذخیره به دیتابیس بفرستیم. کلاس ActiveRecordBase متدهایی مناسبی را برای خواندن و به روز رسانی اطلاعات در اختیارمان قرار می دهد. با متد Find می توانیم اطلاعات یک آبجکت را بوسیله ID یکتای آن از دیتابیس بخوانیم و پس از اعمال تغییرات با استفاده از متد Save تغییرات را به دیتابیس بفرستیم.

Book book = Book.Find(SelectedBookId);
 book.Title = "Learn Castle ActiveRecord with Example";
 book.Save();

همانطور که می بینید انجام اعمال CRUD با استفاده از CAR به سادگی انجام پذیر هستند. به همین ترتیب برای Delete و Update نیز متدهای مناسب وجود دارد. فقط باید توجه داشته باشید که برای انجام Delete و Update آبجکت شما باید دارای یک ID معتبر باشد، اما برای Insert احتیاجی به ID معتبر نیست.

بازیابی رکوردها (Retrive)

همانطور که در اولین قسمت این سری آموزشی گفته شد، در الگوی ActiveRecord متدهای استاتیک بر روی کل رکوردهای دیتابیس و متدهای داینامیک (آن هایی که حتماً باید اول نمونه سازی شوند و سپس مورد استفاده قرار گیرند) بر روی یک رکورد خاص عمل می کنند. کلاس ActiveRecordBase شامل یکسری متد استاتیک است که بیشتر به منظور یافتن رکوردها بر اساس یک شرط پیاده سازی شده اند. برای دستیابی به رکوردها در دیتابیس می توانید از متدهای استاتیک زیر کمک بگیرید :

  • Find : آبجکتی شامل اطلاعات رکوردی از دیتابیس با ID مشخص شده را برمی گرداند.
  • FindAll : آرایه ای از آبجکت ها شامل اطلاعات تمام رکوردهای موجود در دیتابیس برای این کلاس را بر می گرداند.
  • FindAllByProperty : آرایه ای از آبجکت ها شامل اطلاعات تمام رکوردهایی که با شرط Property = Value برابر باشند را برمی گرداند.
  • TryFind : مانند Find است با این تفاوت که اگر رکوردی که با ID پاس داده شده وجود نداشته باشد هیچ خطایی رخ نخواهد داد.

بحثی در مورد بقیه متدهای این کلاس نخواهیم کرد چون می خواهیم برای دستیابی به رکوردها از کوئری های LINQ استفاده کنیم. برای این کار در پروژه Model برنامه مثال به فایل Castle.ActiveRecord.Linq ارجاع دهید. با استفاده از این کتابخانه می توانید از قابلیت های معمولی Linq برای اجرای کوئری روی کلاس های مدل خود برخوردار شوید. متدهای زیر را به کلاس Book خود اضافه کنید : (یادتان نرود اول فضای نام Castle.ActiveRecord.Linq را using کنید)

public static Book GetByID(long id)
 {
 return (from x in ActiveRecordLinq.AsQueryable<Book>()
 where x.ID == id
 select x).First();
 }

 public static List<Book> GetByAuthor(long authorID)
 {
 return (from x in ActiveRecordLinq.AsQueryable<Book>()
 where x.Author.ID == authorID
 select x).ToList();
 }

 public static List<Book> SearchWithTitle(string title)
 {
 return (from x in ActiveRecordLinq.AsQueryable<Book>()
 where x.Title.Contains(title)
 select x).ToList();
 }

 public static List<Book> GetBooksByPriceBetween
(decimal lowPrice, decimal highPrice)
 {
 return (from x in ActiveRecordLinq.AsQueryable<Book>()
 where x.SalePrice >= lowPrice &&
 x.SalePrice <= highPrice
 select x).ToList();
 }

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

farasun.wordpress.com

این مطلب ادامه دارد…

برای اینکه مطالب بعدی را از دست ندهید، مشترک فید فراسان شوید!

نرم افزارهای وبلاگ نویسی اوپن سورس در ASP.NET

با وجود وردپرس چرا دنیا باید به یک نرم افزار وبلاگ نویسی اوپن سورس دیگر احتیاج داشته باشد!؟ خب همونطور که می دانید وردپرس با PHP ساخته شده و این برای برنامه نویسان ASP.NET اصلاً خوشایند نیست! برنامه نویسان ASP.NET بهتر است از پلت فرمی برای وبلاگ نویسی استفاده کنند که از کدهای آن سر در می آورند! در این مطلب به معرفی نرم افزارهای وبلاگ نویسی کد بازی که بوسیله پلت فرم ASP.NET توسعه یافته اند می پردازیم. اگر برنامه نویس ASP.NET هستید و می خواهید یک وبلاگ خوب داشته باشید که هر وقت تمایل داشتید آن را بر اساس سلیقه خود تغییر دهید تا انتهای مطلب با ما باشید. ابزارهای وبلاگ نویسی معرفی شده در این مطلب به علت سادگی در نصب و استفاده برای افراد معمولی که برنامه نویس نیستند هم کاربرد دارد.

BlogEngine.NET

BlogEngine.NET logoمعروف ترین و پایدارترین ابزار وبلاگ نویسی کد باز ASP.NET است که پیچیدگی کمی دارد، راحت نصب و سفارشی می شود و از آخرین ویژگی های پلت فرم دات نت بهره می برد. BlogEngine.NET تمام ویژگی های یک پلت فرم وبلاگ نویسی مدرن را دارد. از تکنولوژی AJAX برای نشان دادن کامنت ها و اسکرین شات Trackbackها استفاده می کند و از Gravatar، coComments، Google Sitemap، تگ های XFN، ابر تگ ها و دیگر ویژگی های وب 2.0 پشتیبانی کامل می کند. BlogEngine.NET دارای یک سیستم نظر دهی انعطاف پذیر و پیشرفته است و با استفاده از AJAX امکان Live Commenting را به خوانندگان شما می دهد. چند نویسنده به طور هزمان می توانند در یک وبلاگ در موضوعات مختلف بنویسند. خوانندگان وبلاگ با ابزار جستجوی BlogEngine.NET براحتی می توانند مطلب مورد نظرشان را پیدا کنند. با داشتن مهارت کمی در زمینه ASP.NET و HTML می توانید Themeهای زیبایی برای آن بسازید. سیستم مدیریت نظرات خوبی دارد و در آخرین نسخه آن یک سیستم Anti Spam قدرتمند نیز به آن اضافه شده است. BlogEngine.NET برای نصب نیازی به دیتابیس ندارد و اطلاعات وبلاگ شما را در فایل های XML ذخیره می کند، اما اگر ترجیح می دهید که داده های وبلاگ خود را در یک دیتابیس ذخیره کنید، BlogEngine.NET شما را نا امید نمی کند و قادر است اطلاعات یک وبلاگ را در دیتابیس های استاندارد مثل SQL Server ، MySQL و SQLite ذخیره کند.

دریافت | نصب بوسیله WPI

dasBlog

DasBlogdasBlog بر روی ASP.NET 2.0 و با زبان سی شارپ ساخته شده است. سیستم نظر دهی مناسبی دارد و از Trackback ، Gravatar و Ping پشتیبانی می کند. سیستم مدیریت ساده ای دارد و صفحات کم حجمی را برای خوانندگان شما ایجاد می کند. هم اکنون dasBlog به همراه 24 Theme منتشر می شود و آپدیت های منظمی دارد. از Live Commenting و Gravatar پشتیبانی می کند و قادر به استفاده از پلاگین Akismet موجود در وردپرس برای شناسایی کامنت های اسپم است. شما به عنوان نویسنده وبلاگ می توانید از Word و LiveWriter برای نوشتن مطالب خود در dasBlog بهره ببرید. برای نصب dasBlog نیازی به دیتابیس ندارید. dasBlog اطلاعات وبلاگ شما را در فایل های XML نگه داری می کند. از Google Sitemap و سرویس CoComment نیز پشتیبانی می کند و سازگاری خوبی با مرورگرهای موبایل دارد. اگر به دنبال یک پلت فرم وبلاگ نویسی ساده، کم حجم و رایگان می گردید، dasBlog می تواند بهترین انتخاب شما باشد.

دریافت | نصب بوسیله WPI

Subtext

Subtext logoیکی از قدیمی ترین پروژه های کدباز پلت فرم ASP.NET است که به عنوان یک Fork از ابزار وبلاگ نویسی ساده TEXT ایجاد شد و توسط Phill Haack یکی از کارمندان مایکروسافت ادامه پیدا کرد. نصب و استفاده از آن ساده است و شما را درگیر پیچیدگی های زیادی نمی کند. از Trackback ، Pingback و Live Commenting پشتیبانی می کند. Subtext بر روی سادگی در استفاده، زیبایی و کاربردی بودن تمرکز دارد. اگر به دنبال یک پلت فرم وبلاگ نویسی ساده و در عین حال قدرتمند می گردید، Subtext برای شماست.  با یکبار نصب شما می توانید چند وبلاگ داشته باشید و آن ها را یکجا مدیریت کنید. از OpenID، BlogML و اکثر ویژگی های وب 2.0 پشتیبانی می کند و برای نصب آن نیاز به یک دیتابیس SQL Server خواهید داشت. MySpace برای وب سایت چینی خود از Subtext برای مدیریت وبلاگ هایش استفاده می کند.

دریافت | نصب بوسیله WPI

Oxite

oxite logoOxite برای خیلی ها نام جدیدی است. Oxite بر روی ASP.NET MVC توسعه می یابد و از آخرین تکنولوژی های پلت فرم دات نت و استانداردهای وب استفاده می کند. شرکت مایکروسافت این ابزار را برای وب سایت MIX Online خود توسعه داد و در حالا به صورت اوپن سورس در اختیار همه قرار دارد. همین که نام مایکروسافت به عنوان توسعه دهنده Oxite آورده شده کافی است تا به قدرت و انعطاف پذیری این نرم افزار وبلاگ نویسی اطمینان پیدا کنید و به آینده آن امیدوار باشید. از ویژگی های Oxite می توان به پشتیبانی از Trackback، Pingback، Sitemap، MetaWeblog API و RSS برای تمام موجودیت ها اشاره کرد. به دلیل استفاده از ASP.NET MVC برای توسعه Oxite، صفحات تولید شده به مراتب کم حجم تر و SEO Friendlyتر هستند. Oxite نیاز به یک دیتابیس SQL Server نسخه 2005 به بالا برای ذخیره داده های وبلاگ شما دارد و با یک بار نصب قادر به ایجاد و مدیریت چندین وبلاگ است. در حال حاضر Oxite یک محصول کامل شده نیست و استفاده از آن به افراد غیر برنامه نویس و نا آشنا با ASP.NET توصیه نمی شود اما می توان آینده خوبی را برای آن متصور بود. یک نسخه آنلاین و عملی از Oxite را می توانید اینجا مشاهده کنید.

دریافت

AtomSite
AtomSite logo AtomSite یک پلت فرم حرفه ای برای وبلاگ نویسی است که بر روی ASP.NET MVC توسعه داده شده است. به علت ماژولار بودن این ابزار، سفارشی سازی آن بسیار آسان است. AtomSite تمام ویژگی هایی که از یک نرم افزار پیشرفته وبلاگ نویسی انتظار دارید را در خود جای داده است. از فید، Widget، Theme، Gravatar، Pingback، Trackback و OpenID پشتیبانی می کند و قادر است با یک بار نصب، وبلاگ های متعددی را مدیریت کند. به علت استفاده از ASP.NET MVC به عنوان پلت فرم توسعه، کارایی بالایی دارد و از نظر SEO قوی است.

دریافت | نصب بوسیله WPI

Mayando
Mayando-Logoاگر به دنبال یک نرم افزار Photo Blogging سبک و کار راه انداز می گردید، Mayando می تواند جوابگوی تمام نیازهای شما باشید. Mayando با استفاده از ASP.NET MVC نوشته شده و از  ویژگی های آن می توان به ساختن صفحات، فرم تماس، فرم نظرات، تگ ها، گالری ها و پشتیبانی از فید، فلیکر و زبان های مختلف (در حال حاضر فقط انگلیسی و آلمانی اما به راحتی می توان زبان جدید به آن اضافه کرد) اشاره نمود. نصب آن به لطف Web Platform Installer آسان است و شما می توانید یک دمو از Mayando را در اینجا مشاهده کنید.

دریافت | نصب بوسیله WPI

farasun.wordpress.com

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

کنترل های رایگان Ribbon برای WPF

با فراگیر شدن استفاده از WPF به عنوان رابط کاربری و آسان تر شدن طراحی رابط های کاربری زیبا و چشم نواز به واسطه آن، کنترل های زیبا و کاربردی زیادی از طرف شرکت ها و برنامه نویسان مستقل برای WPF طراحی شده اند. از زمانی که مایکروسافت در آفیس 2007 رابط کاربری جدیدی به نام Ribbon را معرفی کرد، برنامه نویسان و شرکت های نرم افزاری به فکر استفاده از آن در برنامه های خودشان بوده اند. به همین علت شرکت های طراحی کامپوننت های رابط کاربری مثل ComponentOne و DevExpress مجموعه های خوبی در این زمینه، البته با قیمت های بالا، ارائه کردند. خوشبختانه در حال حاضر کنترل های باکیفیت و رایگان زیادی برای WPF پیدا می شود. در این مطلب با سه مجموعه رایگان برای پیاده سازی رابط کاربری Ribbon در WPF آشنا می شوید.

Microsoft Ribbon for WPF

مایکروسافت یک کنترل Ribbon را به صورت Preview در پروژه WPF Toolkit ارائه کرده بود که هم اکنون به صورت جداگانه قابل دریافت است. این Ribbon انعطاف پذیری خوبی دارد و از الگوی MVVM پشتیبانی مناسبی می کند. یک پروژه مثال نیز که با استفاده از الگوی MVVM توسعه داده شده نیز به همراه این Ribbon قابل دریافت است. ظاهر این کنترل به راحتی قابل تغییر است و از زبان های راست به چپ مثل فارسی به خوبی پشتیبانی می کند.

Download | توضیحات بیشتر

Fluent Ribbon Control Suite

یک پروژه اوپن سورس در کدپلکس است که ظاهری شبیه به Ribbon آفیس 2010 را پیاده سازی می کند. ظاهر زیبایی دارد و شما به راحتی می توانید بر اساس نیاز خود آن را سفارشی کنید. مستندات نسبتاً خوبی هم برای شروع دارد. در مورد پشتبانی از زبان فارسی، تمام کنترل های WPF به علت پشتیبانی توکار از یونیکد مشکل خاصی ندارند، اما این Ribbon کمی در مورد زبان های راست به چپ از نظر قرارگیری در صفحه مشکل دارد.

Fluent

Download

Odyssey WPF Controls

این پروژه علاوه بر یک کنترل Ribbon مناسب، شامل کنترل های OutlookBar , ExplorerBar و BreadcrumbBar نیز هست که می توانید در پروژه های خود از آن ها به صورت کاملاً رایگان استفاده کنید. از نظر زیبایی شاید از کنترل های بالا کم داشته باشد اما انعطاف پذیری خوبی دارد و کار کردن با آن ساده است. تنها مشکلی که در مورد راست به چپ شدن دارد این است که محل قرارگیری ApplicationMenu و Quick Access Toolbar را به درستی نشان نمی دهد.

odysseyDownload | مثال استفاده

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

اوپن سورس به عنوان یک مدل تجاری موفق

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

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

مدل تجاری Open Source یک مدل تجاری پذیرفته شده و سود آور در سطح جهان است. شرکت های معروف و تاثیرگذار زیادی در دنیای نرم افزار از این مدل برای سود آوری استفاده می کنند. از این شرکت های معروف می توان به چند نمونه اشاره کرد :

  • شرکت Canonical سیستم عامل اوبونتو را به صورت رایگان عرضه می کند، در حالی که قراردادهای پشتیبانی تجاری می بندد
  • Novell سیستم عامل OpenSUSE را رایگان می دهد، اما SUSE Linux Enterprise را می فروشد
  • Mozilla مرورگر فایرفاکس را مجانی می دهد، و برای سودآوری قراردادهای همکاری با گوگل و شرکت های دیگر دارد
  • Adobe محصول Flex خود را رایگان عرضه می کند، اما محیط توسعه آن را می فروشد
  • Microsoft پلت فرم دات نت خود را رایگان می دهد، در حالی که محیط توسعه آن را می فروشد
  • MySql مجانی است، اما برای داشتن پشتیبانی و قابلیت های اضافی باید پول بدهید
  • Oracle نرم افزار OpenOffice را رایگان عرضه می کند، و نسخه تجاری آن یعنی StarOffice را می فروشد

OpenSourceFamily

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

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

OpenSourceWolrd

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

به نظر شما چه دلایل دیگری باعث استفاده نکردن افراد/شرکت ها از این مدل تجاری برای سودآوری در ایران می شود؟

farasun.wordpress.com

همچنین بخوانید : نرم افزارهای اوپن سورس چگونه درآمدزایی می کنند؟

farasun.wordpress.com

استفاده از MySQL در دات نت فریم ورک

بانک اطلاعاتی اوپن سورس MySql را می توان یکی از محبوب ترین و پر استفاده ترین نرم افزارهای بانک اطلاعاتی مورد استفاده در وب دانست. به علت سادگی، قدرت و هزینه پایین این بانک اطلاعاتی، سر و کله اش را می توانید در تمام پکیج های هاستینگ پیدا کنید. خیلی وقت ها ممکن است در یک پکیج هاستینگ ویندوزی نتوانید از SQL Server به عنوان دیتابیس استفاده کنید، یا محدودیت هایی برای آن وجود داشته باشد، اما همیشه و به راحتی می توانید از دیتابیس های MySql استفاده کنید. استفاده از بانک اطلاعاتی MySql در کنار ASP.NET می تواند هزینه و زمان توسعه شما را کاهش بدهد و به نظر من دردسرهای شما را کمتر کند!

دات نت فریم ورک به صورت توکار از MySql پشتیبانی نمی کند و فراهم کننده پیش فرضی  برای کار با آن ارائه نمی کند. شما باید برای استفاده از MySql در دات نت از کتابخانه ای که خود MySql در اختیار برنامه نویسان قرار داده استفاده کنید. استفاده از MySql به لطف این کتابخانه دقیقاً مشابه استفاده از SQL Server یا Access است. ابتدا از اینجا کانکتور MySQL برای دات نت فریم ورک را دریافت کنید. متاسفانه اگر ایران هستید نمی توانید از وب سایت رسمی MySQL فایلی دریافت کنید! دوستان داخل ایران از این لینک برای دریافت این کتابخانه استفاده کنند.

این فراهم کننده از معماری ADO.NET پیروی می کند و به همین علت اگر قبلاً با کامپوننت های ADO.NET مثلاً برای برقراری ارتباط با یک دیتابیس SQL Server استفاده کرده باشید، در اینجا مشکلی نخواهید داشت. به عنوان یک مثال ساده قصد داریم جدول tblUsers را بر روی دیتابیسی به نام Sample بسازیم. ابتدا یک پروژه تحت وب (یا تحت ویندوز، فرقی نمی کند) بسازید و فایلی را که دانلود کردید را به ارجاع های پروژه خود اضافه کنید (با کلیک راست روی نام پروژه در Solution Explorer ، انتخاب Add Reference و انتخاب فایل MySql.dll)  سپس فضای نام MySql.Data.MySqlClient را using کنید و سپس کدهای زیر را در جای مناسب قرار دهید.

string ConnectionString = "server=localhost; userid=root;password=;pooling=yes;Database=Sample;charset=utf8";
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connection;
command.CommandText = "CREATE TABLE tblUsers (Uid INT AUTO_INCREMENT, Uname VARCHAR(100) NOT NULL, " +
"Pwd VARCHAR(100) NOT NULL, PRIMARY KEY(Uid)) CHARACTER SET utf8 COLLATE utf8_persian_ci;";
command.ExecuteNonQuery();
}
}

همانطور که در این مثال مشاهده می کنید در کانکشن استرینگ MySql فوق نام سرور، نام کاربری، رمز عبور و نام دیتابیس تعیین شده اند که شما باید به جای آن ها اطلاعات مربوط به خود را قرار دهید. برای اجرای یک دستور SQL بر روی سرور MySql شما نیاز به یک آبجکت MySqlConnection دارید که با تعیین یک رشته اتصال و فراخوانی متد Open به دیتابیس Sample موجود بر روی localhost وصل می شود. سپس با ایجاد یک آبجکت MySqlCommand و تعیین دستور SQL ساخت جدول tblUsers و اجرای متد ExecuteNonQuery به مقصود خود می رسید.

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

public void InsertUser(string Username, string Password)
{
using (MySqlConnection connection = new MySqlConnection(ConnectionString))
{
connection.Open();
using (MySqlCommand command = new MySqlCommand())
{
command.Connection = connection;
command.CommandText = "INSERT INTO tblUsers (Uname, Pwd) VALUES (?Uname, ?Pwd)";
command.Parameters.AddWithValue("?Uname", Username);
command.Parameters.AddWithValue("?Pwd", Password);
command.ExecuteNonQuery();
}
}
}

همانطور که مشاهده می کنید اگر کار با کلاس های استاندارد ADO.NET مثل SqlCommand را بلد باشید در استفاده از MySQL هیچ مشکلی نخواهید داشت. تنها فرق MySQL با SQL Server در اینجا این است که برای مشخص کردن پارامترها به جای علامت @ باید از علامت ? استفاده کنید. من کد درج رکورد به یک دیتابیس MySql را نوشتم، شما کدهای Update و Delete را بنویسید!

این کتابخانه شامل کلاس های MySqlDataReader و MySqlDataAdapter نیز هست که شما می توانید از آن ها مثل دیگر کلاس های پیش فرض ADO.NET استفاده کنید و اعمال Data Binding و نمایش اطلاعات در یک GridView را به راحتی و با روش های آشنا انجام دهید. به طور مثال برای نشان دادن محتویات جدول tblUsers در یک GridView می توانید از کدی شبیه به کد زیر کمک بگیرید :

DataSet ds = new DataSet();
MySqlDataAdapter dataAdapter = new MySqlDataAdapter("SELECT * FROM tblUsers", connection);
dataAdapter.Fill(ds);
GridView1.DataSource = ds;

همانطور که مشاهده می کنید استفاده از دیتابیس های MySql به لطف معماری ADO.NET هیچ فرقی با دیگر دیتابیس های پشتیبانی شده توسط دات نت ندارد.

farasun.wordpress.com

پ.ن 1 : علت تاخیر زیاد در انتشار مطلب جدید فیلتر شدن کل وردپرس.کام و امتحانات دانشگاه بود. تنبلی را نیز به این دلایل اضافه کنید!

پ.ن 2 : سایت ها یا وبلاگ های دیگری که به نام «فراسان» فعالیت می کنند به بنده و این وبلاگ هیچ ارتباطی ندارند! من سه سال پیش این نام را کاملاً از ذهنم بیرون کشیدم و از هیچ جایی کپی نکردم! فقط این وبلاگ و این سایت با نام «فراسان»  به من مربوط هستند.

نسخه نهایی ASP.NET MVC 2 منتشر شد!

تقریباً دو روز پیش نسخه نهایی فریم ورک کدباز ASP.NET MVC 2 برای دریافت عمومی منتشر شد. این نسخه بهبودهای زیادی پیدا کرده و ویژگی های جدید بیشتری در اختیار توسعه دهندگان وب قرار می دهد. این نسخه با ASP.NET MVC 1.0 کاملاً سازگار است و می تواند در کنار آن نصب شود و به صورت side by side کار کند. این یعنی شما می توانید ASP.NET MVC 2 را نصب کنید در حالی که هنوز هم از ASP.NET MVC 1.0 برای توسعه پروژه های خود استفاده می کنید. در ضمن تمام دانش، کدها و اکستنشن هایی که در ASP.NET MVC 1.0 دارید را می توانید در این نسخه به کار ببندید.

یکی از قابلیت های جدید و کاربردی این نسخه که با نام Areas شناخته می شود به شما کمک می کند تا پروژه های بزرگ را به چندین بخش کوچک تر تقسیم کنید تا بتوانید پیچیدگی پروژه را ساماندهی کنید. هر بخش یا Area معمولاً قسمت جداگانه ای از یک وب اپلیکیشن است و برای دسته بندی viewها و کنترلرها به کار می روند.

پشتیبانی از کنترلرهای غیرهمزمان در این نسخه به کنترلرها اجازه می دهد که درخواست ها را به صورت غیر همزمان پردازش کنند. این قابلیت می تواند کارایی وب اپلیکیشن هایی که با درخواست های خیلی زیاد کار می کنند را بسیار بالا ببرد.

از دیگر قابلیت های جدید این نسخه می توان به بهبودهای اعتبار سنجی مدل در سرور ساید و کلاینت ساید، پشتیبانی از مقدار پیش فرض در پارامترهای یک اکشن، کلاس های helper جدید و بهبودهای API اشاره کرد.

من قبلاً در یک مطلب کوتاه در مورد نحوه آپگیرد کردن از نسخه 1 به نسخه 2 فریم ورک ASP.NET MVC نوشته بودم. نسخه 2 را می توانید برای ویژوال استادیو 2008 و ASP.NET 3.5 از اینجا دانلود کنید. ویژوال استادیو 2010 در انتشار نهایی به صورت توکار ASP.NET MVC 2 را همراه خواهد داشت و دیگر شما نیازی به دانلود و نصب دستی این فریم ورک نخواهید داشت. در ویژوال استادیو 2010 برای آپگرید کردن پروژه هایی که با نسخه 1 نوشته شده اند به نسخه 2 یک ابزار ویزارد نیز در نظر گرفته شده است تا دیگر مجبور به استفاده از روش دستی برای آپگیرد کردن نباشید.

https://farasun.wordpress.com

سایت رسمی ASP.NET MVC | این پروژه در کدپلکس

کدپلکس به عنوان جایگزینی برای سورس فورج

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

کدپلکس -  میزبان نرم افزارهای اوپن سورس

CodePlex یک وب سایت میزبانی پروژه های اوپن سورس از طرف مایکروسافت است. این سایت اجازه کار کردن به صورت گروهی بر روی یک پروژه را به توسعه دهندگان می دهد. از قابلیت های کدپلکس می توان به داشتن سیستم ویکی، سورس کنترل (TFS و Subversion)، فاروم گفتگو، Issue Tracking و خروجی  RSS برای هر پروژه اشاره نمود. شما برای هر پروژه می توانید تگ های مختلفی تعریف کنید تا کاربران آسان تر با جستجو پروژه شما را پیدا کنند. کدپلکس به شما اجازه می دهد برای هر Release پروژه خود فایل های مختلفی را آپلود کنید و یادداشت های مربوط به آن را در کنارش قرار دهید. کدپلکس سیستم آمار مناسبی برای هر پروژه در اختیار شما قرار می دهد که با آن می توانید از تعداد دانلودهای هر یک از Releaseهای پروژه یا فایل های دیگری که آپلود کرده اید در زمان های مختلف آگاه شوید. این سیستم آمار حتی لینک های ارجاع دهنده به پروژه شما را نیز نشان می دهد، که با این ویژگی می توانید بفهمید که پروژه شما در چه سایت ها یا بلاگ هایی معرفی و بررسی شده است.

هرچند تمرکز اصلی کدپلکس روی میزبانی پروژه های مبتنی بر پلت فرم دات نت مایکروسافت است، اما در آن می توانید پروژه های PHP و دلفی را نیز پیدا کنید. جو غالب برکدپلکس هاستینگ پروژه های کدباز دات نت، SharePoint، SQL Server و در کل محصولات مایکروسافتی است اما اگر شما یک پروژه غیر مایکروسافتی ایجاد کنید هیچکس به شما ایراد نخواهد گرفت! در حال حاضر بیش از 13هزار پروژه کدباز در کدپلکس ثبت شده است. در کدپلکس جا برای پروژه کدباز شما نیز وجود دارد، دست به کار شوید!

ایجاد یک پروژه جدید

قبل از هر کاری اگر هنوز عضو کدپلکس نیستید، از اینجا عضو شوید. پس از ورود به کدپلکس، برای ایجاد یک پروژه جدید از اینجا اقدام کنید. در این صفحه، کدپلکس به صورت یک ویزارد به شما در ایجاد یک پروژه جدید کمک می کند. در اولین قدم شما باید عنوان پروژه خود و یکسری توضیحات در مورد آن را وارد کنید. همچنین باید سیستم سورس کنترل خودتان را مشخص کنید. کدپلکس از Team Foundation Server و Mercurial و Subversion برای کنترل سورس پروژه ها پشتیبانی می کند. اگر در حال حاضر از هیچ سورس کنترلی استفاده نمی کنید همان گزینه اول را انتخاب کنید. کدپلکس به شما اجازه می دهد پروژه خود را روی یکی از ساب دامین های Codeplex.com قرار دهید. این ساب دامین را می توانید در قسمت URL پروژه خود مشخص کنید. در قسمت آخر نیز می توانید مشخص کنید که آیا تبلیغات در صفحه پروژه شما نشان داده شوند یا خیر. البته این قابلیت برای ما ایرانی ها فایده چندانی ندارد چون به این راحتی نمی توانیم از این طریق پول در بیاوریم!

ایجاد یک پروژه جدید در کدپلکس

پس از تکمیل فرم روی دکمه Next کلیک کنید. در این صفحه جدید اگر لازم بود ایمیل خود را تغییر دهید، توافقات کدپلکس را قبول کنید، کد عکس را وارد کنید و روی دکمه Finish کلیک کنید. در صفحه بعد کدپلکس به شما یادآوری می کند که شما باید پروژه را حداکثر تا 30 روز دیگر منتشر کنید، در غیر این صورت حذف خواهد شد. منظور کدپلکس از انتشار پروژه، نوشتن توضیحات پروژه در ویکی، آپلود کردن سورس کد و ایجاد حداقل یک Release برای پروژه است. حالا می توانید به صفحه پروژه خود بروید و کارتان را آغاز کنید.

صفحه خانگی پروژه در کدپلکس

صفحه پروژه جدید شما نیز باید یک چیزی شبیه به تصویر بالا باشد. همانطور که در تصویر بالا مشخص کردم، برای ویرایش محتویات صفحه اصلی پروژه خود بر روی لینک Edit کلیک کنید. اگر می خواهید جزئیات یا توضیحات خلاصه پروژه خود را تغییر دهید بر روی لینک Edit Project Summary & Deatails کلیک کنید.

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

ایجاد مستندات پروژه

در تب Documentation می توانید راهنمای کاربران برای استفاده از برنامه و راهنمای برنامه نویسان برای توسعه پروژه را قرار دهید. برای تغییر این صفحه همانند صفحه اصلی بر روی لینک Edit بالای آن کلیک کنید. در این تب همچنین می توانید پیش نیازهای پروژه خود را برای اجرا و توسعه تعیین کنید. برای این کار روی لینک Edit کنار System Requirements کلیک کنید تا یک فرم کوچک باز شود. در قسمت For Use پیش نیازهای کاربران برای اجرای پروژه و در قسمت For Development پیش نیازهای برنامه نویسان برای توسعه پروژه را بنویسید و سپس روی دکمه Save کلیک کنید.

تعیین پیش نیازهای پروژه

فاروم گفتگو

تب Discussion جهت استفاده کاربران برای گفتگو در مورد پروژه شما و احیاناً پرسیدن سئوال هایشان از شماست. در این قمست شما تنها امکان مدیریتی که دارید ویرایش جزئیات در لیست گفتگوهاست. برای این کار روی لینک Edit Discussion List Details کلیک کنید. در صفحه جدید می توانید متنی را برای نمایش در لیست گفتگوها و تگ هایی را برای دسته بندی موضوعات گفتگوها تعیین کنید.

گزارش خطا و درخواست قابلیت های جدید

تب بعدی Issue Tracker است که به کاربران پروژه شما اجازه میدهد تا مشکلات پروژه شما را گزارش دهند، یا قابلیت جدیدی را درخواست کنند. به طور مثال اگر کاربری با خطای مبهمی در پروژه شما برخورد کرد، می تواند از آن اسکرین شات تهیه کند و همراه با توضیحات خود در این قسمت آن را ثبت کند. همچنین کاربران می توانند درخواست خود را برای قابلیت های جدید در این قسمت ثبت کنند و دیگر کاربران می توانند به این درخواست ها رای دهند تا شما بتوانید بر اساس بازخورد کاربران و نیاز آن ها برای توسعه پروژه برنامه ریزی کنید. Issue Tracker علاوه بر امکاناتی که به کاربران پروژه شما می دهد، به شما و اعضای پروژه تان نیز کمک می کند تا برای پروژه خود برنامه ریزی کنید. شما در این قسمت می توانید یک Task برای پروژه خود تعریف کنید یا برای Releaseهای بعدی پروژه خود برنامه ریزی کنید.

CodePlex Issue Tracker

کنترل سورس پروژه

اگر قصد استفاده از سورس کنترل را ندارید یا با نحوه کار با آن آشنایی دارید می توایند این پاراگراف را نخوانید. در تب Source Code شما می توانید کد منبع پروژه خود را در اختیار عموم قرار دهید. شما این کار را باید با استفاده از نرم افزارهای کنترل نسخه مثل TFS یا Subversion انجام دهید. در اینجا با نحوه کنترل نسخه با استفاده از Subverion و کدپلکس آشنا خواهید شد. برای استفاده از Subversion شما باید یک کلاینت روی کامپیوتر خودتان نصب کنید. کدپلکس TortoiseSVN را پیشنهاد می کند. پس از دانلود این کلاینت و نصب آن بهتر است جزوه آموزش Subversion آقای نصیری را مطالعه کنید. برای اینکه پروژه خود را تحت کنترل Subversion در بیاورید روی پوشه آن کلیک راست کنید و از TortoiseSVN گزینه Repo-Browser را انتخاب کنید. حالا در پنجره کوچکی که باز می شود URL مخزن کد SVN پروژه خود در کدپلکس که چیزی شبیه به https://yourproject.svn.codeplex.com/svn است را وارد کنید. مانند شکل زیر :

مرورگر مخزن

پس از اینکه روی OK کلیک کردید پنجره ای باز می شود و نام کاربری و رمز عبور اکانت کدپلکس شما را درخواست می کند. آن ها را وارد کنید و تیک کنار Save authentication را نیز بگذارید تا هر بار از شما این درخواست را نکند. حالا روی پوشه ای که به نام URL مخزن کد شماست کلیک راست کنید و Create directory را انتخاب کنید و نام دایرکتوری را trunk بگذارید (هر چند نام گذاری به این صورت الزامی نیست). وقتی کارتان تمام شد روی OK کلیک کنید.

مرورگر مخزن

حال دوباره روی پوشه پروژه خودتان کلیک راست کنید و گزینه SVN Checkout را انتخاب کنید. پنجره ای شبیه به شکل زیر پدیدار می شود :

Checkout

پیش فرض ها را قبول می کنیم و روی OK کلیک می کنیم تا به مخزن کد موجود در URL کدپلکس وصل شود و پروژه ما را تحت کنترل SVN قرار دهد. حالا باید فایل هایی را که مربوط به پروژه است را به SVN معرفی کنیم. دوباره روی پوشه پروژه خود کلیک راست کنید و از منوی TortoiseSVN گزینه Add را انتخاب کنید تا پنجره ای برای انتخاب فایل ها و فولدرهای پروژه تان را مشاهده کنید. در این پنجره با انتخاب فایل های مورد نیاز خود و زدن دکمه OK به SVN می فهمانیم که پروژه ما چه فایل هایی دارد.

افزودن فایل های به مخزن

تا اینجا فقط گفتیم پروژه ما چه فایل هایی دارد، هنوز فایل ها را به سرور SVN کدپلکس نفرستاده ایم. برای این کار روی فولدر پروژه خود کلیک راست کنید و از منوی باز شده SVN Commit را انتخاب کنید. در پنجره ای که شبیه به شکل زیر است می توانید یک توضیح در مورد این نسخه وارد کنید و آن را به سرور کدپلکس بفرستید. پس از OK کردن این پنجره پروژه شما بر روی مخزن کد SVN موجود در کدپلکس آپلود می شود.

SVN Commit

پس از اتمام کار به قسمت Source Code پروژه خود در کدپلکس بروید و نتیجه را مشاهده کنید. حالا کاربران می توانند سورس کد پروژه شما را به صورت کامل یا گزینشی مرور یا دانلود کنند. خودتان نیز می توانید به راحتی سورس پروژه خود را کنترل کرده و به صورت مرتب از آن نگهداری کنید. این کار مزایای بسیار زیادی دارد. یادتان باشد اگر پس از این تغییری در سورس پروژه خود دادید، باید آن را با مخزن کد موجود در کدپلکس هماهنگ کنید. برای این کار روی پوشه پروژه خود کلیک راست کنید و گزینه SVN Commit را انتخاب کنید و فایل های تغییر داده شده را با سرور هماهنگ کنید.

مدیریت افراد پروژه (کار گروهی)

یکی از قابلیت های مهم کدپلکس، قابلیت کار کردن به صورت گروهی بر روی یک پروژه است. شما می توانید افرادی که در کدپلکس عضو هستند را به عنوان همکار در پروژه خود عضو کنید. برای این کار باید به تب People بروید. در این تب بر روی لینک Manage Team کلیک کنید. در صفحه باز شده با وارد کردن نام کاربری شخص مورد نظر و مشخص نمودن نقش او در پروژه (توسعه دهنده، هماهنگ کننده یا ویرایشگر) او را به عنوان همکار در تیم پروژه خود عضو کنید.

Team Management

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

تعیین مجوز (License)

در تب License می توانید مجوز کدباز پروژه خود را مشخص کنید. برای این کار بعد از رفتن به تب License روی لینک Choose License کلیک کنید، سپس از منوی کشویی که ظاهر می شود مجوز اوپن سورس پروژه خود را انتخاب کنید. در آخر نیز روی دکمه Save کلیک کنید تا مجوز پروژه شما تغییر کند.

Project License

انتشار یک نسخه از پروژه

تنها تبی که در مورد آن صحبت نکردیم، تب Downloads است. در این تب شما به عنوان یکی از اعضای پروژه می توانید یک نسخه جدید از پروژه را منتشر کنید. برای این کار در صفحه Downloads روی لینک Create New Release کلیک کنید. در صفحه جدیدی که باز می شود شما باید عنوان Release را همراه با توضیحاتی در مورد نسخه جدید و تغییراتی که روی آن اعمال شده است بنویسید. سپس بر اساس نیاز فایل های پروژه اعم از فایل های اجرایی، فایل های راهنما، مستندات پروژه یا حتی سورس کد آن را برای آپلود انتخاب کنید. بهترین حالت این است که از نرم افزار کنترل نسخه استفاده کنید و سورس کد را به همان روشی که در بالا توضیح داده شد در قسمت Source Code پروژه خود قرار دهید. بهتر است در این قسمت فقط فایل های اجرایی و راهنمای پروژه را آپلود کنید.

Release Details

در قسمت Release Details می توانید وضعیت توسعه این نسخه (Planning, Alpha, Beta, Stable) را مشخص کنید. با انتخاب Yes در مقابل سئوال Show to public همه می توانند این نسخه پروژه شما را دانلود کنند و با انتخاب Yes در مقابل Recommended Release می توانید این نسخه را برای دانلود به کاربران توصیه کنید. اگر نمی خواهید تاریخ انتشار پروژه شما تاریخ روز باشد، با استفاده از تغییر Release Date این کار را انجام دهید.

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

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

Project Activity on CodePlex

برای اینکه بتوانید جزئیات بیشتری از بازدیدها و تعداد دانلودهای پروژه خود مشاهده کنید روی لینک View Detailed Stats کلیک کنید تا وارد صفحه جدیدی شوید. در این صفحه می توانید بازدید ها، تعداد مشاهده صفحات و تعداد دانلود ها را در نمودار ببینید. در پایین این صفحه هم لیستی از سایت هایی که به پروژه شما ارجاع داده اند را خواهید دید.

farasun.wordpress.com

این مطلب را می توانید در قالب PDF دانلود کنید : کدپلکس به عنوان جایگزینی برای سورس فورج

همچنین بخوانید :

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