هیچ دوره ای در سبد خرید شما وجود ندارد
آموزش کامل شی گرایی در زبان سی شارپ در قالب ساخت نرم افزار انبارداری
-
تا بحال به این مسأله فکر کرده اید که اپلیکیشنی تحت ویندوز طراحی کنید که قابلیت هایی مثل استفاده از تکنیک های شی گرایی، امنیت، داینامیک بودن تمام امکانات این نرم افزار، استفاده از امکانات پیشرفته Entity Framework و… داشته باشد؟
- پیش آماده که دوست داشته باشید نرم افزار انبارداری و فروش تجارتتان را خودتان طراحی کنید؟
-
به یادگیری مفاهیم شی گرایی در زبان برنامه نویسی سی شارپ علاقه مند هستید؟
برنامهنویسی شی گرا یا (Object Oriented Programming (OOP یک شیوه برنامه نویسی است که ساختار یا بلوک اصلی اجزای آن، شی میباشند. شی یک موجودیت تعریف می شود که خصوصیات و رفتارهای مربوط به خود را داراست.
از اصلی ترین مفاهیم شی گرایی کلاس، وراثت یا Inheritance، مخفی سازی یا Encapsulation ، چند شکلی یا Polymorphism و انتزاع/تجرید ( ویکی پدیا ) است.
امروزه اکثر زبانهای برنامه نویسی از فنون شی گرایی پشتیبانی میکنند. زبانهایی مانند جاوا، C++ ، سی شارپ، دلفی و PHP از جمله زبانهای شی گرا هستند.
در دوره آموزش کامل شی گرایی در زبان سی شارپ ، قصد داریم یک نرم افزار انبارداری با مفاهیم شی گرایی را تا حد امکان به صورت تجاری بنوبسیم و آموزش دهیم.
در دوره آموزش برنامه نویسی شی گرا در #C مفاهیم Interface و (DI (Dependency Injection و (Ioc (Inversion of Control به صورت تئوری عنوان شده است. همچنین با این مفاهیم به صورت کاملا عملی آشنا می شوید. دلایل استفاده از این موارد که نقش بسیاری در برنامه ما دارند را برایتان شرح خواهیم داد.
نرم افزارهای استفاده شده در این آموزش:
۱- Visual Studio 2017 Enterprise Final
۲- SQL Server 2016
شی گرایی (oop) در #C چیست؟
شیگرایی (Object-Oriented Programming یا OOP) در زبان برنامهنویسی #C به معنای طراحی و پیادهسازی نرمافزار با استفاده از مفاهیم کلاسها و اشیاء است. در این پارادایم، نرمافزار بهصورت مجموعهای از اشیاء مدلسازی میشود که هر کدام از آنها دارای دادهها و رفتارهای خاص خود هستند. این مدل به برنامهنویسان کمک میکند تا کد را بهصورت منظم، مقیاسپذیر و قابل نگهداری بنویسند.
مفاهیم کلیدی شیگرایی در #C:
- کلاسها و اشیاء: کلاسها قالبهایی هستند که ویژگیها (متغیرها) و رفتارها (متدها) را تعریف میکنند. اشیاء نمونههایی از کلاسها هستند که میتوانند دادهها و متدهای تعریفشده در کلاس را به ارث ببرند و به کار ببرند.
- وراثت: این ویژگی به شما امکان میدهد که یک کلاس جدید (کلاس فرزند) ویژگیها و رفتارهای یک کلاس دیگر (کلاس والد) را به ارث ببرد و در صورت لزوم آنها را گسترش دهد یا تغییر دهد.
- پنهانسازی دادهها: با استفاده از دسترسیپذیریهای مختلف (مانند
private
,protected
,public
)، میتوانید دادهها را درون کلاس پنهان کرده و فقط از طریق متدهای عمومی به آنها دسترسی پیدا کنید. این امر به محافظت از دادهها و کاهش وابستگیهای ناخواسته کمک میکند. - polymorphism (چندریختی): این ویژگی به شما اجازه میدهد که یک متد با نام مشابه در کلاسهای مختلف داشته باشید، بهطوریکه رفتار آن بر اساس نوع شیء فراخوانی شده تغییر کند. این به برنامهنویسان امکان میدهد تا کد انعطافپذیرتری بنویسند که میتواند با انواع مختلف اشیاء کار کند.
- انتزاع: انتزاع به معنی تمرکز بر روی ویژگیهای اصلی و ضروری یک شیء و نادیده گرفتن جزئیات غیرضروری است. با استفاده از انتزاع، میتوانید مدلهای پیچیده را ساده کنید و از پیچیدگیهای غیرضروری جلوگیری کنید.
آنچه در دوره آموزش کامل شی گرایی در زبان سی شارپ در قالب ساخت نرم افزار انبارداری خواهید آموخت:
بخش اول:
- مقدمه
- مفهوم Interface ها
- مفهوم Dependency Injection
- مفهوم Inversion of Control
- مثال عملی Interface ها
- مثال عملیDependency Injection
- مثال عملی Inversion of Control
- مفهوم Generic
- مثال عملی Generic
- مزایای استفاده از Interface ها
- مفهوم Repository
- مثال عملی Repository
- مفهوم Reflection
- مثال عملی Reflection Attribute
- انجام عملیات درج در دیتابیس با Reflection
- انجام عملیات حذف از دیتابیس با Reflection
- انجام عملیات بهروزرسانی اطلاعات دیتابیس با Reflection
- خواندن اطلاعات از دیتابیس با Reflection
- پیدا کردن یک رکورد با Reflection
- مزایای استفاده از Reflection ها
- تزریق وابستگی
- کد نویسی کانکشن استرینگ بهصورت کاملاً بهینه
- مفهوم Public Repository و Private Repository و انجام مثال عملی
- تحلیل و طراحی دیتابیس
- طراحی جدولهای عمومی و جداول مربوط به سیستم انبارداری بهصورت کد نویسی
- ایجاد ارتباطات بین جداول
- مشخص کردن کلیدهای خارجی
- اضافه کردن صفت Unique به فیدها
- ایجاد زیرساخت پروژه
- طراحی نرمافزار Database Classes Generator برای تولید اتوماتیک کلاس برای جدول (مانند EF Code First)
- قابلاستفاده بودن Db Class Generator برای تمامی دیتابیسها
- طراحی فرم Db Class Generator
- قابلیت انتخاب Data Source
- قابلیت Login به ۲ روش (Windows Authentication & SQL Server Authentication)
- ایجاد لیست کشویی برای انتخاب Database
- Load شدن جداول و دیاگرامهای دیتابیس انتخابشده
- ایجاد قابلیت Namespace برای نوشتن نام پروژه موردنظر جهت قرارگیری نام پروژه قبل از کلاسهای Generate شده
- کد نویسی متدهای Insert – Update-Delete-Select-Count-Find
- اضافه کردن کلاسهای Generate شده به پروژه اصلی
- نگهدار متدها در Repository Abstract
- تست نهایی متدها و رفع خطاها موجود
بخش دوم:
در این بخش آموزش طراحی یک فرم ارتباط با سرور حرفه ای را به شما آموزش داده ایم.
- رفع باگ کد ها
- طراحی فرم Splash Screen به همراه Progress Bar
- طراحی و کد نویسی فرم ارتباط با سرور
- کد نویسی چک کردن تنظیمات ارتباط با بانک اطلاعاتی
- کد نویسی بررسی وجود دیتابیس
- کد نویسی اجرای اسکریپت دیتابیس برای ایجاد بانک اطلاعاتی
- رفکتور کردن کدها جهت مرتب شدن کد ها و مدیریت بهتر کد ها
- ایجاد User در دیتابیس در صورت وجود نداشتن هیچ کاربری برای اجرای دفعه اول نرم افزار
- تعریف شرکت / سازمان در صورت وجود نداشتن هیچ سازمانی برای اجرای دفعه اول نرم افزار
- تعریف سال مالی ر صورت وجود نداشتن سال مالی برای اجرای دفعه اول نرم افزار
- تعیین تاریخ شروع و تاریخ پایان سال مالی
- ایجاد زیر ساخت فرم ها
- ایجاد منوی دینامیک
- ایجاد زیر ساخت یوزر کنترل ها و نمایش ها انها به صورت فرم یا دیالوگ
- ایجاد تب منوی داینامیک جهت جلوگیری از طراحی فرم های زیاد
بخش سوم:
از این بخش به بعد ما فریم ورک می نویسیم. هدف از اینکار این است که شما از این پس با سرعت بیشتری بتوانید پروژه های بزرگ را برنامه نویسی کنید.
دیگر نیاز نیست شما دوباره فرم ها , تب ها و کتترلها را طراحی کنید و یا کوئری نویسی کنید. زیرا ما یک Generic Repository نوشتیم که کار اصلی آن این است که برای تمامی جداول، کوئری های مربوط به عملیات های Insert , Update , Delete , Select و همچنین برای هر کدام از فیلد ها را تولید کند. شما بر حسب نیازتان از این کوئری های تولید شده استفاده می کنید.
و بسیاری مزایای دیگر…
در این بخش کدنویسی زیرساخت پروژه و همچنین زیر ساخت کنترلهای عمومی مانند TextBox , Label , GridView تکمیل شد. هدف از ایجاد زیر ساخت کنترلها این بود که اگر شما خواستید از کنترلهایی استفاده کنید، مثلا Telerik ، مجبور نشوید که کل پروژه را به هم زده و فقط با یک تغییر در آن فریمورک کنترل مورد نظر برای کل پروژه اعمال شود.
- حل مشکل باز شدن Tab های تکراری
- تکمیل زیر ساخت نمایش ایتم ها در Tab ها و فرم ها
- تعریف Action Button ها (ایجاد دکمه های اضافه – حذف – ویرایش)
- ایجاد زیر ساخت برای GridView ( با قابلیت جایگزینی گرید ویوهای Telerik و DevComponent )
- ایجاد زیر ساخت برای کمبو باکس ( با قابلیت جایگزینی کمبو باکس های Telerik و DevComponent )
- ایجاد زیر ساخت فرمهای ورود اطلاعات
- مرتب سازی اتوماتیک کنترل ها در فرم و تب ها بر اساس اندازه و موقعیت فرم
- عملیات ویرایش و ثبت اطلاعات انبار در دیتابیس با تکنیک شی گرایی
- طراحی یک کامپوننت Persian DateTimePicker با کمک سورس
- نحوه تعریف یک Event برای UserControl
- نحوه استفاده از Event تعریف شده
- بررسی کلی پروژه و رفع باگ ها
بخش چهارم:
- حل مشکلات مربوط به کنترل PersianDateTimePicker
- اضافه کردن کنترل PersianDateTimePicker به سال مالی
- حل مشکلات بعضی از جاهای قسمت پروزه
- کد نویسی عملیات CRUD مربوط به شرکت ها / سازمان ها
- کد نویسی بستن سال مالی
- کد نویسی عملیات CRUD مروبوط به واحد اندازه گیری
- آموزش کار با کنترل TreeView به صورت کامل و انجام عملیات CRUD برای درک بیشتر مفاهیم
- استفاده از ازکنترل TreeView برای نمایش دسته بندی محصولات
- پیاده سازی زیر ساخت کنترل TreeView
- نمایش دسته های کالا و زیر دسته ها در کنترل TreeView
- پیاده سازی روش lazy loading برای بالا بردن سرعت نمایش دسته ها در کنترل TreeView
- داینامیک کردن زیر ساخت کنترل
- کد نویسی عملیات اضافه کردن ، نمایش ، ویرایش و حذف دسته و زیر دسته درکنترل TreeView
- کد نویسی عملیات اضافه کردن ، نمایش ، ویرایش و حذف پارامترهای دسته بندی محصولات
- کد نویسی عملیات اضافه کردن ، نمایش ، ویرایش و حذف محصولات
- کد نویسی تکمیل بخش پارامترهای محصولات
بخش پنجم:
- کد نویسی ایجاد بخش رسید و حواله انبار + توضیحات تکمیلی
- ایجاد عنوان حواله کالا برای ورود کالا به انبار
- اضافه کردن دکمه به دیتاگرید ویو جهت انتخاب محصول برای هسطر و تعیین تعداد و قیمت برای خروج از انبار ( رسید انبار)
- ثبت و و ویرایش حواله و تکمیل بخش انبار
شما می توانید هرگونه سوال یا پیشنهاد خود را از طریق دیدگاه های همین پست مطرح کنید.
mkhpersia
سلام وارادت ضمن عرض خسته نباشی خدمت شما دوستان عزیز
درمورد جدول مالی اینکه می خواستم ببینم براساس حساب کل،معین و تفضیلی تعریف شده یا اینکه تعریف خاص دیگری دارد
ممنون
بهنام کلانتر مدرس دوره
سلام نه مباحث حسابداری گفته نشده و تمرکز بر مباحث ایجاد یگ پروژه مبتنی بر اصول شی گرایی گفته شده
احمد محسن
این دوره چه پیش نیاز هایی داره؟
بهنام کلانتر مدرس دوره
سلام باید مباحث شی گرایی سی شارپ رو کامل بلد باشین
سجاد اسدی دانشجوی دوره
این آموزش پروژه محور رو به هیچ عنوان از دست ندید مخصوصا اگه میخواید شی گرایی در زبان سی شارپ رو آموزش ببینید.
emad.amerian11
کیفیت صدا خیلی بده
saeidpalang02 دانشجوی دوره
سلام به همه
استاد بنده دانشجوی این دوره هستم. یه سوال داشتم. توی یه پروژه که از مشتری گرفتم ، در یک فرم نیاز دارم که مقادیر یک ستون دیتا گرید ویو رو با توجه به مقدار یک ستون دیگه جمع بزنم. مثلاگه در ستون سوم نوشته باشه کد 1 ، تمام سطرهای ستون دوم متناظر با ستون سوم ، با هم جمع بشه و در یه جایی ذخیره بشه. اگه نوشته باشه کد 2 ، تمام سطرهای ستون دوم متناتظر با کد های 2 رو با هم جمع کنه
ممنون میشم راهنمایی کنین و اینکه در این آموزش همچین موردی رو آموزش دادین؟
بهنام کلانتر مدرس دوره
سلام شما به این سایت ها مراجعه کنید بهتون کمک میکنه :
https://stackoverflow.com/questions/72471035/how-to-sum-values-between-columns-in-grid-view-with-ifcondition
https://www.youtube.com/watch?v=LYZNRLMY1o0
saeidpalang02
این دوره دیتابیس اش کد فیرست هستش یا دیتا بیس فیرست؟
saeidpalang02
میخوام این دوره رو بخرم ، لطفا جواب بدین
حسن رجبیان
سلام وقتتون بخیر . سوالی دارید بفرمایید
حسن رجبیان
این آموزش کد فرست هست دوست عزیز
A.k
ميشه درباره اضافه کردن دکمه به دیتاگرید ویو جهت انتخاب محصول برای هسطر و تعیین تعداد و قیمت برای خروج از انبار ( رسید انبار)
بيشتر توضيح بدهيد ؟؟
azaran2002 دانشجوی دوره
سلام
سورس های هر فصل را لطفا برای دانلود قرار دهید لینک ها کار نمیکنند
با تشکر
soheylakazemi
سلام چشم بررسی میکنم
aghajanimehdi دانشجوی دوره
An unhandled exception of type ‘System.Data.SqlClient.SqlException’ occurred in System.Data.dll
Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named
Pipes Provider, error: 40 – Could not open a connection to SQL Server)
سلام مهندس خسته نباشید من زمانی که میخوام به sql serverمتصل بشم با همچین خطایی مواجهه میشم نتونستم خطا را رفع کنم راهنمایی بفرمایید با تشکر
مدا
خیلی خوب
سجاد
سلام. خواستم ببینم این دوره بصورت کد فرست نوشته شده؟ و اینکه آیا از معماری سه لایه در این پروژه استفاده شده؟
nader
با سلام و خسته نباشید
این دوره با ویندوز فرم آموزش داده میشه؟
بهنام کلانتر مدرس دوره
سلام بله
کیان
سلام وقت بخیر
امکان قرار دادن دمو برای این آموزش وجود داره؟
پشتیبان نگینانی
سلام وقت بخیر به لینک https://www.daneshjooyar.com/learning-object-oriented-in-csharp/ برین بخش اول هست و دمو داره، بخش های بعدی هم داخل پست چند قسمت رایگان قرار داده شده، میتونین ببینین.
علیرضا شهابی مهر
سلام وقتتون بخیر
بنده همین الان متوجه این آموزشی که خریداری کردم با آموزش قبلیتون که خریداری کردم (https://www.daneshjooyar.com/learning-object-oriented-in-csharp-latest-section/) یکیه
الان چیکار باید بکنم ؟
پشتیبان خرید رادفر
سلام
وقت بخیر
مشکلی نداره مبلغی که اضافه پرداختین به کیف پولتون برگشت میخوره
لطفا به پشتیبانی تیکت ارسال کنید
کاظم
سلام دوره ی خیلی خوبیه.ممنون آقای کلانتر
ببخشید چرا توی بخش اول پارت 5 اون همه کد نوشتین که اسم ستون و خاصیتش و … اینا رو پیدا کنید ؟؟مگه موقع ساخت جدول اینا رو مشخص نمیکنیم.مثل آموزش های قبلی با دستور ساده به جدول رکورد اضافه میکنیم.گفتین که باید همه چی پویا باشه، توی این بخش پویا بودنش چه کمکی میکنه ؟؟؟
ممنون میشم راهنماییم کنیدبا تشکر
یاسر
با سلام این دوره چند قسمت هست تعداد پارت ها منظورمه
و این که کل دوره رو آقای کلانتر آموزش دادن یا قسمت های قبلیش مدرسش کسانی دیگه هستن
مدرس کلانتر مدرس دوره
سلام تمامی بخش های اموزش مدرس کلانتر ضبط کرده اند و اطلاعات اموزش کنار عکس اموزش درج شده
رضا
سلام مهندس جان میخواستم ببینم ایا تو پروژه از بارکد استفاده شده یا نه ؟ برای ثبت و خروج کالا ؟ یا برای ورود کاربر از بارکد استفاده شده یا نه ؟ ممنون میشم اگر جواب بدین
کاظم
سلام حجم دوره برای دانلود چقدره ؟؟
مدرس کلانتر مدرس دوره
سلام و ادب
6 گیگ
مهرداد
سلام چرا برای این اموزش گزارش ها رو انجام ندادین گزارش گیری های انبار؟ اموزش قبلی در این خصوص که سال گذشته منتشر شده کامل هست یا این اموزش؟
مدرس کلانتر مدرس دوره
سلام هر 2 اموزش کامل هست فقط این دوره شی گرایی ، هدف یادگیری نوشتن فریمورک برای نرم افزار هست و مبحث گزراش گیری در دوره زیر وجود داره :
دوره اموزشی صدور فاکتور در دیتاگریدویو با تکنولوژی LINQ
https://www.daneshjooyar.com/%d8%af%d9%88%d8%b1%d9%87-%d8%a7%d9%85%d9%88%d8%b2%d8%b4%db%8c-%d8%a8%db%8c-%d9%86%d8%b8%db%8c%d8%b1-%d8%b5%d8%af%d9%88%d8%b1-%d9%81%d8%a7%da%a9%d8%aa%d9%88%d8%b1-%d8%af%d8%b1-%d8%af%db%8c%d8%aa%d8%a7/
hooman
ممنون مهندس . حتما.بازم سپاسگذار
hooman
سلام خواستم بدونم این آموزش ک لااقل اسم و موضوعش جالبه اون داستان قفل و قفل اینترنتی رو داره یا نه؟چون واقعا داستان قفل گذاری ها اعصاب خوردکنه.اگه فیلم آموزش ساده و بدون دردسر فقط یک فایل زیپ شده نهایتا هست بفرمایید ک ما سفارش پستی بدیم. چون حجمشم بالاست.باتوجه به هزینه زیاد خود آموزش و اضافه شدن هزینه ارسال دیگه جنگ اعصاب قفلم داشته باشیم اصلا نمی ارزه .البته این به معنی بی ارزش بودن کار استاد نیست.با تشکر
مدرس کلانتر مدرس دوره
سلام دوست عزیز و گرامی
آموزش بدون قفل می باشد و در قالب فایلهای MP4 هست با بالاترین کیفیت تصویر و صدایی بدون نویز میباشد
در ضمن خریدهای بالای 90 تومان به صورت رایگان براتون ارسال میشه فقط کافیه هنگامی که اموزش رو به سبد خرید اضافه گزینه دریافت محصول با روش پستی رو فعال کنید و ادرس دقیق منزل به همراه کد پستی و شماره موبایل بنویسید
موفق و موید باشید