d 3 يناير، 2018 – الصفحة 19 – مدونة الفريق

اليوم: 3 يناير، 2018

  • حل خطأ ‘MsAjaxBundle’ is not a valid script name

    عندما تقوم بإنشاء موقع ب ASP.NET 4.5 ، وتقوم بتحديث المكتبات ، يظهر لك هذا الخطأ
    ‘MsAjaxBundle’ is not a valid script name.  The name must end in ‘.js’ ، الخطأ غريب والبحث لا يفيد بالكثير ، ولكن إليكم الحل.

    سبب المشكلة هو تحديث ajaxToolkit إلى الإصدار الجديد بحيث تدعم المنصة 4.5 ، ولحل هذه المشكلة عليك فتح صفحة Site.Master  والذهاب إلى الجمل التالية :

     <asp:ScriptManager runat="server">
    <Scripts>
    <%--Framework scripts--%>
    <asp:ScriptReference Name="MsAjaxBundle" />
    <asp:ScriptReference Name="jquery" />
    <asp:ScriptReference Name="jquery.ui.combined" />
    <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" />
    <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" />
    <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" />
    <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" />
    <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" />
    <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" />
    <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" />
    <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" />

    <asp:ScriptReference Name="WebFormsBundle" />
    <%--Site scripts--%>

    </Scripts>
    </asp:ScriptManager>

    يجب علينا تحديث ال ScriptManager ، وتحتاج إلى القيام ب 3 خطوات
    1- استبدل asp:ScriptManager ب ajaxToolkit:ToolkitScriptManager
    2- امسح السطر المحترم الذي به MsAjaxBundle  ، لانها لا تلزم كليا
    3- قم بحذف المواصفة System.Web من كل الأسطر

    أي أن الخلاصة ستكون كالتالي

     <ajaxToolkit:ToolkitScriptManager  runat="server">
    <Scripts>
    <%--Framework scripts--%>
    <asp:ScriptReference Name="jquery" />
    <asp:ScriptReference Name="jquery.ui.combined" />
    <asp:ScriptReference Name="WebForms.js" Path="~/Scripts/WebForms/WebForms.js" />
    <asp:ScriptReference Name="WebUIValidation.js" Path="~/Scripts/WebForms/WebUIValidation.js" />
    <asp:ScriptReference Name="MenuStandards.js" Path="~/Scripts/WebForms/MenuStandards.js" />
    <asp:ScriptReference Name="GridView.js" Path="~/Scripts/WebForms/GridView.js" />
    <asp:ScriptReference Name="DetailsView.js" Path="~/Scripts/WebForms/DetailsView.js" />
    <asp:ScriptReference Name="TreeView.js" Path="~/Scripts/WebForms/TreeView.js" />
    <asp:ScriptReference Name="WebParts.js" Path="~/Scripts/WebForms/WebParts.js" />
    <asp:ScriptReference Name="Focus.js" Path="~/Scripts/WebForms/Focus.js" />

    <asp:ScriptReference Name="WebFormsBundle" />
    <%--Site scripts<asp:ScriptReference Name="khjs.js" Assembly="System.Web" Path="~/Scripts/khjs.js" />--%>

    </Scripts>
    </ajaxToolkit:ToolkitScriptManager>

    يا راجل كان من الأول حطيت النص النهائي بدال ما تتتتتتتتتتعبت عينينا واحنا بنقرأ بالخطوات ، شو أعمل أنا ! هيك المخرج بده.

    بالتوفيق

  • حل خطأ Unable to get property ‘UI’ of undefined or null reference

    عند استخدامك لأداة ScriptManager  في ASP.NET الإصدار الأخير ، تجد أن هذا الخطأ يظهر
    Unable to get property ‘UI’ of undefined or null reference
    ويعكر صفوك مع الصفحة. الحل بسيط وهو كذلك

    عليك باستبدال أداة ScriptManager  بأداة ajaxToolkit:ToolkitScriptManager
    وستكون بالشكل التالي
    <ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server"/>

    تمام تم حل المشكلة بنجاح
    بالتوفيق

  • الفلاش cu3er لا يعمل على الفايرفوكس

    واجهتني مشكلة أن الفلاش cu3er لا يعمل على الفايرفوكس الإصدار 3.6.9 وهو آخر إصدار، وبعد البحث مطولا كان عشرات إن لم يكن مئات المبرمجين لديهم نفس المشكلة
    والحمد لله بعد ضياع يوم برمجي كامل في البحث عن حلول ( لأني لست خبير فلاش ) وجدت الحل بتوفيق من الله، عبر سطر من كلمات لا تلقي لها بالا بعد قراءة مئات السطور من الشركة ومن مشغل الفلاش swfobject.js

    الشركة تقول بأن الملف الفلاشي يعمل على الإصدار 9 من الفلاش وما بعد ، واتضح أنه يعمل على المشغل الإصدار 10 وما بعد
    وبعد التحديث عمل لدي بفضل الله بدون أي مشاكل وهذه صورة

    وعليك كمبرمج أن ترسل رسالة لمن لديه نسخة قديمة من أن يقوم بالتحديث إلى الإصدار 10 ، وذلك بوضع الرسالة التي تظهر في حالة عدم توفر المشغل ، بأنه يتوجب التحديث إلى الإصدار العاشر ، وأيضا قم بتغيير الإصدار  من الكائن swfobject إلى الإصدار 10

  • كيفية التعامل مع أداة Fileupload بداخل أداة Gridview   

    في أحيان كثيرة يلزمك وضع أداة Fileupload بداخل حقل TemplateField  في الجريدفيو أو أي أداة مشابهة للجريدفيو، وذلك للقيام بعملية التعديل أو الإضافة. وإليك الطريقة.

    سنستخدم أداة جريدفيو ، مع أداة SqlDataSource  وسيكون هنالك عمود على هيئة قالب TemplateField ، وبديهي جدا أن نضع أداتنا ( أداة الرفع ) في بند التعديل بداخل القالب كالمثال

    الآن قمنا بضبط عرض الصورة في الجريدفيو وقمنا بضبط عرض الصورة وأداة الرفع في حالة ضغط المستخدم على زر تعديل الجريد فيو.

    الآن علينا كتابة كود التعديل ، وهذا يتم في حدث RowUpdating
     وسيكون كالتالي

    الكود تقليدي ، قمنا بجلب أداة الرفع من السطر المختار
    ثم استعديت دالة برمجتها سابقا تقوم برفع الملف وإرجاع اسمه لأستخدمه لاحقا
    ثم حذفت الصورة القديمة لأني رفعت صورة بدلا منها.
    الخيار لك في طريقة كتابة الكود ولكن ما يهم في السطر الأخير ، حيث يهمك أن ترسل اسم الملف الجديدة كوسيطة إلى العمود الذي تريد التعديل إليه ، مثلا سأعدل على عمود اسمه Picture ، فسيكون السطر كالتالي
    e.NewValues("Picture") = imgname

    الآن كل شيء تمام ، ولكن يبقى أمر أخير ، وهو ماذا لو قام بالتعديل على الصف في الجريد فيو ولكن لم يرغب بأن يرفق ملف جديد ( وفي حالتي صورة جديدة ) !
    عندها سيتم استبدال اسم الملف في القاعدة بقيمة فارغة NULL  ، وهنا يجب إجراء تعديل على جملة التعديل في SqlDataSource ، ويجب توقع القيمة الفارغة فبدلا من أن تكون الجملة مشابهة ل
    UPDATE [Departments] SET [Name] = @Name, Picture=@Picture  where id=@id
    ستصبح مشابهة ل
    UPDATE [Departments] SET [Name] = @Name, Picture=isnull(@Picture,Picture) where id=@id

    بالتوفيق للجميع

    <

  • الوصول إلى وسم معين في صفحة

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

    هنالك صراحة عدة طرق ، ولكن بعضها سيواجه مشاكل بسبب عدم دعم المبرمجين للمعايير
    القياسية ، وهنا لو تعاملت مع الصفحة على أنها جذر XML وقرأتها بواسطة ال LINQ فلن
    يجدي ذلك نفعا.

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

    
    Dim WClient As New WebClient()
    Dim Content As String = WClient.DownloadString("http//deveworld.com")
     

    الآن لدينا محتوى الموقع في متغير نصي ، يتوجب الآن  البحث عن الوسم بذكاء ،أو
    البحث عن الكلمة التي يأتي بعدها النص مثلا:

    
    Dim catego As String = Content.Remove(0, Content.IndexOf("<strong >التصنيف"))
    catego = catego.Remove(catego.IndexOf("</b></strong>"))
    catego = catego.Replace("<strong >التصنيف", "")
     

    هنا مثلا بحذف الوسوم والنصوص من بداية الصفحة المستخرجة ، إلى عند وسم الخط العريض
    الذي يحتوي على كلمة تصنيف، وأيضا قمت بحذف ما بعد هذا الوسم ، وبذلك أكون استخرجت
    بداية الوسم مع الوسم ، وإلى نهاية الوسم ، بدون إغلاقه ، طبعا تستطيع أن تعد عدد
    أحرف الوسم وتقوم بطرحها أو بإضافتها حسب ما تريد مثال:
    
    Dim write As String = str.Remove(0, str.IndexOf("size=""3"">") + 9)
     

    بالتوفيق للجميع

  • الطرق الموسعة Extension Methods

    الـ Extension Methods للمبرمج بإضافة Method جديدة إلى أي Type موجود مسبقا ,دون الحاجة لحصولك على الـ Source Code و لا تحتاج إلى إعادة عمل Compiling للـ Library التي تحوي ذاك الـ Type

  • برنامج Expression SuperPreview لمطوري المواقع ( مصمم أو مبرمج )

    برنامج Microsoft Expression SuperPreview 4، هو أحد البرامج الهامة التي تقدمها حزمة مايكروسوفت expresion والذي سيفيدك بمشاهدة التصميم على عدة متصفحات ومحاولة ضبطه
    البرنامج يوجد عنه عدة بدائل ، ولكن أغلبها يحتاج إلى إنترنت أونلاين.

    فكرة البرنامج بسيطة وسهلة ، وهي تتيح لك فتح الموقع على متصفحين في آن واحد والمقارنة بينهم، يعني مجرد تسهيل لا أكثر ، فيمكنك عمل هذه الخطوة بدون البرنامج

    ولكن البرنامج يقدم لك خدمتين جميلتين
    الأولى :
    خدمة متابعة التصميم على عدة متصفحات غير موجودة على جهازك ، والثانية خدمة مقارنة الصور وحتى ملفات PSD الخاصة بالفوتوشوب

    وهذا شرح للبرنامج
    Microsoft Expression SuperPreview 4
    تكتب في الأعلى رابط الموقع الذي تريد فتحه ، ومن ثم تختار من اليمين المتصفح الذي ترغب بالعرض الأساسي عليه ، ومن اليسار تختار المتصفح الذي تريد المقارنة عليه ( من هو اليمين واليسار غير مهم )

    يمكنك أيضا التسجيل في الأسفل لجلب المتصفحات الغير موجودة في جهازك ، ومتابعتها عبر الإنترنت
    بعد فتح المواقع ، ستجدها تظهر في الأسفل ، ويمكنك التنقل بينها ، ويمكنك إضافة مقارنة فرعية في نفس العنصر بالأسفل والتنقل بينهما

    يمكنك أيضا المقارنة بين الصور ، وملفات الفوتوشوب ، مثلا أن تقارن بين تصميمين متطابيقين ، أحدهما أحمر والثاني أخضر.

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

    يبدو أن البرنامج لا يدعم بعد بعض المتصفحات مثل الفايرفوكس 6 ، فهو صدر بعد البرنامج ، ولكن كعادة الشركة ، ستقوم بطرح نسخة جديددة من البرنامج لدعم المتصفحات الجديدة

  • محاضرات مرئية مجانية للجميع

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

    مركز التعليم الإلكتروني – الجامعة الإسلامية

    وجدت محاضرات رائعة لمادة التفاضل والتكامل ب ، و ج ، لا أريد أن أتكلم عن دكتور المادة ولكنه جيد في الشرح.
    هناك محاضرات لطلاب هندسة الحاسوب وطلاب المهندسة المعمارية وغيرها من التخصصات.

    يا من تتصعب من فهم التفاضل والتكامل ب أو ج ، أنصحك بالمشاهدة فلن تخسر

  • Microsoft تصلح خطأ ثان اكتشفته شركتنا في فيجوال ستوديو 2010

    التحيات من Microsoft Connect! ، وهذا نص بداية الرسالة الثانية من مايكروسوفت ردا على الخطأ الذي قمنا بالتبليغ عنه في نسخة فيجوال ستوديو 2010.

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

    ويتحتم عليك أن تقوم بفتح النافذة مسبقا إذا أردت إلقاء ملفات بها، وما أسوأ الحال عندما تنسى أن تفتحها ثم تعيد العملية مرة أخرى وتفتح الناذفة ثم تسحب الملفات.

     

    وقامت شركة Microsoft  بتأكيد هذه الشائبة ، وأكدت أنها ستقوم بإصلاحها في النسخة الجديدة التالية من فيجوال ستوديو 2010 وهي الإصدار Beta2

    وهذا الرابط في  Microsoft Connect لمن أراد متابعة الخطا وما قد يلحقه من إضافات مستقبلية

    Drag and Drop files to vs2010 does not work

     

    وهنا نأكد لكم بأننا – نحن العرب – أفضل وأذكى وأنبه شعوب العالم ، ويدا بيد ، وشيفرة على شيفرة، ومعلومة على معلومة في هذا الموقع،          لنسمو بالبرمجة العربية     حيث يجب أن تكون،     حيث تعودنا مسبقا،     حيث سنعود مرة مرة ،       وذلك في المقدمة دوما بإذن الله