PDA

View Full Version : حرفه ای: ارتباط با پورت سخت افزاری



علیرضا حسن زاده
سه شنبه 24 فروردین 1389, 00:54 صبح
با سلام خدمت دوستان
کسی بلده چطوری میشه به یه پورت مثلا USB با LPT رو سیستم کلاینت دسترسی داشت مثلا برای تشخیص هویت از طریق یه توکن؟
واین که به فایل های سیستم کلاینت دسترسی داشته باشه یعنی بتونه با یه دیتابیس رو سیستم کلاینت کار کنه؟

milade
سه شنبه 24 فروردین 1389, 10:46 صبح
عزیزم در حالت عادی ارتباط با پورت سروری هم مسدود میکنند اون وقت کلاینت ...
شما میتونی از ActiveX استفاده کنی که اون هم در حالت عادی نیاز به ok از طرف کاربر داره ....
که همون هم محدودیتهایی در بر داره ....

Alireza_Salehi
سه شنبه 24 فروردین 1389, 11:56 صبح
شما مدل برنامه نویسی رو درست انتخاب نکردی ، نیاز هایی که شما داری با یک سیستم Server-Side مشکل داره...

علیرضا حسن زاده
سه شنبه 24 فروردین 1389, 12:24 عصر
مشکل اینجاست که من این پروژه رو قبول کردم و مجری پروژه هم اصرار داره که هر عملی باید از طریق سایت انجام بشه یعنی کاربرای سیستم باید برن تو سایت و پیام ها اطلاعیه های جدید رو از طریق سایت ببینن و در ضمن بتونن دریافت و ثبت اطلاعات در دیتابیس شخصی خودشون رو هم با راحتترین روش انجام بدن یعنی به قول خودشون با یه کلیک؟ حالا من چیکار می تونم بکنم لطفا راه های ممکن رو بفرمایید بدجوری گیر کردم در ضمن بعضی از کلاینت ها هم از دیتا بیس های تحت داس استفاده می کنن که برنامه تبدیل رو برای اونها نوشتم و به صورت اکتیوایکس می خوام رو سایت قرار بدم و تنها راهی که به نظرم میرسه استفاده از اکتیوایکس است اما مرورگرها هم با این موضوع مشکل دارن. آیا راه حل بهتری وجود داره؟

علیرضا حسن زاده
سه شنبه 24 فروردین 1389, 12:26 عصر
شما میتونی از ActiveX استفاده کنی که اون هم در حالت عادی نیاز به ok از طرف کاربر داره ....
که همون هم محدودیتهایی در بر داره ....
حالت غیرعادی برای مسئله چطور میتونه باشه؟
محدودیت های این روش رو میشه بفرمایید؟:بوس:

Alireza_Salehi
سه شنبه 24 فروردین 1389, 18:46 عصر
وقتی قرار هسست هر کلاینتی یک دیتابیس خصوصی داشته باشد آنوقت برنامه Server-Side نخواهد بود، هر کلاینتی یک Application مشابه را نصب می کند و با دیتابیسی که روی سیستم خودش نصب است کار می کند.

دیتابیس های کاربران از طریق Replication به روز می شوند و تغییرات دیتابیس سرور را دریافت می کنند.
این راه شسته رفته و ساده هستش دردسری هم نداره.
دسترسی به سخت افزار در برنامه های تحت وب فقط از طریق سرور (سخت افزارهای سرور) امکان پذیر است.


در غیر این صورت به لینک زیر نگاهی بیندازید (نحوه اجرای کنترل های ویندوزی در اینترنت اکسپلورر) احتمالا مشکلتان حل می شود:
http://forums.ASP.NET/p/1309299/2582558.aspx#2582558

بنده مورد فوق را برای کریستال ریپورت تست کردم و با پرینترهای کلاینت به راحتی پرینت انجام شد.

milade
چهارشنبه 25 فروردین 1389, 10:03 صبح
آیا راه حل بهتری وجود داره؟
بله !
يه win App طراحي كنيد كه بتونه نيازهاي كاربر رو پاسخ بده و با يك web service اون ها رو به بانك سرور خودتون منتقل كنيد ...
بهترين راه حل فعلي كه به نظرم ميرسه همين هستش ...
البته اگه شما ميخوايد به هر كاربر يك بانك طرف Client تخصيص بديد (كه خودش يه كار اشتباه هستش ) ميتونيد از راهكار پست بالا استفاده كنيد ...

علیرضا حسن زاده
چهارشنبه 25 فروردین 1389, 18:24 عصر
البته اگه شما ميخوايد به هر كاربر يك بانك طرف Client تخصيص بديد (كه خودش يه كار اشتباه هستش ) ميتونيد از راهكار پست بالا استفاده كنيد ...
دوست عزیز من فکر نمی کنم کار اشتباهی انجام داده باشم چون کلاینت های من باید بتونن پس از دریافت اطلاعات به صورت آفلاین با اونها کار کنن و این هم مستلزم داشتن یه دیتابیس واسه هر کلاینت هست این در نظر داشته باشید که کلاینت ها از لحاظ مکان فیزیکی یکسان نیستن و در سطح استان پراکنده شدن حالا کجای این کار اشتباهه من نمی دونم؟:گیج:

milade
چهارشنبه 25 فروردین 1389, 20:43 عصر
خب البته بله !
كارهايي مثل پرو‍ه هاي بزرگ كه برا مثال بانك داري رو مثال زدم مستلزم همين هستش ...
اما چون توي بخش Asp.Net بود فكر كردم همون وب سرويس بهتره !
كلاْ با توجه به اين توضيح دادم :

واین که به فایل های سیستم کلاینت دسترسی داشته باشه یعنی بتونه با یه دیتابیس رو سیستم کلاینت کار کنه؟

Alireza_Salehi
چهارشنبه 25 فروردین 1389, 21:59 عصر
دوست عزیز من فکر نمی کنم کار اشتباهی انجام داده باشم چون کلاینت های من باید بتونن پس از دریافت اطلاعات به صورت آفلاین با اونها کار کنن و این هم مستلزم داشتن یه دیتابیس واسه هر کلاینت هست این در نظر داشته باشید که کلاینت ها از لحاظ مکان فیزیکی یکسان نیستن و در سطح استان پراکنده شدن حالا کجای این کار اشتباهه من نمی دونم؟:گیج:
اگر حتما می خواهید با ASP.NET کار کنید سیستم باید به صورت زیر باشد تا نیاز شما را برطرف کند.

هر کلاینتی باید دارای IIS و SQL Server باشد و وب سایت و دیتابیس به صورت کامل در آن نصب شده باشد.

جهت بروزرسانی و هماهنگ کردن دیتابیس های مکان های مختلف هم باید از Replication استفاده نمائید.

در صورتی که نمی خواهید از Replication استفاده نمائید باید خودتان روشی برای این کار طراحی کنید که پیشنهاد نمی کنم دردسر زیادی دارد.

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