PDA

نسخه کامل مشاهده نسخه کامل : امنیت در asp.net دیتا بیس با xml



ebse
23-01-2011, 11:30
سلام به همه خواهرا و برادرا
می خواستم درباره سه تا چیز سوال کنم

1-آیا از فایلxmlمیتوان به جای دیتابیس استفاده کرد (در asp.net) و اگر میشه امنیتش چطوره؟

2-امنیت سایت چجوریاست منظورم اینه که چه چیزایی امنیت سایت رو به خطر میندازه اگه میشه با راه حل جواب بدید

3-یه کوچولو هم درباره webconfing توضیح بدید
شنیدم امنیت فایل ها به این قسمت مربوط میشه
اگه درسته دربارش یه خورده توضیح بدید

ممنون از همه

_H2_
24-01-2011, 22:13
سلام
امکان استفاده از xml به عنوان منبع اطلاعات وجود دارد و مثلا درحال حاضر در بیشتر نرم افزارهای معروف تحت وب ASP.Net برای گذاشتن قابلیت چند زبانی (با وجود اینکه امکان مستقلی به این منظور داریم) از فایلهای Xml استفاده میشود و هر زبان یک فایل Xml دارد که متون و پیغام ها و برچسب ها و... را در خود ذخیره کرده.
سایت یکبار (در اولین درخواست) فایل Xml را خوانده و ترجمه میکند و از آن ببعد از محتویات RAM استفاده میکند.

=====

ولی برای ذخیره مقادیر و اطلاعات و... Xml گزینه مناسبی نیست، انهم در سایت!!!!

اولاً انکه فایلهای Xml بجز پارسرهایشان هیچ پشتیبانی دیگری ندارند و مثلاً در نوشتن اطلاعات خودتان باید موارد چندریسمانی را بلد بوده و به دقت رعایت کنید، وگرنه اگر دو ریسمان همزمان بخواهند فایل را ذخیره کنند یا به خطا میخورد و یا اطلاعات اولی از بین میرود و...

دوماً سرعت انتقال اطلاعات از/به Xml بسیار کم است و هزینه Parse را به همراه دارد.

برای دیتابیس در حجم تراکنش بسیار کم شاید Access مناسب باشد (حداقل از Xml خیلی بهتر است) و در باقی موارد بهترین گزینه Sql Server است.

=====

در خصوص امنیت هم اگر فایلهای Xml و mdb شما در پوشه App_Data در ریشه سرور قرار داشته باشند، در مجموع قابل قبول است.
(((
گرچه Xml اگر بعنوان دیتابیس مدنظر شما نباشد و اطلاعات مهم به نوعی محرمانه در ان نباشد و مثلآً حاوی اطلاعات استایل و زبان و... باشد، هر جای دیگری هم باشد، مشکل امنیتی ایجاد نمیکند و مسئله ای ندارد.
)))

=====

الف)
فایل web.config فقط تنظیماتی را نگه میدارد که میتواند مشخص سازد چه افراد یا چه گروه های کاربری حق دسترسی به صفحات و مکان های سایت را دارند.
اگر فردی اجازه دسترسی نداشته باشد، خودکار او را به صفحه Login منتقل خواهد کرد.

این موارد معمولاً در بخش های authorization و authentication فایل فوق قابل تنظیم است.

مثلاً به سمپل زیر دقت کنید:
support.h02.ir/fwlink/?LinkId=1002214567

در Sample1 خواهید دید که (الی الحساب کاری به کدهایش نداشته باشید!) اجازه برای دسترسی به پوشه administrators و users تایین شده است و اگر شما بدون لوگین صفحات داخل این دو پوشه را فراخوانی کنید به فرم Login منتقل خواهید شد و البته پس از لوگین و درصورت کسب مجوز خودکار به صفحه ای میخواستید بروید (و آن زمان اجازه اش را نداشته اید) برخواهید گشت.

این چک کردن مجوز و رفت و برگشت از/به فرم لوگین را ASP.Net برایتان خودکار و با توجه به web.config انجام میدهد.


ب)
فایل web.config بجز موارد گفته شده، تنظیمات متعدد دیگری مرتبط با شیوه های رمزنگاری و اعتبارسنجی درخواست ها و ف-ل-ت-ر کردن درخواست ها براساس حجم بایتی و زمان اجرا کد و... و... و... را هم نگاه میدارد که روی موارد متعدد کارکردی سایت تاثیر خواهد گذاشت.

موفق باشید.

ebse
25-01-2011, 13:29
اگه من یه متغیر از نوع arraylist بصورت static درست کنم و اطلاعاتم
را به صورت یک object در این آرایه قرار داده و در آخر آن را ذخیره کنم
فکر کنم مشکلی نداشته باشه شاید اون قضیه چند ریسمانی هم
اگه درست فهمیده باشم چیه حل بشه

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

_H2_
28-01-2011, 13:13
سلام
مشکل چند ریسمانی قابل حل است ولی واقعاً استفاده از xml به عنوان دیتابیس از نظر بازدهی غیر قابل تصور است...

حالا بفرض هاست شما SqlServer را پشتیبانی نکند (که معمولاً با مبلغی بالاتر این کار را انجام میدهند) حداقل چرا از Access استفاده نمیکنید؟

مشکلتان چیست؟ شما هدف نهایی، سایتی که میخواهید بسازید و مشکلتان را بیان کنید تا بتوان بهتر راهنمایی کرد.
اگر زمانی هم بخواهید دیتای XML ای داشته باشید، میتوانید در همان لحظه و برای همان کار خاص بخش مشخصی از اطلاعات را به فرمت دلخواه به XML تبدیل کنید. (مثل تولید Runtime برای RSS در سایتها و...)

بحرحال و در نهایت استفاده از XML به عنوان نوعی دیتابیس کوچک و ReadOnly از نظر من منطقی است (مثل نگه داری تنظیمات زبان و استایل و...) ولی استفاده از ان بعنوان دیتابیس اصلی برای ذخیره محتویات (مثل مطالب مندرج از طرف اعضا و پیام ها و اخبار و...) بنابر تجریبیات من منطق و توجیحی فنی ندارد.

موفق باشید.

ebse
07-02-2011, 14:34
سلام
من شنیدم که میگن بهترین دیتابیس برای سایتها و نرم افزار ها Xml هست . البته یه نرم افزاری رو هم دیدم که با xml کار میکرد . این نرم افزار در مدت زمانی خاصی به صورت Random یک پیام مثلا یه حدیث یا شعر که در دیتا بیس بود رو نمایش می داد . و قسمتی داشت که میشد ژیام بهش اضافه کرد .
در ضمن من خیلی با دیتا بیس ها وارد نیستم و اتفاقی Xml آشنا شدم . البته دنبال Sql هم رفتم نه اینکه نرفتم ولی هیچی ازش نفهمیدم. در این باره هم اگه کمکم کنید ممنون میشم
مر30

_H2_
08-02-2011, 02:17
سلام
همانطور که قبلاً هم گفتم ...
XML فایل بانک اطلاعاتی نیست، XML برای مواردی که حجم اطلاعات کم و عموماً اطلاعات ReadOnly است، مناسب است.

بعنوان مثال ...
برای همان ذخیره استایل و زبان و... در برنامه دسکتاپی و وبی.
در یک برنامه ذخیره دفتر تلفن دسکتاپی!
همین موردی که گفتید که سایت از بین چند جمله آماده یکی را به رندم انتخاب کند.
و...

برای 10 سطر و 100 سطر و 1000 سطر و فوق فوقش خیلی دست بالا ببینیم 10000 سطر خوب است ولی استفاده از XML برای ذخیره همه اطلاعات یک سایت یا برنامه کامل، بیشتر به طنز و جوک برنماه نویسی شبیه است!!!

مثلاً در یک تالار گفتگو (مثل همین که الآن در مرز 6 میلیون پست دارد) یا یک سایت خبری یا فروشگاه اینترنتی و... و... و تقریباً هر برنامه درست و حسابی که حجم اطلاعات زیادی داشته باشد، استفاده از XML غیر ممکن است.

=====

مثالی از یک مورد اشکال:
اگر برنامه شما بخواهد اطلاعاتی را از یک XML بخواند، یا باید کل ان را در RAM ریخته باشد یا باید کل فایل را از اول بخواند تا به ان دیتای مورد نظر برسد.
مثل اگر فایل XML ای داشته باشید که 500MB باشد!!!! (خودم باور نمیشود همچین چیزی را میگویم!)
500MB برای دیتابیس های رابطه ای مثل SQL Server و Oracle و MySQL و Postgre و... یک عددد کوچیک و ناقابل است.
ولی فکر به ان هم برای XML در ذهنم نمیگنجد!

برای خواندن همچین اطلاعاتی در XML برنامه شما یا باید کل ان را در RAM بریزد که این یعنی مصرف 500MB از RAM!!!
اغلب وب سایتهایی روی سرورهای Share شده هستند فقط حق استفاده چند ده مگ RAM دارند!
خیلی از سرورهای مجازی و اختصاصی هم 256 تا 1G حافظه دارند.
حتی در رایانه شخصی هم یک برنامه تک نمیتواند همچین حافظه ای را از سیستم عامل درخواست کند.
پس خود سیستم عامل و سایر برنامه ها چه کنند؟!!!

یا باید از اول 500M شروع کنید فایل را بخوانید (آنهم با Parse متنی که عملیاتی کند است!) تا مثلاً پس از Parse کردن 400M اطلاعاتتتان را پیدا کنید!!!
این عمل اگر بخواهد برای هر موردی تکرار شود، باید یک دست لحاف و دشک هم به مشتری های برنامه یا ساییتان بدهید تا در استفاده از برنامه شما راحت باشند!!!!

=====

این فقط یک مثال بچه گانه و یک مورد کوچک مشکل بود ...
من فرصت توضیح ندارم ورگنه تا صفحات متعدد میتوانستم برایتان مشکل بیان کنم ....
ولی بانک های اطلاعاتی دیتابیسی رابطه ای برای پوشش این وضعیت های سنگین ایجاد شدند.
قول هایی مثل SQL Server و Oracle یا همین MySQL و...

=====

نتیجه:
اگر با عدد و رقم کارتان راه میافتد، بنظر شخصی من استفاده از XML هایی با حجم کمتر از 1MB در جای خودش و با حصول شرایط خوب است ولی بیشتر از ان مجاز نیست.
(حال شاید فرد دیگری این عدد 1MB را بگوید 100KB و یکی بگوید 10MB ولی یقیناً کسی 100MB نخواهد گفت!)

یا به صورت سطر اطلاعات، اطلاعاتی در حد فوقش چند هزار سطر ...

=====

تبادل اطلاعات بین برنامه های مختلف از زبان و پلتفرم مختلف:
راه نگه داری اطلاعات کامل و حجیم همان دیتابیس رابطه ای است ولی برنامه شما میتواند در مواردی و برای بخش کوچکی از اطلاعات و به منظور تعامل با سایر برنامه ها خودش XML را همان لحظه تولید کند و ارائه بدهید.

مثلاً برنامه تالار گفتگو شما مطالب و تاپیک و پست ها را در دیتابیس نگاه میدارد (در اینکه شکی نیست) ولی برنامه تان میتواند قابلیتی داشته باشد که فقط مطالب 24 ساعت گذشته را در قالب XML و مثلاً با نام RSS (که شاید در سایتها دیده باشید) برای تعامل با سایر برنامه به کاربرانش ارائه دهد.
این کار روی حجم بسیار کوچک و محدود شده ای از اطلاعات و به منظور تعامل و بده و بستان با سایر برنامه ها استفاده میشود و برنامه میتواند از یک بخش بسیار کوچک شده ای از دیتابیس خودش خودکار این فایل XML (مثلاً RSS) را تولید و عرضه کند.

=====

موفق باشید.

ebse
08-02-2011, 10:36
سلام
واقعا ممنون اصلا حواسم به این حجمی که در رم اشغال میکنه نبود
خیلی لطف کردید حالا یه سوال کوچیک کدام یک از دیتا بیس ها امنیت قدرت و... بیشتری داره
اینم بگم من بخاطر این Xml رو میگفتم چون با اکسس خواستم یه بر نامه درست کنم . (منظورم دیتابیسشه )
یه رشته رو می خواستم وارد کنم (به صورت پیش فرض) از فکر کنم 100 یا کمتر یا بیشتر کاراکتر در هر فیلد از نوع string اش
نمی شد وارد کنی این دلیل اصلیه انتخاب Xml بود . لطفا بگید که بقیه دیتا بیسها این مشکل رو دارند یا نه
و بهترینش رو از نظر خودتون انتخاب کنید تا من برم دنبالش و یاد بگیرم
ممنون

_H2_
09-02-2011, 00:41
سلام

... از فکر کنم 100 یا کمتر یا بیشتر کاراکتر در هر فیلد از نوع string اش نمی شد ...
Access شاید نمونه ضعیف ترین دیتابیس رابطه ای موجود باشد ولی باز هم از نظر بازدهی و برای ذخیره اطلاعات متنوع با هم زیادتر از XML بهتر است.
شاید Access ضعیف باشد، ولی مشکلی که بیان کردید بدون شک از عدم اطلاع شما و عدم انجام صحیح این کار بود.
در Access به راحتی میتوان متن هایی یا حد 255 حرف را در فیلدهای Text و متن هایی تا حد زیر 2 میلیارد را در فیلدهای Memo ذخیره کرد.
((البته درست است که هر فیلد میتواند 2 میلیارد را جا دهد ولی کل دیتابیس نهایی و فایل نهایی mdb تان هم نباید از 2GB بیشتر شود.))

(همین چند روز قبل در تاپیک دیگری گفته بودم که) برای دیدن فهرست محدودیت های Access (تعداد فیلد و جدول و حجم فایل و... و...) دوستان میتوانند در بخش Help اش (Help خود Access2007/2010) عبارت "Access 20XX specification" را جستجو کنند.


... بهترینش رو از نظر خودتون انتخاب کنید ...
برای تحت ویندوز و به طور خاص محیط های برنامه نویسی مثل ASP و یا ASP.Net بدون شک قدرتمندترین و بهترین گزینه MS SQL Server است.

برای تحت لینوکس و به طور خاص محیط های برنامه نویسی مثل PHP شاید قدرتمندترین گزینه Oracle باشد و بهترین گزینه MySQL است.
( MySQL را تقریباً همه هاست ها پشتیبانی میکنند ولی Oracle را هیچ هاستینگی همینطوری ندارد و خود فرد باید برود بخرد و... و یکسری دردسر دیگر ...)

=====

با توجه به اینکه در پست اول از ASP.Net نام بردید، بهترین پیشنهاد استفاده از دیتابیس MS SQL Server 2005 است.
SQL Server 2008 هم داریم و بهتر هم است ولی شرکت های هاستینگ با مبالغ بالاتری SQL Server 2008 را عرضه میکنند (که ناشی از لایسنز گران تر مایکروسافت است).

به جهت کاهش هزینه و اینکه چه هاست SQL Server 2005 و چه SQL Server 2008 را داشت، باز هم برنامه شما بتواند کار کند، بهتر است شما از امکانات جدید MSSQL2008 استفاده نکنید و برنامه تان را با MSSQL2005 ببندید.
( گرچه باز هم هاست های کلاً بدون SQL Server ارزان تر هستند ولی دیگر کاری نمیتوان کرد و داشتن MSSQL2005 دیگر حداقل لازم برای راه اندازی ASP.Net است. )

توضیحات تکمیلی MS SQL Server 2005/2008:
- به راحتی در فیلدهایی خاصی میتواند تا 2GB اطلاعات باینری یا متنی را قرار دهید.
مثلاً به راحتی میتوانید فایلهای jpg و zip و... را هم در دیتابیس تان و در یک فیلد خاص ذخیره کنید. (برای سرورهای Share اصلاً توسیه نمیشود)

- حجم دیتابیس نهایی میتواند تا بیش از 500,000TB باشد (یعنی نیم میلیون عدد هارد 1TB !) که این حجم را میتواند در داخل چندین رایانه و چندین فایل هم قرار داده و مدیریت کند و هر فایل میتواند تا 16TB شود.
( یعنی امکان ذخیره اطلاعات را در چندین فایل و چندرین رایانه دارد که در نحوه استفاده در زبان های برنامه نویسی هیچ تفاوتی ایجاد نمیکند! )

- دستورات T-SQL این بانک اطلاعاتی در درون خود بانک امکان Parse و یا تولید XML را دارد

- در دستورات T-SQL این بانک میتوانید از دستورات IF و WHILE و CASE و... استفاده کنید و زبان SQL بسیار پیشرفته و کاملی دارد.

- سرویس های متنوع با امکانات جالب در دسترس است از جمله FullTextSearch یا Notify و Broker و... و...

و...
و...
و...

از حوصله توضیح من و خواندن شما خارج است.
پیشنهاد میکنم حتماً کتاب SQL Server 2008 یا حداقل 2005 ای تهیه کنید و ضمن آشنایی با سینتکس اصلی T-SQL حداقل حداقل حتماً با مفاهیمی View و StoredProcedure و Function و Trigger و CURSOR و Index و... آشنا شوید و بدانید چه هستند و چه طور استفاده میشوند و چه قابلیت هایی دارند.

(((
مجدد لازم به ذکر است که سرور های Share که معمولاً ارزان بوده و از طرف هاستینگ ها عرضه میشوند، عموماً محدودیت های بسیار دارند، مثلاً اغلب FullTextSreach خاموش است یا خیلی فضای MSSQL دهند 500MB میدهند.
که باید قبل از خرید حتماً از هاستینگ تان در مورد حجم بایتی دیتابیس MSSQL که میتوانید بسیازید سوال کنید.
به همین دلیل و برای آنکه هر کسی بتواند از برنامه ASP.Net شما روی سایتش (با حداقل شرایط قیمیت) استفاده کند، پیشنهاد میشوند که فایل تصویر و zip و... را در دیتابیس ذخیره نکنید.

ولی اگر سرورشما VPS یا Dedicate باشد (که عموماً گران تر هستند) دستتان باز است و خیلی از محدودیت ها وجود ندارد.
)))

موفق باشید.

ebse
09-02-2011, 12:45
سلام
ممنون اگه میشه لینک آموزشی برای Sql Server 2005 رو برام بزارید
بازم ممنون

_H2_
12-02-2011, 00:33
سلام
چند pdf اینگلیسی دارم، ولی pdf فارسی ندارم ...

البته برای انگلیسی SQL Server Books Online بهترین مرجع است که همراه نسخه های غیر رایگان SQL Server قابل نصب است.

برای فارسی، که از کتابهایی که من دارم یا از کتابخانه گرفتمو... بهترینش SQL Server کانون نشر علوم بوده.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
nashreoloom.com/ShowBooks.aspx?id=197

نمیتوان گفت کامل است، ولی میتوان گفت از سایر کتابها خیلی کامل تر و مفصل تر است.

موفق باشید.

Guts
21-02-2011, 00:49
صحبت‌های دوستمون H2 تا حدودی درسته برای دیتاهای حجیم ساختار XML ساختار مناسبی نیست، ولی اینکه بگی XML اصلاً برای نگه داری دیتا مناسب نیست اشتباهه، در موارد خاصی از XML به عنوان پایگاه داده استفاده میشه البته درسته زمان جستجو، خوندن و یا ذخیره‌ي داده خاص روی فایل XML شاید بیشتر از دیتابیس باشه دلیلشم اینه که فایلهای در قالب XML معمولاً به صورت خط به خط Parse و Tokenize میشن و مثل انجین‌های دیتابیس‌های مختلف الگوریتم‌های خاصی برای جستجو یا ایندکس‌گذاری اطلاعات وجود نداره با این حال از اون جایی که خاصیت XML منطق‌پذیر بودن و امکان اختصاصی‌سازیش هست در خیلی از ابزارهای خاص منظوره به خاطر منطق‌های پیچیده‌ای که روی دیتا میزارن استفاده از پایگاه‌های داده‌ی رابطه‌ای معمولاً غیر ممکنه یا خیلی سخت هست، از طرف دیگه ساختار XML بشدت ساده و روون هست که اینم یکی دیگه از مزایاش هست که تو پیاده‌سازی‌های پیچیده‌ی منطق روی داده‌ها فوق‌العاده کارا هست.
من خودم تجربه‌ی کار کردن در مورد یک نمونه از همچین مواردی رو که پروژه‌ی هوش‌مصنوعی در مورد پیاده‌سازی یک Chatbot بود دارم که اونجا دیتا و اطلاعات با منطق یا فرمت خاصی در قالب زبونی به اسم AIML در فایل‌های XML ذخیره میشن، و تا 70-80 هزارتا رکورد XML هم که من کار میکردم بدون هیچ مشکلی و افت پرفرمنسی دیتا ذخیره یا بازیابی میشد.

ebse
05-03-2011, 12:00
ممنون از نظرات هر دوی شما
یه سوال
حالا گذشته از اینکه بله دیتابیس های هستن بعضیا بهتر بعضیا بد تر و همه اینا رو می دونم ok ؟
حالا می خوام یه فایلی درست کنم به عنوان دیتا بیس اما نه با هیچ کدوم از برنامه هایی که کار دیتا بیس رو انجام میدن . خودم یه فایلی درست کنم یه پسوندی مثل xxx براش در نظر بگیرمو واسه این فایل یه کلاس درست کنم
1-افزودن یک رکورد
2-حذف یک رکورد
3-ویرایش رکورد

4-افزودن فیلد ( شرایطی باشه که تحت اون شرایط فیلد اضافه یا حذف شود)
5-حذف یک فیلد
6-ویرایش یک فیلد
و
.
.
.
که البته مثل xml زیاد فضا اشغال نمیکنه و داخلش از آدرس هایی استفاده می کن که فوق فوقش 1 مگابایت در رم اونم برای کل صفحات بگیره . بنظرتون این خوبه یا نه؟ تازه اطلاعات داخلش رو هم رمز گذاری می کنم تا امنیتش بیشتر بشه . . اصلا هم نمی خوام حتما server ساپورتش کنه خودم دیگه به وسیله اون کلاس و کلاس های دیگه ای که براش تعیین می کنم هر چی رو که بخوام می تونم داخلش بنویسم ازش خذف کنم ویرایشش کنم و . . . . من خیلی رو این فکر کردم کلاس هم واسش نوشتم ولی گفتم احتمالا فکر بی خودی باشه همش رو با فکر کنم حذف کردم .
با این همه فکری که کردم بازم می تونم بنویسمش فقط می خوام بدونم فکر کردن روی این موضوع فقط وقت تلف کردنه یا اینکه میشه یه کارایی هم کرد
منتظر جوابم
ممنون و موفق باشید

_H2_
18-03-2011, 12:03
سلام
میبخشید کمی مشکلات شب عیدی داشتم و دیر شد ...
دید اول:
طبیعتاً شما میتوانید خودتان فایلی ایجاد کنید و اطلاعات را در آن ذخیره کنید و این میان جریان انتقال اطلاعات را مدیریت کنید.
این کار شاید برای آموزش و آشنایی با مباحث "ساختمان داده ها" و "ساختار فایل" جالب باشد و کار تحقیقاتی خوبی به شمار آید و مخصوصاً که هدف مثلاً انجام پروژه تحقیقاتی در دانشگاه باشد.

=====

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

=====

از منظر عملی و برنامه نویسی واقعی موردی که میخواهید انجام دهید کار جالب توجهی نیست.
الآن برنامه های زیادی هستند که توانایی ارتباط و انتقال داده را به بانک های اطلاعاتی رایج مثل Access و MySQL و SQLServer و Oracle و... دارند...
افرادی که اطلاعات برنامه نویسی هم ندارند با کمکی جستجو میتوانند فایلهای این دیتابیس ها را در محیط های مخصوص ادیتوریشان باز کنند و در صورت نیالز ویرایش کنند، میتوانند خروجی با فرمت های دیگری از بخشی دیتابیس شان تهیه کنند و یا از سایر نرم افزارها برای استفاده مشترک از این دیتابیس استفاده کنند و مثلاً از برنامه های MailMerge برای چاپ یا ارسال نامه های سفارشی برای اعضایشان که مشخصاتشان در این دیتابیس ها قرار دارد استفاده کنند و...

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

=====

اگر هم جستجویی روی برنامه های آماده و موجود سایتها بیاندازید متوجه میشوید که اکثر سایتهای PHP از دیتابیس MySQL و اکثر سایتهای ASP.Net از SQLServer استفاده کرده اند.

اگر هم احیاناً فکر میکنید که کار با MySQL یا SQLServer را بلد نیستید و یا مدام با خطای متفاوتی روبرو میشوید (که ناشی از همان عدم اطلاعات است) و برای انجام کارهای ساده در دیتابیس مشکل دارید و....
به شما اطمینان میدهم که یادگیری MYSQL و SQLServer + نحوه ارتباط با انها بسیار ساده تر و وقت کمتری میخواهد تا خودتان یک دیتابیس جدید ایجاد کنید (چه در یک پروژه و چه با دید انجام چندین پروزه در طول زمان ...) و در نهایت هم هرچقدر زمان بگذارید به وصعت امکانات دیتابیس های اماده که تیم های بزرگ نرم افزاری سالهای متمادی روی آنها کار کرده اند نخواهید رسید.

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

=====

اگر سرور اجاره شده شما خیلی هم ساده و بدون امکانات باشد، باز هم حداقل حداقل دیتابیس Access و MySQL را پشتیبانی میکند و وجود همین دو موتور دیتابیس بنظر من برای عدم انجام کار ذخیره سازی دیتا کافی است.

این نظر من بود و هرطور صلاح میدانید.
سال جدید را هم تبریک عرض میکنم و موفق باشید

ebse
22-03-2011, 20:11
سلام
عید شما هم مبارک
حرف شما کاملا صحیح
بله وقت گذاشتن روی اینگونه مثائل واقعا وقت تلف کردن است .
در مورد دیتا بیس : یه چیزایی راجب mysql میدونم .
ولی کلا هدف من اینه که آیا می شود که در یک سایت به جای استفاده از دیتابیس های موجود
از این روش استفاده کرد ؟ ( شاید یه جور کنجکاوی باشه )

_H2_
28-03-2011, 18:48
سلام
اول لازم میدانم سال جدید 1390 را به کلیه دوستان تبریک عرض کنم و آرزو بهترین ها را برای دوستان داشته باشم.

ولی کلا هدف من اینه که آیا می شود که در یک سایت به جای استفاده از دیتابیس های موجود از این روش استفاده کرد ؟
بله میتوان.
همانطور که گفتم به عنوان یک پروژه تحقیقاتی هر چیزی میتوان جالب و مفید باشد.
(((
به عنوان یک پروزه تحقیقاتی شما میتوانید خودتان تلاش کنید و برای تفریح و افزایش دانش و امتحان نظریه و .... در کارگاه خانگی تان یک خودرو شخصی بسازید ولی در زندگی روزمره وقتی کسی به خودرو نیاز دارد به این فکر نمیکند که برود مکانیک و مهندسی موارد و الکترونیک و... یاد بگیرید تا خودش خودرو خودش را بسازد، بین محصولات شرکت های خودرو سازی میگردد و یک خودرو شایسته و مناسب برای مصارف و قیمت و خودش انتخاب میکند و میخرد.
)))

روش مناسبی که برای انجام این کار به ذهن می رسد ان است که با توجه به حجم هم اطلاعات برای این مورد، کلاسی عمومی و مشخص با نمونه سازی یکتا (یکبار در کل برنامه و برای همه کاربران) ایجاد نمیائید که در اولین درخواست ایجاد شده و کل اطلاعات را یکجا از فایل xml بخواند.
در مراحل بعدی ریسمان های کاربران بنابه درخواستی که وجود دارد و با توجه به بحث همزمانی ریسمانها به این کلاس مرکزی وصل شده و اطلاعات را خوانده و تغییر دهند.
کلاس مرکزی بعد هر تغییر یا بعد هر زمان مشخص (مثلاً یک دقیقه و پنج دقیقه و...) و در صورت وجود تغییر از آخرین بار، کل محتویات جاری را مجدد به فرمت xml سریالی کرده و در فایل ذخیره کند.

این ساده ترین و کاربردی ترین شیوه ای است که الآن به ذهن من میرسد.