یادگیری 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