Dim ar As String() = Regex.Split("بطتنا بطت بطن بطتكوا بطتين ونص بطة", "بط")
Blog
-
كيفية تقطيع جملة عبر كلمة وليس حرف
الأمر يبدو بسيط ، ولكن ما نقع به دائما في الفيجوال بيسك استخدام دالة Split الموجودة في الفئة 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 واستخدامها في تطبيقات
سطح المكتب بكل سهولة.صورة اليوم : كابينة التوترة
هل سنرى هذا اليوم !!!

أسعار أعلى نقرات شهر سبتمر 2010 في ادسنس
بسم الله الرحمن الرحيم
اليوكم نقدم لكم ملف اكسل يحتوي على اعلى اسعار الكلمات في جوجل ادسنس والتى يمكنك الاستفادة منها في زيادة ارباحك
للتحميل اضغظ هنا
ملاحظة سيتم كل شهر ارفاق لكل شهر متجددتفصيل حول بنية النظام: ويندوز فون 8 Windows Phone
رأيت الكثير من الأسئلة واللبس حول الويندوز فون 8 ، كان على رأسها أن الويندوز فون 8 ما هو إلا تطوير للويندوز فون 7 ، وهذا أدى إلى الكثير من الافتراضات لدى المعتقدون أهمها أن الأجهزة الحالية سيتم تطويرها لتدعم الويندوز فون 8. وسأحاول أن أوضح هذا الأمر من ناحية هندسية برمجية بنبوية ، أيما شئت سمها المهم أن تصل الفكرة، وللعلم الحديث هنا سيطول.عندما صدر الويندوز فون 7 ، قمت بالحديث عن البرمجة لهذا النظام ، حيث البرمجة المتاحة كانت بخيارين هما Silverlight و XNA وكلاهما كود مدار Managed Code أي دوت نت فقط (C# and VB.NET)،
أما الكود الغير مدار Native Code – السي بلس بلس C++ – فهو ممنوع إطلاقاً ، وهذا معناه أنك من خلال الكود المسموح لك ( الكود المدار ) لا تستطيع الوصول المباشر إلى دوال النظام الأساسية واستدعائها ( Win32 API ) ،
وعليك فقط متابعة ما تصدره مايكروسوفت من هذه الدوال في إطار الكود المدار فقط.هذه الحدود في الوصول المباشر لها عوارض كثيرة ، وبما أنها حدود برمجية هذا يعني أنه سيكون هنالك حدودية برامجية ،
أي أن بعض البرامج المتعارف عليها لن تكون ممكنة لأنه يلزمها وصول مباشر لنظام التشغيل ولعتاد الهاتف ، وأبسط مثال على هذا الأمر برنامج الكشاف ( والذي يستخدم فلاش الكاميرا ) لم يكن متاح لبعض الأجهزة والسبب أن الدوال المدارة لا تدعم هذا العتاد وعلى المبرمج الانتظار حتى تدعمه مايكروسوفت في إصدار الكود المدار القادم،
وهذا ما كنت ذكرته في تأخر بعض البرامج الشهيرة من العمل على الويندوز فون 7 مثل السكايب أو حتى قارئ ملفات الأكروبات الكئيب المتوفر . بل وحتى بعضها لم يكن مكتوبا له أن يصدر يوما ما وقد قلت هذا في متصفح الفايرفوكس ، لأن هذه البرامج يلزمها وصول مباشر أو يلزمها استخدام مكتبات مكتوبة بال C++ .ما هو السبب ؟
سبب العلة الرئيسي هو أن منصة الدوت نت المستخدمة في الويندوز فون 7 مبنية على .NET Compact Framework وهو أمر بالكاد تقبلته أول ما قرأت عنه لعدة أسباب سيتضح بعضها بعد قليل.
ال .NET Compact Framework 3.7 هو إصدار المنصة التي تم استخدامها في الويندوز فون 7 واختصارا NETCF ، وهو نسخة مصغرة من الدوت نت تعمل على نظام التشغيل Windows Compact Embedded (WinCE) لتعمل على الأجهزة ذات العتاد المحدود مثلا الجوالات ، الثلاجات ، السيارات ، أي شيء لديه حدود في الذاكرة والمعالج ، ومرة أخرى طالما هنالك حدود في السعة والذاكرة ، سيكون هنالك حدود في الدوال ، وبالتالي حدود في البرامج …… .
ولكي يكتمل الموضوع ولا انسى شيء ، ال NETCF 3.7 هو نسخة محدثة عن NETCF 3.5 ، والاختلافات كالتالي
يتكون NETCF 3.5 من
1- NETCF 3.5 runtime المحرك
2- NETCF 3.5 BCL مكتبة الدوال والأصناف
3- NETCF 3.5 UI programming model مبنى على الويندوز فورمز !!!!!!أما NETCF 3.7 يتكون من السابق نفسه بهذه التعديلات بالترتيب
1- NETCF 3.7 runtime بتعديلات هائلة
2- NETCF 3.7 BCL (طبعا بإضافة مكتبات Silverlight 3 مع تعديلات بسيطة )
3- تم استبدال UI programming model بالخيارات التالين( Silverlight 3 ، XNA )أعتقد الصورة وضحت الآن وهي أن ال NETCF 3.5 مبنية واجهته للعمل للويندوز فورمز ، وقد تم استبدالها بكافة السبل بواجهة سيلفرلايت للعمل على الويندوز فون ، وهذا ما تبعه الكثير من التعديلات والجهد على مايكروسوفت ،
ولكن يكفي الحديث أنه مثلا عند إصدار مايكروسوفت لأي تعديل أو نسخة من السيلفرلايت ( مثلا الإصدار الرابع ) لا يمكنهم بسهولة نقله على الجوال ، لأن السيلفرلايت في حقيقته يستخدم جزء فوقي خاص من منصة الدوت نت العادية،
وهذا الجزء الخاص يجب تعديله مرة أخرى ليتوافق مع NETCF 3.7 ، ومن ثم تعديله مرة ثانية أو ثالثة ليتوافق مع الجوال ، يعني فيلم هندي ،
لذلك تأخر مثلا دعم عرض النص العربي في الويندوز فون ( حتى نزول 7.1 ) مع أن السيلفرلايت 4 كان قد صدر قبل إصدار الويندوز فون 7.0 ،
هذا بسبب الجهد الشاق الذي كان يتوجب على المطورين القيام به لدعم السيلفرلايت 4 على NETCF 3.7.
الكثير والكثير من المعاناة والجهد والحدود ، بلا جدوى ، وهذا ما أدى إلى الويندوز فون 8مرحبا بالويندوز فون 8 ( احبيبي )
عند الحديث عن الويندوز فون 8 ، فهنا الحديث عن نقلة نوعية في بنية النظام ، بل هنا نظام جديد كليا والشبه بينه وبين الويندوز فون 7 ، هو كالشبه بين الفيجوال بيسك 6 ، والفيجوال بيسك دوت نت .
الاختلافات كثيرة ويكفي الاختلاف في نظام التشغيل الأساسي ، فالويندوز فون 7 الذي يعمل على Compact Framwork كان يتطلب Windows Compact والذي كان مخصص للويندوز موبايل القديم حيث تم تطويره من من الإصدار السادس إلى السابع ليماشي المطلوب ،
أما الويندوز فون 8 فهو يعمل على نظام تشغيل مخصص مشابه بشكل كبير لنظام التشغيل ويندوز 8 مع بعض الخصومات ، أي أن النظام السابق Windows Compact تم التخلص منه واستخدام نظام مشابه للويندوز العادي ، وهذا يعني أنه يمكنك مستقبل استخدام بعض المكتبات في تطبيقاتك بين الويندوز فون 8 والويندوز 8 بدون تعديل ، وهو ما توفره مايكروسوفت في المكتبة المحمولة Portable Class Library.عندما يكون أساسا النظام مشترك أو واحد بين الويندوز فون والويندوز العادي ( المقصود بالمشترك هنا هي نفس ملفات الكيرنال والتعاريف والولوج للذاكرة .. إلخ ) ، سيكون أسهل للمهندسين في مايكروسوفت التعديل والتطوير فهو في النهاية نظام واحد وليس نظامين كالسابق ، فما سيتم تعديله وتطويره في الويندوز العادي سيكون متاح للويندوز فون 8 بدون جهد يذكر ( نسبيا ) .
ماذا عن منصة الدوت نت المستخدمة ؟!!!.
هذا هو السؤال المهم وسبب كتابة هذا الموضوع ، بالتأكيد يجب استبدال .NET Compact Framework المخصصة للويندوز فون 7 على ال Win CE بمنصة جديدة على النظام المشترك ،
أعزائي الكرام رحبوا معي ب .NET for Windows Phone 8 والذي يستخدم CoreCLR ،
إذا كنت لم تفطر فول هذا الصباح ستعلم أنها نفس منصة الدوت نت العادية المخصصة للويندوز 8 ، ولكن مع حذف الدوال التي لا تلزم على الجوال وهو أمر منطقي ، وتعديلات وإضافات أخرى أيضا منطقية ، وأضيف هنا عما لتوي قلته عن الفطور ، أنك لو كنت نبيها ، فستعلم أن CoreCLR ما هي إلا مكتبات العمل للسيلفرلايت مباشرة مرة أخرى مع بعض التعديلات والإضافات.
هذا يعني أن السيلفرلايت سيعمل بمكتباته مباشرة على الجوال ، ولا داعي لتعديله مرتين ، مرة ليتوافق مع منصة الكومباكت ( وهي الخطوة الصعبة ) ومن ثم تعديله ليتوافق مع الجوال ( وهي الخطوة الأسهل ) ، بل هنا يتم تعديله فقط لتوافق مع الجوال ( وهي الخطوة الأسهل ).التحدي هنا لمطوري مايكروسوفت هو دعم التطبيقات السابقة التي كانت تعمل على الويندوز فون 7 ، لتعمل على الويندوز فون 8 ، فهو نظام جديد ببنية جديدة ، ولكن المطورون اجتهدوا كل الجهد وأتموا الأمر ، فبما أن تطبيقات السيلفرلايت sandbox مغلقة ومغلفة عن النظام ، هنا مع النظام الجديد لدينا بنية مختلفة وقابلية للوصول للنظام ، فوداعا لل sandbox ، ولكن أن تتخيلوا الجهد الذي بذلوه في دعم هذه التطبيقات !
هنالك العديد من الاستنتاجات بدورها بعد دعم النظام الجيد وبعد دعم منصة الدوت نت بشكل أوسع منها
لدينا في هذا النظام قابلية الوصول المباشر ولدينا قابلية استخدام الكود الغير مدار Native code وأهلا بالسي بلس بلس ، هذا يعني لدينا تطبيقات أقوى لا محدودة .
أيضا يعني أن السي شارب 5 ، والفيجوال بيسك 11 – الموجودين في منصة الدوت نت 4.5 – بكل خصائصهم الجديدة تم دعمها على الجوال بشكل افتراضي مثلا البرمجة الغير متزامنة async والبرمجة الموازية للأنوية المتعددة ( طبعا مع دعم نظام التشغيل بشكل مستقل لهذا الأمر ).
أيضا يعني أن تطبيقات الويندوز فون 7 القديمة ستكون أسرع وأقل استهلاك للذاكرة على الويندوز فون 8 ، ببساطة لأنها تستخدم مكتبات سيلفرلايت مباشرة وليست معدلة لتعمل على منصة دخيلة كالسابق .
لهذا يتطلب الأمر شراء جهاز جديد يعمل بالويندوز فون 8 ، لأن الويندوز فون 8 يتطلب عتاد جديد ببنية جديدة، لا أقول أنه لن يعمل على العتاد السابق ، بل أقول أن الكفاءة ستكون أفضل على العتاد الجديد، وأقل جهدا على الشركات من تعديل النظام الجديد ليتوافق مع عتادها القديم.
أيضا لهذا لن تقوم مايكروسوفت بإصدار تحديث للويندوز 8، فالنظام الجديد ليست نظام معدل، بل هو نظام جديد كليا ، والذي يفترض من باب أن يصدر هذا التحديث هو شركات التصنيع ، مثلا شركة HTC تدفع ثمن تراخيص النظام الجديد لكل مستخدم وتقوم بتعديله وإرساله كتحديث للأجهزة الخاصة بها ، وهذا ما لن يتم ، حظاً أوفر لنا مستخدمي الويندوز فون 7.
شكرا لكم وأعتذر عن الإطالة.
لماذا لا يظهر النص كامل في أداة ScrollViewer
واجهتني هذه المشكلة في العمل على برنامج صدر المسلم للجوال وندوز فون 7 ، حيث النص
يظهر مقطوع في أداة الScrollViewer ، وبعد التجارب الفاشلة ، وثم البحث الناجح ،
وجدت المشكلة بفضل اللهالمشكلة لا تكمن في الأداة ، المشكلة تكمن في أداة عرض النص مثلا TextBlock ، حيث
لا تقبل بأكثر من 5000 حرف ، وبعد ذلك لا يظهر الباقي ، فكان الحل مني هو تقسيم
النص ، أحسب عدد الحروف وإذا كانت أقل من 5000 ن أقوم بإضافة أداة عرض نص جديدةجربت أيضا أداة RichTextBox ، وهي تتصرف بنفس الآلية
“تتبع الحركة” ميزة Apple TV الجديد
ذكر موقع TechCrunch أن شركة آبل ستقدم ميزات إضافية لجهاز التحكم الخاص بالجيل الجديد من تلفازها Apple TV حيث يفترض التقرير احتواء جهاز التحكم على حساس للحركة، وذلك لتتبع الحركة بمختلف الاتجاهات.
ويسمح هذا الحساس بالكشف عن الحركة بشكل مشابه لجهاز التحكم الخاص بجهاز الألعاب Wii الذي يعتمد على جهاز استشعار يعمل بالأشعة تحت الحمراء، ولم يقم التقرير بذكر إذا ما كان جهاز التحكم الخاص بآبل سيحتاج إلى ملحقات مماثلة لجهاز Wii لكي يعمل أو سيعمل من تلقاء نفسه.
ومن المتوقع أن تطلق شركة آبل النسخة الجديدة من تلفازها Apple TV خلال حدثها المزمع عقده يوم 9 سبتمبر، وأن يكون أحد أكبر التغييرات هي كيفية التحكم بهذا التلفاز. وكانت تقارير سابقة قد أشارت إلى إمكانية تزويد جهاز التحكم بلوحة لمس وميكروفون.
وستقوم شركة آبل بفتح متجر تطبيقات مخصص لتلفاز آبل Apple TV، وقد تضيف إليه الألعاب لاحقاً، والذي يبدو المسار المحتمل للشركة العملاقة.
العمل الجماعي في visual studio باستخدام team foundation server
هل لديك فريق كلن في بلده وتريدون العمل على تطوير برنامج معين
هناك خاصية ممتازه في الفيجوال ستوديو تمكنك من العمل بشكل جماعي والتحدث مباشره ومعرفه اخر التعديلات المضافه للبرنامج ومن قبل منقبل كل شئ عليك التسجيل في موقع يقدم خدمة team foundation server
هناك مواقع كثيره مدفوعه تقدم هذه الخدمه باسعار مرتفعه جدا
لاكن موقع codeplex.com
يقدم الخدمه بشكل مجاني تمامابعد التسجيل في كود بلكس اضف
بروجكت جديد
Create Project
بعد اضافة بروجكت جديد
اذهب للفيجوال ستوديو
من قائمة team explorer
اضغط على هذه الايقونه
اضف هذه البيانات نافذة الاتصال
اختر البروجكتوادخل اليوزر نيم والباسورد المسجل في الكودبلكس
لاضافة مطورين اكثر معك اذهب لموقع كودبلكس
من قائمة people اختار
manage team
وتستطيع اضافة من تشاء من المطورين
بعدها يستطيعون الدخول للفريق عبر الفيجوال ستوديو كما في الخطوه السابقه باستخدام اليوزر والباسورد الخاص بهم
للاسف وقت اضافة المقال هناك مشكلة في موقع الكود بلكس ولايمكنني الاتصال بالتيم سيرفر وشرح مزيد من الخصائصالعمل الجماعي في visual studio باستخدام team foundation server
قبل كل شئ عليك التسجيل في موقع يقدم خدمة team foundation server
هناك مواقع كثيره مدفوعه تقدم هذه الخدمه باسعار مرتفعه جدا
لاكن موقع codeplex.com
يقدم الخدمه بشكل مجاني تماما
بعد التسجيل في كود بلكس اضف
بروجكت جديد

لاضافة البرنامج
افتح البرنامج في الفيجوال ستوديو ومن قائمه السولوشن اختر الاتي

في نافذة البيانات تجد معلومات الاتصال واليوزر نيم في صفحتك في الكودبلكس تحت اقائمة
source code

اختر البروجكت
لحفظ البرنامج الى سيرفر التيم فاونديشن سيرفر في الكود بلكس
من نفس القائمة
لاضافة مطورين اكثر معك اذهب لموقع كودبلكس
من قائمة people اختار
manage team
وتستطيع اضافة من تشاء من المطورين

عندما تذهب للصفحة الخاصة في الكود بلكس ستلاحظ البرنامج موجود في
ال source code
وهنا ميزه جيده
وتلاحظ انه في حالة تطوير اكثر من مبرمج لصفحه واحده وعمل
check in
فان التعديلات لاتضيع وتستطيع الرجوع لها
لدخول باقي فريق المبرمجين الطريقه
من قائمة
file
open
team project
وادخال البيانات كما موضع في الصورة