# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > ASP.NET Web Forms > مقاله: جمع آوری و ارائه ایده های جدید,نکات  پیاده سازی نرم افزار های تحت وب,خلاقیت ها ,اینترفیس های متنوع

## kiosksoft

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

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

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 را تغییر دهید.* برای کد کردن آن از این برنامه استفاده کنید* 


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



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

----------


## KavoshGar_ir

آفرین و متشکر بدلیل این عمل خداپسندانه!

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

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

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

مرسی.

----------


## kiosksoft

> آفرین و متشکر بدلیل این عمل خداپسندانه!


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




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


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




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


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

using System;
using System.Configuration;





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


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

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

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

----------


## salehbagheri

سلام دوستان!

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

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

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

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


با تشکر!

----------


## ohh_mid

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

----------


## kiosksoft

جناب salehbagheri 




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


 کار بزرگی انجام دادید.




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


 جالب بود.




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


 هدف یادگیری نکات مثبت و ارائه ایده ها




> سطح: مبتدي مايل به متوسط!


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

----------


## kiosksoft

دوستان, میتوانید برنامه رو بصورت آنلاین از آدرس ذیل اجرا کنید.

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

----------


## jikjik87

سلام

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

----------


## iroonidotnet

دلم نیومد که فقط بر روی تشکر کلیک کنم . واقعا ممنون . از صمیم قلب برای شما آرزوی موفقیت می کنم. 

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

----------


## salehbagheri

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


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

----------


## kiosksoft

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


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

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

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

 
اما در مورد آیکون های   , آیکون اول که دستور انجام عمل جستجو را صادر میکند و آیکون دوم دستور دستور جستجو را لغو میکند , کلیه داده ها نمایش میدهد و پنل جستجو را حذف میکند.

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

موفق باشید

----------


## iroonidotnet

منظورم این بود که سرعت کار با این نمونه یکم پایین هست . یعنی یکم سنگین به نظر میرسه . شاید من اشتباه کنم.

----------


## amirjalili

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

----------


## kiosksoft

> منظورم این بود که سرعت کار با این نمونه یکم پایین هست . یعنی یکم سنگین به نظر میرسه . شاید من اشتباه کنم.


دوست عزیز

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

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

----------


## kiosksoft

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


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


بنده موافقم.

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

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

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

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

----------


## liliyan87

سلام خیلی لطف کردین ولی میشه درباره اجرا کردنش بیشتر توضیح بدین من نتونستم اجراش کنم :ناراحت:

----------


## kiosksoft

> سلام خیلی لطف کردین ولی میشه درباره اجرا کردنش بیشتر توضیح بدین من نتونستم اجراش کنم


سلام

دوست عزیز

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

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

برای ارتباط برنامه با بانک اطلاعاتی باید connection string را در فایل web.config تنظیم کنید تا این امکان برقرار شود . روش تعریف آن هم بدین صورت است که شما باید ابتدا connection string خود را ابتدا باید با ید بسازید. در پست 3 میتونید توضیحات رو بخونید

----------


## احمد سامعی

> مشکلاتی با آن مواجه شدید را اشاره بفرمائید تا بتوانم بهتر راهنمایی کنم .
>  [/URL]


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

----------


## Neo Persian

> منظورم این بود که سرعت کار با این نمونه یکم پایین هست . یعنی یکم سنگین به نظر میرسه . شاید من اشتباه کنم.


اتفاقا سرعتش بالاست!

----------


## kiosksoft

دوست من




> . معمولاً بعد يك مدت بدون به نتيجه نهايي رها مي شه


 کمک کنید که به نتیجه مطلوبی برسونیم.




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


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

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

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

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

----------


## احمد سامعی

من دو سه ماه پيش يك پيشنهاد واسه اين كار تو تالار HTML دادم دوتا از دوستان هم اعلام آمادگي كردند اما مثل هميشه مشلات اجازه راه انداختن آموزش نداد اما بهر حال مي شه  شروع كرد (دير و زود داره ....)
من بايد اون موارد كه اونجا پيشنهاد داده بودند سرجمع كنم و دوباره بهشون اطلاع بدم ببينم وقت دارن بعد پيشنهادها رو مي دم

----------


## liliyan87

> سلام
> 
> دوست عزیز
> 
>  مشکلاتی با آن مواجه شدید را اشاره بفرمائید تا بتوانم بهتر راهنمایی کنم .
> 
> این برنامه در محیط visual studio 2008 نوشته شده و دیتابیس آن sqlserver 2005 میباشد.
> 
> برای ارتباط برنامه با بانک اطلاعاتی باید connection string را در فایل web.config تنظیم کنید تا این امکان برقرار شود . روش تعریف آن هم بدین صورت است که شما باید ابتدا connection string خود را ابتدا باید با ید بسازید. در پست 3 میتونید توضیحات رو بخونید



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

----------


## kiosksoft

> من یه طراح سه بعدیم


دوست عزیز

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

----------


## hobab-theme

در ابتدا از تمام عزیزانی که پروژه های خودشون رو در طبق اخلاص در معرض استفاده عموم قرار دادند بسیار سپاسگزارم
دوست عزیز شما در پستی فرمودید



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


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

----------


## bahman_akbarzadeh

سلام
از پروژه خوبتون ممنونم و اينكه صميمانه تمامي تجربيات كاريتون رو يكجا براي بقيه ميزارين تا استفاده كنن.
جاي تعريف زياد داره. بايد بگم از بخش كد كردن كانكشن استرينگ خيلي خوشم اومد.

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

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

----------


## bahman_akbarzadeh

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

----------


## hp1361

سلام

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

ممنون

----------


## kiosksoft

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


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

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

برای کد آن باید از این برنامه استفاده کنیم : https://barnamenevis.org/attach...8&d=1239691547

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

مثلا : 

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

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

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

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

----------


## hp1361

سلام

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

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


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

دوست عزیز

نحوه کدینگ شما درست میباشد. شما اگر 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

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

----------


## sasanrstm

سلام دوست گرامي ممنون بابت زحمتي كه ميكشي اما منم هم نتوستم ار كد كردن كانكشن استفاده كنم كانكشن استرينگو كد كردم گذاشتم جاي كانكشن استرينك در وب كانفيگ اما خطاي اتصال به  ديتابيس رو داد درست به همو ن روشي كه گفتين بازم ممنون ميشم يه توضيح كامل بدين بدون كد كردن برنامم درست كار ميكنه فقط وقتي كانكشون و كد ميكنم خطاي اتصال به ديتابيس و ميده

----------


## میلاد رئیسی

این دیگه چیه !!!!

----------

