27-05-18, 02:26 AM
(26-05-18, 02:54 PM)atefkhalf2004 كتب : حضرتك لك كل الشكر
انا الشخص الذي طلب هذا الموضوع
لكن حضرتك طرحت الموضوع بطريقة كبيرة علينا قوي
المطلوب هو حضرتك شاشة في بداية التحميل يكون فيها 3 مربعات نصوص
الاول اسم السرفر
الثاني اسم قاعدة البيانات ويمكن البحث عنها dialouge
الثالث لو هناك كلمة مرور لقاعدة البيانات
ويتم حفظهم في مكان وليكن ملف نصي او الريجستري
يتم استخدامهم عند الدخول
ويمكن تعديل هذه البيانات فيما بعد
ولك جزيل الشكر
وللعلم انا اطرح اسئلة تدور في ذهن الكثير
وانتم لها واكبر منها وسوف تجيبون عليها
وربنا يخليكم لنا
السلام عليكم و رحمة الله و بركاته
صديقي الكريم انا لا ادري كيف اطرح الموضوع صراحة, لان مفهوم المعالج يعتمد تحديداً كما اسلفت على طريقة البرمجة الخاصة بك او بغيرك من الاخوة.
فلو اني تابعت دورة ما او كان هناك مشروع فعلي تم طرحه لكنت طبقت الفكرة عليه.
بكل حال و بما انني فتحت الباب لهذا السؤال فلن اخذلك في الاجابة عليه (إن شاء الله).
---------------------------------
قبل قليل رأيت سؤال في قسم #C خاص بالاخ Ghost .
رابط السؤال
الاخ يستخدم اسلوب (N-Tier Application) هكذا يبدو وفق طبيعة السؤال ؟؟
لذا قررت ان اصيد عصفورين او 3 بحجر واحد , بالاضافة للاجابة على السؤالين + اسلوب N-Tier.
-----------------------------------------
الاخ عاطف الموضوع يتعلق بمخدم قواعد البيانات SQL SERVER لذا ليس لدينا كلمة مرور لقاعدة البيانات (كلمة مرور للسيرفر).
---------------------------------------
الواجهة الرئيسية للبرنامج ستكون (Mdi Form) نموذج رئيسي حاوي لنماذج بداخله , وهو شاشة البدء في برنامجنا.
اول ما نفتح البرنامج تنبثق شاشة تسجيل الدخول , طبعا (اسم مستخدم و كلمة مرور كالعادة), هذا يقودنا الى قاعدة بيانات تحتوي على جدول للمستخدمين .
سنطبق فكرتنا كالتالي:
اذا كانت الاعدادات محفوظة في الرجستري مسبقاً سيتم التخاطب مع الجدول و الدخول لواجهة البرنامج .
اذا لم تكن الاعدادت محفوظة او كان اول اقلاع للبرنامج او كان هناك خطأ في احد بيانات السيرفر , عنده سينبثق معالجنا السابق لنقوم بتسجيل المعلومات الخاصة بنا و حفظها للمرة الاولى فقط و بعدها لن نحتاج له الا اذا تغيرت هذه الاعدادات او حصل خطأ بها, اتمنى ان تكون الفكرة واضحة.
-------------------------------------
قاعدة بيانات المثال لدي اسمها (NtierDB) تحتوي على جدول واحد للمستخدمين (User_Tb) وفق الصورة التالية
وتحتوي على اجرائين (Tow Stored Procedures) , واحد لجلب بيانات المستخدمين , و الثاني لمطابقة المستخدم الحالي اثناء الدخول.
كما يلي.
جلب كل المستخدمين
PHP كود :
USE [NTierDB]
GO
Create proc [dbo].[User_GetAll]
As
SELECT [_User_id]
,[_User_Name]
,[_User_Kind]
,[_User_Pwd]
FROM [dbo].[User_Tb]
مطابقة مستخدم واحد
PHP كود :
USE [NTierDB]
GO
Create proc [dbo].[GetUser]
@_User_Name nvarchar(100)
,@_User_Pwd nvarchar(100)
As
Select * From User_Tb
Where _User_Name=@_User_Name And _User_Pwd=@_User_Pwd
من جهة البرنامج سيكون لدي تقسيم للبرنامج الى طبقات .
طبقة البيانات (Data Tier), طبقة الاعمال (Business Tier) , طبقة العرض (View Tier).
من دون الدخول في التفاصيل فالامر متشعب كثيراً عندما تتم مناقشته بعمق , فقط لنفهم اننا نريد تقسيم البرنامج الى طبقات و كل طبقة لها تخصص , حتى يسهل عليك لاحقاً التعديل و التوثيق و المراجعة و الفهم من قبل فريق العمل.
-----------------------------------------------
طبقة البيانات (Data Access Layer) التخاطب مع عناصر القاعدة.
طبقة الاعمال (Business Logic) كلاسات تمثل الكائنات و طرق التعامل معها.
طبقة العرض (User Interface) و اجهة العرض و ما يتعلق بها.
-----------------------------------------
تم تقسيم المشروع الى طبقات في كل مجلد طبقة او اكثر حسب الحاجة .
----------------------------------------
المثال يطبق كل الافكار السابقة , فقط اطلع عليه و جرب ما تم الحديث عنه سابقاً.
--------------------------------------
طبيعة العمل تقتضي ان نقوم بزرع القاعدة لدى العميل اولاً , ثم يتم تنصيب البرنامج و تشغيله , ليتم ادخال الاعدادات للمرة الاولى فقط.
--------------------------------------
بالتوفيق.
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال


