کمک به انتخاب دیتابیس مناسب برای برنامه سی شارپی
سلام به اساتید بزرگوار
سوالم رو کامل می پرسم و پیشاپیش عذر میخوام اگر طولانی میشه ... در خصوص سوال هایی که می پرسم قبلا توی انجمن جستجو کردم ولی علت اینکه تاپیک جداگانه میزنم رو در ادامه خواهم گفت
من یه برنامه برای مدارس دارم مینویسم که برنامه ی مفصلی هست از مدیریت حضور و غیاب دانش آموزان ، ثبت موارد انضباطی تا سنجش پیشرفت تحصیلی و ...
خب دیتابیس برنامه قطعا خیلی بزرگ نخواهد بود روی همین حساب انتخاب خودم sqlite هست اما بنا به دلایلی که خدمتتون عرض می کنم لطفا توی انتخاب دیتابیس کمکم کنید ممنون
1- اگر از sqlite استفاده کنم بحث عدم نیاز به نصب در سیستم مشتری عالی هست که این یه امتیاز هست
2- sqlite فکر کنم محدودیت حجم داره درسته؟ نمیدونم چقدر هست و نمی دونم دردسر ساز میشه یا نه؟
3- sqlite توی بحث امنیت هم فکر کنم مشکل داره درسته؟ دوستان من خودم برای مدیریت رمز عبورهای ورود به برنامه یه دیتابیس sqlite جداگانه درست می کنم (یعنی جدا از دیتابیس اصلی) که اون رو encrypt می کنم با پسورد و قابل دسترس نیست این کار به نظرتون اصولی هست و البته کافی؟ یا نه قابل باز کردن هستند؟؟؟
4- *** بیشتر مدارسی که برنامه ی من نصب میشه تک کاربره هستند ولی گاها پیش اومده که نیاز به share کردن برنامه شده که در اون حالت ها من کل پوشه برنامه رو شبکه کردم و فایل اجرایی برنامه رو روی دسکتاپ سیستم های دیگه انداختم و به نوعی مشکل حل شده؟ البته موقع اجرا یه ارور داده میشه که با یه ok حل میشه و مشکلی پیش نمیاد (البته دقیق نمیدونم ارور هست یا نه) ... در کل نمیدونم این کار اصولی هست یا نه؟
(اساتید به نظرتون همون کاری که برای نوشتن کانکشن استرینگ برنامه هایی که با sql نوشته میشن رو نمیشه برای sqlite کرد یعنی یه کانکشن استرینگ کاملا متغیر درست کرد و بهش ip داد یا روش های دیگه)
این مورد رو ممنون میشم بیشتر اهمیت بدید چون برام مهمه
- اگر از sql استفاده کنم فکر کنم باید بصورت اکسپرس بنویسم تا یه خورده توی نصب پایانی روی سیستم مشتری کمتر به مشکل بخورم درسته؟ سوال اینکه خب سبک ترین sql express که میشه نصب کرد چند مگابایت هست دوستان؟
- در صورت استفاده از sql express باز امنیتش مثل sql هست ؟ در خصوص امنیت همین که ما برای دیتابیس مون پسورد بگذاریم کافی هست و دیگه نیازی به کار دیگه ای نیست؟
خب یه چند مشکل دیگه هم در خصوص دیتابیس sqlite دارم که فعلا نمی پرسم حالا اگر تصمیم بر این شد با sqlite برنامه رو بنویسم خواهم پرسید مثل مشکل نبود provider sqlite برای ویژوال 2017 بصورت رسمی (چون من از ویژوال 2017 استفاده می کنم)
ممنون از همه دوستان و اساتید عزیزی که پاسخ خواهند داد
11 پاسخ
البته استاد احمدی Codefirst را بنظرم بیان کرده اند چون entity framework به سه روش است
بله میشود کد نوشت
می تونید نصب کنید sql2014 را
مدل Codefirst است
تو همین سایت Codefirst سرچ کنید مقاله و فیلم و مطلب زیاده
سلام
باید دقت کنی ببینی ایا دستوراتی که نوشتی ایا در sql2005 پشتیبانی میشوند یانه
از دوستان و اساتید عزیز بابت پاسخ گویی ممنون هستم
خب در خصوص اکسس که به نظرم خیلی سرعتش پایین هست نسبت به بقیه بانک ها بنابراین اصلا بهش فکر نمی کنم
در خصوص sqlite هم الان یه مشکل دیگه دارم چون من ویژوال 2017 نصب دارم و با جستجوهای فراوان متوجه شدم که provider برای دیتابیس sqlite مخصوص ویژوال 2017 بصورت رسمی منتشر نشده هنوز ...
چون من با entity framework کار می کنم به مشکل برخوردم ... البته یک توسعه دهنده بصورت غیر رسمی یک پروایدر آماده کرده که این لینکش هست :
ًًُُSQLite Provider For VS 2017
در کل به نظرم برم سراغ sql از هر لحاظ فکر کنم بهتر باشه
خب الان یه سوال برام پیش اومده :
من الان ویژوال 2017 رو نصب دارم و همچنین sql 2017 نسخه enterprise رو نصب کردم
من الان اگر روی سیستم خودم برنامه رو طراحی کنم بعد بخوام sql express 2005 روی سیستم مشتری نصب کنم دچار مشکل میشم
نسخه 2005 رو به این دلیل گفتم که کلا 60 مگابایت هست و برای کار من حجم برنامه خیلی مهم هست
سوال آخر اینکه مشتری های من بیش از 99 درصدشون ویندوز 7 دارند خب مشکلی با sql express پیش نمیاد (همون ورژن 2005 رو میشه نصب کرد)
سپاسگزارم
از کاربر عزیز abolfazlab که لطف می کنن و پاسخ گو هستند ممنون و سپاسگزارم
خب من الان ویژوال 2017 و همچنین sql server 2017 نسخه اینترپرایز رو دارم
نیازی نیست sql رو پاک کنم و ورژن 2014 رو نصب کنم؟؟؟
یه جا توی sql server management موقع ساخت یک دیتابیس هست که میشه نسخه sql رو انتخاب کرد از اونجا میشه ورژن 2014 رو انتخاب کرد ؟؟ همون کار کافیه
و سوال آخر اینکه اون مدلی که از درون خود ویژوال دیتابیس رو میسازند چیه ؟؟ فرق میکنه با زمانیکه از درون sql server management این کار رو انجام میدیم
ببخشید زیاد سوال می کنم چون من تابحال تمام پروژه هام رو با sqlite درست کردم و در خصوص کار با sql بیگانه هستم
یک نکته رو هم فراموش کردم من در خصوص کار با orm ها به سفارش استاد عزیز آقای احمدی روش entity framework رو انتخاب کردم که میشه گفت بی نظیر و عالی هست خب الان که میخوام sql express رو انتخاب کنم باز هم میشه از این orm استفاده کرد اگر میشه یه کم راجع بهش توضیح بدید
ببخشید بابت اطاله کلام ... باز هم ممنون
سلام دوستان
من الان داشتم توی sql server management studio نگاه می کردم (نسخه 2017 رو نصب دارم) به یک نکته برخوردم == >> هنگام ساخت دیتابیس یکجا هست که میشه نسخه sql رو مشخص کرد به نام compatibility level که گزینه هایی از 2017 تا 2008 رو داره یعنی اگر من هنگام ساخت دیتابیس گزینه های پایین تر رو انتخاب کنم کافیه یا نه باید sql 2017 خودم رو پاک کنم و ورژن های پایین تر رو نصب کنم که توی خروجی گرفتن برای ویندوز های مثل ویندوز 7 به مشکل بر نخورم
(در کل میخوام جهت اطلاع خودم بدونم وگرنه تهش ورژن 2017 رو پاک می کنم و نسخه های پایین تر رو نصب می کنم)
و اما در مورد sql express هنوز یه مطلب برای من گنگ هست
از اونجایی که من همیشه با دیتابیس sqlite کار کردم هنوز با sql خیلی راه نیفتادم ... الان یه سوال برام پیش اومده من اگر بخوام نسخه express رو به کار بگیرم همه مراحل همون مراحل sql هست فقط فرقش اینه که توی connection string باید عبارت sqlexpress رو اضافه کنم ؟؟؟؟!!!!
درخصوص entity framework هم بعله مدل code first فوق العاده هست ولی من هنوز درکش نکردم و برام سخته همون database first رو انجام میدم
سپاسگزارم ...
باسلام
شما در سی شارپ می توانید با همه بانکهای اطلاعاتی (sql,mysql,oracel,...)استفاده کنید اما هم این است که برای چکار میخواهید استفاده کنیدو چه مقدار اطلاعات می خواهید ذخیره کنید
شاید با یک Access هم کار شما انجام شود
اما در حالت کلی sql2017 خود مایرکوسافت از Oracel هم جلو زده است و بهتر است از SQL2017استفاده کنید
ممنون میشم بقیه سوالات رو هم یه یه پاسخ کوتاه بدید
*************
خب من الان ویژوال 2017 و همچنین sql server 2017 نسخه اینترپرایز رو دارم
نیازی نیست sql رو پاک کنم و ورژن 2014 رو نصب کنم؟؟؟
یه جا توی sql server management موقع ساخت یک دیتابیس هست که میشه نسخه sql رو انتخاب کرد از اونجا میشه ورژن 2014 رو انتخاب کرد ؟؟ همون کار کافیه
و سوال آخر اینکه اون مدلی که از درون خود ویژوال دیتابیس رو میسازند چیه ؟؟ فرق میکنه با زمانیکه از درون sql server management این کار رو انجام میدیم
*************
سلام
الف)sql express 2014 را استفاده کن
ب)فرموده اید (کامپوننت های devxpress و dotnetbar و همچنین telerik استفاده) خیلی شلوغ نمیکنید برنامه را؟! از بین این سه تا یکی را انتخاب کنید خودم telerik استفاده میکنم و خیلی راضی هستم.
ج) stimulsoft report فوق العاده عالی است
ممنون بابت پاسخ مجددتون اما متاسفانه من دچار سردرگمی شدم
خب من سوالاتم رو یه طور دیگه دنبال می کنم تا هم شما رو اذیت نکنم و هم سریعتر به نتیجه برسم
کاربرای من همینطور که قبلا هم گفتم مدارس هستند و اکثر سیستم های مدارس ویندوز 7 نسخه 32 بیتی دارند
خب با این اوصاف شما پیشنهاد می کنید که روی کدوم نسخه ویژوال و کدوم نسخه sql express برنامه ام رو طراحی کنم و بنویسم و همچنین دات نت ورژن چند رو انتخاب کنم
با این توضیحات اضافی که همیشه از کامپوننت های devxpress و dotnetbar و همچنین telerik استفاده می کنم و گزارش ها رو هم با stimulsoft report درست می کنم که فکر کنم اینطوری مجبور دات نت بالای 4 رو انتخاب کنم درسته؟
توضیح اضافی اینکه : الان داشتم نسخه sql express 2017 رو نگاه می کردم فقط مثل اینکه برای ویندوز های 64 بیتی هست و حتی توی سایت مایکروسافت نسخه کاملا آفلاین نداره و باید ستاپ آنلاینش رو بگیریم (مثل ویژوال استادیو 2017)
به نظر من SQL همواره بهترین گزینه است ...
به سادگی حتی express رو نصب کنید و اجازه اتصال از سیستم های مختلف رو بدین ...