PDA

View Full Version : مقاله: جمع آوری و ارائه ایده های جدید,نکات پیاده سازی نرم افزار های تحت وب,خلاقیت ها ,اینترفیس های متنوع



kiosksoft
دوشنبه 24 فروردین 1388, 11:01 صبح
هدف از ایجاد این تاپیک جمع آوری و ارائه ایده های جدید , نکات پیاده سازی نرم افزار های تحت وب, خلاقیت ها , اینترفیس های متنوع و جذاب و نقطه نظرات اساتید میباشد.

در این مثال مطالب ذیل را بصورت عملی یاد خواهید گرفت.

1- نحوه تعریف کلاس
2- نحوه تعریف Field و Property در کلاس
3- کاربرد های شی گرایی
4- نحوه تعریف و استفاده از enum
5- نحوه کار با دیتابیس , StoredProcedure , View , DDL
6- نحوه ارسال پارمتر به پروسیجرهای دیتابیس و برنامه نویسی T-SQL
7- کنترل استثناها
8- کاربرد Session و کاربرد آن در برنامه
9- نحوه تعریف ConnectionString در Web.config و نحوه کد کردن و دیکد کردن آن
10- Cryptography
11- استفاده از Grid,DropDown,TextBox,ImageButton,CheckBox
12- نحوه جستجو کردن و سورت کردن داده ها در صفحات وب
13- نحوه استفاده از CSS
14- کار با DataSet,DataTable

در این مثال ده ها نکته دیگه تهیه کرده ام که قابل ذکر نیستند, این نکات بر اساس تجربه های خودم میباشد. بعضی قسمت های آن ممکن است مشکلاتی داشته باشد یا اینکه اشتباه پیاده سازی کرده باشم. در کل یک ایده برای برنامه نویسان تحت وب میباشند.

برای اجرای برنامه نیاز هست که ConnectionString در Web.Config را تغییر دهید. برای کد کردن آن از این برنامه استفاده کنید (http://barnamenevis.org/forum/attachment.php?attachmentid=29948&d=1239691547)



ارائه ایده ها و نحوه پیاده سازی برنامه ها در ارتقای سطح علمی و فکری برنامه نویسان و همچنین طراحی اینترفیس های استاندارد تر تاثیر بسزایی خواهد داشت.

اجرای برنامه بصورت آنلاین (http://www.sample1.kiosksoft.ir/)

http://barnamenevis.org/forum/attachment.php?attachmentid=29903&stc=1&d=1239602394

کلیه حقوق این نمونه برنامه متعلق به سایت شرکت کیوسک سافت ایران میباشد و استفاده و ارائه آن با ذکر منبع رایگان میباشد.

KavoshGar_ir
سه شنبه 25 فروردین 1388, 10:02 صبح
آفرین و متشکر بدلیل این عمل خداپسندانه!

این پروژه واقعا حرفه ای نوشته شده من با اینکه چند وقتی هست در این زمینه کار می کنم کم آوردم در مقابل این پروژه :لبخند: (ندانستن عیب نیست:اشتباه:)

1.) در کلاس AppClass نیم اسپسهای System.linq و Xml.Linq استفاده شده چه متد یا کلاسی ازش استفاده شده و دلیل استفاده از اینها چه بوده؟

2.)کد کردن کانکشن استرینگت را توضیح بده!

مرسی.

kiosksoft
سه شنبه 25 فروردین 1388, 11:46 صبح
آفرین و متشکر بدلیل این عمل خداپسندانه!

ممنون , ایده های خودتون رو هم ارائه بدید .


ن پروژه واقعا حرفه ای نوشته شده من با اینکه چند وقتی هست در این زمینه کار
می کنم کم آوردم در مقابل این پروژه (ندانستن عیب نیست

این مثال برگرفته از یکی از پروژه های خودم هست , همه ش هم تجربه و ایده های شخصی
میباشد.
کمک کنید ,تجربه های خودتون رو هم ارائه بدید , حرفه ای ترش هم براتون میزارم.


1.) در کلاس AppClass نیم اسپسهای System.linq و Xml.Linq استفاده شده چه
متد یا کلاسی ازش استفاده شده و دلیل استفاده از اینها چه بوده؟

در VisualStdio2008 بصورت پیش فرض این Namespace ها اضافه میشود , شما میتوانید این دو رو حذف کنید. من هم استفاده از آنها نداشتم. کد ذیل برای کلاس نامبرده کافی میباشد:


using System;
using System.Configuration;



2.)کد کردن کانکشن استرینگت را توضیح بده!


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

در این نمونه برنامه نحوه استفاده و نگهداری ConnectionString بصورت کد شده رو با استفاده
از کلاس های Cryptography خود دات نت آوردم. در کلاس Security دو تابع هستند که
اطلاعات رو کد و دیکد میکنند . ورودی توابع یک رشته از اطلاعات و Password ی که باید بر
اساس آن عمل کدینگ یا دیکدینگ انجام شود آورده شده است.

برای اینکه بتوانید ConnectionString خود را براحتی کد کنید از برنامه ای که پیوست
کردم استفاده کنید. سورس این نمونه برنامه کوچک همان کلاس Security در نمونه برنامه بالا
میباشد.

salehbagheri
سه شنبه 25 فروردین 1388, 18:43 عصر
سلام دوستان!

من هم يه پروژه كوچيك براتون ميذارم كه هدفش مديريت لينكها و منوهاست!

شما ميتونيد از طريق روشي كه بنده بكار گرفته ام، منوها و لينكهاي سايتتون رو دسته بندي كنيد!

پروژه من يقيناً داراي اشكالاتي خواهد بود كه پيشاپيش از شما پوزش مي طلبم!

مشخصات:
VB2008
ASP.NET 3.5
سطح: مبتدي مايل به متوسط!


با تشکر!

ohh_mid
سه شنبه 25 فروردین 1388, 20:51 عصر
سلام
دستون درد نکنه بابت مثالتون یه چند تا سوال برام پیش اومده که در زیر به اونها اشاره می کنم
1- در کلاس Database از کلاسهایی Ado.net به صورت Private در هر متد استفاده شده در صورتی که فکر می کنم اگر به صورت Public تعریف می شد خیلی حجم کد پایین تر و کد هم خوانا تر می شد (البته این نظر منه ) می خواستم بدونم دلیل خاصی برای این کار وجود داره
2- هنگام edit کردن در grid از متد item_Create استفاده کردید در صورتی که متد Edit_Command وجود داره آیا استفاده از Item_Create نسبت به Edit_Command بهتره ؟
3- برای نمایش های متنی بر روی فرم مانند خطاها و پیغام ها مستقیم در کد از عبارات فارسی استفاده شده بهتر نیست که جهت استفاده از عبارات نمایشی از Resource استفاده کنیم (Globalization-Localization)

kiosksoft
چهارشنبه 26 فروردین 1388, 09:48 صبح
جناب salehbagheri


من هم يه پروژه كوچيك براتون ميذارم كه هدفش مديريت لينكها و منوهاست!
کار بزرگی انجام دادید.


شما ميتونيد از طريق روشي كه بنده بكار گرفته ام، منوها و لينكهاي سايتتون رو دسته بندي كنيد!
جالب بود.


پروژه من يقيناً داراي اشكالاتي خواهد بود كه پيشاپيش از شما پوزش مي طلبم!
هدف یادگیری نکات مثبت و ارائه ایده ها


سطح: مبتدي مايل به متوسط! مهمترین نکات در برنامه نویسی در همان سطح مبتدی هست. اصول خیلی مهم در کتاب ها فصول ابتدایی میباشد همان فصولی که کسی بهشون اهمیت نمیده و همه به اشتباه فکر میکنند که اون هارو میدونند.

kiosksoft
شنبه 29 فروردین 1388, 10:06 صبح
دوستان, میتوانید برنامه رو بصورت آنلاین از آدرس ذیل اجرا کنید.

http://www.sample1.kiosksoft.ir/

jikjik87
شنبه 05 اردیبهشت 1388, 09:52 صبح
سلام

ببخشید ممکنه در مورد قسمت جستجو بیشتر توضیح بدید. این روش رو تا حالا ندیده بودم!!

iroonidotnet
شنبه 05 اردیبهشت 1388, 15:08 عصر
دلم نیومد که فقط بر روی تشکر کلیک کنم . واقعا ممنون . از صمیم قلب برای شما آرزوی موفقیت می کنم.

و اینکه :
احساس می کنم یکم کار ها کند صورت می گیره . نمی دونم شاید من اشتباه می کنم .

salehbagheri
شنبه 05 اردیبهشت 1388, 19:07 عصر
احساس می کنم یکم کار ها کند صورت می گیره . نمی دونم شاید من اشتباه می کنم .

كارها كند صورت نمي گيره بلكه دوستان همكاري لازم رو ندارند!

kiosksoft
یک شنبه 06 اردیبهشت 1388, 09:32 صبح
سلام

ببخشید ممکنه در مورد قسمت جستجو بیشتر توضیح بدید. این روش رو تا حالا ندیده بودم!!


ببینید در قسمت بالای برنامه آیکون http://barnamenevis.org/forum/attachment.php?attachmentid=30278&stc=1&d=1240722667 رو گذاشتم که تعیین میکند که آیا پنل جستجو نمایش داده شود یا خیر .

تابع RefreshGSearch هم برای بارگزاری مجدد داده ها بعد از تغییرات یا جستجو در گرید میباشد.

اما در تابع GetDataForSetField چک میشود که آیا این پنل باز هست یا خیر اگر باز بود پس برنامه سراغ چک باکس ها میرود و هر کدام فعال مقدار نرا گرفته و بر اساس آن داده ها فیلتر میکند. اگر پنل باز بود اما چک باکسی فعال نیود باز هم کل اطلاعات نشان داده میشوند.


اما در مورد آیکون های http://barnamenevis.org/forum/attachment.php?attachmentid=30280&stc=1&d=1240720065 , آیکون اول که دستور انجام عمل جستجو را صادر میکند و آیکون دوم دستور دستور جستجو را لغو میکند , کلیه داده ها نمایش میدهد و پنل جستجو را حذف میکند.

فرق بین دو آیکون http://barnamenevis.org/forum/attachment.php?attachmentid=30282&stc=1&d=1240720274 و http://barnamenevis.org/forum/attachment.php?attachmentid=30278&stc=1&d=1240722667 . آیکون اول دستور دستور جستجو را لغو میکند , کلیه داده ها نمایش میدهد و پنل جستجو را حذف میکند. اما آیکون دوم فقط پنل جستجو را حذف میکند.

موفق باشید

iroonidotnet
یک شنبه 06 اردیبهشت 1388, 20:12 عصر
منظورم این بود که سرعت کار با این نمونه یکم پایین هست . یعنی یکم سنگین به نظر میرسه . شاید من اشتباه کنم.

amirjalili
دوشنبه 07 اردیبهشت 1388, 11:03 صبح
اگه دوستان موافق باشن بنده پیشنهاد میدم که این پروژه به صورت پروژه های open source کم کم گسترش پیدا کنه و هر کسی که خواست با اجازه دوست عزیزمون روش کار کنه و همه با svn روی کد کار کنن..
چند وقت قبل تو یه مطالعه ای که داشتم دیدم همه پروژه های OPEN SOURCE تقریبا از همین جاها شروع شدن..

kiosksoft
دوشنبه 07 اردیبهشت 1388, 15:34 عصر
منظورم این بود که سرعت کار با این نمونه یکم پایین هست . یعنی یکم سنگین به نظر میرسه . شاید من اشتباه کنم.

دوست عزیز

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

در کل تو برنامه کلیه استثناها در نظر گرفته شده , و کلیه اعمالی که شاید شما تا حالا بهشون برنخورده باشید پیش بینی شده است .

kiosksoft
دوشنبه 07 اردیبهشت 1388, 15:52 عصر
اگه دوستان موافق باشن بنده پیشنهاد میدم که این پروژه به صورت پروژه های open source کم کم گسترش پیدا کنه و هر کسی که خواست با اجازه دوست عزیزمون روش کار کنه و همه با svn روی کد کار کنن..
چند وقت قبل تو یه مطالعه ای که داشتم دیدم همه پروژه های OPEN SOURCE تقریبا از همین جاها شروع شدن..

دوست عزیز نظر تون عالیه


بنده موافقم.

به نظر بنده , انجام این کار , کمک بزرگی به برنامه نویسان جامعه خودمون خواهد بود , خیلی جالبه , اگر همه دست بدست هم بدن , و هر نفر یک آیتم رو اضافه کنه یا اینکه برنامه رو گسترش بده و سورسش رو دوباره بزاره تو سایت .

اون موقع دیگه یک برنامه کامل خواهد بود که میتواند به همه در سطوح مبتدی , متوسط و حرفه ای کمک کند تا یاد بگیرند , از تجربه هم استفاده کنند و برنامه جالب تری و ارائه بدن , به امید روزی که بتونیم با نرم افزارهای خارجی رقابت کنیم .

این نمونه یکی از کارهای من هستش , دارم یک نمونه دیگه با یک روال متفاوت مینویسم , تموم که شد اون رو هم میزارم اینجا همه استفاده کنن.

در نمونه بعدی نحوه ارتباط برنامه های وب با دستگاه هایی سخت افزاری رو ارائه میدم.

liliyan87
شنبه 12 اردیبهشت 1388, 02:10 صبح
سلام خیلی لطف کردین ولی میشه درباره اجرا کردنش بیشتر توضیح بدین من نتونستم اجراش کنم:ناراحت:

kiosksoft
شنبه 12 اردیبهشت 1388, 15:37 عصر
سلام خیلی لطف کردین ولی میشه درباره اجرا کردنش بیشتر توضیح بدین من نتونستم اجراش کنم:ناراحت:

سلام

دوست عزیز

مشکلاتی با آن مواجه شدید را اشاره بفرمائید تا بتوانم بهتر راهنمایی کنم .

این برنامه در محیط visual studio 2008 نوشته شده و دیتابیس آن sqlserver 2005 میباشد.

برای ارتباط برنامه با بانک اطلاعاتی باید connection string را در فایل web.config تنظیم کنید تا این امکان برقرار شود . روش تعریف آن هم بدین صورت است که شما باید ابتدا connection string خود را ابتدا باید با ید بسازید. در پست 3 میتونید توضیحات رو بخونید (http://www.barnamenevis.org/forum/showpost.php?p=705144&postcount=3)

احمد سامعی
سه شنبه 15 اردیبهشت 1388, 16:10 عصر
مشکلاتی با آن مواجه شدید را اشاره بفرمائید تا بتوانم بهتر راهنمایی کنم .
[/URL]

اين ايده كه تبديل يم پروژه اپن سورس بشه خوبه اما مشكلي كه تو تمام اين جور پروژه ها تا جايي كه من انجمن هاي ايراني ديدم اين هست كه:
1. معمولاً بعد يك مدت بدون به نتيجه نهايي رها مي شه
2. از همه مهم تر بخش آموزش اين نوع پروژه ها مهم هست براي مبتديان كه به صورت ناقص انجام يا اصلاً انجام نمي شه منظورم توضيحات كافي
مثلاً مي گن اين كد بنويسيد خوب اين وسط اگر طرف حرفه باشه كه اصلاً نمي آيد و بخواند اگر تازه كار و مبتدي هم باشه كه چيزي نمي فهمه
من پيشنهاد اين كه اگر قرار همچين كاري صورت بگيره اول يك تيم مشخص كنيد كه هر كدوم يك بخش انجام بدن مثلاً يكي كار اينترفيس يكي انتقال داده ها و ....
بعد هر كس هر كدي هم كه مي گذاره بگه اين چي كار مي كنه و چي هست توضيح بده
در نهايت يك مدير هم طرح داشته باشه كه هر چند وقت يك بار مطالب سرجمع كنه و در پست اول جديدترين نسخه رو بذاره هر كس هم خواست آخرين ويرايش پيدا كنه همون پست اول نگاه كن و پنجاه تا نمونه كه هر كدوم يك كارو مي كنه نباشه و يك فايل PDF از آموزش ها تو همون پست باشه
مثلاً تو همين تالار يكي از دوستان سورس يك انجمن ساز كه خودش زحمتش كشيده بود گذاشته بود اما داكيومنتش فقط توضيح بخش هاي مختلف بود و از آموزش خبري نبود
اين هم اگر دسته جمعي باشه نه روكسي فشار مي آيد و هم بالاخري از تجربه همه استفاده مي شه
با تشكر از دوستان من آماده همكاري هستم

Neo Persian
سه شنبه 15 اردیبهشت 1388, 23:13 عصر
منظورم این بود که سرعت کار با این نمونه یکم پایین هست . یعنی یکم سنگین به نظر میرسه . شاید من اشتباه کنم.
اتفاقا سرعتش بالاست!

kiosksoft
پنج شنبه 17 اردیبهشت 1388, 14:04 عصر
دوست من


. معمولاً بعد يك مدت بدون به نتيجه نهايي رها مي شه کمک کنید که به نتیجه مطلوبی برسونیم.


2. 2. از همه مهم تر بخش آموزش اين نوع پروژه ها مهم هست براي مبتديان كه به صورت ناقص انجام يا اصلاً انجام نمي شه منظورم توضيحات كافي
مثلاً مي گن اين كد بنويسيد خوب اين وسط اگر طرف حرفه باشه كه اصلاً نمي آيد و بخواند اگر تازه كار و مبتدي هم باشه كه چيزي نمي فهمه
من پيشنهاد اين كه اگر قرار همچين كاري صورت بگيره اول يك تيم مشخص كنيد كه هر كدوم يك بخش انجام بدن مثلاً يكي كار اينترفيس يكي انتقال داده ها و ....
بعد هر كس هر كدي هم كه مي گذاره بگه اين چي كار مي كنه و چي هست توضيح بده
در نهايت يك مدير هم طرح داشته باشه كه هر چند وقت يك بار مطالب سرجمع كنه و در پست اول جديدترين نسخه رو بذاره هر كس هم خواست آخرين ويرايش پيدا كنه همون پست اول نگاه كن و پنجاه تا نمونه كه هر كدوم يك كارو مي كنه نباشه و يك فايل PDF از آموزش ها تو همون پست باشه
مثلاً تو همين تالار يكي از دوستان سورس يك انجمن ساز كه خودش زحمتش كشيده بود گذاشته بود اما داكيومنتش فقط توضيح بخش هاي مختلف بود و از آموزش خبري نبود
اين هم اگر دسته جمعي باشه نه روكسي فشار مي آيد و هم بالاخري از تجربه همه استفاده مي شه



شما اگر افراد خاصی رو سراغ دارید هماهنگ کنید , بهشون اطلاع بدید تا بتونیم یه تیم برای انجام پیشنهاتون تشکیل بدیم .

من خودم موافقم و در هر قسمت که بخواین میتونم کمک کنم .

شما لطف کنید ابتدا پست هایی که برای انجام این کار لازمه رو تعیین کنید که بعد افراد مورد نیاز در هر پست رو تعیین کنیم.

ضمنا یک نمونه برنامه با روشی دیگر پیاده کردم اجازه بدید اون رو هم آپلود کنم هر کدوم بهتر بود شروع به گسترش میدهیم.

احمد سامعی
پنج شنبه 17 اردیبهشت 1388, 14:35 عصر
من دو سه ماه پيش يك پيشنهاد واسه اين كار تو تالار HTML دادم دوتا از دوستان هم اعلام آمادگي كردند اما مثل هميشه مشلات اجازه راه انداختن آموزش نداد اما بهر حال مي شه شروع كرد (دير و زود داره ....)
من بايد اون موارد كه اونجا پيشنهاد داده بودند سرجمع كنم و دوباره بهشون اطلاع بدم ببينم وقت دارن بعد پيشنهادها رو مي دم

liliyan87
جمعه 18 اردیبهشت 1388, 19:34 عصر
سلام

دوست عزیز

مشکلاتی با آن مواجه شدید را اشاره بفرمائید تا بتوانم بهتر راهنمایی کنم .

این برنامه در محیط visual studio 2008 نوشته شده و دیتابیس آن sqlserver 2005 میباشد.

برای ارتباط برنامه با بانک اطلاعاتی باید connection string را در فایل web.config تنظیم کنید تا این امکان برقرار شود . روش تعریف آن هم بدین صورت است که شما باید ابتدا connection string خود را ابتدا باید با ید بسازید. در پست 3 میتونید توضیحات رو بخونید (http://www.barnamenevis.org/forum/showpost.php?p=705144&postcount=3)


به خاطر توجهتون ممنونم نتونستم براتون پیام بفرستم سایت اجازه نمیداد بی دقتی از خودم بود آخه visual studio 2005نصب دارم

kiosksoft
سه شنبه 26 خرداد 1388, 19:47 عصر
من یه طراح سه بعدیم


دوست عزیز

اگر براتون امکان داره برای همین نمونه برنامه یک طراحی اصولی انجام دهید تصاویری که در آن استفاده شده است رو دوباره با استفاده از حرفه خودتان دوباره بازسازی و یا یک نمونه جدید بسازید و نمونه آنرا اینجا بزارید.

hobab-theme
یک شنبه 07 تیر 1388, 03:15 صبح
در ابتدا از تمام عزیزانی که پروژه های خودشون رو در طبق اخلاص در معرض استفاده عموم قرار دادند بسیار سپاسگزارم
دوست عزیز شما در پستی فرمودید

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

در این نمونه برنامه نحوه استفاده و نگهداری ConnectionString بصورت کد شده رو با استفاده
از کلاس های Cryptography خود دات نت آوردم. در کلاس Security دو تابع هستند که
اطلاعات رو کد و دیکد میکنند . ورودی توابع یک رشته از اطلاعات و Password ی که باید بر
اساس آن عمل کدینگ یا دیکدینگ انجام شود آورده شده است.

در asp.net2 امکانی وجود داره که رشته های اتصال رو در فایل پیکربندی برنامه کد کنیم و این عمل به اصطلاح پنهان سازی رشته اتصال نامیده میشه
میخوام بدونم با توجه به اینکه ماشاالله شما خودتون یه نفوذگرید و به اطلاع دارید این روش مناسب هست ؟
به طور قطع امنیتش از روشهای معمول بهتره . ولی میخوام بدونم این امنیت از نظر شما چقدر بیشتره؟
اگه بنا به انتیاز دادن به این روش باشه شما امتیازش رو چند در نظر می گیرید ؟
با تشکر

bahman_akbarzadeh
یک شنبه 07 تیر 1388, 04:23 صبح
سلام
از پروژه خوبتون ممنونم و اينكه صميمانه تمامي تجربيات كاريتون رو يكجا براي بقيه ميزارين تا استفاده كنن.
جاي تعريف زياد داره. بايد بگم از بخش كد كردن كانكشن استرينگ خيلي خوشم اومد.

مشكلاتي كه به چشمم اومد اينا هستن (ببخشيد كه فقط مشكلات رو ميگم :چشمک:) :
اول اينكه استفاده از Ajax خيلي خوبه، ولي در مورد سايت هاي كوچيك، نمي ارزه. چون با كوچكترين استفاده از Microsoft Ajax حدود 400 الي 500 كيلو بايت به حجم صفحه اضافه ميشه كه با فشرده سازي هم نمي شه كاريش كرد. پيشنهاد من استفاده از جاوا اسكريپته، كه يكم كد نويسي رو بيشتر ميكنه، ولي با ساختار بندي، اين مشكل هم رفع ميشه.
مشكل دوم در مورد كده.
اول اينكه ساختار يه خورده پيچيده هستش و فهميدن و باگ گيري ازش يكم مشكله.
دومين مشكل اينه كه كد هاي اضافي زياد داره. مثلا در توابع انجام اصلاحات روي ركورد ها، اعمال اتصال به ديتابيس هم گنجونده شده و در اين ساختار اگر موجوديت ديگه اي هم اضافه بشه، بازم اين كد ها تكرار ميشن، در صورتي كه همشون يكي هستن و اين ساختار، مشكل دوگانگي كد رو بوجود مياره.
اين مشكل منجر به اين ميشه كه اگر يك جاي اين اتصالات رو بخواين عوض كنين، بايد به تمامي قسمت هاي پروژه سر بزنيد و كپي پيست انجام بدين.
در مورد اينتر فيس هم بايد بگم يكم شلوغه و از آيكن هاي غير معمول استفاده شده.
عمل حذف ركورد هم در 2 مرحله انجام ميشه. (بهتره مثل آيكون اديت، از آيكون حذف هم در هر ركورد استفاده بشه)

بازم شرمنده كه فقط اشكالات رو گفتم (البته اينها فقط از نظر من اشكال هستن و شايد بقيه باهاش مشكلي نداشته باشن).

bahman_akbarzadeh
یک شنبه 07 تیر 1388, 04:33 صبح
در مورد ساختاري كه من تو پروژه هام بهش رسيدم يكم توضيح ميدم، شايد به درد كسي بخوره.
من يه كلاس كانكشن نوشتم و ازش تو تمام پروژه هام استفاده ميكنم.
اين كلاسع يه سري تابع از نوع Protected داره كه اعمال مشابه رو روي ديتابيس انجام ميده. مثلا توابع RunCommand و RunProcedure كارهاي عملياتي رو انجام ميدن و توابع SelectCommand و Select Procedure اطلاعات رو در يك ديتاست بر مي گردونن. (و يه سري تابع ديگه)
در مرحله دوم، ميام به ازاي هر كدوم از موجوديت هاي ديتابيسم، يه كلاس درست ميكنم با توابعي كه 5 كار اصلي رو هميشه انجام ميدن. (Add, Insert, Delete, Select, SelectAll)
اين كلاس ها از كلاس كانكشن ارث ميبرن و در داخل توابعشون از توابع كلاس پدر استفاده ميكنن.
در ضمن، اعمال كنترلي بر روي داده ها داخل توابع مربوطه و SP هاي ديتابيس انجام ميشه و در نهايت اين كلاس ها به برنامه نويس داده ميشه تا ارتباطش رو با اينترفيس برقرار كنه.

hp1361
سه شنبه 23 تیر 1388, 15:38 عصر
سلام

آقا ما توی این کانکشن استرینگش بد جوری گیر کردیم ! میشه با مثال توضیح بدین؟

ممنون

kiosksoft
شنبه 03 مرداد 1388, 15:31 عصر
سلام

آقا ما توی این کانکشن استرینگش بد جوری گیر کردیم ! میشه با مثال توضیح بدین؟

ممنون

دوست عزیز , ببخشید اگه دیر جواب دادم

در پست های اولی در مورد Connection String بحث کردیم , گفتیم که اگر بصورت یک رشته قابل فهم در Web.Config قرار دهیم جالب نیست و در صورت دسترسی به سرور دیتابیس کامل در اختیار بقیه قرار میگیرد . برای جلوگیری از این رخداد , پیشنهاد کردیم که رشته Connection String بصورت کد شده در Web.config قرار گیرد و هنگام استفاده از آن در برنامه آنرا دیکد کنیم .

برای کد آن باید از این برنامه استفاده کنیم : http://barnamenevis.org/forum/attachment.php?attachmentid=29948&d=1239691547

برنامه هنگام استفاده رشته کانکشن را دیکد میکند طوری که قابل فهم باشد.

مثلا :

data source=server1;user id=sa;password=1 = o4jbAb0w7yaLPy0R3gVwMhWArjbIFXpIWNnPq3WGxLSxTpKJx7 Fc4rOqfomZ487a

در واقع این رشته در Web.config قرار میگیرد :
o4jbAb0w7yaLPy0R3gVwMhWArjbIFXpIWNnPq3WGxLSxTpKJx7 Fc4rOqfomZ487a

هنگام استفاده از آن توسط برنامه به رشته ذیل تبدیل میشود :

data source=server1;user id=sa;password=1

http://barnamenevis.org/forum/attachment.php?attachmentid=33903&stc=1&d=1248517866

hp1361
شنبه 03 مرداد 1388, 16:22 عصر
سلام

ممنون که جواب دادید

من برنامه شما رو در پوشه زیر ریختم



E:\Documents\Visual Studio 2008\WebSites\WebAppSample_ByA.Moradi


و برنامه رو باز کردم . در قسمت Server Explorer یه کانکشن هست که پروپرتیسش اینه



Data Source=.\SQLEXPRESS;AttachDbFilename="E:\Documents\Visual Studio 2008\WebSites\WebAppSample_ByA.Moradi\App_Data\Tes tDB_ByMoradi.mdf";Integrated Security=True;User Instance=True


من با برنامه شما دیکدش کردم شد این



RG0ZUB+l3X+vIBPJuqjpy9hr2ZLGRSSJN/3x7fOlYtpyWhv84xOZdAS1JpRPu/Jkl5Z7Vy9+8j/O2JT2Le1KGznPqhf6EkswpPcMSga2GVz3+3FK2yBxyYhe8FiHb jw2Hr7M48rqdBtcnoi4gsKq2XkC537AHvg4osUYiJVXRzbvxoc GQzKTW8ti/PyLSUeVKBLIOmH+XltmokBUEkqA4GyNjcy/BTRyXbdBi/DbE7EaSUk1dUhU3A==

و در کانکشن استرینگ گذاشتم . اما ارور زیر رو زمان اجرا میده


Failed to generate a user instance of SQL Server due to a failure in starting the process for the user instance. The connection will be closed.


ضمن اینکه در زمان طراحی هم اگه بخواهم کانکشن رو ویرایش کنم و در پنجره باز شده تست کانکن رو بزنم باز هم ارور بالا رو میده .

با تشکر

منتظرم

kiosksoft
شنبه 03 مرداد 1388, 16:58 عصر
دوست عزیز

نحوه کدینگ شما درست میباشد. شما اگر sqlserver 2005 روی سیستمتون نصب هستش ,دیتابیس رو Attach کنید. سپس مجددا استفاده کنید. در غیر اینصورت

قسمت User Instance=True رو هم حذف کنید. از گذاشتن کوتیشن برای مسیر دیتابیس خودداری کنید .

من با این روش تست کردم جواب گرفتم :


Data Source=SERVER1\SQLEXPRESS;AttachDbFilename=F:\Inet pub\wwwroot\WebAppSample_ByA.Moradi\App_Data\TestD B_ByMoradi.mdf;Integrated Security=True


RG0ZUB+l3X+3s2Cxu7/h2ArZ4eQD8ffd7kPECaz0nHqw5SlQ9dHX4dTBNXAyR+VtF3JIX HhTPgg6wTQ4MaibGR6NrA49aXACAOxKGrw8MXa8SKH4K4R3gbG VtWAot/g2bN27oWlRvsNFWeuY7oCJ0l3NV4Blma38efba1SOE6DPVdUBD J0/nvla+IzqSXcWx4vM6EAxSyfE=

grs1982
پنج شنبه 04 خرداد 1391, 04:39 صبح
فقط یک کلام میگم . خدایی دمت گم . کارت درسته :تشویق::تشویق::تشویق::تشویق:: شویق::تشویق::تشویق:

sasanrstm
پنج شنبه 04 خرداد 1391, 14:58 عصر
سلام دوست گرامي ممنون بابت زحمتي كه ميكشي اما منم هم نتوستم ار كد كردن كانكشن استفاده كنم كانكشن استرينگو كد كردم گذاشتم جاي كانكشن استرينك در وب كانفيگ اما خطاي اتصال به ديتابيس رو داد درست به همو ن روشي كه گفتين بازم ممنون ميشم يه توضيح كامل بدين بدون كد كردن برنامم درست كار ميكنه فقط وقتي كانكشون و كد ميكنم خطاي اتصال به ديتابيس و ميده

میلاد رئیسی
پنج شنبه 25 خرداد 1391, 11:27 صبح
این دیگه چیه !!!!