كل المقالات بواسطة Ahmed Moosa

Ahmed Moosa Is Senior .NET Trainer / Developer ,lives in Egypt . That is all :)

العروض التقديمية لدورة فى Transact-SQL

السلام عليكم

بعد التحية للجميع , اما بعد

فهذة العروض التقديمية لسلسلة محاضرات ألقيتها فى دورة سابقة وللأسف كنت متقيداً بمنهج , لذلك فالدورة تدرس بعض النقاط وتترك أخرى . وليست العروض شاملة .

عدد الشرائح : 223 شريحة
أهم النقاط التى تناولها الشرح :
Database concept
DML -DCL-DDL
SELECT ,INSERT , UPDATE ,DELETE
Grouping
Operators
Relationship and Join Types
Transaction
Attach , Detach , Backup , Restore
Constraints
Scripts and Generating Scripts
Tables and Views
Stored Procdeure
Functions
Triggers

يلى هذا الموضوع إن شاء الله ملخص لكتاب مايكروسوفت 2071b باللغة العربية .حين الإنتهاء منه ,ليكون دعما ً آخر فى تعلم Transact-SQL والله المستعان .

التحميل من هــنــــــــــــــــــــــــــــــــــــــا

ولتحميل الكتاب من هنــــــــــــــــــــــــــــــــــــــــــــا

والسلام عليكم ورحمة الله

Advertisements

الجزء الثالث : الإتصال بدوال Server-Side من خلال Client-Side

السلام عليكم ورحمة لله
مقدمة :

تتمتع Jquery بطريقة عمل خاصة مع Server وكذلك قواعد البيانات بأنواعها من خلال دوال Ajax .مثال get ,Ajax,Post,Load,getjson,getscript

ما ستعرفه فى درس اليوم :
– العمل مع HttpHandler وإسترجاع بيانات منه .
– كيفية الحصول على كود Html لأى أداة أثناء وقت التشغيل من خلال العمل مع دالة RenderControl .
-نقل اداة من ملف لملف آخر .
– المزيد من Linq
– الخوض قليلا فى Jquery .

يمكنك رؤية باقى الدرس من هنا إلى حين إلإنتهاء منه ووضعه للتحميل إن شاء الله

والسلام عليكم وحمة الله.

الجزء الثانى : إستدعاء دالة Server-side من خلال Client -Side

السلام عليكم ورحمة الله

الجزء الثانى
العمل مع Web Service وكيفية العمل معها من خلال Ajax

للتذكير:
فى الدرس الأول تم التقديم لهذة الدروس على انها للأتصال بالـServer من خلال Client وذلك لمنع حدوث رحلة العودة من وإلى الخادم/العميل وهى ما نسمية PostBack مما قد يحسن أداء وجودة العمل مع الموقع الذى يعمل بهذة الطريقة فى الإتصال بقواعد البيانات .

يمكنك تحميل الدرس بصيغة PDF من هنــــــــــــــــا

المقدمة : هنا سنتعامل مع Web Service وكيفية العمل مع قواعد البيانات من خلال LINQ to SQL وكذلك فصل الأكواد عن بعضها البعض

الدرس :

لا تحتاج web service إلى الكثير من كتابة الأوامر حتى يتم الإتصال بها وتنفيذ امر ما . فهى نفس طريقة عمل PageMethods وهنا أقصد انه لابد من وجود Proxy كما أشرنا إليه فى الدرس السابق ولكن هذة المرة سيتم تقديم الدعم بما يعرف بــ Intel sense وستعمل مع web service وكانك تكتب كود C# او VB . كما بالشكل :

وذلك لإن Web service تدعم خاصية تسمى ScriptService والتى تسمح برؤية إسم
Web service class فى نطاق العمل مع اكواد JavaScript وبالتالى رؤية الدوال التى تم إنشائها داخل web service. وذلك عند تعريف ScriptService Attribute كما بالشكل :

وكما أشرنا إلى Proxy فسيتم إدراج الأوامر الخاصة به وإن شئت قل إدراج إعداداته بإستخدام أداة
Script Manager . وتعريف ملف Web service ضمن مجموعة Services التى تخدمها وتديرها هذة الاداة كما ترى بالشكل:

    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/WebService.asmx" />
        </Services>
    </asp:ScriptManager>

وإذا ما أردت أن ترى أعدادت Proxy ما عليك سوا ان تقوم بتفعيل الخاصية
InlineScript = true ومن ثم رؤية View Source . كما بالشكل :

<asp:ServiceReference Path="~/WebService.asmx" InlineScript ="true"  />

ومنها إلى JavaScript لنستدعيها ونستخدم ما نريد من الدوال المعرفه بها . مثال ذلك الدالة الإفتراضية
HelloWorld . ونجد ان آليه العمل واحدة فى اننا نجد أن لدينا داليتن وهما onsuccess و onfailed .

مثال مبسط :


WebService.HelloWorld(onsuccessFunction , onFailedFunction );

فى حين أن هناك دالتين بالأسماء السابقة قد تم تعريفهما من قبل ويعودان بالنتائج لعرضها .
فنجد أن :
WebService >> إسم Class المعرفه فى ملف Web Service .
HelloWorld <> دالة توجد فى نفس الملف فى كود JavaScript أو ملف منفصل كما سنرى وتعمل على إستقبال النتائج من الدالة HelloWorld فى حالة نجاح عملية الإتصال.
onFailedFunction >> دالة توجد فى نفس الملف فى كود JavaScript أو ملف منفصل كما سنرى وتعمل على إستقبال النتائج من الدالة HelloWorld فى حالة فشل عملية الإتصال .

إليك تمرين :

النتائج التى سنحصل عليها من التمرين :

ما تراه هو عرض لبعض البيانات فى أداة DropDownList وعند إختيار أحد عناضر هذة القائمة يتم عرض التفاصيل أسفلها كما ترى .

مبدئياً سنعمل على فصل الاكواد عن بعضها فى ملفات منفصلة فسيكون لدينا ثلاث ملفات :
– ملف Web service .
o وبه سنجد عملية الاتصال بقاعدة البيانات من خلال إستخدام LINQ to SQL
 دالتين : احدهما لعرض بيانات فى DropDownList والآخرى لعرض التفاصيل.
– ملفات التعامل مع قاعدة البيانات Linq to Sql .
o يتم إدراج جدول واحد لتيسير العمل فى هذا الدرس وهو جدول Categories من قاعدة البيانات الشهيرة Northwind .
– ملف صفحة ASPX
o بها اداة بالطبع أداة ScriptManager وكذلك DropDownlist وأيضاً Div ليكون هو المساحة المستخدمه لعرض التفاصيل .
– ملف Js
o بها pageLoad Event ويعمل هذا الحدث كـحدث onload للصفحة ويعمل فى حالة وجود ScriptManager لإنه من الأحداق التى تقدمه Ajax Life Cycle .
o أيضاً به دالتين :
 الأولى : الإتصال بـWebService ومن ثم عرض النتائج فى DropDownList.
 الثانية: الإتصال بـ WebService ومن ثم تمرير Parameter إليها والعودة بالبيانات التى تم إختيارها بناءاً على ما تم تمريره .


العمل فى خطوات :
1- قم بإنشاء صفحة aspx وضع بها DropDownlist وكذلك div وسترى المحتويات بالكامل بالأسفل.
2- قم بإختيار Linq to SQl وأدرج بها الجدول الذى تريد العمل معه .
3- قم بإنشاء Web Service وأنشئ بها دالتين ستجد التركيب الخاص بهم فيما يلى .
4- قم بإنشاء ملف Javascript وبه سنضع حدث pageLoad وكذلك دالتين لمحادثة web Service.
5- قم بضبط Script Manager من حيت تعريف ملفات scripts وكذلك ملفات Services .

والآن مع تركيب الملفات المستخدمة فى هذا التمرين :

صفحة .aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebServiceTest.aspx.cs" Inherits="WebServiceTest" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server">
        <Services>
            <asp:ServiceReference Path="~/WebService.asmx" />
        </Services>
        <scripts>
            <asp:ScriptReference Path="~/WebServiceScript.js" />
        </Scripts>
    </asp:ScriptManager>
    <div>
       <br />
       <asp:DropDownList ID="CategoriesDDL" runat="server" 
                          onchange ="GetDetails(this);" >
        </asp:DropDownList>
        <br />
    </div>
    <br />
    <div id="SomeDiv">
    </div>
    </form>
</body>
</html>




ملفات LINQ to SQL
بعد إدراج جدول Categories

كما سترى فى ملف WebService التالى إستخدام هذا الجدول لعرضه فى DropDownlist .
ملف WebService.asmx


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

/// <summary>
/// Summary description for WebService
/// </summary>
[WebService(Namespace = "http://mySite.com/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET  //AJAX, uncomment the following line. 
[System.Web.Script.Services.ScriptService]
public class WebService : System.Web.Services.WebService {

    public WebService () {
        //Uncomment the following line if using designed components 
        //InitializeComponent(); 
    }

    [WebMethod]
    public List<Category> GetCategoriesByID(int SelectedCategoryID)
    {
        DataClassesDataContext dc = new DataClassesDataContext ();
        var query = from q in dc.Categories
                    where q.CategoryID == SelectedCategoryID
                    select q;
        return query.ToList<Category>();
    }

    [WebMethod]
    public List<Category > GetCategoryName()
    {
        DataClassesDataContext dc = new DataClassesDataContext();
        var query = from q in dc.Categories
                    select q;     
        return query.ToList<Category>();
    }
}


ملف WebSeriveScripts.js

function pageLoad() {
      FillDropdownlist();
}

// Fill Drop Down list 
function FillDropdownlist() {
    var DDl = document.getElementById("CategoriesDDL");
    WebService.GetCategoryName(function (data) {
        for (var i = 0; i < data.length; i++) {
            var myoption = new Option(data[i].CategoryName, data[i].CategoryID);
            if (DDl != null) {
                DDl.options.add(myoption);
            }
            else {
                alert("I have an Erro in DropDownlist Method");
            }
        }
        GetDetails(DDl);
    },
    function (err) {
        alert(err.get_message());
    });
}

// Fill FillGridView list
function GetDetails(obj) {
    var SomeDiv = document.getElementById("SomeDiv");
    var val = obj[obj.selectedIndex].value;
    WebService.GetCategoriesByID(val, function (result) {
        SomeDiv.innerHTML = "<span><b>Category ID </b>: " + result[0].CategoryID + "</span><br/><span><b>Category Name </b>: " + result[0].CategoryName + "</span>";
    },
     function (err) {
         alert(err.get_message());
     });
 }

إن واجهك شئ غامض فى الملفات السابقة قم بالعودة إلى أعلى لترى الوصف لهذة الملفات .

إلى هنا إنتهى الجزء الثانى مع AJAX .

تنفيذ دالة Server –side من خلال كود Client Side بإستخدام Ajax و JQuery الجزء الأول

تنفيذ دالة Server –side من خلال كود Client Side
بإستخدام Ajax و JQuery
الجزء الأول

الهدف من الدرس :
تجنب عمل PostBack للصفحة بأكملها .أو بصيغة أخرى : تحديث جزء من الصفحة دون الرجوع بكامل الصفحة إلى الخادم Server .

المقدمة :
فى هذة السلسلة سنتعرف على كيفية تنفيذ دالة معينة قد تكون فى ملف منفصل code Behindأو صفحة aspx أو حتى Web Service أو ربما HttpHandler من خلال إستدعائها بإستخدام Client Side Code . سنمر خلال هذة السلسلة بوظائف عديدة تقدمها Ajax وJquery مروراً بمجموعة من الدوال الشيقة التى ستوفر علي المستخدم ضياع الوقت فى الإنتظار حتى يتم الإتصال بالخادمServer ومن ثم الرجوع بالنتيجة وعرضها على الصفحة مما قد يسبب فى قلة جودة الأداء فى العمل مع الموقع . لذلك كوننا سننفذ هذة العملية من خلال client Side فلا حاجة لعمل PostBack وذهاب الصفحة بأكملها والعودة مرة أخرى بالبيانات الجديدة ولكن فقط سنتصل بالخادم ونرجع بالبيانات فقط ومن ثم عرضها للمستخدم دون أن يشعر أن هناك إتصال بالخادم .ومما لا شك فيه ان هذا Best Practice .

لمتابعة بقية الدرس يمكنك تحميل ملف الدرس من هنــــــــــــــــــــــــــا

أو رؤيته على أحد المنتديات العربية هنـــــــــــــــــــــــــا

والسلام عليكم ورحمة الله
أحمد

مقدمة لا بأس بها عن ASP.Net بالإنجليزية والعربية

السلام عليكم ورحمة الله

الحقيقة رأيت هذة المقالة فى الصباح ورأيت الترجمة العربية لها وكان لى النصيب فى المشاركة فى التعديل فى الترجمة ولكن بعد النظر فى النسختين العربية والإنجليزية وجدت ان الإنجليزية أفضل من العربية وذلك ربما لإن هناك فى العربية بعض المقاطع لم تترجم جيداً . فيمكنكم التعديل إن أدرتم وترك شئ جميل لمن بعدك , إزرع لمن بعدك.

المقالة ليست للمستوى المتوسط ولا المحترف إنما هى للمبتدأ , حتى يعرف على ماذا تدور ASP.Net وما هى وكيف ظهرت وبعض الأساسيات . ولكن تفضل بإلقاء نظرة فلربما تستفيد .

هنــــــــــــــــــــــــــــــــــــــــــــــــــــــــا

السلام عليكم ورحمة الله

ما يقرب من 1000 عرض تقديمى خاص بـ ASP.Net

السلام عليكم ورحمة الله

عروض تقديمية متنوعة من جامعات وأفراد واماكن مختلفة مجانية

هنــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــا

يسر الله لكم .

خلاصة المصادر التعليمية المجانية فى ASP.Net

السلام عليكم ورحمة الله

أرى كثيراً من الأخوة يتسائلون عن كيف أبدأ ومن اين وبالفعل وردتنى رسالة من سائل على البريد الإلكترونى منذ فترة فرددت عليه ببعض المصادر التى أراها جيدة بل ممتازة إن شاء الله .

ومنذ ذلك الحين وأفكر فى وضع هذا الموضوع ولكن أتشاغل وأنسى .

وقد وجدت خلال رحلة البحث مصادر كثيرة لا تعد ولا تحصى . ولكن من أين أبدأ وما الجيد فيهم فأحترت بينهم . فمنهم منتدى ومنهم موقع لدروس ومنهم موسوعة ومنهم موقع لمرئيات وصوتيات ومنهم مصدر مفتوح لمشاريع ومنهم موقع لنشر أفكار او كما يسمونها حيل ونصائح Tips&Tricks وغيرهم الكثيييييييييييييييييييييير .

وقد رتبتهم لكم وأسأل الله العلى القدير أن يكون فى ترتيبهم فتحاً وفهما ً على من يقرأهم . وقد صنفتهم أيضاً فمنهم مقروء ومنهم مسموع ومنهم مرئى . فلم أجلب كل المصادر المجانية بل أفضلهم فلاحظ هذا .

وأبشرك انك لن تقرأهم كلهم سطراً سطراً أو كلمة كلمة بل سيأتى بك الحال ان تقرأ العنوان وتتخطاه لأنك لم تعد بحاجة لإعادته مرات أخرى . ولماذا هذا ؟ لإن المصدر الواحد إذا انهيته بفهم وحفظ فباقى المصادر كلهم إضافات وإعادة .

إذا كان الأمر هكذا ! لماذا لا نأخذ مصدر واحد فقط ؟ والجواب هنا , ان بعض المصادر ربما يقابلك شيئاً لن تستطيع فهمه ويسهل ذلك فى مصدر أخر .وذلك لإختلاف أسلوب العرض او لانه مفصل فى مصدر وقد أشير إلى إسمه فقط فى مصدر ثانى . وقد تغافل عنه فى مصدر ثالث .

المهم هنا يفضل ان تراعى الترتيب : ولماذا ؟ لإن ما وجدته معهم أن منهم من يتدرج من الأقل إلى الأعلى ومنهم من يسرد . ومنهم من هو عشوائى . فلذلك إحرص على الترتيب والله الموفق .

http://www.w3schools.com/aspnet/aspnet_intro.asp

http://quickstarts.asp.net/QuickStartv20/aspnet/Default.aspx

http://msdn.microsoft.com/en-us/library/ee532866.aspx
ثم تنتقل إلى المصادر المرئية

http://msdn.microsof…p/dd861531.aspx

http://msdn.microsoft.com/en-us/beginner/bb308760.aspx

http://www.asp.net/web-forms

ثم تعود إلى القراءة مرة أخرى

http://www.asp.net/learn/whitepapers

http://wiki.asp.net/

وللمصادر المفتوحة كادوات ومشاريع تريد أن تتعلم منها إليك ما يلى

أدوات

http://www.asp.net/community/projects

مصادر مفتوحة لكل ما تريد

http://www.asp.net/community/projects

http://www.codeplex.com/

ماذا أن وقف معك شئ أثناء العمل أو المذاكرة فعليك بالبحث , إتبع التالى :

-إذا أردت برنامج قم بالبحث عنه فى محرك البحث وليكن Google مثلاً أو غيره وإجعل لغة البحث إنجليزية , ولتكن بجواره كلمة Freeware . وإذكر إسم البرنامج وإن تعرف برنامج أو اداة محددة بعينها إذكر مجالها مثال

نريد برنامج محرر صور مجانى أو مصدر مفتوح مثلاً : فيمكن ان نجرب البحث بـ Graphic Program Free Ware فستجد أول نتيجة بحث برنامج يشبه PhotoShop ولكن هذا بلا مقابل .

– إذا قابلتك مشكلة فى خطأ ما فى الكود . خصص البحث وإن لم تجد قم بنسخ رسالة الخطأ وضعها فى محرك البحث وأضغط بحث وستجد إجابة إن شاء الله فلست الوحيد الذى يخطأ ولست اول المبرمجين .

وأوصيك بالذهاب مباشرة ً للبحث فى

http://msdn.microsoft.com

http://www.wikipedia.org

والسلام عليكم ورحمة الله

تعريف بالمدونة

السلام على من إتبع الهدى , أما بعد . ففى هذة المدونة سيتم نشر ما يخص برمجة الإنترنت  باللغة العربية بالإضافة إلى الإشارة إلى المقالات الخاصة المنشورة باللغة الإنجليزية فى المواقع الإجنبية .وكذلك الروابط الخاصة بالمقالات العربية التى قمت بنشرها فى المنتديت العربية .

فى الحقيقة أسعد بالعمل الجماعى لذا إن كان لديك مقال او كتاب تريد ترجمته أو على الإقل درس فنحن بإنتظارك لننشر لك ما تريد هنا ما دام أن الهدف واحد وهو “مشاركة العلم والإستفادة للجميع ” . لا تتردد وتوكل على الله

والله المتسعان

أحمد موسى