Cannot delete file: Access is denied

March 5th, 2010 No comments

being used

هذه احدى الرسائل المزعجة فى الويندوز عندما تريد ان تحذف ملف او مجلد ما ,وهى تنتج لاسباب مختلفة اما لعدم وجود صلاحية للحذف او ان هناك برنامج آخر يستخدم هذا الملف اوالمجلد يمكنك ان تتغلب على هذه المشكلة عن طريق البرنامج الآتى Unlocker

شاركها
  • Print
  • Facebook
  • PDF
  • email
  • HackerNews
  • Live
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz
Categories: حلول

البداية منذ الصغر ,العمل الجماعى

February 26th, 2010 No comments

واعتصموا

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

شاركها
  • Print
  • Facebook
  • PDF
  • email
  • HackerNews
  • Live
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz
Categories: تنمية بشرية

شرح الويب سيرفيس,المختصر المفيد

February 24th, 2010 No comments

Web Service او خدمة الويب هى عبارة عن برنامج قادر على التعامل مع البيانات عبر الشبكة مثل الشبكة المحلية او الانترنت باستخدام تقنيتين مفتوحتى المصدر هما SOAP و XML, سأقوم بشرح كيفية عمل Web Service باستخدام تقنية Dot Net.

مع صدور Dot Net 3.0 أصبح هناك نوعان من الويب سرفيس .

  1. ASP.NET Web Service.
  2. Windows Communication Foundation (WCF).

سأتكلم عن ال ASP.NET Web Service  .

من أجل ان تعمل الويب سرفيس ستحتاج الى سرفر عليه IIS وسنكتفى هنا بالسرفر المحلى الذى يمكن ان نقوم بتنصيب ال IIS عليه من اسطوانة اكس بى او ما بعده (لن اتكلم عن اعداد ال IIS  فى ويندوز فيستا او ويندوز سبعة).

يمتاز استخدام الويب سرفيس بالآتى :

  • تناقل البيانات عبر منفذ 80 بسهولة عبر الانترنت والشبكة المحلية .
  • تستخدم الويب سرفيس تقنية ال XML  وهى مدعمة من قبل جهات عدة .
  • سهولة دمجها فى العديد من البرامج وسأعطى مثال بسيط هنا عن كيف ان الويب سرفيس تحل بعض المشاكل التى تواجهنا فى بيئة العمل ومثال ذلك استخدام InfoPath  ,فاذا كنت استخدمت ال InfoPath  لعلك واجهت مشكلة فتح ال Form فى البداية لان ال InfoPath  يقوم بجلب البيانات من قاعدة البيانات كلها بدون عمل فلترة لانه يعتمد على View  وال View  لا يمكن ان تقبل متغيراتParameters  حتى الآن ,ونقوم بحل هذه المشكلة عن طريق جعل مصدر بيانات ال InfoPath  هو Web Service  ونعطى المتغيرات لهذه الويب سرفيس .

لنفهم اولا بعض التقنية التى تعتمد عليها Web Service  .

SOAP هى اختصار ل Simple Object Access Protocol وهو نظام Protocol للتعامل مع البيانات فى صورة XML عبر بروتوكولى HTTPو HTTPs, لن نتعامل معه مباشرة فالدوت نت يتعامل معها ذاتيا.

WSDL وهو اختصار ل Web Service Description Language وهى لغة تستخدم لكتابة تعريف لل Web service فى صورة XML وخصوصا هى تعرفنا بعنوان الWeb Service و الادوات التى توفرها لنا هذه الخدمة methods للتعامل معها, لن نقوم بكتابتها يدويا فالفجوال ستوديو يقوم بانشاءها ذاتيا.

UDDI وهى اختصار Universal Description Discovery and Integration وهو يسمح لنا بعمل مكتبة للويب سرفيس ليتم استخدامها فيما بعد كفهرس للخدمات التى نقدمها.

بناء ويب سرفيس بلغة VB.NET باستخدام Visual Studio 2008 :

  • قم بفتح الفجوال ستوديو ومن قائمة File  اختر Create Website  .
  • من نافذة New Website  اختر ASP.NET Web service   واكتب اسمه webserviceDemo. هل نوعه HTTP ولا FileSystem  الامر يرجع الي كيفية التعامل مع هذه الويب سرفيس ,فاذا كنت ستتعامل معها على جهازك فقط فسيكفيك ان تكون من نوع FileSystem اما اذا كنت ستتعامل معها عن طريق الشبكة المحلية فاختر من نوع HTTP.
  • نلاحظ وضغ ملف service.vb فى الApp_code  و وضع ملف service.asmx  فى المشروع ,حيث service.asmx  هى صفحة ال Web service  اما service.vb فتعتبر هى صفحة Code Behind  للخدمة والتى سنكتب فيها الكود.
  • نلاحظ انه تم وضع كود بسيط فى صفحة service.vb .
  • نلاحظ وجود <WebMethod()> _ وهو تاج واجب الوجود لجعل ال Method Exposed  اى متاحة ,فاى Method  بدون <WebMethod()> _ لن تكون متاحة مباشرة للعميل الذى سيستخدم Webmethod  اى اننا نستخدم <WebMethod()> _ لجعلها متاحة للعميل .
  • ايضا هناك Namespace  يمكننا تغيير ال Namespace  التلقائى http://tempuri.org/ الى ال NameSpace  الخاص بنا وهو الدومين الخاص بنا ,لن يغير هذا من عمل الويب سيرفيس ,ولكنه يفيد فى حالة وجود استخدام اكتر من Method  يستخدمهم العميل بنفس الاسم فسيتم معرفة الفارق عن طريق هذا ال Namespace.
  • سنقوم بحذف هذا الجزء


Public Function HelloWorld() As String

Return "Hello World"

End Function

  • ونقوم بكتابة الخاصة بنا ولتكن مثلا كالتالى :


Public Function CalcSum(ByVal first As Decimal, ByVal last As Decimal) _As Decimal

Return (first + last)

End Function

  • يمكننا تجربة ال WebService  مبدأيا بالذهاب الى Solution  وعمل ضغطة بزر الفأرة اليمين على ملف service.asmx  وعمل browse .
  • نكتب Method  اخرى تطلب مننا رقم الOrder  فى جدول Orders  الموجود بقاعدة بيانات  Northwind  وترجع لنا البيانات عن هذه الطلب


<WebMethod()> _

Public Function order(ByVal orderid As Integer) As System.Data.DataSet

Dim con As New SqlConnection("server=.;database=northwind;integrated security = true;")

Dim com As New SqlCommand("select * from orders where orderid=@orderid", con)

com.Parameters.AddWithValue("@orderid", orderid)

Dim da As New SqlDataAdapter(com)

Dim ds As New System.Data.DataSet

da.Fill(ds)

Return ds

End Function

الآن نريد تجربة ما قمنا بعمله من Methods  وعمل Consumption  لهم.

  • نصنع مشروع Window Application  ونسميه مثلا WinConsumption .
  • نضغط على ملف المشروع فى Solution Explorer  ضغطة بالفأرة يمين ونختار Add service reference .
  • نضع عنوان الويب سرفيس وفى حالتنا http://localhost/demowebservices/Service.asmx
  • ونضغط على Go
  • نضغ Namespace  لها ولتكن مثلا Myservice  .
  • الآن نريد استهلاك السرفيس داخل المشروع نصنع واجهة كما بالشكل

interface

  • نستخدم Namespace  Imports Webconsumption.myservice وهو الخاص بالويب سرفيس .
  • وهذا هو الكود


Public Class Form1

Dim myserv As New Webconsumption.myservice.ServiceSoapClient

Private Sub btncalcsum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncalcsum.Click

MessageBox.Show(myserv.CalcSum(txtlast.Text, txtfirst.Text))

End Sub

Private Sub btnshoworder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnshoworder.Click

Dim ds As New Data.DataSet

ds = myserv.order(txtorder.Text)

DataGridView1.DataSource = ds.Tables(0)

End Sub

End Class

ملف المشروع

شاركها
  • Print
  • Facebook
  • PDF
  • email
  • HackerNews
  • Live
  • Technorati
  • Twitter
  • Yahoo! Bookmarks
  • Yahoo! Buzz
Categories: Dot Net Memo