PDA

View Full Version : مبتدی: تبادل اطلاعات بدون تحت وب کردن برنامه ها



sadaf_
سه شنبه 13 دی 1390, 19:28 عصر
برنامه های سی شارپ 2008 تحت ویندوز را می توان به یک سرور که در اون sqlserver 2005 هست وصل بشوند؟
در مسافت طولانی و مجزا به چه طریق این کار انجام می شه؟

zarrinnegar
سه شنبه 13 دی 1390, 20:04 عصر
آره میشه
خیلی هم راحته
کامپیوتر راه دور با چی به کامپیوتر شما ارتباط داره؟
اینترنت؟
باید اول از همه IP valid داشته باشی ( روی سرور 2005)
دوم یک sql user باید توی sql بسازی با رمز عبور
سوم یک کانکشن توی #c و برنامه بسازی و به اون سرور با IP متصل بشی

connectionString="Data Source=85.125.68.94\sql2005;Initial Catalog=MyDatabase;Persist Security Info=True;User ID=MyUser;Password=Mypass"

sadaf_
پنج شنبه 15 دی 1390, 09:24 صبح
توضیحات کلی به من داده شده لطفا بیشتر به من توضیح بدید
ممنون

mohammad272005
پنج شنبه 15 دی 1390, 10:24 صبح
یه نگاهی به اینجا بنداز (http://barnamenevis.org/showthread.php?321642-اتصال-به-بانک-sql-با-استفاده-از-کلاس-ها)

M.YasPro
پنج شنبه 15 دی 1390, 10:37 صبح
سلام
صحیح ترین کار از نظر من استفاده از WCF هست ،
http://barnamenevis.org/showthread.php?274518-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%DB%8C%DA%A9-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%A2%D9%86-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8-%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2
http://barnamenevis.org/showthread.php?319577-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3
http://barnamenevis.org/showthread.php?310348-WCF-%D8%AF%D8%B1-%D9%86%DA%AF%D8%A7%D9%87-%DA%A9%D9%84%DB%8C-%D9%88-%D8%AE%D9%88%D8%AF%D9%85%D8%A7%D9%86%DB%8C!
http://barnamenevis.org/showthread.php?319436-%D9%BE%D8%B1%D9%88%DA%98%D9%87-WCF
موفق باشید ./

mohammad272005
پنج شنبه 15 دی 1390, 13:59 عصر
سلام
صحیح ترین کار از نظر من استفاده از WCF هست ،
http://barnamenevis.org/showthread.php?274518-%D8%B1%D8%A7%D9%87-%D8%A7%D9%86%D8%AF%D8%A7%D8%B2%DB%8C-%DB%8C%DA%A9-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3-%D9%88-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D8%A2%D9%86-%D8%AF%D8%B1-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%D8%A8-%D9%88-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%AA%D8%AD%D8%AA-%D9%88%DB%8C%D9%86%D8%AF%D9%88%D8%B2
http://barnamenevis.org/showthread.php?319577-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%88%D8%A8-%D8%B3%D8%B1%D9%88%DB%8C%D8%B3
http://barnamenevis.org/showthread.php?310348-WCF-%D8%AF%D8%B1-%D9%86%DA%AF%D8%A7%D9%87-%DA%A9%D9%84%DB%8C-%D9%88-%D8%AE%D9%88%D8%AF%D9%85%D8%A7%D9%86%DB%8C!
http://barnamenevis.org/showthread.php?319436-%D9%BE%D8%B1%D9%88%DA%98%D9%87-WCF
موفق باشید ./

دوست عزیز مطمئن نیستم ولی فکر میکنم هر دو طرف NET. نباشه. ایشون میخوان از NET. به SQL وصل بشن. که اگه اینطور باشه، WCF به دردشون نمیخوره

M.YasPro
پنج شنبه 15 دی 1390, 14:23 عصر
میتونن لایه DA رو در سمت سرور پیاده سازی کنند و از هر کلاینتی درخواستشون رو از لایه های مورد نظر به لایه DataAccess بفرستند.
البته راههای دیگه ای هم وجود داره

zarrinnegar
جمعه 16 دی 1390, 00:06 صبح
توضیحات کلی به من داده شده لطفا بیشتر به من توضیح بدید
ممنون
درباره ارتباط راه دور باید بگم که همه کامپیوتر ها با IP با هم ارتباط پیدا میکنن
زمانی که شما با یک مودم بصورت DialUp به کامپیوتر دیگه ای متصل میشی کامپیوتر مبداء و مقصد برای اینکه بتونن با هم ارتباط برقرار کنن به مودم خودشون IP اختصاص میدن

حالا اگر وسیله ارتباطی شما مودم باشه با ید یه جور تنظیمات رو انجام داد
و اگر وسیله ارتباطی اینترنت باشه باید همون راهی که گفتم
یعنی مقصد که sql روش نصبه باید به اینترنت متصل باشه ، وقتی به اینترنت متصله خود کامپیوتر یک IP داره که معمولا توی رنج 192.168.1.1 هست این رنج IP توی اینترنت کاربردی نداره و نمیشناسه
باید از اون شرکتی که اینترنت خریداری شده ، درخواست IP Valid داده بشه
IP Valid چیه؟ یک IP هست که توی دنیا شناخته شده است و از هر جای دنیا صداش بزنی به اون میتونی متصل بشی مثلا وقتی توی اینترنت تایپ میکنی www.yahoo.com (http://www.yahoo.com) در واقع این اسم دامین هست که به یک IP متصله و به اون وصل میشه

حالا شما هم باید یک IP Valid داشته باشی و بتونی از بیرون از سیستم خودت ، کامپیوترت رو Ping کنی

وقتی اینطوری شد میای توی sql اون سرورت یک نام کاربری با رمز عبور وارد میکنی و با دستوری که گفتم میای باهاش ارتباط برقرار میکنی

مابقیش مثل اینه که توی سیستم خودت به sql وصل شدی و هر کاری خواستی میکنی

نمیدونم کجاش نامفهومه
احتمالا طریقه راه اندازی این IP Valid برای شما نگران کننده باشه که این کار رو اون شرکتی که adsl رو ارائه میده انجام میده و شما رو راهنمایی میکنه که تنظیماتش رو روی مودمتون انجام بدین (البته یک هزینه سالانه هم میگیره بابت سرویس IP Valid ):افسرده:

sadaf_
جمعه 16 دی 1390, 09:58 صبح
طبق تحقیقاتی که انجام دادم به نظر می یاد همون IP Valid بهترین روش می تونه باشه
ولی یک مسئله ای که خیلی مهمه امنیت هستش
آیا امنیت با IP Valid وجود داره ؟
اگر اشتباه نکنم با vpn باید این کار انجام بشه اما نمی دونم چطوری
لطفا اطلاعات در این خصوص هم بهم بدین
ممنون

xcomlock
جمعه 16 دی 1390, 12:58 عصر
دوست عزیز استفاده از IP Valid به همراه یک برنامه واسط توصیه میشه (WCF,Web Service). اینطوری با امنیت بیشتری به داده های SQL Server دسترسی دارید. در ضمن نیازی به VPN ندارید.

zarrinnegar
جمعه 16 دی 1390, 14:39 عصر
طبق تحقیقاتی که انجام دادم به نظر می یاد همون IP Valid بهترین روش می تونه باشه
ولی یک مسئله ای که خیلی مهمه امنیت هستش
آیا امنیت با IP Valid وجود داره ؟
اگر اشتباه نکنم با vpn باید این کار انجام بشه اما نمی دونم چطوری
لطفا اطلاعات در این خصوص هم بهم بدین
ممنون

درباره امنیت
شما اگر بخواهید IP Valid را مستقیما به سروری که sql روی آن نصب شده متصب کنید خوب باید امنیت سیستم رو هم کامل در نظر بگیرید
ولی دوستانی که درباره وب سرویس و ویندوز سرویس صحبت میکنن درست میگن و شما باید یک واسط بین سروری که sql داره و سروری که IP Valid داره در نظر بگیرید که سرور sql مورد حمله دیگران قرار نگیره
توی این روش شما باید یک برنامه بنویسی که بصورت وب سرویس باشه و اون وب سرویس با sql شما ارتباط برقرار کنه و شما از طریق کلاینت با وب سرویس ارتباط برقرار کنید
توی این روش امنیت سرور بانک اطلاعاتی خیلی بالا میره و دیگران مستقیما به بانک شما دسترسی ندارند

اون روشی را که اول گفتم ساده ترین حالتیه که شما میتونی به بانک از راه دور متصل بشی

درباره vpn هم بگم که فقط ارتباط بین شما و سرور رو مطمئن میکنه مابقیش باز طبق روشهای گفته شده است

Sharif Lotfi
یک شنبه 18 دی 1390, 22:23 عصر
آره میشه
خیلی هم راحته
کامپیوتر راه دور با چی به کامپیوتر شما ارتباط داره؟
اینترنت؟
باید اول از همه IP valid داشته باشی ( روی سرور 2005)
دوم یک sql user باید توی sql بسازی با رمز عبور
سوم یک کانکشن توی #c و برنامه بسازی و به اون سرور با IP متصل بشی

connectionString="Data Source=85.125.68.94\sql2005;Initial Catalog=MyDatabase;Persist Security Info=True;User ID=MyUser;Password=Mypass"

دوست عزيز ميشه يه نمونه برنامه كوچيك و ساده براي من بذاريد.اگه ممكنه winApplication خيلي ساده كه فقط نحوه اتصال سيستم كلاينت به سرور و خواندن داده از سرور اط همين طريق IP valid مشخص باشه
سوال ديگه م هم اينه كه تو سرور sql server2008 و بانك ديتابيسم موجوده . روي سيستم كلاينت ها هم بايد همون ورژن sql نصب باشه يا فرقي نمي كنه؟

zarrinnegar
یک شنبه 18 دی 1390, 23:00 عصر
این محتویات connection string من توی فایل config هست

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="MyProject.Properties.Settings.MydatabaseConnection String"
connectionString="Data Source=192.168.1.15\sql_2008;Initial Catalog=MyDatabase;Persist Security Info=True;User ID=1;Password=1"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>

حتی قسمت connectionString رو میتونی جداگانه بسازی
روی desktop کلیک راست میکنی و یک فایل text میسازی بعد اسم اونو هر چی خواستی میزاری پسوندش رو میزاری udl بعد که ساختی روش دوبار کلیک میکنی اول میری قسمت provider و گزینه microsoft OLE DB Provider For SQL Server رو انتخاب میکنی بعدش next بعدش شماره 1 رو IP Valid و یا IP سرور رو میدی و اسم sql رو بعدش شماره 2 نام کاربری و رمز عبور رو میدی بعد شماره 3 database رو انتخاب میکنی قبلش حتما گزینه Allow Saving Password رو تیک میزنی و Test Connection رو میزنی اگه جواب Successfuly بود حله OK میکنی میای بیرون بعد همین فایل رو کلیک راست میکنی با ادیتور بازش میکنی بعد محتویاتش رو میزاری جای ConnectionString

اینطوری هم کانکشن رو تست زدی هم توی فایل config اضافه میکنی







سوال ديگه م هم اينه كه تو سرور sql server2008 و بانك ديتابيسم موجوده . روي سيستم كلاينت ها هم بايد همون ورژن sql نصب باشه يا فرقي نمي كنه؟
اصلا توی کلاینتها چیزی نمیخواد نصب بشه ( بجز Framework ) که معمولا روی ویندوز 7 نصب هست
من چیزی روی کلاینتها نصب نمیکنم مگر اینکه چیز خاصی توی برنامه هام استفاده کرده باشم
مثلا اگر از report خود ویژوال استفاده کردید یک reportviewer میخواد که مال مایکروسافته از سایتش دانلود میکنید و نصب میکنید