dimanche 27 août 2017

Learn ASP.NET MVC

ASP.NET MVC;

أسهل مكتبة لتطبيق مفهوم Membership على مواقع ASP.NET MVC

أغلب مواقع الانترنت بحاجة إلى ميزة الـ Membership لكي تسمح للمستخدمين والمدراء بالولوج إلى الموقع والإستفادة من مزاياه أو إدارته. عانيت لفترة طويلة من صعوبة وتعقيد إضافة الـ ASP.NET Identity على مشاريع الـ ASP.NET MVC فهي بحاجة إلى تنصيب عدد من المكتبات، إنشاء عدة كلاسات، تعديل في الـ DbContext والـ Startup ناهيك عن عدد من الأخطاء التي تظهر غالباً بسبب التوافقية. مكتبتي AuthPackage هي عبارة عن مكتبة تجمع كل العمليات والمكتبات اللازمة لإضافة الـ ASP.NET Identity، فهي تحوي على الـ Entity Framework, Owin, Asp,net Identity ، تسمح حالياً للمطور بإنشاء مستخدم جديد، تسجيل دخول، وتسجيل خروج. وأرغب لاحقاً بإضافة مزايا، كتعديل كلمة المرور، الدخول باستخدام فايس بوك، غووغل، مايكروسوفت، تويتر، إمكانية إضافة حقول جديدة إلى جدول المستخدم وغيرها..
Show Examples 1, 2, 3 | Hide Examples 1, 2, 3

تنصيب المكتبة: بعد الدخول إلى Package Manager Console في الـ Visual Studio قم بإضافة التعليمة التالية: Install-Package AuthPackage

Slide Down || Slide Up

استخدام المكتبة:قم بإنشاء instance منها، حيث يتطلب تمرير HttpContext كـ parameter .1 AuthUser(HttpContext):

Slide Down || Slide Up

3. استمتع 🙂 SignIn(string email, string password) SignOut() Register(string email,string password) :

Slide Down || Slide Up

الخطوة الأولى لتصبح مطور ويب! عليك في البداية التعرف عليه، اقترح هنا أن تقوم ببحث على الانترنت والإجابة على الأسئلة التالية: ماهو الويب؟ ماهو الانترنت؟ هل أصبح بإمكانك تخيل الفرق بين الويب والانترنت!؟ هل تستطيع توضيح الفرق بمثال محاكي له؟ :

Slide Down || Slide Up
عندما تقوم بتشغيل مشروع ASP.NET MVC بدون تحديد أي منطق توجيه للـ URL فإنه بشكل افتراضي سيقوم بالتوجيه إلى المتحكم المسمى Home وإلى الـ Action Method التي تسمى Index بداخله, وهذا بالضبط مايعنيه الكود السابق. إن أول جزء من العنوان URL يحدد المتحكم المطلوب استدعائه، وبذلك الرابط Welcome/ يقصد به أننا نريد استدعاء المتحكم WelcomeController, بينما الجزء الثاني من الرابط يحدد الـ Action Method التي نريد استدعائها بداخل المتحكم المطلوب، أي Welcome/Index/ سيجلب لنا مابداخل الـ Method المسماة Index بداخل WelcomeContorller. ونلاحظ أننا قبل قليل كتبنا Welcome/ وحصلناعلى نتيجة الـ Method المسماة Index بدون أن نكتبها في الرابط بعد اسم المتحكم، وذلك بسبب كونها Method Action افتراضي معرف مسبقاً بمنطق التوجيه. يتكون الجزء الثالث من الرابط URL من Parameters سأقوم بإيضاح هذا الجزء بعد قليل. قم بالذهاب داخل المستعرض إلى العنوان: Welcome/Greeting/ نلاحظ بذلك اننا استدعينا الـ Action Method المسماة Greeting وعادت نتيجتها بالفعل. كما شاهدنا فإن منطق التوجيه الافتراضي هو [Controller]/[ActionName]/[Parameter]/ وفي حالتنا هنا فإن المتحكم هو Welcome، والـ Action هو Greeting بينما الـ Parameter فهي فارغة ولم نكتب بها شيئ..

الخطوة الثانية في هذه الخطوة عليك استيعاب مكونات موقع الويب (Website) وكيف يعمل بأبهى صوره، اقترح هنا أن تقوم بالتعرف على منصة WordPress، ترتكز هذه المنصة على تبسيط بناء المواقع واختصار عمليات بنائها وجعلها مرئية بشكل يسهل لغير المبرمجين التعامل معها وبناء مواقعهم بسهولة. اقترح السير وفق الخطوات التالية: ماهو الـ Content Management System – CMS ؟ هل بإمكانك وضع تعريف بسيط وواضح لمنصة WordPress ؟ باسترجاع مفهوم الـ web الذي قمت بالبحث عنه سابقاً! مالفرق بين حاسوب client وحاسوب server؟ لتحويل حاسوبك الشخصي إلى server عليك تنصيب برمجيات معينة تتوافق مع لغة البرمجة التي بنيت عليها wordpress وانا اقترح هنا تنصيب سيرفر wamp، كيفية تنصيب wamp. في هذه الخطوة عليك تحميل ملفات المنصة على حاسوبك الشخصي: منصة WordPress لإدارة المحتوى. عليك البحث عن كيفية تشغيل wordpress على سيرفر wamp، وتشغيلها بشكل ناجح. بعد تشغيل المنصة بنجاح، ينبغي البحث عن المفاهيم: Themes, Plugins في wordpress حتى تنتهي من هذه الخطوة بنجاح، عليك أن تحدد موضوع تحبه وتبدأ بصناعة موقع ويب له باستخدام wordpress، ابحث عن theme مجاني مناسب، وابدأ العمل، وعندما تنتهي منه تكون قد حققت الهدف من هذه الخطوة، واستعرضت مكونات موقع الويب بشكل جيد. سأكون سعيد جداً وممنون في حال شاركتني إنجازك، إما بتعليق بصورة الموقع على هذه التدوينة، أو بإرسال بريد إلكتروني بإنجازك على waleedchayeb2@gmail.com:

Slide Down || Slide Up
ASP.NET MVC تمكنك من استخدام عدة متحكمات Controllers وعدة Action Methods بداخل كل متحكم، بحيث نستطيع الوصول إليها عن طريق الـ URL. تستخدم ASP.NET MVC منطق توجيه URL Routing Logic افتراضي هو: /[Controller]/[ActionName]/[Parameters] بإمكانك وضع صيغة التوجيه أو منطق التوجيه في ملف RouteConfig.cs داخل مجلد App_Start. public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); }

الخطوة الثالثة ستتبع الخطوات القادمة بتدوينة لاحقة. تغذية راجعة قمت لفترة 5 أشهر باختبار منهجية التدريب هذه على أكثر من 20 متدرب (من خلال حسابي على فيس بوك، ومن خلال برنامج مشاركة المعرفة في فسيلة تِك)، نسبة جيدة من هؤلاء المتدربين يعملون حالياً على مشاريع ويب فعلية وبشكل جدي،ولذلك فأنا مهتم جداً بتطوير الآليات والأفكار، في حال كانت لديك مقترحات للتطوير يرجى التعليق على هذه التدوينة.:

Slide Down || Slide Up
إضافة متحكمات Controllers لموقع ASP.NET MVC MVC هي اختصار لـ Model-View-Controller. وهي نمط بناء لتطبيقات الويب بطريقة هندسية جيدة، قابلة للاختبار وسهلة التعديل. إنّ التطبيقات التي تعمل على نمط MVC تعتمد على: Models: وهو كلاسات Classes تمثل البيانات التي سيستخدمها الموقع. Views: قوالب يستخدمها موقعك لتوليد واجهات HTML Controllers: كلاسات Classes للتعامل مع الطلبات Requests القادمة من المستعرضات Browsers، جلب البيانات من الـ Model، وتحديد القوالب التي ستشكل الاستجابة التي سيقوم بها موقعك. خلال التدوينات القادمة سنتمكن من فهم المبادئ الثلاثة السابقة وتطبيقها في مشاريع برمجية خاصة بكم. سنبدأ الآن بإنشاء متحكم Controller لمشروعنا السابق ArabicArchive، في نافذة Solution Explorer اضغط بالزر اليمين على مجلد Controllers ومن ثم انقر على Add وبعدها Controller. نستبدل محتوى ملف المتحكم الجديد بالكود التالي: namespace ArabicArchive.Controllers { public class WelcomeController : Controller { // // GET: /Welcome/ public string Index() { return "This is my default action..."; } // // GET: /Welcome/Greeting/ public string Greeting() { return "This is the Greeting action method..."; } } }
Toggle Display | Slide Down | Slide Up Show Jason DIV Show Jason and Kelly DIVs Target Page Target Page

Aucun commentaire:

Enregistrer un commentaire