DCSIMG
עמוד הבית| חבילות השירות שלנו| חומר חופשי| צור קשר
August 2008 - Posts - בלוג היועצים של מיקרוסופט ישראל

בלוג היועצים של מיקרוסופט ישראל

August 2008 - Posts

Agile Development

If you are in the Scrum/Agile business development/management project you better check the Agile Development 2008 sessions which made available online.

18 sessions have been recorded , 5 of which are already available:

Natural Laws of Software Development - Deriving Agile Practices by Ron Jeffries, Chet Hendrickson

We suck less! "Isn't mediocrity great? by David Douglas, Robin Dymond

New Car Development in Toyota by Kenji Hiranbe

Future Directions for Agile by David Anderson

10 ways to screw up with Scrum and XP by Henrik Kniberg

Another 13 will be published at http://www.infoq.com/agile2008 :

− Agile and Beyond - The power of aspirational teams! by Tim Mackinnon

− Agile in Practice: What is ACTUALLY Going On Out There by Scott Ambler

− Prioritizing Your Product Backlog by Mike Cohn

− Manager's Introduction to Test-Driven Development by Dave Nicolette, Karl Scotland

− When Working Software Is Not Enough: A Story of Project Failure by Mitch Lacey

− Extremely Short Iterations as a Catalyst for Effective Prioritization of Work by Mishkin Berteig

− Fostering Software Craftsmanship in a Corporate Setting by Scott Dillman

− Measuring Agile in the Enterprise: 5 Success Factors for Large-Scale Agile Adoption by Michael Mah

− Colossal, Scattered, and Chaotic (Planning with a Large Distributed Team) by Wes Williams, Mike Stout

− Now that the team's head is in the game, how do you get their heart in? by Jim McCarthy

− Technical lessons learned turning the agile dials to eleven! by Craig Smith, Paul King

− Introduction to Lean Software Development by Alan Shalloway

− Fully Distributed Scrum: The Secret Sauce for Hyperproductive Outsourced Development Teams by Jeff Sutherland

  InfoQ also hosts videos of several sessions from the previous Agile2007 conference , including:

The Role of Leadership In Software Development by Scott Dillman

Agile in the Waterfall Enterprise by Michele Sliger

Abstract Class ו- Interface - חלק ב'

בהמשך לפוסט הקודם שלי בנושא, להלן התשובה לשאלה, וכמה הבהרות.

ראשית - שימו לב שהשאלה אינה "מה ההבדל בין Abstract Class ו- Interface". קיבלתי לא מעט תשובות (נכונות!) שענו על זה, אבל זה לא מה ששאלתי. השאלה היא: "מה ההבדל בין Abstract Class שמכיל רק פונקציות Abstract, ובין Interface". ברור שב- Abstract Class ניתן להוסיף פונקציונליות, אבל זה לא המקרה...

בנוסף - חשוב לי להדגיש משהו עקרוני. אנחנו לעולם לא פוסלים (או מקבלים, לצורך העניין...) מועמד על סמך שאלה אחת, חשובה ככל שתהיה. יש עוד לא מעט פרמטרים שעומדים למבחן. ידע ועומק טכנולוגי הם פרמטר חשוב, אבל לא היחיד. ולכן, גם אם לא ידעתם את התשובה לשאלה הזו, אין המשמעות של זה שאינכם מתאימים לעבודה אצלנו...

ולתשובה:

הראשון ששלח את התשובה הנכונה ביקש שלא אחשוף את פרטיו, ולכן רק אעתיק את החלק הרלוונטי מהתשובה שלו:

"מחלקה יכולה לממש כמה ממשקים, אך רק מחלקת-אב אחת בלבד"

או, בז'רגון המקצועי - ירושה מרובה. ב- .NET, כידוע,  לא קיימת ירושה מרובה של Classes, אך ניתן לממש מספר Interfaces.

שתי הערות בקשר לנושא הזה:

1. חשוב לשים לב לטרמינולוגיה - Class אינו יורש Interface, אלא מממש אותו. לעומת זאת, Class כן יורש Class אחר. למי מכם שכותב ב- VB.NET ההבדל בולט לעין, משום שאלו המינוחים בהם עושים שימוש: Inherits לעומת Implements. ב- C#, לעומת זאת, אין הבדל בין ציון ירושה מ- Class ומימוש Interface. מספר מיילים שקיבלתי השתמשו במינוח המוטעה, וציינו ירושה של Interface. עם זאת, חשוב לשים לב שקיימת ירושה בין Interfaces, כלומר - Interface יכול לרשת ולהרחיב הגדרות של Interface אחר. למעשה  - Interface אחד יכול לרשת מספר Interfaces - והרי לנו ירושה מרובה ב- .NET...

2. אחד המיילים שקיבלתי ציין את המחסור בירושה מרובה כחיסרון. לטעמי, העובדה שאין ירושה מרובה היא דווקא יתרון. כאחד שכתב ב- C++, Java ו- .NET, מעולם לא נתקלתי במצב בו ירושה מרובה היא הפיתרון היחיד, אך כן נתקלתי בבעיות שזה יוצר. הבעיה העיקרית היא כמובן פרדוקס היהלום, אבל זה עלול ליצור בעיות נוספות. אשמח לשמוע את דעתכם בעניין.

איך לעבור ראיון מקצועי במיקרוסופט?

אז עכשיו, אחרי שתפסתי אתכם עם הכותרת המפוצצת הנ"ל, אני אסביר למה הכוונה.

במסגרת העבודה במיקרוסופט יוצא לי (ולאחרים בקבוצה, כמובן) לראיין לא מעט מועמדים לגיוס. אני אימצתי לי שאלה קבועה בראיון שכזה, ויש לה אצלי משקל חשוב בהחלטה המקצועית לגבי המועמד.

הסיבה שהיא הפכה להיות כזו שאלה אקוטית היא, שבפעם הראשונה ששאלתי אותה, בתור עוד שאלה סטנדרטית בראיון, הייתי משוכנע שאקבל תשובה מיידית, אולי אפילו עם הבעה של "מה אתה רוצה ממני, זה בבסיס של .NET!". להפתעתי הרבה, לא כך היה. למעשה, בכל הראיונות שערכתי, היה רק מועמד אחד שענה עליה כמו שצריך, וגם זה לאחר חשיבה מאומצת.

המצב הזה סיקרן אותי והחלטתי לבדוק, באמצעות הבלוג הזה, מה כל כך מיוחד בשאלה הזו. ולכן, לאור הנ"ל, אני גאה להציג את שאלת המחץ. אנא שלחו את התשובות למייל שלי - memil@microsoft.com. נא לא לענות באמצעות ההערות בתחתית הדף!

והשאלה:

"ב- Abstract Class ניתן להגדיר את כל הפונקציות כ- Abstract, כך שלמעשה אין כל לוגיקה שהיא ב- Class הזה, והוא מתפקד בצורה זהה לחלוטין ל- Interface. אם כך - לשם מה יש צורך ב- Interfaces?"

 

אני מדגיש שוב - אין לענות על השאלה באמצעות ההערות בתחתית הדף!

הייתי רוצה לכתוב שהעונה הראשון יקבל פרס כלשהו, אבל האמת שאין לי משהו מיידי שאפשר לתת... מה שכן - אני מתחייב מעל במה מכובדת זו שאפרסם בבלוג המשך את התשובה הנכונה עם פרטי השולח (אם הוא יהיה מעוניין, כמובן...), והוא יזכה להיכנס לפנתיאון גדולי האומה.

 

נ.ב. למקרה שתהיתם - אני כבר עובד על שאלת מחץ חדשה לראיונות.

פיתוח מערכות מידע מונחה שיפור ביצועים

רוב מערכות מידע כיום סובלות מביצועים גרועים. תיקון קטן – רוב מכריע של מערכות מידע שפותחו ללא שילוב נושא שיפור ביצועים בארכיטקטורה, בעיצוב, בקידוד ובפריסה סובלות מביצועים גרועים.

פוסט זה נכתב בהשראה שקיבלתי לאחר צפיה בוידאו הבא שצולם בכנס ALT.NET הישראלית (עוד נקודה ישראלית! – מת על זה):

 

“אי אפשר לעשות Performance לפני – צריך אפליקציה”

שיפור ביצועים מבחינתי הוא Feature (דרישה), אומנם דרישה לא פונקציונאלית אך בכל זאת דרישה. ומכיון שזה דרישה חייבים לנהל אתה – חייבים לדרוש אותה, לאפיין אותה, לתכנן אותה, לקודד אותה, לבדוק אותה ולתחזק אותה – כמו כל דרישה אחרת. אפשר לעשות Performance לפני אפילו רצוי מאוד. דרישה שלא תוכננו כראוי כנרא לא תבוצע על הצד הטוב ביותר.

  • מיקרוסופט – בבסיס של Improving .NET Application Performance and Scalability עומדת גישה של טיפול בנושא שיפור ביצועים לאורך כל מחזור חיי התכנה – מתכנון עד לביצוע והטמעה
  • יאהו – חוקרים של יאהו חוקרים בלי סוף איך ניתן לשפר ביצועים ולמזלנו המפרסים את הממצאים ו-Best Practices כאן - Exceptional Performance 
  • גוגל – מהירות החיפוש לא סתם תוצר לואי של החברה אלא התכונה המרכזית שתוכננו עוד בימים שזה היה מחקר אקדמי - Technology Overview

“בסוף אין זמן לאף אחד”

המשפט הזה רק מוכיח שנושא שיפור ביצועים הוא Feature ונדרש לניהול מהתחלה. “אין זמן” הכוונה בעצם כאן היא “אין תקציב” – כלומר הנושא לא תוצקב מלכתחילה ולכן אין זמן ליטופל בו.

אם נושא שיפור ביצועים היה מתוקצב מהתחלה כמו כל נושא פונקציונאלי אחר אז היה זמן גם לתכנון ביצועים, מימוש ביצועים, בדיקות הביצועים, ביצוע בדיקות הביצועים, ביצועים מקצה שיפור ותיקון באגים של ביצועים ובדיקות חוזרות

עוד תזכורת טובה למה אין זמן לאף אחד בסוף לקוחה מתוך פוסט של DevloperZen:

image

“לשלב Performance בתהליך פיתוח”

בהחלט המשפט הכי אהוב עליי שנשמע בוידאו – LOVE IT!!!!

המשך קריאה

Alik Levin

שמי אליק לוין ואני מתרכז ב- Security and Performance באפליקציות Net.
בזמני הפנוי אני בלוגר שרוף.

This post was made with PracticeThis.com blog post template plugin for Windows Live Writer

DotNetKicks Image

Slow Performance of VS2008 In disconnected Environment

One of my customers was recently facing performance issues during working with Visual Studio 2008 in disconnected environment. The issues we have seen were slow performance in debugging, running, compiling and loading Visual Studio projects.

After poking around a little bit with my other colleagues, I've got an advice from Lior Rozner (which is one of our senior architects in MCS and I hope to see some of his stuff around here sometime :-)) that I might try to deselect the 'Check publisher's certificate revocation' flag in Internet Explorer ; believe it or not-things got much faster and it speeded up the entire application.

So what are certificates anyway ?

Certificates are electronic credentials authenticated and issued by trusted certification authority in order to ensure content integrity (ensuring that the public key contained in the certificate belongs to the entity to which the certificate was issued) which basically means that they suppose to prove that we are connecting to the site we think we are connecting or downloading a program from this site for example.
There are different types of digital certificates and the publisher certificates type are used to sign software to be redistribute over the Internet.

O.K, now what are certificate revocation ?

Certificate revocation lists (published by CA's) are lists which holds revoked certificates along with the reasons for revocation, in addition, CRL's provides way of withdrawing certificate after it has been issued.Now, the 'Check publisher's certificate revocation' setting in Internet Explorer (you will find it under Tools-> Internet Options -> Advanced -> Security) specifies whether Internet Explorer should verify that an issuing certificate authority has not revoked publisher's certificate.

I'm guessing that in disconnected environment (no access to the Internet), the .Net framework can't access the Internet to verify that the digital signature used to sign the binaries are valid and this is the reason for the slow performance issues we have seen.

Am I recommending to deselect this setting in IE ?

If you are in a connected environment that has access to the Internet - of course you can't. there are many signed assemblies out there that can look like they were published from Microsoft.

In disconnected environment ? I'm still poking around and will update you once I will have more details...

ניהול משימות יעיל בעזרת Outlook

אחד האתגרים הגדולים ביותר העומדים בפני אנשי מחשבים כיום, ולא רק, הוא נושא ניהול המשימות.

כולנו מכירים את התופעה הזו - באמצע עבודה על מסמך מסוים, או קטע קוד חשוב, פתאום צץ לו מייל מתחתית המסך ואנחנו מיד רצים לבדוק מה בדיוק כתוב שם. פתאום אנו נזכרים במשימה חשובה שהיינו צריכים לסיים היום בבוקר, אבל שכחנו ממנה לגמרי. וגם אם רשמנו אותה ברשימת המשימות שלנו - שכחנו להסתכל ברשימה...

גם אני סבלתי מהתופעה הזו, ובמשך זמן מה ניסיתי למצוא דרך יעילה ופשוטה לארגן את המשימות שלי בצורה האופטימלית. אני רוצה להציג את הדרך בה אני משתמש, ואם זה יסייע למישהו לארגן את המשימות שלו בצורה טובה יותר - מה טוב.

אז ככה: העיקרון הבסיסי העומד בלב השיטה הוא - כל המשימות נמצאות במקום אחד בלבד. אסור שיווצר מצב בו אני צריך לבדוק בכמה מקומות מה אני אמור לעשות משום שסביר להניח שאני פשוט אשכח לעשות את זה... ומהו המקום שנמצא כמעט תמיד מול העיניים של כולנו? נכון, ה- Inbox של Outlook. לא רשימת המשימות, לא Notes, לא Calendar - רק ה- Inbox.

ולכן, אם אני רוצה להוסיף לעצמי משימה, אני מוסיף אותה ל- Inbox באמצעות הוספת Post (ניתן לביצוע באמצעות CTRL+SHIFT+S). ב- Post אני מפרט מה בדיוק אני אמור לעשות, וגם מהו התאריך היעד, אם יש. שימו לב - אני לא מוסיף פגישה ב- Calendar או משימה ב- Task List עם התראת זמן, אלא טקסט רגיל שמפרט את תאריך היעד. חשוב לציין כי את רעיון השימוש ב- Posts קיבלתי מאליק.

"אם כך", תגידו, "איך תספיק לעשות את כל המשימות? הרי בדרך כלל יש ב- Inbox עשרות ומאות של פריטים!". אז זהו שלא.

הנה צילום מסך של ה- Inbox שלי מהיום (ללא פרטים מזהים, כמובן...):

image

13 פריטים. זה כל מה שיש שם.

איך מגיעים לזה? פשוט מאוד: בתחילת יום עבודה אני עובר על ה- Inbox שלי, ומבצע סינון מהיר. כל מייל שניתן לטפל בו מיידית, מטופל מיידית. מהם הקריטריונים לטיפול מיידי?

- זימון לפגישה

הטיפול: Accept או Decline

- מייל לידיעה בלבד (כמו הודעה על מוצרים חדשים, מזל-טובים שונים וכו')

הטיפול: תיוק ב- Personal Folders

- מייל סוגר משימה, כלומר: חיכיתי לתשובה מגורם מסוים (לדוגמה - תשובה מצוות הפיתוח לשאלה מסוימת) על מנת לסיים משימה שלי, והמייל הגיע.

הטיפול: תיוק ב- Personal Folders

אחרי סבב הסינון הראשוני, שבדרך כלל מנקה כ- 60% מהמיילים, אני עובר שוב על המיילים הנותרים ומתכנן את זמן הטיפול בהם. לדוגמה - אם מגיע מייל מלקוח המבקש לבדוק נקודה טכנולוגית מסויימת, אני משריין זמן ביומן לבדיקת הנקודה הזו. המייל ישאר ב- Inbox עד לסיום הטיפול, ולאחר מכן יתוייק ב- Personal Folders.

ומה לגבי בלת"מים? כאלה יש אכן הרבה, וכאן ה- Post-ים מסייעים. אם באמצע העבודה מתקשר לקוח עם כמה שאלות, אני פותח Post חדש ב- Inbox ומפרט בו בדיוק מה צריך לעשות (לפעמים אפילו תוך כדי השיחה עם הלקוח), וכך הוא נכנס ל- Pipeline של המשימות.

נקודה אחרונה שחשוב לשים אליה לב: פעמים רבות קורה שאני שולח מייל לגורם חיצוני ומחכה ממנו לתשובה, ועד קבלת התשובה לא ניתן להמשיך בביצוע המשימה, לדוגמה: בקשה מלקוח לקיים פגישה בזמן מסויים, שאלה לצוות הפיתוח לגבי טכנולוגיה מסויימת, ועוד. איך ניתן לזכור פריטים כאלו? הרי ב- Inbox לא נרשמים הפריטים שאני שולח!

ובכן, לא בדיוק. שימו לב לצילום המסך שלעיל. תוכלו לראות מספר פריטים (שהשארתי גלויים) המציינים מייל שנשלח ממני. המיילים האלו, שנמצאים ב- Inbox, מזכירים לי שיש נושאים מסויימים ששלחתי לגביהם שאלה ואני מחכה לתשובה. ואיך הם הגיעו ל- Inbox? בצורה פשוטה מאוד - על ידי שימוש ב- Rule.

ניתן להגדיר ב- Outlook בצורה פשוטה מאוד Rule שיעתיק אוטומטית ל- Inbox כל מייל שנשלח ממני. בצורה כזו הרבה יותר קל לי לעקוב אחרי מה שאני שולח (ולמנוע מצבים לא נעימים כלפי לקוחות שטוענים שלא החזרתי להם תשובה...) ולוודא שכל הגורמים האמורים לחזור אלי אכן עושים זאת.

 

אם כך, נסכם:

1. כל המשימות לביצוע מרוכזות במקום אחד - ה- Inbox

2. משימות שאני פותח לעצמי נרשמות כ- Post (באמצעות לחיצה על CTRL+SHIFT+S)

3. קיים Rule המעתיק את כל המיילים הנשלחים לתוך ה- Inbox

4. לעולם לא יישמר ב- Inbox מייל שלא דורש טיפול. כל המיילים וה- Posts יתוייקו ב- Personal Folders בסיום הטיפול בהם.

 

מה דעתכם על השיטה? האם יש לכם שיטה יעילה נוספת לניהול משימות? אשמח לשמוע! השאירו תגובה למטה, ואשמח להתייחס אליה.

בימים הקרובים אני בחופשה ללא גישה למחשב (כן, זה קורה לנו לפעמים...) כך שלא אוכל להתייחס מיידית לתגובותיכם, אבל כבר יש לי Post ב- Inbox לשבוע הבא בדיוק למטרה זו...

ארכיטקטורה ועיצוב מערכות מידע – רשימת חומרים לקראת חזרה לבצפר

לקראת חזרה לבצפר ייתכן ותצטרך לחומר לימוד בתחום ארכיטקטורה ועיצוב מערכות מידע. חשבתי לקמפל אחת שאני משתמש – מתאים לך?

ארכיטקטורה

עיצוב

    קוד

    שיפור ביצועים

    אבטחת מידע

    UI

      אפליקציות לדוגמה

      מה המשאבים שאתה משתמש? שתף בבקשה דרך ההערות מטה. תודה!

       

      Alik Levin

      שמי אליק לוין ואני מתרכז ב- Security and Performance באפליקציות Net.

      בזמני הפנוי אני בלוגר שרוף.

      This template is made with PracticeThis.com plugin for Windows Live Writer

      First and Second Aid for SQL Injection

      Recently, while I visited a new customer, someone rushed to the room shouting – someone had hacked our site. Even though this was not the purpose of my visit, I tried to find a first aid to this situation.

      It was clear that the hacker had used SQL Injection to add update statements to simple selects. After short review I found out that the service that run ASP code was using sysadmin privileges L.

      The solution was simple; we reduce the privileges of this account by adding the account to the db_datareader role and by giving it execute privilege on all stored procedures. This simple change was enough and takes less than 5 minutes!!

      I have to admit that we probably gave him more permission than needed – but this was - as you remember – in a scenario where the system was hacked.

      However, this is only first aid since the ASP code was still not secured – we only prevent the damage.  Configuring the account to run under low privileges does not prevent from SQL injections to retrieve data.  This data might be sensitive. So, what is the next step?

      Last month, Microsoft had released Microsoft Source Code Analyzer for SQL Injection (see http://www.microsoft.com/downloads/details.aspx?FamilyID=58A7C46E-A599-4FCB-9AB4-A4334146B6BA&displaylang=en ) which is now in Beta. This tool might help you to really secure your application.

      In addition, My colleague, Alik Levin, published recently this post Security Code Review – String Search Patterns For Finding Vulnerabilities In ASP.NET Web Application. It helps finding security vulnerabilities in code, including those that lead to SQL Injections (see also http://msdn.microsoft.com/en-us/library/ms998271.aspx), using simple handy tools. The post is targeted to ASP.NET but the practices outlined in the post can be very easily adapted to classic ASP.

       

      בינה עסקית עבור כלי ניהול

       

      אחרי ימים ארוכים של הרצאות עמוסות ומרתקות בנושאי ה BI השונים בכנס (TechReady 7) , עבור עולמות הפיתוח והארכיטקטורה, פלטפורמת ה BI מאפשרת לכלל המפתחים , ארכיטקטים , מנהלים , יועצים , ללמוד , לחקור ולהבין את המערכות השונות במבט על , פנימי ובהיטלי צד ובכך לקבל תובנות אודות המערכות השונות.

      אחת ההרצאות המעניינות הייתה SOA Analytics with .NET, BizTalk and SQL Server , ובה הדגימו את ניתוח התוצאות בחקר הבקשות , הקריאות וחקר השימוש באותם שירותים המנוהלים והחשיפה שלהם דרך Managed Services Engine (MSE).

      MSE - מבוסס בסיס נתונים SQL תשתיות הנתונים אשר מעליהם ניתן לחקור את הנתונים עם Reporting Services, לפתח מודלים שכבות סמנטיות וכן קוביית סטטיסטיקות על נתוני שימוש.

      את MSE תוכלו להוריד באתר:

      http://www.codeplex.com/servicesengine

      תיהנו.

      מה ארכיטקט צריך לדעת כדי להבטיח עתידה של אפליקציה

      ממי שאל “איך להפוך לארכיטקט?

      אני אוהב לשאול שאלות גם, ואני שואל “למה ארכיטקט”? – התשובה שהתאמה לי הכי הרבה מצאתי בפוסט הזה - Why Do We Need Software Architects. צריך ארכיטקטים כדי:

      • Separate Complex Concerns
      • Future-Proof the Information Systems
      • Increase the Likelihood of System Success

      בפוסט זה רציתי להתרכז בבולט השני – להבטיח עתידה של המערכת (נראה לך התרגום?):

      “… Future-proofing also requires the ability to adapt to new user requirements, since requirements do change frequently and account for a majority of system software costs over the life cycle.  It is important to plan information systems to support the likely and inevitable changes that users will require in order to conduct business.”

      המערכת עוברת את המבחן האמיתי של הארכיטקטורה כאשר נדרש לבצע שינויים והתאמות. השינויים והתאמות יכולים לנבוע כתוצאה מדרישות חדשות – פונקציונאליות או לא פונקציונאליות כמו אבטחת מידע ושיפור ביצועים. השינויים המהותיים באים לידי ביטוי כאשר מבצעים מגרציה של המערכות לטכנולוגיות עדכניות יותר.

      אל תמציא גלגל מחדש – תעתיק מהשכן שהצליח

      רוב אפליקציות Web הן אותו הדבר (ברור שהאפליקציה שלך היא מיוחדת ולא דומה לאחרות – אבל השאר הן זהות לחלוטין). רוב האפליקציות ניתן לשכפל על בסיס תבבנית של חנות חיות 4.0 המבוססת על ASP.NET 2.0 ונראית כך:

      Architecture ASP.NET Web Application

      למידע נוסף - Microsoft .NET Pet Shop 4: Migrating an ASP.NET 1.1 Application to 2.0.

      הארכיטקטורה של החנות מבטיחה חלוקה לפי שכבות לוגיות המאפשרות שינויים עתידיים ביתר קלות. יש הרבה רעיונות יפים שאפשר “לגנוב” ולהתאים למערכת שלך.לדוגמה, שימוש ב-Abstract Factory עושה לי טוב מאוד. מסתבר שלא רק לי  אלא גם לגיל פינק - Abstract Factory Pattern. עוד כמה חומרים המיועדים לגניבה:

      אהבתי מאוד (!! – זה אומר שאני מאוד אהבתי) איך מומש ה-Model. לא על בסיס DataSets אלא על בסיס Custom Collections. גם על זה יש לי מה להגיד בהרחבה - Typed DataSet - Potential Performance And Security Risk. אני חייב לציין שבקבוצה אצלנו אין דעה אחידה בעניין הזה ואני מייצג רק את דעתי כאן.

      אל תמציא גלגל מחדש 2 – תשתמש בתשתית קיימת

      אחד המכשולים המרכזיים במיגרציה של המערכות נובע מאי שימוש במנגנונים תשתיתיים. במקרה של חנות חיות 4.0 ישנה הדגמה יפה מאוד של מנגנונים “חדשים” (כמה חדש כבר ASP.NET 2.0 יכול להיות?) שבאים עם הטכנולוגיה. האהובים עליי הם:

      • Master Pages לצורך look & feel אחיד.
      • מנגנון הזדהות – Membership.
      • מנגנון הרשאות – RoleManager.
      • רישום לוג – Healthmonitoring.
      • פקד Wizard מובנה ומאובטח (בעירבון מוגבל כמובן) – לבניית תרחישים מבוססים שלבים.

      את כל אלה אתה חייב בכל אפליקציה. תחשוב כמה מאמץ תחסוך אם תשתמש בהם במקום לפתח מנגנונים משלך.

      אי ניצול של תשתיות קיימות ופיתוח מנגנונים in-house הרבה פעמים מהווים גורם #1 לבעיות ביצועים ואבטחת מידע.

      “כל הכללה שגויה – כולל גם זאת”, מרק טוויין

      שבירת התאמה - זה גם קורה במשפחות הכי טובות. גם במיקרוסופט.

      החלטת לעבור לטכנולוגיה מעודכנת יותר? בדקת מה תרוויח ממנגנונים החדשים? מצוין! בדקת מה המנגנונים שלא נתמכים יותר? לא? תבדוק!

      ראה דוגמה לרשימה שכזו וגם התסכול שיכול להיות כתוצאה מכך:

      סמוך על תחושות בטן לך – אל תיתן אימון בעניים עצומות, “אל תהסס לפשפש בחצר האחורית של מומחה” כמו שקולין פאוול היה אומר (בתרגום חופשי). רוצה דוגמה? בבקשה.

      אם כל היופי שבחנות חיות 4.0 שאני אוהב, נושא אבטחת מידע לא היה בין המרכזיים. זו הסיבה שקבוצת patterns&practices ביצעה סקר קוד והוציאה גרסה מעודכנת של המערכת עם שיפורי אבטחת מידע מסיביים. את הגרסה המשופרת ניתן למצוא כאן - ASP.NET 2.0 Internet Security Reference Implementation.

      לסיכום

      אז מה הארכיטקט צריך לדעת כדי להבטיח עתידה של מערכת? 
      • לדעת איפה אפשר “לגנוב” ארכיטקטורה מומלצת.
      • להכיר מנגנונים מובנים כדי לחסוך בעלויות פיתוח, תחזוקה ומיגרציה.
      • לדעת להאמין לתחושות הבטן שלו ולא להסס לאתגר את המומחים.

      Alik Levin

      שמי אליק לוין ואני מתרכז ב- Security and Performance באפליקציות Net.

      בזמני הפנוי אני בלוגר שרוף.

      בינה עסקית עבור כלי ניהול מגיע מ TechReady 7

      אחרי ימים ארוכים של הרצאות עמוסות ומרתקות בנושאי ה BI השונים , עבור עולמות הפיתוח והארכיטקטורה, פלטפורמת ה BI מאפשרת לכלל המפתחים , ארכיטקטים , מנהלים , יועצים , ללמוד , לחקור ולהבין את המערכות השונות במבט על , פנימי ובהיטלי צד ובכך לקבל תובנות אודות המערכות השונות.

      אחת ההרצאות המעניינות הייתה SOA Analytics with .NET, BizTalk and SQL Server , ובה הדגימו את ניתוח התוצאות בחקר הבקשות , הקריאות וחקר השימוש באותם שירותים המנוהלים והחשיפה שלהם דרך Managed Services Engine (MSE).

      MSE - מבוסס בסיס נתונים SQL תשתיות הנתונים אשר מעליהם ניתן לחקור את הנתונים עם Reporting Services, לפתח מודלים שכבות סמנטיות וכן קוביית סטטיסטיקות על נתוני שימוש.

      את MSE תוכלו להוריד באתר:

      http://www.codeplex.com/servicesengine

      תיהנו.