What's hot ? (and I mean really ...) - scroll down for more
1).  Code Templating - advanced usage of delegates & generics: my slides & demos are available for download! CodeProject article is also available.

2).  My series "TDD in the eyes of a simpleminded" is in progress(including code!): preface, part1, part2, Q&A 1, Manual Stub .vs. Mock Stub

3).  TDD Workshop: SeeCompass v0.1 and v0.2 are out.
# Friday, September 01, 2006

A few months ago, I lectured before Microsoft C#/C++ User Group about advance usage of delegates, generics and anonymous methods. The audience was great and I got really nice feedback. I was talking with my good friend Pavel a few days ago about lecturing in general and he made an excellent point: I should have done more "rounds" with this lecture. This could have been good experience for me to learn from the feedback I got and use it into practice before different audience. So, would you like to hear me present for ~1.5 hours about those topics (after "work hours", say 17:30+) in your "home"(=working place)? All I need is a projector and a working air conditioner(I don't have 3 built-in fan as my computer have, unfortunately). You can look at the lecture syllabus here and there are code samples and presentation(ppt) file of the entire thing right here. Of course, there should be a minimum number of people attending as I don't want to drive for an hour just to talk with 2 people (actually, I do, but this won't be very productive and bad usage of my time, so I'm sorry folks).

Minimum knowledge required to participate: good understanding of .Net 1.1 is a must; .Net 2.0 - bonus.
Lecture ("MS")Level: 400. (technical hardcore stuff, no SOA will be presented, I promise).


Drop a comment or send me an email (oren dot ellenbogen at gmail dot com) and we'll set a date.

Posted by Oren Ellenbogen 
01/09/2006 12:44, Israel time UTC-07:00,     Comments [0]  | 
# Thursday, May 18, 2006

I had so much fun lecturing yesterday before the C++/C# User Group about abstracting your code via delegates & anonymous methods. The number of people that showed up was really astonishing, at least to my expectations, as about 70 people gave me the honor to talk about something I really like so thank you guys !

I got some really good feedbacks(update: Royo, Ken and Shani dedicated a post on the matter) from the audience, one of them even told me at the end that my lecture was much better than one of the lectures at TechEd 2006 about Generics so I'm really happy that my words and demos made an *impact*. Still, I feel that I can do a lot better so I hope I'll have the pleasure to give more lectures on the near future.

Finally, I got to say a BIG thanks to a bunch of folks: Justin Angel helped me to put my lecture on video so all of you (Hebrew speakers) can hear & see the live presentation(Justin - you rock!), Roy Osherove helped me think about the context of my lecture and connected me to the C++\C# User Group Leaders - Shai & Moshe. I owe a big thanks for Shai Bar Lev & Moshe Raab for giving me the opportunity and making it all possible. And finally, I want to say thanks to my teammates at SQLink that really pushed me through.

You can download the presentation & demos from this links:

Code Templating presentation (ppt) - 1.8 MB

Code Templating Demos (zip) - 500 KB

Code Templating Database (zip) - 139 KB

    * You need to restore this database on Sql Server 2005 Express which comes free 
       with VS.NET 2005. Without the database the ISPARefactoring demos wouldn't work.


The video will be available in a few days so stay tuned.

btw - Barca won the Champions League cup! What a great evening!

Barca.gif

Posted by Oren Ellenbogen 
18/05/2006 12:50, Israel time UTC-07:00,     Comments [3]  | 
# Monday, May 15, 2006

I'm presenting before the C# group on the following Wednesday (17/05/2006, 17:30) and I thought to give you a heads-up. You can click here for more details about the "Agenda", including how to get there & where to park your keyboard.

I'll elaborate on a new way (aka "Code Templating") to refactor your existing code for better re-usage and present some cool tricks via delegates and anonymous methods so get ready for some * cool * code. For the finale, I'm planning some live refactoring on existing code so you really don't want to miss this one !

btw - if you aren't familiar with the terms delegate, event, anonymous method or Generics - this presentation is for you as well; I'll try to cover as much as I can in this session.

It will be great to see you all there.

Posted by Oren Ellenbogen 
15/05/2006 05:07, Israel time UTC-07:00,     Comments [0]  | 
# Saturday, May 13, 2006

We got up at 07:05. It was hard as hell, but we had to put the effort for the team. After all, we came to hear some great lectures. No way in hell I'm gonna miss it... Oh, and there are many pictures to see, come on, I know you want to see this one !
Posted by Oren Ellenbogen 
13/05/2006 07:37, Israel time UTC-07:00,     Comments [3]  | 
# Friday, May 12, 2006

So it all began on Tuesday, Moty (CEO), Roee(CTO), Ken (Team Leader and a major guffy) and myself drove about 5 hours to Eilat...
Posted by Oren Ellenbogen 
12/05/2006 09:30, Israel time UTC-07:00,     Comments [0]  | 
# Wednesday, April 12, 2006

I'm going to give a deep insight presentation about advanced usage of delegates, generics and anonymous methods at the next C# group meeting.

Please let me know if you're planning to come(drop me a comment), it will be nice to see some of my co-workers\readers\friends at my first lecture at Microsoft user groups.

The original excrept can be found here. (don't forget to register, free of charge, by sending an email to: ivcug at comconix dot com)

The Details:

Date:    Wednesday, May 17, 17:00 - 20:00

Place:   Microsoft Israel 

            Hapnina 2  (Amdocs Building)

            Ground Floor

            Raanana

+972 (9) 762-5100         

 

Parking available at the Kurkar parking lot. Proceed straight past the traffic circle and the parking lot will be on your right.

Topic: Advanced Use of Delegates and Generics

Lecturer: Oren Ellenbogen

 This lecture will not be just about Delegates or Generics, but it will combine those topics to show you how you can leverage to usability of those semi-new features. Oren will discuss the receiving of delegates as parameters and the implementation of abstraction in this methodology. He will tie the two topics together by refactoring(live!) existing code using a principle he calls “Code Templating”;  a coding method that allows running unique logic within recurrent code.

 Agenda:

  1. Looking at a "simple" scenarios of recurrent code
    1. Check if a value exists in a collection.
    2. Get the item index in a collection.
    3. Filtering a collection (get only some of the items based on a condition).
    4. Manipulating every item in the collection (string concatenation for example).
  2. Looking at "advanced" scenarios of recurrent code
    1. Querying the database.
    2. Exception handling.
  3. Discuss solutions for further abstraction in those scenarios.
  4. Introduce "Code Templating" – separating the unique code from the recurrent code.
  5. Before we start, getting to know our toolbox: generics & delegates
    1. What are they?
    2. Calling a delegate which was given as parameter – understand the benefits.
    3. Anonymous delegates\methods – how & why
    4. What's going on under the hood?
  6. Examples of Code Templating in .Net 2.0
    1. Handle those "simple" scenarios via List<T>.Find, List<T>. FindAll, List.<T>.Exists etc…
  7. Refactor (live!) the "advanced" scenarios, step-by-step.
  8. Code Templating - What do we gain? What can we lose?
  9. Q & A

 

Oren Ellenbogen is a Team Leader at SQLink's R&D Department. Oren's responsibilities and areas of expertise span from Analyzing and Designing Web Applications to developing innovative coding enhancement tools. Oren's project leading at SQLink involves all stages and forms from team leadership to high level consulting.

 Oren's years of developing experience cover a variety of languages including PHP, C++, VB6 and C#.

 Oren published a series of articles at codeproject.com, publishes a programming oriented blog and is an active member of several .Net architects forums.

 As always, although admission is free and you may attend without reserving a place, we kindly request that you notify us if you plan to attend so that we can be sure to have enough chairs and FOOD!

Posted by Oren Ellenbogen 
12/04/2006 05:00, Israel time UTC-07:00,     Comments [0]  | 
# Saturday, November 12, 2005

Pasha sent me a great presentation about Identity 2.0, presented by Dick Hardt, which all of you presenters out there ought to see !

Even if you don't understand what's the presentation is all about, you must listen to the presenter and check his style - he's amazing speaker and a great performer.

Here it is:

http://www.identity20.com/media/OSCON2005/

Posted by Oren Ellenbogen 
12/11/2005 04:59, Israel time UTC-07:00,     Comments [1]  | 
# Friday, October 28, 2005

Yesterday the Israeli .NET architect group met at HP(Raanana) for a lecture about GAT and LINQ which was presented by Roy Osherove.

If you haven't heard about GAT & LINQ before, here is a (really) terse summary about them and my comments about the presentations:

  1. Guidance Automation Toolkit (aka GAT): this is Microsoft way to take a piece from the "automation" utilities cake. See, MS finally got the idea that there are too many folks out there using CodeSmith, O/R Mappers, RapTier etc; Now they're integrating a tool in the Visual Studio which will able us to automate everything directly through the studio itself. With GAT, you can build packages, or as I like to call them - "well defined and well presented(GUI) processes", to automate for example a build of an entity(\data) class based on a given table in the DB, just like you can do it today with 3rd party softwares. But you can do much more with this tool basically because it's so well integrated with the studio. Now, creating full controlled wizards straight out from the VS.NET which will able you to automate creating VS.NET solutions\projects\items is even easier than developing an Add-in for the VS.NET 2005. The main reason I don't think this will take off immediately is the GAT lack of easy configuration, but this will be fixed in the following year, and then, man, I think that the current Code Generators and O\R Mappers softwares will have to really take the next step and start running after MS (like we used to). Roy's presentation was nice, but I think he made a mistake by given us some general info & demos without really pointing the real deal - integration, integration, integration and Microsoft money & time = something we'll use later on, one way or another.
    Presentation TIP: IMHO, the first slide in every technical presentation should contain the phrase:
    "At the end of my presentation you will all know ____" or something like it.
    I would start with something like: "hey folks, we're going to talk about GAT, and before I'll begin, let me assure you, each and every one of you will use this tool one way or another, not tomorrow, but in the next 6-10 months so pay attention to MS new baby; Good, now that I have your attention, this tool is not quite ready for immediate use, and that's why I've told you 6-10 months, BUT, let me give you some general info about the new product and some demos, (after all, every presenter must challenge the "god of demos") and at the end of my presentation I promise you'll all understand the big step Microsoft did to ease our life's as architects. Please keep in mind that this is only a 1 hour presentation so I rather show you the big picture and the why-you-should-use-it instead of getting deeper into the code, does it sound right to you ? (everybody will node anyway)"
    After that said, I would concentrate more on the amazing integration with the VS.NET, the ability to use wizards to build wizards, the ability to control everything you need in the studio while using the studio itself rather than talking about the recipes\actions and "deep level" demos. If In 1 hour presentation you can't really teach me how to create a working Guidance Automation wizard, don't start to and stop in the middle after you see the material is to complex for such a short time limit, concentrate on the big picture and give me a list of links to read later on. The most important thing is to let the audience know the main goal of your lecture and what will they gain from it straight from the beginning, so at the end of it, they'll be really able to tell you if you did a good job.
  2. Language Integrated Query (aka LINQ): This is one of the coolest shit you'll ever see, I promise you that, but it will be released only with C# 3.0 so I won't elaborate much on it now and just say that this technology ables you to run queries on collection. I won't even give samples, there are plenty right here. This presentation by Roy was much better because it was clearly understood that the presentation will be focused on the new abilities LINQ will give us - pure "introduction" presentation (and to extract some "wowwww","aaahh", "hhooo" comments which is great to have in any presentation ;-)).

So, it was a nice meeting and I even got the chance to see some folks from the army I haven't seen for a lot of time (Effie, Gabi and the rest of the team) so I'm glad I went.

Oh, Two things before I'm out of here -

  1. I've registered to Microsoft Sql Server 2005 convention in November, will I see you there ?
  2. A very good friend of mine, Amir Markowitz, has turned 32 yesterday (sorry for the late post Markowitz!) so happy birthday dude !
OK, time for me to go, until next post.
Posted by Oren Ellenbogen 
28/10/2005 09:20, Israel time UTC-07:00,     Comments [4]  |