بعض الخفايا والخدع لتسهيل العمل واختصار الوقت أثناء العمل على الفيجوال ستوديو 2010الفيديو سوف يعجبكم ، لا تضيعوه…
Blog
-
هل هذا صحيح 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 ControlsASP.NET MVC
Areas SupportData-Annotation Attribute Validation Support
Templated HelpersDynamic 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 FiltersVisual 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 File2- 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
لمن أراد التجربة هذا هو الرابط
-
كيفية تقطيع جملة عبر كلمة وليس حرف
الأمر يبدو بسيط ، ولكن ما نقع به دائما في الفيجوال بيسك استخدام دالة 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
تصبح المحصلة لديك كالصورة التالية :
الآن نأتي لتحميل ملف التقرير ، مع العلم أنني سأفترض أنك قد أعددت تقريرا
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
في مثالي انا استخدمت قاعدة بيانات داخلية وربطت البيانات بها، أنت حر كما تريد، قمت بتوزيع الكود إلى 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


وبهذه الخطوة تكون قد أضفت المكتبة أو المرجع المسؤول عن الوصول للقاعدة بنظام مصادقة
الويب من اتصال ودوال .لتوفير العناء من استيراد فضاء الأسماء في كل شيفرة كالتالي:
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 يجب أن تأخذ اسم الجملة من الوسم
الموجود في المشروع، وأنا أفضل أن تكون موجودة ضمن وسوم إعداد التطبيق وليس من وسوم
إعداد الويب، وقد قمت بوضع صورة من مشروع معد مسبقا لتوضح المقصود من كلامي.
الآن كل شيء جاهز واعتبر نفسك مبرمج ويب وابدأ بعملك المعتاد دون تردد.
كبداية العمل نحتاج لإنشاء بعض المستخدمين وبعض الصلاحيات وذلك عبر
إنشاء مستخدمين :
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
يمكن التحقق من المستخدم عبر
If Membership.ValidateUser("Khalil", "Khalil") Then
MessageBox.Show("User validated.")
Else
MessageBox.Show("User invalid!")
End If
الحديث هنا يطول ولا ينتهي في كل جزئية من الصلاحيات والغرض من المقال فقط توضيح
استخدام المصادقة في تطبيقات سطح المكتب باعتبار أنك مطور مواقع لا بأس به.
سألني صديق مرة عن نظام مصادقة في تطبيقات سطح المكتب، فأخبرته عن هذا النظام وعن
قدرتي على عمل نظام مصادقة كامل خلال دقائق، فنظر إلي مندهشا، ثم استأنف وسألني : وماذا
عن قدرة على النظام على التحمل والصمود أمام الهجمات وعدد المستخدمين، والجواب بسيط
وهو أن هذا النظام بناه وأشرف عليه أفضل المطورين وقد قمت بالنظر إلى بنيته بتعمق وبصراحة
لا أتوقع أن يبنى أحد ما أفضل منه، ناهيك عن أنه أثبت جدارته في كل المواقع التي قمت
ببرمجتها، وإن كنت تتساءل عن تطبيقات سطح المكتب فقد أثبت جدارته في برنامج مدير الأملاك
العقاري على أكمل وجه حيث كنت أتوقع.أكون قد استعرضت كيفية إنشاء مستخدمين وصلاحيات وتعيين صلاحيات للمستخدمين بدون أن
يكلف الأمر دقائق معدودة، والجميل كالمعتاد أن مايكروسوفت لم تنسى شيء وجعلت التكامل
في بيئتها أمر يفوق التوقع، ومنها بتوفير مصادقة ASP.NET واستخدامها في تطبيقات
سطح المكتب بكل سهولة.صورة اليوم : كابينة التوترة
هل سنرى هذا اليوم !!!
