PDA

View Full Version : اتصال به بانک روی هاست



hosein320
چهارشنبه 27 دی 1391, 23:58 عصر
سلام
چه جوری میشه به بانک تو هاست خودم وصل شم
و اینکه هاست حتما باید ویندوز باشه
یا لینوکس هم مشکل نداره؟:متفکر:

فرید نجفلو
پنج شنبه 28 دی 1391, 01:46 صبح
سلام
اولین گزینه که باید بر طرف بشه نوع دیتابیسه

مثلا MySQL رو ویندوز و هم لینکوس قابل دسترسه اما SQL Server باید هاست ویندوزی باشه


دومین گزینه اینکه آیا هاست اجازه اتصال به دیتابیس بصورت Remote رو می ده یا نه

hosein320
پنج شنبه 28 دی 1391, 02:10 صبح
نحوه ی اتصال به دو بانک فرق داره
یعنی دستوراتشون متفاوته؟

فرید نجفلو
پنج شنبه 28 دی 1391, 02:22 صبح
اگه منظورتون تفاوت بین SQL Server و MySQL باشه
اگه از دستورات عادی (و استاندارد) TSQL استفاده می کنید احتمالا مشکلی ندارید
اما اگه از دستورات خاص یکی استفاده کنید تو دومی دچار مشکل میشید
مخصوصا تو قسمت دستورات تعریف داده (DDL) مثلا تعریف و تغییر (ALTER) جدول ها تفوت ها زیاد (اگه کد از اسکریپت ساز گرفته شده باشه احتمال خطر صد در صده)

تا اونجایی که من می دونم برای MySQL اکثرا Remote رو غیر فعال می کنن
ضمنا برای اتصال به MqSQL از سایتش Connector رو هم دانلود کنید

hosein320
پنج شنبه 28 دی 1391, 02:26 صبح
میتونین sql server رو دقیق بگین چکار کنم

فرید نجفلو
پنج شنبه 28 دی 1391, 14:16 عصر
اول بهتره بگم که اگه می خواید با دیتابیس بجز از طریق وب سایت کار کنید مثلا از سیستم خودتون و از طریق اینترنت وصل بشید (که اینطوری هم استباط میشه) تو این حالت بسته به سرعت اینترنت شما ممکنه سرعت برنامه هم به شدت پایین بیاد

چند تا نکته هم آخر مطلب می گم
--------------------------
اول از همه شما نیاز دارید که یه دیتابیس روی اینترنت داشته باشید
برا دیتابیس های رایگان دو راه دارید (با محدویدیت ولی خوب برای تست)
استفاده از سرویس های رایگانی که فقط دیتابیس می دن مثال:BizHostNet.com (http://barnamenevis.org/BizHostNet.com)
استفاده از هاست های رایگان که همراه فضای هاستینگ ، دیتابیس هم میدن مثال : somee.com (http://somee.com/) (پیشنهاد میشه)

وقتی شما دیتابیس رو بدست آوردید نوبت به اتصال و کار با اون میرسه
این مر حله نیاز به هیچ کار اضافه ای نداره!
شما فقط کانکشن استرینگ رو تنظیم کی کنید و به دیتابیس متصل می شید. کانکشن استرینگ مناسب رو هم معمولا خود سایتی که دیتابیس رو ازش گرفتید بهتون می ده
این یه کانکشن استرینگ نمونه برای Somee:

user id=Name_SQLLogin_1;pwd=*********;data source=DbName.mssql.somee.com;persist security info=False;initial catalog=DbName

اگه این کانکشن استرینگ واقعی باشه شما تو برنامه خودتون این رو با قبلی جایگزین کنید و برنامه رو اجرا کنید

--------------------------
نکته ها:
1:سرعت که بالا بهش اشاره شد
2:برای کار با دیتابیس های اینترنتی بهتر اینه که دیتابیس تو یه سایت باشه و با دیتابیس به صورت مستقیم ارتباط برقرار نشه بهتره از WebService یا خیلی بهتر از اون از WCF استفاده بشه
2:به خاطر شرایطی که دیتابیس اینترنتی داره باید در خواست های دیتابیسی رو به حداقل رسوند و از گزینه های نمایشی یا اختیاری که به دیتابیس نیاز دارن صرف نظر کرد و اگه از چیزی مثل WCF استفاده شد سعی بشه بیشتر بار با کار با دیتابیس رو به سرور محول کرد و فقط نتیجه ها رد و بدل بشن
3:فیلترینگ اطلاعات خیلی مهمه ، تا تنها اطلاعاتی که نیاز هستن دریافت بشن فیلترینگ در حالت ساده به دو صورته 1- شرطی که با WHERE مشخص میشه 2- دریافت فیلد های لازم و عدم استفاده از * به جای نام فیلد ها
4:در صورت اتصال مستقیم کمترین دفعات اتصال رو داشته باشیم ، یعنی سعی بشه دستورات به صورت دسته جمعی فرستاده بشه و در صورت امکان (که معمولا هم مشکلاتی داره) تو دستوراتی که پشت سر هم هستن اما باید جدا اجرا بشن (به نتیجه هم نیاز دارن) کانکشن رو باز نگه دارید و آخر کار ببندید
دلیل این کار هم اینه که عملیات بر قراری اتصال به دیتابیس های کار زمانبری محسوب میشه (البته تو حالت لوکال به چشم نمیاد)
5:محدویت حجم - معمولا هاست ها محدودیت حجمی برای دیتابیس میذارن و تا اونجایی که من دیدم فضای دیتابیس 10% فضای کل هاستینگ هست یعنی در همین Somee به شما 150 مگابایت فضای هاستینگ و 15 مگابایت فضای دیتابیس میده
در مورد SQL Server قضیه این محدودیت بیشتر به چشم میاد
پس این مورد هم باید مد نظرتون باشه مثلا به جای ذخیر فایل ها تو دیتابیس اون ها رو روی فایلینگ هاست (و با توجه به امنیت) ذخیره کنید
6:محدویت زمانی - مخصوصا تو سرویس های رایگان محدودیت زمانی وجود داره و اکثرا اون رو بر حسب بازدید ها محاسبه می کنن مثلا اگه تو یک ماه اخیر بازدید از سایت نباشه Suspend میشه و اگه تو یک ماه اخیر هیچ کوئری روی دیتابیس اجرا نشه دیتابیس حذف میشه

-------------------------------------
امید وارم تا حدی براتون مفید واقع شده باشه

hosein320
پنج شنبه 28 دی 1391, 15:29 عصر
ممنون
اول اینکه یکی از لینکا خراب بود
و اینکه
برنامه من به صورتیه که هر ثانیه باید به یکی از جدول های دیتابیس دسترسی داشته باشم
جداکثر چند نفر میتونن به یه دیتابیس وصل شن؟:متفکر:
آیا راهی وجود داره که مثلا یه برنامه رو هاست نصب کنیم که اون برنامه اصلاعات دیتابیس رو بگیره و به برنامه تحت ویندوز بده(برنامه اصلی)

فرید نجفلو
پنج شنبه 28 دی 1391, 15:52 عصر
شما این لینک (https://somee.com/FreeAspNetHosting.aspx) رو باز و ثبت نام کنید و یک ساب دامین رایگان ثبت کنید تو پنلش هم محل کار با دیتابیس تو نمودار درختیش معلومه


برنامه من به صورتیه که هر ثانیه باید به یکی از جدول های دیتابیس دسترسی داشته باشم
این کار خیلی نا متعارفه ! این چه برنامه ای هست که باید هر ثانیه به دیتابیس دسترسی داشته باشه!
البته اینکه تو سطح اینترنت دسترسی یه کاربر از یه سیستم جدا به کاربر های دیگه تقریبا تاثیری تو کم شدن سرعتش نداره



برنامه من به صورتیه که هر ثانیه باید به یکی از جدول های دیتابیس دسترسی داشته باشم
از نظز SQL Server انقدری هست که مشکلی برای شما پیش نیاد ولی اینکه هاست اتصال های همزمان و تعداد اتصال ها مثلا در هر ماه رو محدود کنه چیزی هست که از هاستی به هاست دیگه فرق می کنه


آیا راهی وجود داره که مثلا یه برنامه رو هاست نصب کنیم که اون برنامه اصلاعات دیتابیس رو بگیره و به برنامه تحت ویندوز بده(برنامه اصلی)
این رو هم من گفتم ولی فکر کنم شما متوجه نشدید
منظورم از WebService و WCF دقیقا همین بود
من به شخصه خودم WCF رو به جای اتصال مستقیم ترجیه می دم و سرعتش هم در صورت برنامه نویسی خوب و تنظیمات مناسب چند برابر حالت اتصال مستقیمه
ولی خوب باید جور هندوستان رو هم کشید:چشمک:

hosein320
پنج شنبه 28 دی 1391, 15:56 عصر
میتونین آموزشی از wcf به من بدین
کد نویسیش به چه زبونیه؟
تا حالا نشنیده بودم:بامزه:

فرید نجفلو
پنج شنبه 28 دی 1391, 18:45 عصر
WCF زبان نیست یه تکنولوژی از دات نت هست یعنی با همین زبان VB.Net می تونید کار کنید
راستش من WCF رو از منابع فارسی یاد نگرفتم واسه همین منبع کاملی که به فارسی باشه سراغ ندارم ، من بیشتر ترجیح می دم با MSDN یاد بگیرم
از نظر مفهومی WebService و WCF و Remoting تو یه دسته هستن
وب سرویس که دیگه منسوخ شد
ریموتینگ برای شبکه های لوکال میشه گفت بهترین گزینه ست (پیاده سازی راحت تر ، سرعت بالاتر) ولی برای اینترنت و HTTP می شه گفت نه
WCF برگزیده های موارد بالا رو داره بلاوه تعدادی امکانات جالب بیشتر
برای مثال یکی از امکانات خیلی جالبش Discovery هست به این صورت که مثلا اگه شما تو یه شبکه محلی یه سرور و n کلاینت داشته باشید نیازی به دادن آدرس استاتیک (مثلا آی پی سرور ) ندارید کلاینت ها یک پیام UDP می فرستن و سرور مورد نظر پاسخ اون رو می ده و شناسایی میشه!

الان دیگه می شه گفت الویت با WCF هست ولی پیاده سازی پیچیده تری داره
اگه کسی وقت بذاره و یاد بگیره یقینا ضرر نکرده

البته اگه برنامه شما به شکل خوبی طراحی شده باشه تبدیل اون به سبک WCF خیلی راحته
منظور از ترکیب مناسب حداقل لایه بودن برنامه هست
الان من برنام دارم که هنوز به WCF تبدیل نکردم ولی یه بار برای تست خواستم تبدیلش کنم حدود 10 الی 15 دقیقه طول کشید!
البته اینم بگم که خودم برای استفاده شخصی یه برنامه ساده ساختم که می تونه کلاس های ساده (که اصولا در سطح کار با داده یعنی DAL هستن) رو به سبک WCF تبدیل کنه که هر کلاس تبدیل به سه فایل میشه (کد اینترفیس - کد کلاس که تبدیل به پیاده سازی شده از اینترفیس مربوطه شده - و فایل Self Host یا همون svc.)

شاید الان که اطلاعاتی از WCF ندارید متوجه بعضی اصطلاحات نشید ولی خوب اگه برید چند تا منبع پیدا کنید و کمی یاد بگیرید کاملا متوجه می شید چی می گم