d مدونة الفريق – الصفحة 18 – مدونة فريق شركة المطورون بلس

Blog

  • [فيديو] خفايا وخدع Visual Studio 2010

    بعض الخفايا والخدع لتسهيل العمل واختصار الوقت أثناء العمل على الفيجوال ستوديو 2010الفيديو سوف يعجبكم ، لا تضيعوه…

    رابط الفيديو

  • هل هذا صحيح Visual Studio 2010 و .NET Framework 4.0 !!

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

     
    منذ قرابة الشهر أعلنت مايكروسوفت عن نسخة منتجها الجديد في مجال التطوير تحت مسمى Visual Studio 2010 and the .NET Framework 4.0.
    حيث قامت مايكروسوفت بالأمس بطرح أول نسخة CTP  يستطيع الجميع تحميلها والعمل عليها .
    وركزت مايكروسوفت في هذه النسخة على خمسة نقاط وهي :
     
    1-     riding the next-generation platform wave
    دعم لأنظمة التشغيل الجديدة بخصائصها العديدة .
    2-     inspiring developer delight
    تحسينات وتسهيلات للمطورين في بيئة العمل أو في منصة التشغيل للقيام بالأعمال في وقت أقل ومجهود أقل .
    3-     powering breakthrough departmental applications
    دعم مواصلة بناء وتطوير تطبيقات أفضل للمؤسسات .
    4-     enabling emerging trends
    دعم التقنيات والمنتجات والأدوات الجديدة كالمعتاد في كل إصدار جديد .
    5-     democratizing ALM (application life-cycle management)
    تطبيق نظام سير المشروع بأسلوب ALM كما كنا نتمنى أن تدعمه مايكروسوفت ، وبهذا الأسلوب يكون هنالك فصل ووضوح لكل مرحلة في سير البرنامج ، من المبرمجين إلى مدراء المشاريع إلى إخراج المشروع وتجربته .
     
     
    Visual Studio Team System 2010 سيحتوي على عارض بنية للمشروع
     
     
    Visual Studio 2010 ( الاسم الكودي Rosario ) سيدعم 5 مخططات عمل diagrams ، وسيحتوي أيضا على آلية جديدة لتنقيح بعض أنواع الأخطاء المزعجة والتي كانت بالسابق تتطلب وقتا أطول وهذا يعود إلى أسلوب سير المشروع ALM .
     
     
     ورغم الكثير من الأنباء عن الإضافات الجديدة في بيئة التطوير ، إلا أنني لم أقرأ شيء مفيد حقا ويعطي للمطورين تصور عن الجديد في .NET Framework 4.0 مثل ما هو الجديد في C# 4  ، هل يا ترى ستحتوي على الكثير من الإضافات كما احتوى الإصدار الثاني منها ؟؟
     
    ولكن ماذا حول الويب ؟!! ، أعتقد أن الجميع قد انبهر من الإضافات العديدة والمتنوعة في ASP.NET 2.0  من طرق وأساليب وأدوات وشيفرات جديدة أزاحت الحمل عن كاهل المطورين ، في هذا الصدد قرأت أن مايكروسوفت ستدعم JQuery  بشكل أوسع وتمكن لها intellisense كالجافا سكريبت .
     
    وقد قامت مايكروسوفت بإنتاج شعار جديد وعصري يناسب هذه المنصة الجديدة وصراحة الشعار أعجبني
     
    سأقوم إن شاء الله بتحميل النسخة الجديدة وأوافيكم بما هو جديد ، لأنني بصراحة لم أرتاح على الفيجوال استوديو 2008 كثيرا فهو أتعبني بمحرره الغير جيد كفاية كمحرر سابقه 2005 رغم التعديلات والإضافات الجديدة إليه
    يمكن تحميل النسخة الجديدة بحجم 7 جيجا على هذا الرابط لمن يرغب بذلك
     
     
     
     
    نسأل الله أن يكون هذا الإصدار فاتحة خير للجميع كسابقه

  • Microsoft تشكر شركة مطورو دوت نت على الخطأ الذي اكتشفته في فيجوال ستوديو 2010

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

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

     وهذا ما دعى Microsoft  إلى تأكيد هذه الشائبة وإرسال رسالة بالشكر ، وأيضا وعدت مايكروسوفت بأن تحل هذه المشكلة سواء في هذه  النسخة أو في الإصدارات التاللية من Visual Studio 2010 كالنسخة النهائية .

    ولمن يملك حساب على Microsoft Connect يستطيع الدخول على هذا الرابط لرؤية التبليغ عن الشائبة

    GridView TemplateField: bad in desinger mode

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

  • Visual Studio 2010 Beta 2 جاهزة للتحميل

    وأخيرا وبعد طول انتظار ، قامت شركة Microsoft  بالإعلان عبر موقعها عن النسخة التجريبية الثانية من أقوى بيئة تطور عرفتها البشرية ، وستكون هذه النسخة جاهزة للتحميل يوم الأربعاء بتاريخ 21-أكتوبر-2009 .. الجميل في الأمر أن النسخة التجريبة الثانية تحميل في طياتها – كالمعتاد – ما ستحتوي النسخة النهائية من إضافات عديدة وجديدة تكون أضعاف أضعاف  النسخة التجريبية الأولى.
    إن النسخة  التجريبية الجديدة والتي ستصدر النسخة النهائية منها في 21-3-2010 تحتوي على العديد من الإضافات منها:
    1- العديد العديد من الإضافات والتحسينات في ال Web Forms  ، المزيد من الأدوات الجديدة ، المزيد من الدعم للمتصفحات ، دعم للمزيد من المعايير ، حتى إضافة ميزة التصفية في Data sources.
    2- المزيد من التحكم في عرض البيانات ديناميكيا وذلك لتسهيل وتسريع إنتاج المواقع المعتمدة على قواعد البيانات، ومكتوب شيء جديد يفهم من عنوانه وهو automatic validation.
    3- تحسينات على الفيجوال ستوديو في إضافات عديدة لستهيل العمل ، وأيضا تطوير في بيئة تحرير Html,CSS, JavaScript

    انظروا للشكل ما أبدعه

    وهذا بعض ما ورد في ASp.NET 4.0 :
    – URL Routing وتم طرح هذه التقنية في التحديث الأول للمنصة 3.5 كجزء من MVC ، وهي مشابهة لتقنية Mod ReWrite in PHP وهي لدعم أكبر لمحركات البحث SEO  في أرشفة الروابط ، وقد كنا نحلم بها منذ سنين .. والحمد لله تحقق الحلم بدون منتجات وأدوات خارجية .
    – Auto-Start Web Applications : حيث أن العديد من المواقع الضخمة تحناج إلى تحميل بعض البيانات عند تشغيلها للمرة الأولى وهذا يتطلب بعض الوقت أحيانا، ولكن مع هذه الميزة الجديدة والتي تسمح لك باختصار الوقت وتحميها مسبقا استعداد لأول طلب للموقع ، مع العلم أن هذه الميزة تحتاج ل IIS 7.5 الموجود في Windows 7 and Windows Server 2008 R2 .
    – RedirectPermanent : حل بعض المشاكل مثل خطأ 301 الذي يظهر عند نقل صفحة في موضع آخر

    بما أن المقال لتوضيح أن النسخة الجديدة قابلة للتحميل وللتجربة ـ فإنه لي وقفة مرات عديدة بإذن الله لشرح الميزات الجديدة والإَافات العديدة.

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

    Core Services   

        Web.config File Minification   
        Extensible Output Caching   
        Auto-Start Web Applications   
        Permanently Redirecting a Page   
        The Incredible Shrinking Session State   
        Expanding the Range of Allowable URLs   
        Extensible Request Validation
        Object Caching and Object Caching Extensibility
        Extensible HTML, URL, and HTTP Header Encoding   
        Performance Monitoring for Individual Applications in a Single Worker Process   
        Multi-Targeting  

     
    New Features in ASP.NET AJAX 4  

     
        Client Template Rendering   
        Instantiating Behaviors and Controls Declaratively   
        Live Data Binding   
        Using the Observer Pattern with JavaScript Objects and Arrays   
        The DataView Control   
        The AdoNetServiceProxy Class   
        The DataContext and AdoNetDataContext Classes   
        Refactoring the Microsoft AJAX Framework Libraries   
        The DOM Ready Event   
        Using JSONP to Retrieve Cross-Domain Data

      
    Web Forms  

     
        Setting Meta Tags with the Page.MetaKeywords and Page.MetaDescription Properties   
        Enabling View State for Individual Controls   
        Changes to Browser Capabilities   
        Routing in ASP.NET 4   
        Setting Client IDs   
        Persisting Row Selection in Data Controls   
        ASP.NET Chart Control   
        Filtering Data with the QueryExtender Control   
        Html Encoded Code Expressions   
        Project Template Changes   
        CSS Improvements   
        Hiding div Elements Around Hidden Fields   
        Rendering an Outer Table for Templated Controls   
        ListView Control Enhancements   
        CheckBoxList and RadioButtonList Control Enhancements   
        Menu Control Improvements   
        Wizard and CreateUserWizard Controls   

    ASP.NET MVC
        Areas Support

        Data-Annotation Attribute Validation Support
        Templated Helpers

    Dynamic Data

        Enabling Dynamic Data for Existing Projects   
        Declarative DynamicDataManager Control Syntax   
        Entity Templates   
        New Field Templates for URLs and E-mail Addresses   
        Creating Links with the DynamicHyperLink Control   
        Support for Inheritance in the Data Model   
        Support for Many-to-Many Relationships (Entity Framework Only)   
        New Attributes to Control Display and Support Enumerations   
        Enhanced Support for Filters   

    Visual Studio 2010 Web Designer Improvements   

        Improved CSS Compatibility   
        HTML and JScript Snippets   
        JScript IntelliSense Enhancements   
        Web Application Deployment with Visual Studio 2010   
        Web Packaging   
        Web.config Transformation   
        Database Deployment   
        One-Click Publish for Web Applications   

    ييمكن تحميل النسخة التجريبة الثانية عبر هذا الرابط
    http://msdn.microsoft.com/ar-sa/vstudio/dd582936(en-us).aspx

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

  • Visual Studio 2010 Beta 1 جاهزة للتحميل

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

    حاليا سأضع لكم رابط النسخة وقد وضعت مايكروسوفت نسختين، ولكل نسخة وصغت مايكروسوفت طريقتين للتحميل ، نبدأ باسم الله:
    1- Visual Studio Team System 2010
    Web Installer
    ISO File

    2- Visual Studio 2010 Professional
    Web Installer
    ISO File

    نسخة الويب حجم الملف 5 ميغا وسيقوم بتحميل اللازم من الإنترنت
    أما نسخة  الصورة الكاملة فهي ما بين 1100 ميغا بايت إلى 1300 ميغا بايت .

    وهذه هي  متطلبات التشغيل من مايكروسوفت

    System Requirements
    Supported Operating Systems: Windows Server 2003; Windows Server 2008; Windows Vista; Windows XP
    Computer that has a 1.6GHz or faster processor
    Visual Studio 2010 can be installed on the following operating systems:
    Windows Vista (x86 or x64), all editions except Starter Edition
    Windows XP (x86 or x64), Service Pack 2 or later, all editions except Starter Edition
    Windows Server 2003 (x86 or x64), Service Pack 1 or later, all editions
    Windows Server 2003 R2 or later (x86 or x64), all editions
    Windows Server 2008 (x86 and x64) or later (all editions)
    Windows Server 2008 R2 RC (x64) Enterprise Edition
    Windows 7 RC (x86 and x64) Ultimate Edition
    1024MB RAM
    3GB of available hard disk space
    5400 RPM hard disk drive
    DirectX 9-capable video card that runs at 1280 x 1024 or higher display resolution
    DVD-ROM drive

     

    بالتوفيق للجميع وانتظرنا بالجديد في هذه النسخة كما وعدناكم

  • صدور حزمة Visual Basic لمطوري Windows Phone

    p>صدرت حزمة تطوير الفيجوال بيسك دوت نت لبيئة الوندوز فون 7 وهي النسخة CTP

    النسخة تتطلب اصدار من الفيجوال ستوديو Professional  أو أعلى

    أيضا لا تستطيع ان تبرمج بها ألعاب XNA فقط مسموح تطبيقات Silverlight

    لمن أراد التجربة هذا هو الرابط

    Visual Basic CTP for Windows Phone Developer Tools

  • كيفية تقطيع جملة عبر كلمة وليس حرف

    الأمر يبدو بسيط ، ولكن ما نقع به دائما في الفيجوال بيسك استخدام دالة Split الموجودة في الفئة String ، وإرسال وسيطة كلمة لها ، معتقدين أن عملية التقطيع ( التقسيم ) ستتم عبر الكلمة. ولكن ما يحدث هو أن الفيجوال بيسك يعمل كعمل دالة التقطيع الخاصة بالسي شارب ويقوم بتحويل النص إلى مصفوفة أحرف ويقسم حسب كل حرف في الكلة وليس حسب الكلمة ككل الحل بسيط يكمن في استخدام دالة Regex.Split وهذا كمثال

                Dim ar As String() = Regex.Split("بطتنا بطت بطن بطتكوا بطتين ونص بطة", "بط")                 
  • حل استخدام التقارير في WPF

    حينما تستخدم التقارير في تطبيقات Windows Forms أو في ASP.NET، يكون الأمر سهلا، ولكن حينما تستخدمها في WPF ، ستواجهك بعض العقبات، ساستعرض هنا الطريقة المثلى والمشاكل التي قد تواجهك في أثناء العمل

    بداية لا توجد أداة مدمجة في WPF تسمح لك باستخدام التقارير مباشرة ( أقصد بالتقارير بالدرجة الأولى تقارير الفيجوال ستوديو نفسه، وقد ينطبق هذا الشرح على تقارير الكريستال ريبورت )، وإذا أردت استخدام التقارير في  WPF  فعليك باستدعاء عارض التقارير الموجود في Windows Forms.

     

    طريقة الاستدعاء سهلة، عليك باتباع الخطوات التالية

    – أضف المرجع Add Reference التالي إلى المشروع / Microsoft.Reporting.WinForms

    – قم باستدعاء المرجع في منطقة الاستدعاء : xmlns:rv="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms"  من داخل الصفحة

    – قم بوضع الوسم WindowsFormsHost أينما تحب في المشروع وهذه الأداة مسؤولة عن جلب أدوات من الWindows Forms  بداخل WPF

    – استدعي أداة عارض التقارير بداخل الوسم بالأعلى كالتالي <rv:ReportViewer

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

    wpf report

     

    الآن نأتي لتحميل ملف التقرير ، مع العلم أنني سأفترض أنك قد أعددت تقريرا

               Private Sub Button_Click(sender As Object, e As RoutedEventArgs) 
    '' جلب الداتا سيت التي قد قمت بربطها بالتقرير، مهما كان اسمها
    Dim dataset As New JewellyManagement.KhalilSaleemDataset
    dataset.BeginInit()


    '' تعبئة البيانات بالشكل المطلوب وتستطيع كتابة أي شروط او استعلامات كما تشاء ، الأمر روتيني لمن استخدم التقارير سابقا
    Dim conn As New SqlCeConnection(My.Settings.JDConnectionString)
    Dim cmd As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText = "SELECT [ID], [DOB], [Name], [Price], [Notes], CASE [Ttype] WHEN 1 THEN 'يومي' WHEN 2 THEN 'شهري' WHEN 3 THEN 'سنوي' ELSE 'يومي' End as TType,Currency FROM [WalletOut]"
    Dim da As New SqlCeDataAdapter(cmd)
    da.Fill(dataset.CInfo)



    Dim reportinfo As New Microsoft.Reporting.WinForms.ReportDataSource()
    reportinfo.Name = "DSInfo"
    reportinfo.Value = dataset.CInfo
    Me._reportViewer.LocalReport.DisplayName = ReportNameWithDate("تقرير المصروفات ")
    Me._reportViewer.LocalReport.DataSources.Add(reportinfo)
    Me._reportViewer.LocalReport.ReportEmbeddedResource = "JewellyManagement.WalletFullReport.rdlc"
    dataset.EndInit()
    _reportViewer.RefreshReport()
    End Sub

    wpf report

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

    في القسم الثاني عليك بكتابة استعلامك وملء البيانات وهو إجراء روتيني لك كمبرمج.

     في القسم الثالث عليك بارسال اسم مصدر البيانات من التقرير وفي حالتي كان DSInfo وكذلك عليك استدعاء اسم التقرير ومساره في JewellyManagement.WalletFullReport.rdlc ، وهنا تكمن الخدعة، وهنا سبب كتابتي للمقال.

     

    توضيح حول المسار

    المعتاد دائما في هذا الكود هو استدعاء المسار بالشكل التالي

              _reportViewer.LocalReport.ReportPath = "../../Incomes/BrakeReport.rdlc" 

    حيث ../../ تشير إلى اسم المجمع assembly وثم اسم فضاء الأسماء namespace و Incomes على سبيل المثال هي للمجلد الفرعي ( الداخلي ) الذي أضع فيه التقرير والذي يحمل اسم BrakeReport.rdlc

    هذا الأمر طبيعي في Windows Forms ونفس الشيء في WPF المشكلة تظهر حينما تحاول نشر البرنامج ستجد أن المشاكل تظهر ولا ينم عرض التقرير

    السبب بسيط هو أن التقرير Embeded Resource وبالتالي لا مسار فيزيائي له، وستفشل كل الطرق في WPF لجلب المسار

    الحل يكمن في اسدعاء خاصية ReportEmbeddedResource بدلا من ReportPath  كما عملت في الكود بالأعلى ، ولكن هنالك خدعة بسيطة يجب عملها ألا وهو استبدال ../../ بالمسار الحقيقي في Embedding

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

            _reportViewer.LocalReport.ReportEmbeddedResource = "AssemblyName.NameSpace.ReportName.rdlc"

    وطبيعي لو كنت قد وضعت التقرير في مجلد فرعي أن تضيف اسم المجلد الفرعي كفضاء أسماء لأن السي شارب  تعامل المجلدات كفضاءات أسماء فيصبح الأمر هكذا

            _reportViewer.LocalReport.ReportEmbeddedResource = "AssemblyName.NameSpace.FolderName.ReportName.rdlc"

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

            _reportViewer.LocalReport.ReportEmbeddedResource = "AssemblyName.ReportName.rdlc

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

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

  • استخدام مصادقة ASP.NET في تطبيقات سطح المكتب

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

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

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

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

    الجزء الثاني من العملية هو وجود نظام لإدارة حالة المستخدم أثناء تسجيل دخوله والأمور
    المرتبطة بها في الموقع وذلك مثلا بإنشاء جلسة ( Session ) خاصة بهذا العضو.

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

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

    الخطوة الأولى تكمن في تكوين قاعدة البيانات لمصادقة الويب وهذا باستخدام أداة
    aspnet_regsql
    والتي يمكنك استدعاءها من موجه أوامر الفيجوال ستوديو أو من هذا
    المسار
    C:\Windows\Microsoft.NET\Framework\v2.0.50727
    واختيار قاعدة البيانات المعنية لكي يتم تجهيز الجداول والدوال وباقي ما يتعلق بالمصادقة.

    الخطوة الثانية تكون بإنشاء تطبيق جديد ليتم تجربة الأمر عليه ويتم إضافة المرجع
    System.Web من خلال الضغط بالزر اليمين للماوس على اسم التطبيق واختيار Add Reference


    visual studio add new item

    visual studio add Reference
    وبهذه الخطوة تكون قد أضفت المكتبة أو المرجع المسؤول عن الوصول للقاعدة بنظام مصادقة
    الويب من اتصال ودوال .

    لتوفير العناء من استيراد فضاء الأسماء في كل شيفرة كالتالي:
    Improts System.Web.Secutity

    أفضل استيراد فضاء الأسماء في كل المشروع وذلك من خلال خصائص المشروع.

    الآن لنراجع الخطوات:
    لدينا قاعدة بها جداول ودوال جاهزة، ولدينا مشروع مستعد للاتصال بهذه القاعدة وجلب
    البيانات منها والإضافة إليها.

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

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

    وكالمعتاد يجب الذهاب لملف إعدادات المشروع وحيث كان في برمجة الويب اسمه web.config
    هنا اسمه app.config.

    قم بإضافة هذه الوسوم آخر ملف الإعدادات وإن لم يكن موجود بشكل افتراضي ملف الإعدادات
    قم بإضافة ملف جديد عبر إضافة عنصر جديد واختيار Application Configuration File
    واترك مسماه الافتراضي app.config .

    الوسوم هي:

    <system.web>   <membership>
        <providers>
          <remove name="AspNetSqlMembershipProvider"/>
          <add name="DevelopersSqlMembershipProvider"
              type="System.Web.Security.SqlMembershipProvider,System.Web,
               Version=2.0.0.0,
    Culture=neutral,

               PublicKeyToken=b03f5f7f11d50a3a"
               connectionStringName="ConnStr"
               enablePasswordRetrieval="false"
               enablePasswordReset="false"
               requiresQuestionAndAnswer="false"
               applicationName="/"
               requiresUniqueEmail="false"
               passwordFormat="Hashed"
               maxInvalidPasswordAttempts="3"
               minRequiredPasswordLength="4"
               minRequiredNonalphanumericCharacters="0"
               passwordAttemptWindow="10"
               passwordStrengthRegularExpression=""
    />

        </providers>
      </membership>
    </system.web>

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

    visual studio web.config

    الآن كل شيء جاهز واعتبر نفسك مبرمج ويب وابدأ بعملك المعتاد دون تردد.

    كبداية العمل نحتاج لإنشاء بعض المستخدمين وبعض الصلاحيات وذلك عبر

    إنشاء مستخدمين :

    Membership.CreateUser( UserName,Password)

    Membership.CreateUser( "Khalil","Khalil")

    أو أن ترسل أي عدد من الوسيطات للدالة كإرسال كافة الوسيطات

    Dim status As MembershipCreateStatus
    Membership.CreateUser( "Khalil","Khalil")

    Membership.CreateUser("admin@developers.ps","Password","Email","Password
    question","Password answer", True ,status)

    والفئة MembershipCreateStatus تشير إلى نجاح أو فشل محاولة إنشاء مستخدم
    جديد ويمكن كتابة قيمة status لعرض المشكلة سواء كان الخلل في كلمة المرور أو البريد
    أو حتى لو كان خطأ عام .

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

    ولإنشاء صلاحية عليك باستدعاء الدالة CreateRole أما تعيين
    مستخدم لهذه الصلاحية فسيكون من خلال استدعاء الدالة
    AddUserToRole
    بهذا الشكل:

    Roles.CreateRole("Developer")
    Roles.AddUserToRole("Khalil", "Developer")

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

    If Roles.IsUserInRole("Khalil", "Developer") Then
       MessageBox.Show ("Is a developer.")
    Else
       MessageBox.Show ("Is not a developer.")
    End If

    visual studio

    يمكن التحقق من المستخدم عبر

    If Membership.ValidateUser("Khalil", "Khalil") Then
        MessageBox.Show("User validated.")

    Else
        MessageBox.Show("User invalid!")
    End If

    visual studio

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


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

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