To Redmond and back – a short journey to Microsoft Central After a week of jetlag and flew, I can finally share my visit to Microsoft central @ Seattle. I have been invited by one of my customers to escort his 3 days visit to Microsoft EBC (Executive Briefing Center) facility in Seattle. My customer was invited by Microsoft and managed to arrange a priceless meeting with MS CRM E2 (Microsoft Dynamics CRM Engineering for Enterprise) team members to review a current MS CRM project, to which I am consulting. Before our visit to Redmond, I took the opportunity to visit New York for the first time. New York has been a cultural icon for me through my adult life, and although I have been the US before, I found this city to be most amazing in all aspects: architecture, cultures diversity and atmosphere. We had 3 days of Sunshine which, I have been told, is considered a miracle in January. After roaming the streets of Manhattan for 3 days, shopping like crazy and visiting some of the tourist attractions (really, what can you manage in 3 days?) we pressed on. I got the view of Manhattan streets at 5 am while riding a taxi to the JFK airport to catch my flight to Seattle. We landed in Seattle on Sunday noon, and did some site seeing. Now, fast forward to business: The Microsoft EBC facility is located in Redmond in the heart of what seems like Microsoft city. The interior is very fancy and well suited to accommodate decision makers. We got a private lecture room, in which we spent the following two days. During the next two days we took a variety of lectures from Microsoft Product Managers regarding Microsoft products roadmap and as these were private sessions, we got a great opportunity to ask questions that usually don’t get a straight forward answer. We also had a funny tour at the virtual house, in which Microsoft displays its vision for the future living space. At this point I should say I am under NDA and therefore can’t really share any product related information here. At day 3 we visited Microsoft development center at Redmond in which the Microsoft Dynamics products development team is located and met with MS CRM E2 team members, Amir Jafri, Jim Toland, and Morat Ozturan. This is what I came for. The project is very challenging and the product abilities are stretched to great extent. During the project design, some major implementation issues were raised and although some of these issues arise in many projects, it was important for to confirm that the solutions I selected are correct and relevant in light of the upcoming version 5.0. This session was worth the long trip. I gave my presentation, raised the issues and got straight forward answers that I probably couldn’t get anywhere else. Also got some hints regarding version 5.0, just enough to know my customer isn’t throwing money on features that will come of the shelf in the near future. Again, NDA. I want to thank my customer, Microsoft Account Manager Oren Ben Yosef and MCS Georgy Sazonov for arranging this visit and giving me the rare opportunity to personally converse with Microsoft Dynamics CRM development team members. Also, credit for all the photos in this post goes to Oren Ben Yosef. “I would like to buy a Damburger”
|
|
|
הזמינו אותי לתת יעוץ בחברה שמתעסקת ב- e-Learning ותוך כדי שיחה אני מגלה שהם הנציגים בארץ של NXT LOGO, מגניב אמרתי, אני חייב אחד לבת שלי בת ה-8, היא חולה על רובוטים… מכאן לשם, הפקנו את סדנת הורים וילדים לפיתוח תוכנה ורובוטיקה בחול המועד פסח. הסדנא מיועדת לזוגות של הורה וילד ומתבססת על ערכת LEGO MINDSTORMS NXT המתקדמת מבית חברת LEGO education. הערכה מאפשרת הרכבה ותכנות של רובוטים וכוללת שימוש בחיישנים, מנועים, תקשורת Bluetooth ועוד. במהלך הסדנא נחשוף את הילדים למושגי יסוד בפיתוח תוכנה דרך שפת הפיתוח של ערכת הלגו. השפה מבוססת על צלמיות ותפריטים אינטראקטיביים ומאפשרת יישום מהיר בעזרת רובוט הNXT ובעזרת הרכיבים המוכרים של לבני הלגו. תוכנית הפעילות - הקדמה ומבוא להכרת ערכת ה NXT ורכיביה
- בניית הרובוט על כל אביזריו
- הכרת הפקודות הבסיסיות לימוד תכנות ראשוני באמצעות שפת ה - NXTg
- ביצוע משימות מורכבות ותכנות מתקדם
- שימוש ב- Bluetooth לתקשורת אלחוטית בין רובוטים
- תכנות לשליטה מרחוק ברובוטים
- אתגר מסכם
מידע נוסף על הרובוטים יהיה מגניב :-) 
|
|
|
בכנס אני ארצה על: - What's New in WCF 4.0
- What's new in C# 4.0
אם יש לכם בקשות מיוחדות בקשר להרצאות אשמח לשמוע :-) 
|
|
|
Triggers, Actions & Behaviors in Blend לפעמים שינוי קטן בקוד מוביל לשינוי גדול בדרך החשיבה שלנו ובהסתכלות שלנו על דברים. ב- Blend 3 הוסיפו את התמיכה ב- Triggers, Actions & Behaviors כדי ליצור אחידות ב-XAML בין WPF ו-SL. אך ע"פ דעתי השינוי הקטן הזה פותח דלת חדשה של הסתכלות על דברים ומקרב אותנו עוד צעד למערכות RAD שיהיה אפשר לבנות איתם UI טוב בלי לרוץ ישר לקוד. Triggers & Actions ב-WPF יש תמיכה במספר Triggers מובנים שיודעים לקבל Actions מובנים, אך מה אם אני רוצה להגדיר אחד משלי? להלן קוד דוגמא לשימוש בנגנון ה-Triggers הסטנדרטי של WPF: להלן קוד דוגמא בשימוש ב-Actions שאני בונה וה-Blend נותן לי בצורה פשוטה (RAD) להשתמש בהם. הקוד ל-MyAction: אנחנו ב- Invoke יכולים לכתוב מה ה-Action שלנו יעשה ועל מי. מה הביג דיל??? שעכשיו אנחנו יכולים לבנות ספריה של Actions שתכנת ה-Blend יוכל להשתמש בהם ולתת ל-UI לא רק עיצוב על גם אינטראקטיביות. אז מה זה Trigger? מאפשר לי להגדיר ע"פ איזה חוקיות יופעל ה-Trigger שבעקבותיו יופעל Action. ב-Attach אני מתחבר למקור וע"פ לוגיקה שאני מחליט אני מפעיל את InvokeActions. לדוגמא קוד של TimerActions: כלומר ה-Trigger זה מתי להתחיל לפעול וה- Action זה מה עושים. אז מה זה Behavior? זה כמו Action אך בלי המתי. ברגע שהוא מתחבר למקור הוא משנה אותו, כלמור מוסיף לו התנהגות שלא הייתה לו עד עכשיו. איך זה עוזר לי בפרויקט כל הידע הזה? אני מאמין שמפתחי UI צרכים את היכולת לעצב מסכים בכלי WYSIWYG, שיש בהם את התמיכה גם לשלב את הפונקציונאליות שהמפתחים כתבו ע"י ה- Triggers, Actions & Behaviors. דוגמאות: בימים אלו אני עובד על תשתית של Triggers, Actions & Behaviors שקשורים ל-Prism כך שמפתח ב-Blend יוכל בצורה פשוטה להגדיר: · Region · Publish Event · Subscribe to Event · ועוד... אשמח לשמוע על רעיונות נוספים :-) 
|
|
|
|
|
|
|
אני עוקב אחרי EF 4 הרבה זמן. ובזמן האחרון אחרי די הרבה פגישות עם לקוחות אני מרגיש שאכן מיקרוסופט הוסיפה הרבה דברים טובים ל-EF 4 אך המוצר מתחיל להסתבך ולא להיות פשוט :-(. לדוגמא: אחד התוספת החשובות ביותר ל-EF ע"פ דעתי היא התמיכה ב- POCO Entity, והיכולות לעבוד עם Proxy. אך זה מסובך וע"פ דעתי גם מסורבל… מספר לינקים בנושא: מה אתם אומרים? "האם ליד הזה התפללנו" ? 
|
|
|
בעקבות הביקוש הרב לנושא פתחנו יום עיון נוסף. :-)
אשמח לענות לשאלות לכל מי שרוצה, אני זמין גם בקבוצה שלי בלינקדאין - I Love C אשמח אם תצטרפו. 
|
|
|
Expert Days 2009 The Expert Days event occurs once a year and is organized by E4D. It features a variety of workshops, lead by top industry experts. Each workshop spans a day and contains several lectures on the main subject. In this year’s event I am leading 3 Microsoft Dynamics CRM workshops: 034. Microsoft Dynamics CRM 4.0 Workflow Essentials Microsoft Dynamics CRM 4.0 enables the implementation of custom business logic without writing a single line of code. In this workshop we will explore the Workflow engine capabilities, events and actions which can be performed by it. Also, we will extend the Workflow engine capabilities with custom .NET code and Implement a full SLA supporting scenario. Target audience: Developers, System Analysts and Implementers 035. Reporting with Microsoft Dynamics CRM 4.0 Microsoft Dynamics CRM 4.0 comes with a variety of reporting tools, most of which do not require coding. In this workshop we will explore these capabilities: Advanced find and Views, Exporting data to Excel using Dynamic reports, Report wizard and more. During the workshop, we will use these capabilities to build an Excel based dashboard for the Service/Sales module. Target audience: System Analysts, Implementers, Consultants, Application owners 039. Accelerate Microsoft Dynamics CRM 4.0 Accelerators are free, open source third party solutions which add Microsoft Dynamics CRM 4.0 with an assortment of new capabilities in the Marketing, Sales and Service modules. In this workshop we will explore selected Accelerator solutions such as Notifications, Event management, eService and Extended Sales Forecasting. Target audience: System Analysts, Implementers, Consultants, Application owners If any of these subjects interests you, go on and register here.
|
|
|
How to update a related record when the main record is updated using Workflow In some scenarios it is required to automatically update a related record when the main record updates. For example, when an Account address is updated, all related Contact records address should update respectively. This problem can be solved by writing a custom plug-in component but here is a another approach, based on a Workflow rule without any code writing: 1. Create a new workflow for the Contact entity 2. Set the workflow rule to fire when a record is created and also when the Address attribute is changed. If you want this rule to apply to existing records, check the On Demand checkbox. Later on, apply the rule to the relevant existing records. 3. Add a Wait Until step to wait till the Contact’s address is different from Parent Account address. 4. Add a Update record step for the Contact record and set the address to map to the Parent Account address 5. You are done. Save the rule and publish it. Test the rule by creating a new Contact and relating it to a Parent Account or by applying it to an existing Contact record. Change the Parent Account address and watch the rule advance. When it completes, open a related Contact record and make sure the address was updated according to the Parent Account.
|
|
|
Building the tower of Babylon – Importing CRM Organizations with different base Language Consider the following scenario: An organization has two different implementation of Microsoft Dynamics CRM 3.0 and plan to upgrade both to Microsoft Dynamics CRM 4.0 as two separate organizations in a multi-tenancy deployment. Each Microsoft Dynamics CRM 3.0 implementation has a different base language, one has English and the other has Hebrew.
Is this feasible at all? Can a multi-tenancy deployment host two implementations with different base languages, upgraded from version 3.0?
I encountered a similar scenario lately and since I could not find a straight answer, I conducted a little experiment. It involved two major steps: - Upgrade both implementations from version 3.0 to version 4.0. One implementation was upgraded using an Enterprise license (The English base language implementation)
- Using the Deployment Manager, import the The Hebrew base language implementation database into the The English base language implementation (Enterprise license).
Surprisingly, this works. A multi-tenancy deployment can host two upgraded implementations with different base languages. I assume it can support more than two different base languages, but it is up to you to experiment with such shenanigans.
|
|
|
E4D is looking for software developers We are looking for .NET developers who expert in ASP.NET (at least 1 year of experience ) for various projects in Israel. Acquaintance with Microsoft Dynamics CRM is a major advantage. So If you are looking for an interesting job and match this profile, send your CV to oranit@e4d.co.il today.
|
|
|
How to use the Data Enrichment (re-import) feature in Microsoft Dynamics CRM 4.0 (although officially, it doesn’t exist…) The Data Enrichment feature allows updating existing data by exporting it from Microsoft Dynamics CRM 4.0 to Excel, modify it in externally and then re-import it, updating the existing records with the new data. This feature is very useful in scenarios where mass update is required for existing data or when you need an external party to add data to your existing CRM records. Unfortunately, this useful feature was removed from the Microsoft Dynamics CRM 4.0 RTM version. I am not sure why, some claim it is potentially harmful and can make a mess of existing data. The surprising news is that you can still use this non existing feature. How? Here is an example: In this example scenario, I want to update all my contacts with new data: email address.
-
Select an existing view or edit a new view using the Advanced Find. Make sure the columns you want to add data to are included - Export the view data using the ‘Export to dynamic worksheet’ option and save it.
- Open the exported file, select all records, go to the Format menu, select Column sub menu and then the Unhide option. A new column should appear, containing the records GUIDs.
- Rename the GUIDs Column to the name of the exported entity for example ‘Contact’. Move the column to the left of all other columns.
- Update the required data. In this example, the email data is added to the existing records.
- Save the Excel file as .csv file.
- Use the Import Wizard tool in Microsoft Dynamics CRM 4.0 to import the newly created .csv file. Select ‘none’ for Data Delimiter, ‘Comma (,)’ for field Delimiter.
- Click next and select the exported entity, ‘Contact’ in this example. You can see the ‘Enrich data by updating records rather than creating new records.’ option available and checked. Select a data map if required and click next
- Check the ‘Import duplicate records’ option and click next
- Complete the import process.
- Go to the workplace and open the data import section. Once the data import job is done, open the the job records and see which records were updated. Notice that existing records were updated, no new records were created.
- Finally, refresh the view you started with to see the updated data for the existing records.
Although the product Help file still regards this feature as available, I consider this an unsupported feature. Use the above method at your own risk. Note: A record will not be updated if it has been changed in Microsoft Dynamics CRM 4.0 after it was exported.
|
|
|
Hi Squidward! Have you finished those errands? In Microsoft Dynamics CRM 4.0, when a user assigns an Opportunity (or any other entity for that matter) to another user the ownership for the Opportunity automatically changes and map to the new owner. The opportunity related activities however, do not change ownership and stay under the Opportunity previous owner. This situation can be inconvenient as the new Opportunity owner does not see these activities in his own activities lists and the previous Opportunity owner does. Now we all know he only reason he assigned this Opportunity to another user is to get rid of those tasks… So, how can we help those two? Using the workflow engine we can. The following Workflow rule demonstrates how to to just that. The rule is operating on the Task entity but can be applied to any other Activity or regarding entities such as Accounts, Contacts, etc. It waits until the Task owner is different from the regarding Opportunity owner (which happens when the regarding Opportunity is assigned to another user). When this event is raised, the rule assigns the related Task to the Opportunity new owner. 
|
|
|