هل سمعت بـ T4 ؟

8 09 2009

ان كنت قد تجولت في مواقع الانترنت ذات العلاقه بمايكروسوفت ، فأكيد ان صداعا في الرأس بدأ يصيبك من رؤية بعض المصطلحات المعتمدة في الاصدرات القادمة ابرزها T4 ، فعشرات المواقع والمجلات والمدونات تتحدث عن T4 واجزم انك رأيت ذلك المصطلح امامك عشرات المرات ! والسؤال الذي يطرح نفسه : ماذا يقصد بـ T4 ؟

T4 هو رمز الى عبارة Text Templating Transformation Toolkit – اي حرف T اربع مرات بدل TTTT !! – وهي تقنية طورتها مايكروسوفت سابقا وقد قامت حاليا برفع متسوى تطويرها الى مرحلة متقدمة جدا ، هذه التقنية تستخدم في توليد الاكواد Code Generation في مختلف منتجات مايكروسوفت وابرزها بطبيعه الحال Visual Studio . 

محرك T4 موجود اصلا في النسخه 2008 وقادم بشكل قوي جدا في 2010 ، ففي الاصدار الحالي لايوجد اي اداة Tool لاستخدامها في اعادة توليد الاكواد الروتينية ، ولكن في الاصدار 2010 فالوضع مختلف حقا من هذه الناحية ، وبالنسبه للاصدار 2008 فيمكنك استخدام ادوات خارجيه تؤدي هذا الغرض منها اداة Visual T4 Editor و Visual T4 Code Generator وبعضها يتوفر في اصدارات مجانية وهي تتميز بإندماجها بشكل كلي مع Visual Studio .

موقع الاداة Visual T4 هو : http://www.visualt4.com/
وموقع الاداة  Visual T4 Code Generator هو :

http://t4-editor.tangible-engineering.com/T4-Editor-Visual-T4-Editing.html





الأداة CAT.NET

4 09 2009

هي اداة برمجية مجانية تقوم شركة مايكروسوفت بإصدارها ، وهي عبارة عن اضافة على Visual Studio 2005 وما فوق ، تهدف الى البحث في اكواد مشاريعك عن نقاط الضعف في البيانات ، والتي يقصد بها الثغرات المعروفة كـ SQL Injection ،XSS Injection و XPath Injection في اكوادك وتعرضها عليك ، هذه قائمة بهذه الثغرات التي تكتشفها:

Cross Site Scripting
SQL Injection
Process Command Injection
File Canonicalization
Exception Information
LDAP Injection
XPATH Injection
Redirection to User Controlled Site

لتحميل هذه الاداة اتبع الرابط التالي ، علما بانها لاتزال تحت التطوير beta .





لا يمكنك انشاء مشروع جديد يا حبيبي !

30 08 2009

في يوم حالك السواد ، قمت بتشغيل حاسوبي لأجد مجموعة من المشاكل الغريبة في النظام – ويندوز فيستا – حيث ان متصفح الانترنت Internet Explorer 8 كل بضعه دقائق ينبهني بأن برنامجا حاول تعديل محرك البحث الرئيسي فيه ، وبعض البرامج لا تعمل كما يجب ، توجهت بعدها إلى Visual Studio 2008 وهناك كانت المفاجأه ! لا يوجد أي قالب Tamplate لأي نوع من المشاريع في أي لغة سواء VB او C# وبالتالي لا يمكن انشاء أي مشروع جديد ! ولا حتى اضافه أي عنصر جديد إلى أي مشروع موجود مسبقا ! وفي كل مره تظهر امامي الرسالة التالية :

"No template information found. See the application log in Event Viewer for more details. To open Event Viewer, click Start, click Control Panel, double-click Administrative Tools, and then double-click Event Viewer."

توجهت إلى مستعرض الاحداث Event Viewer فوجدت الرسالة التالية :

the global template information is out of date. Regenerate the templates by running ‘devenv.exe /installvstemplates’ or reinstalling the application.

فور قراءتي للرسالة السابقه ، توجهت إلى محرر الاوامر في ويندوز Command Promote وكتبت ما يلي الاوامر التالية سطرا بسطر :

cd \

cd c:\Program files\Microsoft visual Studio 9.0\common7\IDE

devenv.exe /installvstemplates

بعد تلك السطور انحلت المشكله وعادت المياه إلى مجاريها !

تحياتي





حقول الهوية : بين الفئات البرمجية وحقول SQL Server :

23 08 2009

يوجد الكثير من الطرق التي لعمل حقول هوية مميزة Identity fields او ما يعرف بالمفتاح الأساسي Primary Key Filed ، من اشهرها على الاطلاق حقل الـ Autoincrement او الترقيم التلقائي ، والتي يتم فيها توليد رقم تلقائي يزيد عن اخر رقم في العداد الخاص بقيمة تكون في اغلب الاحيان 1 ، تتميز بالخفة والنحافه ، وبالتالي فنحن نتوقع منها الاداء المتميز كونها تحمل قيمة رقمية صغيرة تبدأ من 1 وتصل للآلاف لكنها قد تصل الملايين كلما كبر حجم البرنامج وزاد استخدامه ، وان يكن ، فهي لاتزال ارقام صحيحه integers قد تكون مثلا 99999999999953424 وماذا يعني ذلك ؟ فلا يوجد مشاكل حتى اللحظه فما احلاها !

ولكن ما يعيب هذا الاسلوب هو افتقادها إلى شيء مهم للغاية ، حيث اننا في التطبيقات الكبيرة نوعا ما ، يكون اغلب اعتمادنا على الوضع المنفصل فقد نستخدم Dataset,LINQtoSQL,Entity Framework,…etc ونضيف سجلات Records وقد يتم تعديلها حتى قبل ان ترسل إلى قاعدة البيانات database ، والمشكلة التي ستحدث هنا ، ان كائنات البيانات التي بحوزتنا لن تستطيع اسناد قيمة لحقل المفتاح الأساسي ، حيث ان اصدارها يتم حكرا على قاعدة البيانات فقط ، ولن نستطيع معرفة قيمتها الا بإضافة السجلات إلى قاعدة البيانات وهنا تمكن المشكلة ، ففي التطبيقات التجارية والتطبيقات التي تعتمد على تعدد الطبقات n-tier applications ، يتم اضافة العديد من السجلات وحزمها كلها في حزمة واحده لإرسالها دفعة واحدة إلى قاعدة البيانات ، كما يتم قبل ذلك كله تبادل البيانات بين طبقتي العرض والاعمال ، ناهيك عما يدور خلف الكواليس من عمليات تحقق وسين وجيم !

أقرأ باقي الموضوع »





هل تعلم ما هو اطار عمل كيان البيانات Entity Framework ؟

22 07 2009

في إحدى الرسائل التي وصلتني إلى بريدي من فترة ، رسالة من احد الإخوة يقول فيها : " السلام عليكم أبو تقنيات جديدة ! " ضحكت كثيرا عندما قرأتها ، فقد كانت مضحكه جدا ، ودفعني إلى مراجعة مقالاتي ومدوناتي التي كتبتها، فوجدت ان اغلبها يتحدث عن التقنيات الجديدة التي تظهر بين الفينة والاخرى ! فأجبته قائلا : نعم اذا كنا سنعتمد على تقنيات من انتاج شركة مايكروسوفت ، فاعلم انه يتوجب علينا اللهث وراء تلك التقنيات لأنها تظهر بشكل أسي بالمعادة F(x) = e^x ههههه .

أقرأ باقي الموضوع »





هل استخدم Dataset ام LINQtoSQL ؟

27 06 2009

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

من هذه الامور هو استخدام Dataset او LINQtoSQL ، فبعد ظهور LINQtoSQL صار علينا التفريق في استخدامهما ومعرفة الحالات التي تقتضي افضلية ايهما !

في الحقيقة هذا يعتمد على السيناريوهات التي تود تحقيقها ، وانت حر بطبيعة الحال في السيناريو الذي تريد .

بالنسبة للـ Dataset :
- الـ Dataset سهل التعريف ، والتسلسل Serialize ، ويسهل فصل الكود فيها عن تصميمه في المشاريع المتعددة الطبقات خصوصا بما يتعلق بالـ TableAdapter المضمنه فيه .
- الـ Dataset يحتوي على متتبع للتغيرات التي تطرأ على البيانات المضمنه فيه، ويدعم التغيير دفعه واحده Batch Editing وكذا بالنسبة للتصفيه والعرض ، كما انه يتعامل بشكل تلقائي مع العلاقات المركبة Complex Relationships .
- يسهل استخدام Dataset عندما نرغب في عمل ربط بيانات DataBinding بشكل متقدم ومعقد .
- يصعب استخدام Dataset عندما نرغب بعمل بعمل عمليات تحقق متقدمة على البيانات .
- يجب تجنب استخدام Dataset عندما تقوم ببناء تطبيق موزع ليس كل العملاء Clients فيه مبنية على net.

بالنسبة لـ LINQtoSQL :

-  يقدم لك LINQtoSQL دعم تحكم كامل بالتحقق Validation, السلوك Behavior ، منطق الأعمال BusinessLogic ، كما انها سهله التوريث للفئات الاخرى ، هذا يعني امكانيه عمل طبقات ام وطبقات مشتقة للاعمال بكل سهولة .
- يمكن عمل تسلسل Serialization لفئات LINQtoSQL على شكل مصفوفات Arrays لغير عملاء net.
- بمجرد ايقاف الاتصال بين LINQtoSQL والـ DataContext ، تكون عملية ال Databinding وتعقب التغييرات على البيانات عملية صعبة ويجب عليك القيام بكل ذلك بنفسك !





تقنية Microsoft Azure للحوسبة السحابية !

12 02 2009

بدأت تظهر في السنوات الاخيرة تقنية تدعىى بالحوسبة السحابية Cloud Computing ، ولا بد اولا من التعرف على مفهوم الحوسبة السحابية ، وقد استعنت في ذلك بموقع ويكيبيديا العربي :

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

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

لمزيد من المعلومات حول هذا المفهوم راجع الرابط التالي :

http://en.wikipedia.org/wiki/Cloud_computing

وقد قدمت شركة مايكروسوفت اطار العمل Azure Service Platform ، وهو عبارة عن نظام تشغيل للخدمات السحابية Cloud Services يقوم بحضن ، خدمة ، ادارة ، تشغيل الخدمات العاملة بهذه التقنية . ويمكن بناء تطبيقات وخدمات هذه التقنية ، يمكن استخدام Visual Studio 2008 ولكنها ستكون مدعومة بشكل افضل في النسخة القادمة 2010 .

تدعم هذه التقنية مجموعة من البروتوكولات كـ SOAP,REST,XML وغيرها ، لكن الأجمل في الموضوع ان Windows Azure سيقدم الدعم لبيئات وخدمات مايكروسوفت وغير مايكروسوفت مما يدعو للابتهاج بهذا الخصوص .

ما الفائدة المرجوه من استخدام تقنية Azure ؟

سيمكنك استخدام Windows Azure من اضافة خدمات ويب Web services الى تطبيقاتك الحالية بشكل اسهل ، وبناء وتعديل وتوزيع التطبيقات عبر شبكة ويب بأقل قدر ممكن من الموارد المطلوبة في اجهزة العملاء ، وكذلك سهوله بناء وتعديل خدمات الويب Web Services بسهوله وسرعه وأقل تكاليف ، وتقليل تكاليف مواصفات العتاد والدعم التقني المقدم للعملاء حيث ان كل العمليات الحسابية والتخزينية ستتم على مراكز بيانات متطورة !

الميزة المهمه في هذه التقنية ان تنفيذ التطبيق يتم في السحابة وليس في جهاز المستخدم ، بالتالي تقل المخاطر الامنية وموارد العتاد المطلوبة وغيرها .

للتعرف بشكل افضل واوضح عن هذه التقنية يمكنك زيارة صفحتها الرسمية من الرابط التالي :

http://www.microsoft.com/azure/windowsazure.mspx





فيديو : دعم WPF Bussiness Applications في Visual Studio 2010

6 02 2009

اذا كنت تتابع اخر الاحداث المايكروسوفتيه واخر التطورات التي تظهر في معامل ريدموند ، فقد تكون سمعت بالميزات الجديدة التي ستظهر في فيجوال ستوديو 2010 والتي من بينها دعم خاصية السحب والالقاء Drag-Drop لمصادر البيانات على نوافذ WPF والتي تعني سهوله عمل تطبيقات ال Bussiness والتطبيقات التي تعتمد على قواعد البيانات وربط مصادر البيانات بالنوافذ بإستخدام تقنية الـ Data Binding دون عناءبمجرد سحب مصدر البيانات الى النافذه المراده – كما هو حاصل في تطبيقات Windows Applications .

لمشاهده حوار حول هذا الموضوع ، يمكنك زيارة الصفحة التالية عبر القناة التاسعة لـ MSDN :

http://channel9.msdn.com/posts/funkyonex/Drag-Drop-Data-Binding-Comes-to-WPF-in-Visual-Studio-2010/





مكتبة لعمل تقارير بـ MS Word 2007

16 01 2009

مكتبة لعمل تقارير بـ MS Word 2007

التقارير Reports هي المخرج الاساسي والاهم في تطبيقات قواعد البيانات ، ومن هنا تأتي أهمية التقارير ، وعلى المبرمج او المطور الاهتمام بالتقرير شكلا ومضمونا بطريقة تجعل المستخدم النهائي للتقرير يجد البيانات في منتهى السهولة ويستطيع التعامل معها، ففي بعض الاحيان قد لا يكتفي زبونك بنسخه مطبوعة من التقرير وانما تحتاج الى نسخه الكترونية ، البعض يرى الافضلية ان تكون على هيئة PDF والبعض قد يرى تصديرها بصيغة MS Word,MS Excel افضل خصوصا ان Microsoft Excel يوفر لك امكانيات احصائية وحسابية كبيرة تساعدك في احيان عديدة جداً. وقد يرى البعض ان جعل الصورة النهائية للتقرير بهيئة Word سيكون افضل من الناحية الشكلية خصوصا ، كما ان تصميم تقرير على هيئة Microsoft Word سيكون اسهل من استخدام برامج مخصصة للتقارير في بعض الاحيان كـ Crystal Reports او اداة التقارير الموجودة في Visual Studio نظرا لسهولة عملية التصميم وإمكانيات التنسيق والتنظيم الكبيرة الموجودة في برنامج كـ Microsoft Word 2007 .

وجدت مكتبة صغيرة  وهي تسهل عملية كتابة التقارير بصيغة Word2007 ( docx) وذلك انها تغنيك عن التعامل مع أي مكتبة من مكتبات برنامج Word بل لا تحتاج اصلا إلى وجوده لتقوم بتوليد تقرير بهيئة Word ، والسر في ذلك ان هيئة ملفات Word2007 ما هي الا عبارة عن ملف مضغوط بصيغة zip يحتوي على عدة ملفات xml وبالتالي فالعملية لا تعدو انشاء قالب ببرنامج Word2007 ثم استخدام هذا القالب في كل مره ووضع البيانات عليه !

s2.PNG

s1.PNG

لتحميل المكتبة من هنا:
http://www.zshare.net/download/54213236ceabcdfb/

المصدر :

http://www.codeproject.com/KB/printing/embedword.aspx





مايكروسوفت تعلن عن بنائها لـ Visual Studio 2010 و .Net Framework 4.0

13 12 2008

اعلنت مايكروسوفت قبل فترة عن بنائها لإصدارين جديدين للشقيقين المترابطين Visual Studio و .Net Framework وهما 2010 و الاصدار الرابع .

وسأحاول تغطية الجديد في كل منهما على حدة :

.Net framework 4.0 :

· تحتوي الاصدارة القادمة من اطار العمل ، على اصدارات محدثه من WCF,WF والتي تدعم المزيد في web 2.0

· يتوقع ان يتطور ويتحسن اداء WCF,WF بعشر مرات عن الاصدار 3.5 على الاقل !

· البرمجة المتوازية Parallel Programming : سيتطور دعم المعالجات متعددة الانوية من خلال وجود تقنيات كـ PLINQ و Task Parallel Library and Coordination Data Structures.

· ستدعم لغة الترميز XAML تقنية WCF ابتداءا من الاصدار القادم .

هناك العديد من التطويرات المرتقبة على التقنيات الحديثة كـ WF,WCF وغيرها ، ابرز هذه التطويرات تركز على تحسين الاداء

Visual Studio 2010 CodeName : Rosario :

اختارت مايكروسوفت الاسم الكودي روساريو ليكون هو الملازم لـ VS لحين صدور النسخه النهائية منه .

ومن ناحية بناء التطبيقات :

· تعمل مايكروسوفت على جعل هذه المنصه العملاقه منصة تجمع كل من له دخل في تطوير الحلول التقنية البرمجية ابتداءا من المبرمج والمطور وانتهاءا بمدير دورة حياة الحل Application LifeCycle Manager .

· ومن التطويرات الخاصه ببناء التطبيقات والحلول هو دعم النسخه 2.2.1 من UML وانشاء تكامل بين OMG و UML

· المزيد من الدعم لقوالب برنامج Microsoft Visio .

· ذلك المزيد من الدعم للهندسة العكسية ،

· وهناك ايضا مايعرف بمستكشف الوحدات Model Explorer وهو شبيه بـ Solution Explorer لكنه يقوم باستكشاف كائنات المشروع بنمط UML .

· كذلك يتمتع الاصدار القادم بميزة انشاء Sequence Diagram من الكود الموجود مباشرة بضغطة زر !

· ايضا دعم البرمجة المتوازية Parallel Programming وذلك يتجلى في دعمها اثناء عملية التقنيح Debug وغيرها من العمليات الخاصه ببناء المشروع .

ومن ناحية التجريب Testing وجودة البرامج Quality :

· يقدم Rosario خدمة جديدة تسمى Test Impact view والتي تقوم بمراقبة اداء كود معين فقط .

· لامزيد من شائبة no-repro !

· هناك اداة جديدة تسمى Microsoft Test Runner Tool وهي اداة منفصلة تساعد المختبرين Testers على اختبار التطبيق بشكل سهل وفعال .

المصادر :

http://www.vikasgoyal.net/net/What’s%20New%20in%20Visual%20Studio%202010%20Rosario.aspx

http://www.vikasgoyal.net/net/What’s%20New%20in%20.NET%204.0.aspx

http://www.microsoft.com/visualstudio/2010/overview.mspx

ايضا يمكنكم زيارة صفحة Visual Studio 2010 على موقع Channel9 :

http://channel9.msdn.com/visualstudio/#Page=9

تحياتي لكم