<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>ALT.NET</title>
        <link>http://geekswithblogs.net/Mohamed/category/7285.aspx</link>
        <description>Messages, events, topics related to the ALT.NET Group.</description>
        <language>en</language>
        <copyright>Mohamed Ahmed Meligy</copyright>
        <managingEditor>eng.meligy@gmail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>Foundations of Programming, AKA, the ALT.NET FREE Book!!</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2008/07/05/foundations-of-programming-aka-the-alt.net-free-book.aspx</link>
            <description>&lt;p&gt;“Foundations of Programming, Building Better Software” is a new eBook by Karl Seguin. The book does not say in its introduction that it’s all ALT.NET-ish, it starts by introducing what ALT.NET is, it's goals etc, afterwards, all the topics the book covers are inspired by ALT&amp;gt;NET frequent topics. This includes Domain Driven Design (DDD), Dependency Injection (DI), Object Relational Mapping (ORMs), Mocking, etc… &lt;/p&gt;  &lt;p&gt;Here’s what &lt;a href="http://channel9.msdn.com/posts/Dan/Free-eBook-Foundations-of-Better-Programming/"&gt;Channel9 had to say about it&lt;/a&gt; (which is how I originally found it too):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://codebetter.com/blogs/karlseguin"&gt;&lt;em&gt;Karl Seguin&lt;/em&gt;&lt;/a&gt;&lt;em&gt; recently released a great free 79 page &lt;/em&gt;&lt;a href="http://codebetter.com/files/folders/codebetter_downloads/entry179694.aspx"&gt;&lt;em&gt;eBook for .NET developers&lt;/em&gt;&lt;/a&gt;&lt;em&gt; covering design patterns, unit testing, mock objects, memory management, object relational mapping, and more.  Get it while it's free!&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Now, if I did my job well getting your interest, then you may want to get to the best part:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;&lt;a href="http://codebetter.com/files/folders/codebetter_downloads/entry179694.aspx"&gt;Foundations of Programming, Building Better Software – EBook Download&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;IF you’re not interested yet, I know this must get your most interest in the book, the table of contents (highlighting chapter titles in &lt;strong&gt;bold&lt;/strong&gt;):&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;About the Author ...............................................................................................................................6       &lt;br /&gt;&lt;strong&gt;ALT.NET&lt;/strong&gt; ............................................................................................................................................7         &lt;br /&gt;Goals .............................................................................................................................................8         &lt;br /&gt;Simplicity .......................................................................................................................................8 YAGNI............................................................................................................................................8         &lt;br /&gt;Last Responsible Moment................................................................................................................9         &lt;br /&gt;DRY ...............................................................................................................................................9         &lt;br /&gt;Explicitness and Cohesion ................................................................................................................9         &lt;br /&gt;Coupling ........................................................................................................................................9         &lt;br /&gt;Unit Tests and Continuous Integration .............................................................................................9         &lt;br /&gt;In This Chapter.............................................................................................................................10        &lt;br /&gt;Domain Driven Design.......................................................................................................................11        &lt;br /&gt;&lt;strong&gt;Domain/Data Driven Design&lt;/strong&gt;...........................................................................................................11        &lt;br /&gt;Users, Clients and Stakeholders .....................................................................................................12        &lt;br /&gt;The Domain Object .......................................................................................................................13        &lt;br /&gt;UI ................................................................................................................................................15        &lt;br /&gt;Tricks and Tips ..............................................................................................................................16        &lt;br /&gt;Factory Pattern .........................................................................................................................16        &lt;br /&gt;Access Modifiers .......................................................................................................................17        &lt;br /&gt;Interfaces ................................................................................................................................17        &lt;br /&gt;Information Hiding and Encapsulation ........................................................................................18        &lt;br /&gt;In This Chapter.............................................................................................................................19        &lt;br /&gt;&lt;strong&gt;Persistence&lt;/strong&gt;......................................................................................................................................20        &lt;br /&gt;The Gap .......................................................................................................................................20        &lt;br /&gt;DataMapper ................................................................................................................................20        &lt;br /&gt;We have a problem ...................................................................................................................23        &lt;br /&gt;Limitations...............................................................................................................................24        &lt;br /&gt;In This Chapter.............................................................................................................................25        &lt;br /&gt;&lt;strong&gt;Dependency Injection&lt;/strong&gt; .......................................................................................................................26        &lt;br /&gt;Sneak Peak at Unit Testing.............................................................................................................27        &lt;br /&gt;Don’t avoid Coupling like the Plague ..............................................................................................28         &lt;br /&gt;Dependency Injection....................................................................................................................28        &lt;br /&gt;Constructor Injection.................................................................................................................28        &lt;br /&gt;Frameworks.............................................................................................................................30        &lt;br /&gt;A Final Improvement .................................................................................................................32        &lt;br /&gt;In This Chapter.............................................................................................................................33        &lt;br /&gt;&lt;strong&gt;Unit Testing&lt;/strong&gt;.....................................................................................................................................34        &lt;br /&gt;Why Wasn't I Unit Testing 3 Years Ago?..........................................................................................35        &lt;br /&gt;The Tools .....................................................................................................................................36        &lt;br /&gt;nUnit .......................................................................................................................................36        &lt;br /&gt;What is a Unit Test ........................................................................................................................38        &lt;br /&gt;Mocking ......................................................................................................................................38        &lt;br /&gt;More on nUnit and RhinoMocks.....................................................................................................41        &lt;br /&gt;UI and Database Testing ................................................................................................................42        &lt;br /&gt;In This Chapter.............................................................................................................................42        &lt;br /&gt;&lt;strong&gt;Object Relational Mappers&lt;/strong&gt; ................................................................................................................43        &lt;br /&gt;Infamous Inline SQL vs. Stored Procedure Debate ...........................................................................43         &lt;br /&gt;NHibernate ..................................................................................................................................46        &lt;br /&gt;Configuration...........................................................................................................................46        &lt;br /&gt;Relationships ............................................................................................................................49        &lt;br /&gt;Querying .................................................................................................................................50        &lt;br /&gt;Lazy Loading .............................................................................................................................51        &lt;br /&gt;Download ....................................................................................................................................52        &lt;br /&gt;In This Chapter.............................................................................................................................52        &lt;br /&gt;&lt;strong&gt;Back to Basics: Memory&lt;/strong&gt; ....................................................................................................................53        &lt;br /&gt;Memory Allocation.......................................................................................................................53        &lt;br /&gt;The Stack .................................................................................................................................53        &lt;br /&gt;The Heap .................................................................................................................................54        &lt;br /&gt;Pointers ...................................................................................................................................55        &lt;br /&gt;Memory Model in Practice.............................................................................................................57        &lt;br /&gt;Boxing .....................................................................................................................................57        &lt;br /&gt;ByRef.......................................................................................................................................58        &lt;br /&gt;Managed Memory Leaks ...........................................................................................................61        &lt;br /&gt;Fragmentation ..........................................................................................................................61        &lt;br /&gt;Pinning ....................................................................................................................................62        &lt;br /&gt;Setting things to null .................................................................................................................63        &lt;br /&gt;Deterministic Finalization ..............................................................................................................63        &lt;br /&gt;In This Chapter.............................................................................................................................63        &lt;br /&gt;&lt;strong&gt;Back to Basics: Exceptions&lt;/strong&gt; .................................................................................................................64        &lt;br /&gt;Handling Exceptions ......................................................................................................................64        &lt;br /&gt;Logging....................................................................................................................................65        &lt;br /&gt;Cleaning Up ..............................................................................................................................65        &lt;br /&gt;Throwing Exceptions .....................................................................................................................67        &lt;br /&gt;Throwing Mechanics .................................................................................................................67        &lt;br /&gt;When To Throw Exceptions .......................................................................................................68        &lt;br /&gt;Creating Custom Exceptions ..........................................................................................................69        &lt;br /&gt;In This Chapter.............................................................................................................................72        &lt;br /&gt;&lt;strong&gt;Back to Basics: Proxy This and Proxy That&lt;/strong&gt;...........................................................................................73        &lt;br /&gt;Proxy Domain Pattern ...................................................................................................................74        &lt;br /&gt;Interception.................................................................................................................................75        &lt;br /&gt;In This Chapter.............................................................................................................................77        &lt;br /&gt;&lt;strong&gt;Wrapping It Up&lt;/strong&gt; ................................................................................................................................78&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The book cover has the &lt;a href="http://www.codebetter.com"&gt;www.codebetter.com&lt;/a&gt; URL, the community blogs whose owners originally started ht ALT.NET movement (I wrote about it very early back). I suspected it even before reading the table of contents!&lt;/p&gt;  &lt;p&gt;Oh my. This is the book I always wanted to either read or write. Now I only have one option!!!&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a51e7e35-2a7f-4403-8eaa-92f5758aa3d2" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div&gt;&lt;b&gt;Technorati Tags:&lt;/b&gt; &lt;a href="http://technorati.com/tags/ALT.NET" rel="tag"&gt;ALT.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Link+List" rel="tag"&gt;Link List&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Foundations+of+Better+Programming" rel="tag"&gt;Foundations of Better Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ebook" rel="tag"&gt;ebook&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ebooks" rel="tag"&gt;ebooks&lt;/a&gt;,&lt;a href="http://technorati.com/tags/design+patterns" rel="tag"&gt;design patterns&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ddd" rel="tag"&gt;ddd&lt;/a&gt;,&lt;a href="http://technorati.com/tags/di" rel="tag"&gt;di&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mocking" rel="tag"&gt;mocking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/patterns" rel="tag"&gt;patterns&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Karl+Seguin" rel="tag"&gt;Karl Seguin&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;hr /&gt;&lt;p align="center"&gt;&lt;b&gt;Cross posted from &lt;a href="http://weblogs.asp.net/meligy/default.aspx"&gt;weblogs.asp.net/meligy&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123592"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=123592" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/123592.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2008/07/05/foundations-of-programming-aka-the-alt.net-free-book.aspx</guid>
            <pubDate>Sat, 05 Jul 2008 03:04:49 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/123592.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2008/07/05/foundations-of-programming-aka-the-alt.net-free-book.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/123592.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/123592.aspx</trackback:ping>
        </item>
        <item>
            <title>Ruby.NET death brings up the topic again, Microsoft, ALT, OSS, ...</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2008/02/05/ruby.net-death-brings-up-the-topic-again-microsoft-alt-oss.aspx</link>
            <description>&lt;p&gt;Reading the news that &lt;a href="http://antoniocangiano.com/2008/02/04/rubynet-is-dead/" target="_blank"&gt;Ruby.NET is dead&lt;/a&gt; although doesn't feel the best thing to hear, is still logical, and more explicitly it's even "right". After all, it reminded me with the other story about the death of AJAX.NET Professional. I wrote a detailed take on that earlier (&lt;a href="http://geekswithblogs.net/Mohamed/archive/2008/01/05/to-microsoft-or-alt----or--ajaxpro-founder-stopped.aspx" target="_blank"&gt;in my former blog&lt;/a&gt;) and although you might consider this spamming, I feel the same talk needs to be brought back into conversation, because I feel like I want to say the same things, so, I'm quoting it entirely here in this blog.&lt;/p&gt;  &lt;blockquote&gt;&lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Few hours ago, Michael Schwarz, the creator of AJAX.NET Professional (A.KA. AJAXPro), the most successful AJAX framework for ASP.NET after Microsoft's ASP.NET AJAX Framework (A.K.A., ATLAS) has stated that &lt;/em&gt;&lt;a href="http://weblogs.asp.net/mschwarz/archive/2008/01/04/future-of-ajax-net-professional.aspx"&gt;&lt;em&gt;he'll no longer be working on the project&lt;/em&gt;&lt;/a&gt;&lt;em&gt;. Furthermore, he even recommended users to move to Microsoft's AJAX Framework instead!! The reasons Michael mentioned why he will stop the project used by 13.3% of ASP.NET developers doing AJAX work include the fact that ASP.NET AJAX is part of ASP.NET 3.5 itself, and that he believes future innovation on the client side will be in other areas not just AJAX.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;I haven't used AJAXPro in production myself, but I used to provide support for few other friends who did, and it was really a neat piece of software. The ability to have wrappers for YUI and other pure client libraries impressed me, but I never used it on production stuff for one reason. I expected this moment to come !!&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;This brings me to the same thing I used to worry about myself and later was a major concern when I started getting slightly involved in ALT.NET movement. The old quote says "You never lose your job because you chose Microsoft",  and that's usually true. AJAXPro story has always been weird to me. I kept wondering when will the story keep like this, good implementation from Microsoft, and another very interesting implementation from the outside, besides few more working implementations. It's not just about AJAXPro, but is a general issue. &lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Don't get me wrong. I believe that AJAXPro was one GREAT reason behind the current quality of ASP.NET AJAX (plus other additions, like having briliant guys working on it, especially Nikhil). Same as I believe that Castle's MVC framework named MonoRail was one of the teachers for ASP.NET MVC  and both appeared simply because RubyOnRails was a great MVC framework that made most people suddenly value MVC and surprisingly some people even hate webforms as if it was found by the devil (&lt;/em&gt;&lt;a href="http://geekswithblogs.net/Mohamed/archive/2007/04/24/Monorail-Is-it-the-right-direction--Well-its-not.aspx"&gt;&lt;em&gt;I wrote about it before&lt;/em&gt;&lt;/a&gt;&lt;em&gt; in the context of other areas like D)I. Even more examples are NUnit and VSTS Tester features. But what then ??&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;VSTS never killed NUnit and I don't will. Instead, NUnit is not the only testing framework, there's also MbUnit later and even XUnit recently. On the other hand, AJAXPro is now over. More interesting stories are Subsonic and BLINQ. Now the founder of Subsonic works for Microsoft and Subsonic itself is gaining excellent popularity because it's 100% FREE while LLBLGen (the best ORM for .NET in my opinion) and .NETTiers (while requires buying CodeSmith), and is even competing with other FREE options like NHibernate and Microsoft's own FREE ORM, LINQ2SQL. Once Subsonic started (and it was called ActionPack as for ActionPack of RubyOnRails) I &lt;/em&gt;&lt;a href="http://geekswithblogs.net/Mohamed/archive/2006/08/29/89575.aspx"&gt;&lt;em&gt;blogged that we don't really need something competitive to BLINQ&lt;/em&gt;&lt;/a&gt;&lt;em&gt;, and I said it's waste of effort (because of the old quote). Now BLINQ itself is likely dead, never heard of it or Managed JScript for long. Anyway, at this time the timing was the factor, if Subsonic appeared before BLINQ, it'd make sense, but that it appears while BLINQ was in development instead of working with BLINQ and LINQ2SQL and providing lots of ideas, feedbacks and even toolkits for better jobs, it didn't look right. If you think this is 100% against ALT.NET mentality, you haven't got my point yet.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;The point is, such frameworks and alternative tools are so important for us as developers. They are the true reason behind the quality of Microsoft frameworks. If there's an area where there should be a framework or a tool, and nobody for the competitive platforms has considered creating one, and even more no one in the .NET world has tried creating one, Microsoft will almost never bother creating it's own. Even if they do, the fact that they have no competitor and/or teacher will make their result a really crappy one, which is normal for anyone working from scratch (no previous experiences in the world) with market dominance (completely no competition), not just for Microsoft. Don't get me wrong on "learning" too. I heard Microsoft guys are not allowed to read other's code for legal issues, but at least learn from feature sets and high level architectures shared among many bloggers!&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;So, clearly, if you are going for stability, it's Microsoft. If you looking for feature set and quicker results it's ALTernatives (speaking inside the domain of .NET Framework), because Microsoft always comes late, and they will ever do. Again, it's not about Microsoft specifically. The other quote says "If you are fat, you can't run". Once Microsoft gets it, in most situations they do it best, but after so long time. This means sooner or later you have to switch back to Microsoft, and maybe I'm the one who's too lazy here or so, but this fact that "you have to switch sometime" really annoys me, but this is how it goes.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Let's see some examples: now ASP.NET MVC is expected to kill Monorail. What Monorail thought of as I read was to be some framework that works around ASP.NET MVC and work with it not compete with it. Also, ASP.NET AJAX is getting mature enough to compete with other .NET AJAX framework like AJAX.NET Professional and this simply killed the other framework; while ASP.NET AJAX is still way behind when compared to pure client frameworks whether older like script.aculo.us or newer like jQuery. The fact it's the best for webforms means that people working with webforms will always use it, while others working with Monorail or AS.NET MVC itself will probably go for jQuery or so. VSTS is now in it's 2nd version still (VSTS 2005, VSTS 2008) and this is very early for it's testing features to affect other testing frameworks especially when you consider the huge price difference (FREE vs. thousands of dollars). The old, not always outdated quote says "Microsoft releases a great working product, starting with version 3". Subsonic is now pushed by Microsoft while they still push Linq2SQL powerfully, but again, this is "now", how about later ?? Remember (or add to your information) than until today other player in the ORM ground like LLBLGen is even better than LINQ2SQL itself that it for example has a very sophisticated designer studio and more importantly has more support for prefeteching loading with least queries) related entities at the same time, and this something big. The next version will even provide LINQ syntax which makes the difference smaller, but again, it's quite way expensive. It'd make more sense to me than the current mess if the guy behind LLBLGen and the guy behind APAXPRo both simply joined Microsoft and their work was acquired. That they continue working on the same stuff but under Microsoft's umbrella without ugly huge corporate restrictions and complete freedom, sort of similar to the guys working on ASP.NET MVC. But we do not work in an ideal world !!&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;So, we'll still living in the same miss. Microsoft only is a very limited painful yet guaranteed option, ALT option is the total amazement and innovation but can simply disappear in a moment.&lt;/em&gt;&lt;/p&gt;    &lt;p&gt;&lt;em&gt;Happy mess, geeks :D :D :D&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Bringing up the topic again. I have many talks about it in private chats, etc, and I put it here again mainly as I'm wondering what others might have to say about it here.&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b07a2160-2cfc-4c44-8652-38183c21eea6" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ALT.NET" rel="tag"&gt;ALT.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Ruby.NET" rel="tag"&gt;Ruby.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IronRuby" rel="tag"&gt;IronRuby&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Ruby" rel="tag"&gt;Ruby&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAXPro" rel="tag"&gt;AJAXPro&lt;/a&gt;&lt;/div&gt;
&lt;hr /&gt;&lt;p align="center"&gt;&lt;b&gt;Cross posted from &lt;a href="http://weblogs.asp.net/meligy"&gt;weblogs.asp.net/meligy&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;hr /&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119296"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=119296" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/119296.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2008/02/05/ruby.net-death-brings-up-the-topic-again-microsoft-alt-oss.aspx</guid>
            <pubDate>Tue, 05 Feb 2008 10:19:54 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/119296.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2008/02/05/ruby.net-death-brings-up-the-topic-again-microsoft-alt-oss.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/119296.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/119296.aspx</trackback:ping>
        </item>
        <item>
            <title>To Microsoft or ALT ? - OR- AJAXPro Founder Stopped Working On It</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2008/01/05/to-microsoft-or-alt----or--ajaxpro-founder-stopped.aspx</link>
            <description>&lt;p&gt;Few hours ago, Michael Schwarz, the creator of AJAX.NET Professional (A.KA. AJAXPro), the most successful AJAX framework for ASP.NET after Microsoft's ASP.NET AJAX Framework (A.K.A., ATLAS) has stated that &lt;a href="http://weblogs.asp.net/mschwarz/archive/2008/01/04/future-of-ajax-net-professional.aspx"&gt;he'll no longer be working on the project&lt;/a&gt;. Furthermore, he even recommended users to move to Microsoft's AJAX Framework instead!! The reasons Michael mentioned why he will stop the project used by 13.3% of ASP.NET developers doing AJAX work include the fact that ASP.NET AJAX is part of ASP.NET 3.5 itself, and that he believes future innovation on the client side will be in other areas not just AJAX.&lt;/p&gt;  &lt;p&gt;I haven't used AJAXPro in production myself, but I used to provide support for few other friends who did, and it was really a neat piece of software. The ability to have wrappers for YUI and other pure client libraries impressed me, but I never used it on production stuff for one reason. I expected this moment to come !!&lt;/p&gt;  &lt;p&gt;This brings me to the same thing I used to worry about myself and later was a major concern when I started getting slightly involved in ALT.NET movement. The old quote says "You never lose your job because you chose Microsoft",  and that's usually true. AJAXPro story has always been weird to me. I kept wondering when will the story keep like this, good implementation from Microsoft, and another very interesting implementation from the outside, besides few more working implementations. It's not just about AJAXPro, but is a general issue. &lt;/p&gt;  &lt;p&gt;Don't get me wrong. I believe that AJAXPro was one GREAT reason behind the current quality of ASP.NET AJAX (plus other additions, like having briliant guys working on it, especially Nikhil). Same as I believe that Castle's MVC framework named MonoRail was one of the teachers for ASP.NET MVC  and both appeared simply because RubyOnRails was a great MVC framework that made most people suddenly value MVC and surprisingly some people even hate webforms as if it was found by the devil (&lt;a href="http://geekswithblogs.net/Mohamed/archive/2007/04/24/Monorail-Is-it-the-right-direction--Well-its-not.aspx"&gt;I wrote about it before&lt;/a&gt; in the context of other areas like D)I. Even more examples are NUnit and VSTS Tester features. But what then ??&lt;/p&gt;  &lt;p&gt;VSTS never killed NUnit and I don't will. Instead, NUnit is not the only testing framework, there's also MbUnit later and even XUnit recently. On the other hand, AJAXPro is now over. More interesting stories are Subsonic and BLINQ. Now the founder of Subsonic works for Microsoft and Subsonic itself is gaining excellent popularity because it's 100% FREE while LLBLGen (the best ORM for .NET in my opinion) and .NETTiers (while requires buying CodeSmith), and is even competing with other FREE options like NHibernate and Microsoft's own FREE ORM, LINQ2SQL. Once Subsonic started (and it was called ActionPack as for ActionPack of RubyOnRails) I &lt;a href="http://geekswithblogs.net/Mohamed/archive/2006/08/29/89575.aspx"&gt;blogged that we don't really need something competitive to BLINQ&lt;/a&gt;, and I said it's waste of effort (because of the old quote). Now BLINQ itself is likely dead, never heard of it or Managed JScript for long. Anyway, at this time the timing was the factor, if Subsonic appeared before BLINQ, it'd make sense, but that it appears while BLINQ was in development instead of working with BLINQ and LINQ2SQL and providing lots of ideas, feedbacks and even toolkits for better jobs, it didn't look right. If you think this is 100% against ALT.NET mentality, you haven't got my point yet.&lt;/p&gt;  &lt;p&gt;The point is, such frameworks and alternative tools are so important for us as developers. They are the true reason behind the quality of Microsoft frameworks. If there's an area where there should be a framework or a tool, and nobody for the competitive platforms has considered creating one, and even more no one in the .NET world has tried creating one, Microsoft will almost never bother creating it's own. Even if they do, the fact that they have no competitor and/or teacher will make their result a really crappy one, which is normal for anyone working from scratch (no previous experiences in the world) with market dominance (completely no competition), not just for Microsoft. Don't get me wrong on "learning" too. I heard Microsoft guys are not allowed to read other's code for legal issues, but at least learn from feature sets and high level architectures shared among many bloggers!&lt;/p&gt;  &lt;p&gt;So, clearly, if you are going for stability, it's Microsoft. If you looking for feature set and quicker results it's ALTernatives (speaking inside the domain of .NET Framework), because Microsoft always comes late, and they will ever do. Again, it's not about Microsoft specifically. The other quote says "If you are fat, you can't run". Once Microsoft gets it, in most situations they do it best, but after so long time. This means sooner or later you have to switch back to Microsoft, and maybe I'm the one who's too lazy here or so, but this fact that "you have to switch sometime" really annoys me, but this is how it goes.&lt;/p&gt;  &lt;p&gt;Let's see some examples: now ASP.NET MVC is expected to kill Monorail. What Monorail thought of as I read was to be some framework that works around ASP.NET MVC and work with it not compete with it. Also, ASP.NET AJAX is getting mature enough to compete with other .NET AJAX framework like AJAX.NET Professional and this simply killed the other framework; while ASP.NET AJAX is still way behind when compared to pure client frameworks whether older like script.aculo.us or newer like jQuery. The fact it's the best for webforms means that people working with webforms will always use it, while others working with Monorail or AS.NET MVC itself will probably go for jQuery or so. VSTS is now in it's 2nd version still (VSTS 2005, VSTS 2008) and this is very early for it's testing features to affect other testing frameworks especially when you consider the huge price difference (FREE vs. thousands of dollars). The old, not always outdated quote says "Microsoft releases a great working product, starting with version 3". Subsonic is now pushed by Microsoft while they still push Linq2SQL powerfully, but again, this is "now", how about later ?? Remember (or add to your information) than until today other player in the ORM ground like LLBLGen is even better than LINQ2SQL itself that it for example has a very sophisticated designer studio and more importantly has more support for prefeteching loading with least queries) related entities at the same time, and this something big. The next version will even provide LINQ syntax which makes the difference smaller, but again, it's quite way expensive. It'd make more sense to me than the current mess if the guy behind LLBLGen and the guy behind APAXPRo both simply joined Microsoft and their work was acquired. That they continue working on the same stuff but under Microsoft's umbrella without ugly huge corporate restrictions and complete freedom, sort of similar to the guys working on ASP.NET MVC. But we do not work in an ideal world !!&lt;/p&gt;  &lt;p&gt;So, we'll still living in the same miss. Microsoft only is a very limited painful yet guaranteed option, ALT option is the total amazement and innovation but can simply disappear in a moment.&lt;/p&gt;  &lt;p&gt;Happy mess, geeks :D :D :D&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f3fe3f65-e837-4a21-911f-fa2b6ee100d5" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAX.NET%20Professional" rel="tag"&gt;AJAX.NET Professional&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAXPro" rel="tag"&gt;AJAXPro&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ASP.NET%20AJAX.%20ATLAS" rel="tag"&gt;ASP.NET AJAX. ATLAS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ALTNET" rel="tag"&gt;ALTNET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ALT.NET" rel="tag"&gt;ALT.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/LINQ" rel="tag"&gt;LINQ&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118262"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=118262" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/118262.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2008/01/05/to-microsoft-or-alt----or--ajaxpro-founder-stopped.aspx</guid>
            <pubDate>Sat, 05 Jan 2008 00:37:02 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/118262.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2008/01/05/to-microsoft-or-alt----or--ajaxpro-founder-stopped.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/118262.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/118262.aspx</trackback:ping>
        </item>
        <item>
            <title>For dotNETwork sake: ALT.NET Mission in Arabic</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2007/12/16/for-dotnetwork-sake-alt.net-mission-in-arabic.aspx</link>
            <description>&lt;p&gt;I've mentioned ALT.NET group before number of times. Having found a promising advance in the dotNETwork group, I thought it'll be essential to introduce the ALT.NET way of thinking to them, so, I'm sharing with you all the localization I submitted to ALT.NET yahoo group in November 16, and will be online officially pretty soon, for ALT.NET mission statement.&lt;/p&gt;
&lt;blockquote style="font-family: Verdana; font-weight: bold;"&gt;
&lt;div dir="rtl"&gt;
&lt;p&gt;نحن مجتمع منظم ذاتيا ومتخصص من المطورين تربطهم الرغبة في تحسين أنفسهم ، مواجهة  الافتراضات، و مساعدة بعضنا في متابعة التفوق في ممارسة تطوير البرمجيات. &lt;/p&gt;
&lt;p&gt;حركتنا جديدة. لقد بدأ التواصل الأن، الجميع مرحب بهم لتشكيل و صياغة هذا التواصل في المدونات و القوائم البريدية، و النجمعات المحلية و العالمية.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;The group has a revolutionary way of thinking though essential one. I'll most likely be talking about applying ALT.NET methodologies with the dotNETwork group more often, for now, check the related resources:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;ALT.NET
    &lt;ul&gt;
        &lt;li&gt;&lt;a href="http://altdotnet.org/"&gt;Official Website&lt;/a&gt; &lt;/li&gt;
        &lt;li&gt;&lt;a href="http://wiki.altdotnet.org/"&gt;Official Wiki &lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="http://tech.groups.yahoo.com/group/altnetconf/"&gt;Yahoo Group&lt;/a&gt; (WARNING: SO MANY MESSAGES, pretty useful most of the time though) &lt;/li&gt;
        &lt;li&gt;&lt;a href="http://www.facebook.com/group.php?gid=6018123196"&gt;facebook Group&lt;/a&gt; (Acts &lt;a href="http://www.facebook.com/topic.php?uid=6018123196&amp;amp;topic=3299"&gt;just as a member directory&lt;/a&gt;) &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
    &lt;li&gt;dotNETwork
    &lt;ul&gt;
        &lt;li&gt;&lt;a href="http://www.dotnetwork.org/"&gt;Official Website &lt;/a&gt;&lt;/li&gt;
        &lt;li&gt;&lt;a href="http://www.facebook.com/group.php?gid=2409268236&amp;amp;ref=mf"&gt;facebook Group&lt;/a&gt; (Looks like the main sport right now)&lt;/li&gt;
        &lt;li&gt;&lt;a href="http://tech.groups.yahoo.com/group/dotnetworkorg/"&gt;Yahoo Group&lt;/a&gt; (Less activity)&lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
We'll see where this all goes to. I'm excited myself, anybody else around ??&lt;br /&gt;
&lt;br /&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:aa9689a1-f01e-496f-928a-0bfb661c81a8" class="wlWriterEditableSmartContent"&gt;&lt;br /&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/ALT.NET"&gt;ALT.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/ALTNET"&gt;ALTNET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/dotNETWwork"&gt;dotNETWwork&lt;/a&gt;&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p style="font-weight: bold; text-decoration: underline;"&gt;Acknowledgement:&lt;/p&gt;
&lt;p&gt;Thanks a lot, Menna Serry, my non technical friend, for simplifying my translation of ALT.NET mission before submitting it. My original translation was like coming for year 1007 instead of 2007 !!&lt;br /&gt;
&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117757"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117757" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/117757.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2007/12/16/for-dotnetwork-sake-alt.net-mission-in-arabic.aspx</guid>
            <pubDate>Sun, 16 Dec 2007 07:25:24 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/117757.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2007/12/16/for-dotnetwork-sake-alt.net-mission-in-arabic.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/117757.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/117757.aspx</trackback:ping>
        </item>
        <item>
            <title>dotNETwork, 1st Big Offline User Group in Egypt -Or- SQL 2008 + MVC</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2007/12/15/dotnetwork-1st-big-offline-user-group-in-egypt--or--sql.aspx</link>
            <description>&lt;p&gt;Last Tuesday night witnessed a relatively new kind event held in Microsoft Egypt building @ smart village. It was said to be "announcing &lt;a href="http://www.dotnetwork.org/"&gt;dotNETwork&lt;/a&gt; user group" which I thought was some Microsoft Egypt initiative for a new offline user group model of developer community. I was so excited about so, and it was even better!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Idea&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.dotnetwork.org/"&gt;dotNETwork&lt;/a&gt; group is just am offline user group that's done right. It just happened to have Microsoft Egypt host the group gathering, as this is the hardest issue to maintain. Also, Microsoft name made the number of comers reaches over 100 attendee (not an accurate number too!). Note that the gathering/event speaker, Steven Forte, was invited by the group. not by Microsoft :).&lt;/p&gt;
&lt;p&gt;This is the real start for offline user groups in Egypt I believe. Before, we used to have smaller user groups here in SilverKey and in ITWorx, we in silverKey started the concept of a public event last year, and recently ITWorx followed with their own event, but a wide spread user group only existed online, like MiddleeastDevelopers yahoo group. This &lt;a href="http://www.dotnetwork.org/"&gt;dotNETwork&lt;/a&gt; group is the first BIG offline user group, and I'll be proud t try to join this effort.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Day, Session 1/2: SQL Server 2008&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Steven in general is one of the most important speakers in Egypt, having attended almost if not all the previous Microsoft MDC events. everybody already knows him as a superior SQL Server guy who (due to his work nature) can also talk well many other technical topics.&lt;/p&gt;
&lt;p&gt;The first session was on SQL Server 2008. According to Steve, this will be launched in the launch event February 29, 2008 although will be released around July! He went on categorizing the new features for SQL Server 2008 as follows:&lt;/p&gt;
&lt;p&gt;The enterprise data features, which are more for admins than developers, include the ability to do hot swapping of hardware, even processors! More datat types (which he got back to later), and various reporting and analysis services features, various BI areas. Working on the backup system that's currently slow compared to 3rd party tools that even create way smaller backups and have better options (selective backups).&lt;/p&gt;
&lt;p&gt;Also, one other category is predictable performance. Steven mentioned how important the performance show plan is, and went to tell about the "query parallelism" (running the same query twice on different processors or so, and returning the value of the one that's done first), "resource governer" which works on deprioritizing certain queries to allow others to run faster. I understood you can choose prioritization based on some resource pool options like customized connection string, server load, user, time or day,....&lt;/p&gt;
&lt;p&gt;Stephen mentioned enhancements to the SQL Server workbench, the reporting of resource over/under utilization, so that an admin may choose to do dynamic allocation for memory, processing, etc. He stated that if you have multiple processors, you can allocate a certain processor to specific SQL tasks.&lt;/p&gt;
&lt;p&gt;Speaking of "beyond relational" features, he also mentioned new data types like FileStream, and some essential features like integrating the fullText search with the table itself (It used to be so painful to do DB replication because of missing this before :D), filtered indexes, ability to store "hierarchical" data as &lt;em&gt;hierarchical&lt;/em&gt; in your DB, DATE and TIME specific data types in addition to DATETIME, the TIME type is accurate down to nanoseconds; Geometry data type allowing saving geographical information and therefore enabling you to write geography specific where conditions on these :D :), when retrieved in a .NET DataSet or so, this is a string that's in the same format that VirtualEarth uses, if you want to consider integration ;) ;). Also, a DateTimeOffset type which is equivalent to TimeSpan in .NET. Theoretically, this allows you to do better operations on the dates/times, but, the subtraction demo didn't work for this CTP. Stephen asks you to blame Bill Gates :) :) :).&lt;/p&gt;
&lt;p&gt;More enhancements were pretty interesting as well, just being able to write "+=" in SQL is sure great :D (it seriously is, especially when promised to work with ALL data types). Another interesting feature he demoed is being able to use "table valued" parameters as SPROC parameters. This is like being able to send a parameter which is actually a series of items each of a complex data type (tupple), just like tables are, and being able to use normal insert,... and other table operations on these (Much like sending temporary table to the SPROC, if I got it right). The most interesting thing is that if you are using .NET 3.5 (ADO.NET 3.5), you can pass LINQ results or DataTable inside a DataSet as table valued parameter!!&lt;/p&gt;
&lt;p&gt;Also, the new MERGE feature is pretty magical, especially for dataware housing systems.you can now merge data of different cells in certain column based on whatever criteria you want, or just using the first space in the value of the shortest cell, if that's string type and you are having no condition/pattern. It's just a pattern recognition thing, so, it works for all UTF languages (We're Egyptians you know :D). Actually, this is not the only data ware housing and SSIS features and enhancements. There's also in the BI Workbench some interesting stuff having Fuzzy Lookups and some enhances to cubes (New designer tools, WIZZARDS, Stephens laughs!). The last features he mentioned were being able to use reporting services for native word rendering, note that this means the report rending itself, not just manual exporting, of course with special designer support, and being able to write C# when working with reporting services as part of integration services.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;The session was more than great as it had pretty enough information for a "sneak preview" session. MAN, this is my favorite standard for a session, not any less, and Stephen is one of the few who match this standard when we come to SQL :) :) :).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;The Day, Session 2/2: ASP.NET Design Patterns: MVC + Database Design Patterns: SCD&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;MVC Pattern&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;Starting to talk about many books available for design patterns, Stephen went back to what design patterns are and where they came from. He said they are not as hard as reported by book publishers :D. Of course he defined them as documented general ways to solve common problems (like getting data from db and presenting them on a web page). He also mentioned a situation he had himself with a new Egyptian developer who joined his team recently. The solution hey working on was designed using the MVC pattern, which the developer knew, this made the conversation only goes about JUST the business logic, because the pattern itself is known and used 100 times already, Stephen said.&lt;/p&gt;
&lt;p&gt;The history of design patterns was the most interesting part of the session to me. How that this all started in architecture, with European city buildings planning and how the term "design patterns" while planning the city of New York afterwards!!! There was a book on that that SmallTalk guys read and made the first software design patterns starting with it. As SmallTalk is not the language most people are actually using, the Gang Of Four took the SmallTalk work/book (with giving credits and everything :D) and build their own famous reference on. Stephen reminded us that after all, design patterns are just ways to speed up development by preventing us from "re-inventing the wheel". Still, they're just the blueprint/framework of the solution, not the solution itself.&lt;/p&gt;
&lt;p&gt;Getting to MVC in particular (with ASP.NET), Stephen said it's one of the oldest (since the days of the SmallTalk work), and it works for having multiple views of the same model. The model is what your DB represents for example, the view is the UI, following the example, the controller is the code you write to show the model on the page.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Actually, this is when I started to not feel OK!! To me, this doesn't sound much different than the MVP pattern which MSDN documentation says it's the model for WebForms Code Behind in ASP.NET. Actually, Stephen made a joke that you shouldn't believe such a documentation when it comes to concepts not specific products, and I thought, most of the guys sitting there seemed to not even know what design patterns are. The beauty of this specific session is that it's really new in public event sessions in Egypt :S, so, we just continued...&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Continuing with Stephen, he went on talking about the Model, A model is a response to instruction of change of state (data , user interaction). You know, a search text you enter in a text box is a change in state, that makes the already displayed results (Model) before performing the search become out of sync.One more reason why you shouldn't mix SQL with UI (write SQL in button click or even use SqlDataSrouce) is that you'd be mixing View and Model. One way to do retrieval is using Typed DataSets, Stephen said, the way he use it though, he explained, writing stored procedures in the DB and use them from business classes with static methods (Yeah, I think this part is personal preference too!).&lt;/p&gt;
&lt;p&gt;Speaking of the View, he said that this is the easy part. It just all about the display of the data.  Maybe you need to set what to display or hide based on authentication, authorization, but you can use the template view features built into ASP.NET.&lt;/p&gt;
&lt;p&gt;Now, we came to the Controller.this is the part that intersects with both the View and Model. When it needs to get some data, it informs the model to get it from there, when it has just "got" the data, it informs the View to display it. At this point of the talk, he suggested having a "Page Controller" (A base class for all pages to inherit from instead of directly inheriting from System.Web.UI.Page) to hold common helper functionality in (I liked him when he said that cause I've been taking that approach always, until I came to SK and found them also accidentally using it as well :D).&lt;/p&gt;
&lt;p&gt;Anyway, later he went on implementation issues, how that was hard to implement earlier if you write the code the code in the page code behind, and data access layer issues with he Model as well. He demoed an implementation using ObjectDataSource having the logic and data access in different assembly than the web project, at this point we came to the biggest word and mean reasoning of the MVC pattern and such separation in general, which is TESTABILITY (you know, an MVC session couldn't exist without that word :) :) ).  Explaining this, he clarified "Modularity: Separation between assemblies", and how that this the key for testability, especially that you cannot simulate the Page Life Cycle to do your unit tests.&lt;/p&gt;
&lt;p&gt;As one of the biggest issues mentioned nowadays with the new MVC framework for ASP.NET, he went to discuss ViewState. The good of keeping state in a stateless environment like web/HTTP and the evil of page size. He said you can intercept your View (page) to handle storing it on the server and you can do that in your page controller to make it site wide, the audience was very enthusiast about that part, and we took really enough (more than enough to me :D ) time discussing the alternatives and server techniques, etc....&lt;/p&gt;
&lt;p&gt;Finally, he named the ASP.NET MVC framework. He didn't say much about it. He just said that Microsoft MEANS IT this time when they say it's should NOT be used in production yet. This is good to get as explicit as this to a naughty boy like me :) :D :D.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Afterwards, we turned to DB patterns. I didn't feel that MVC part was enough and wondered why splitting the session at all. I felt that part was quite little by then, although now I fell it had pretty good amount of information (my hands started to feel tired already from writing :D). I don't know, maybe it's just my high acceptance standard or the fact that he didn't talk about the MVC Framework (which was just released quite close to the session time, he has ALL excuse not to mention it of course), or both, I don't know. It was nice to bring the topic to public talks in Egypt anyway, and he did really well explaining the topics he opened :).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;u&gt;DB Patterns: SCD&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;Looks like Stephen meant to make this session all about non-opened topics in public Egyptian events :). He is a frequent MDC speaker and he knows there're VERY few other public tech. events in Egypt (Actually, just our SilverKey DemoDay and very recently ITWorx CuttingEdge Club), so, he knows what topics are not on the table and did great bringing them up :) :) :).&lt;/p&gt;
&lt;p&gt;The topic of the second part of the session is something that matters most to dataware housing work. He first said that we all are using transactional deign patterns in DB design, you know, the way we use normalization and depend on DB relations.&lt;/p&gt;
&lt;p&gt;The design pattern he wanted to show us this time was called "Slowly Changing Dimensions" or SCD. This is yet a different  data model from the transactional one that is used mainly with reports. The idea is simply using flat tables (do I hear somebody yelling "denormlization"?) for storing data. This is good for reports as it is a kind of physical transformation of data, not their views.&lt;/p&gt;
&lt;p&gt;The real world situation example he brought to us from his past work experience was a situation in a site which is like news one, he chose to not save the pages with same elements in the same table, instead, he create a table for each page of these. That was in a separate production DB not on the development/staging or even data entry server. This is because the area where this has a benefit is when you need to bring the online transactional data. That's why he called this way "Published SCD".&lt;/p&gt;
&lt;p&gt;Working with this way, having two databases one of them for transactional and another for published SCD data brings new challenges though. You need to always keep the two databases in synch.  You can use OLTP or so to do it, but after all, you need to remember that this model is not suitable for time sensitive data (based on time series, for the example he brought up. that was one day).&lt;/p&gt;
&lt;p&gt;There are common ways to do synch actually, you can relay on SSIS packages, by the time of the sample story he told us (not very close :) ), they used DTS to do it. He showed us a DEMO on how to automate such sync after every database INSERT, and mentioned that you are likely to get harder challange when it comes to editing (Aka UPDATEing) data on the transactional DB and then finding which part on the published DB matches the UPDATEd data and actually UPATE it.&lt;/p&gt;
&lt;p&gt;Later, he went on the value of such. The simplest example is that Amazon and sites of that size are of course using it in their work.&lt;/p&gt;
&lt;p&gt;The last demo was doing partitioning for table Index. He mentioned the facts about a clustered and non clustered index and the fight that come to that between developers and DBAs usually for "when to create an index" :D :).&lt;/p&gt;
&lt;p&gt;&lt;em&gt;In general, that's as I said, some topic an average developer of even 5 years experience might not have dealt with, and would be too worried and frightened to such a different way of thinking, as most developers have grown up on valuing normalization and speaking of performance without thinking twice. Having heard it from such a domain expert was very useful to everybody there I guess, and sure to me as well :) :) :).&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;u&gt;If I were you, I wouldn't have reached this line at all, or at least reached it by skipping all the story above :D, so, if you have read it all (I doubt!), you really deserve a BIG thank you for this :) :) :).&lt;/u&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The last thing I want to say in this context is that having a started offline user group not just a public independent/semi-independent event is a step that was waited and worked on for so long. I expect way more to come from this user group and plan to join and share in that great movement myself. I'm as excited as I was with the global ALT.NET movement and plan to do my best to bring the ALT.NET culture to the &lt;a href="http://www.dotnetwork.org/"&gt;dotNETwork&lt;/a&gt; group. Stephen has already gave me a great help by his excellent selection of topics for his second session and his usual expected outstanding performance in delivering them, so, that was a great start for a great group.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Be with us and keep tuned for more work to come. The &lt;/strong&gt;&lt;a href="http://www.dotnetwork.org/"&gt;&lt;strong&gt;dotNETwork&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; group plans to have more events soon and other activities as well. The almost confirmed news is that it'll have another similar event monthly (at least next month), with native Egyptian speakers most likely, to make the move more intimate and more effective/interactive, so, watch the &lt;strong&gt;group &lt;/strong&gt;&lt;a href="http://www.dotnetwork.org/"&gt;&lt;strong&gt;website&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; and my weblog for updates on this. You may also want to join the Yahoo or facebook groups (see details on the site).&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e67b8815-cde7-46d4-8e8f-aaf615199a61" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/dotNETwork"&gt;dotNETwork&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/ALT.NET"&gt;ALT.NET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/ALTNET"&gt;ALTNET&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/SQL%20Server%202008"&gt;SQL Server 2008&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/KATMAI"&gt;KATMAI&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/MVC%20Framework"&gt;MVC Framework&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/ASPNETMVC"&gt;ASPNETMVC&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/SCD"&gt;SCD&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Design%20Patterns"&gt;Design Patterns&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Egypt"&gt;Egypt&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Local%20Events"&gt;Local Events&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117746"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117746" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/117746.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2007/12/15/dotnetwork-1st-big-offline-user-group-in-egypt--or--sql.aspx</guid>
            <pubDate>Sat, 15 Dec 2007 19:21:42 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/117746.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2007/12/15/dotnetwork-1st-big-offline-user-group-in-egypt--or--sql.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/117746.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/117746.aspx</trackback:ping>
        </item>
        <item>
            <title>Enterprise Library 4.0, With Dependency Injection Application Block!</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2007/12/11/enterprise-library-4.0-with-dependency-injection-application-block.aspx</link>
            <description>I was checking my Google Reader as usual, seeing which items I haven't noticed due to amount of great posts there (&lt;a href="http://www.google.com/reader/shared/08221036579558509505"&gt;see my shared items&lt;/a&gt;), which I found this &lt;a href="http://codebetter.com/blogs/david.hayden/archive/2007/12/04/enterprise-library-3-5-just-became-enterprise-library-4-0-dependency-injection-application-block.aspx"&gt;one week old post&lt;/a&gt; by &lt;a href="http://codebetter.com/blogs/david.hayden/"&gt;David Hayden&lt;/a&gt; on &lt;a href="http://codebetter.com/blogs"&gt;CodeBetter blogs&lt;/a&gt;.  &lt;br /&gt;&lt;a href="http://codebetter.com/blogs/david.hayden/archive/2007/12/04/enterprise-library-3-5-just-became-enterprise-library-4-0-dependency-injection-application-block.aspx"&gt;The post&lt;/a&gt; talks about Enterprise Library work in-progress to reach EntLib 4.0, with some good news (that I knew would come soon or later :) ). A new "Dependency Injection" Application Block (DIAB) !   &lt;br /&gt;  &lt;br /&gt;To not waste your time, after setting the post into the &lt;a href="http://www.google.com/reader/shared/08221036579558509505"&gt;shared items&lt;/a&gt;, I thought the talk is worth more focus. The post has pretty interesting resources on DI with EntLib, WCSF (Web Client Software Factory), Repository Factory, CAB (Composite Application Block), and -of course- Object Builder !!  &lt;br /&gt;  &lt;br /&gt;&lt;span style="font-weight: bold; text-decoration: underline"&gt;My favorite quote from the post:&lt;/span&gt;  &lt;br /&gt;  &lt;div style="margin-left: 40px; font-style: italic"&gt;Assuming a DIAB will be provided by and used by Enterprise Library v4.0, this is a huge deal and I don't think those developers who occasionally peek into the world of P&amp;amp;P have a full appreciation of what this means. Some developers will see this as a way for P&amp;amp;P to re-invent something already out there, but I see this as a big win for all dependency injection tools and developers. It opens up the software factories and Enterprise Library to something other than ObjectBuilder and allow us to use our DI Tool of choice - whether that be the DIAB or another tool.&lt;/div&gt;  &lt;p&gt;   &lt;br /&gt;&lt;a style="font-weight: bold" href="http://codebetter.com/blogs/david.hayden/archive/2007/12/04/enterprise-library-3-5-just-became-enterprise-library-4-0-dependency-injection-application-block.aspx"&gt;Read the post&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:505b42d1-6e57-4db0-935b-146f3d2b8b57" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DI" rel="tag"&gt;DI&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DIAB" rel="tag"&gt;DIAB&lt;/a&gt;,&lt;a href="http://technorati.com/tags/EntLib" rel="tag"&gt;EntLib&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Enterprise%20Library" rel="tag"&gt;Enterprise Library&lt;/a&gt;,&lt;a href="http://technorati.com/tags/WCSF" rel="tag"&gt;WCSF&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117567"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117567" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/117567.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2007/12/11/enterprise-library-4.0-with-dependency-injection-application-block.aspx</guid>
            <pubDate>Mon, 10 Dec 2007 23:22:07 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/117567.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2007/12/11/enterprise-library-4.0-with-dependency-injection-application-block.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/117567.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/117567.aspx</trackback:ping>
        </item>
        <item>
            <title>My "Web 2.0 Using ASP.NET AJAX" Session PowerPoint Slides</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2007/11/20/My-Web-2.0-Using-ASP.NET-AJAX-Session-PowerPoint-Slides.aspx</link>
            <description>Today I have presenting an introductory session about ASP.NET AJAX in ITWorx CuttingEdge Club. I presented it as "Web 2.0 Using ASP.NET AJAX" talking about Web 2.0, AJAX in general and AJAX Patterns, and even other alternatives to ASP.NET AJAX (and how to combine) as in my first ASP.NET AJAX presentation back in November 2006 in &lt;a href="http://geekswithblogs.net/Mohamed/archive/2006/11/20/SKDD1.aspx"&gt;SilverKey DemoDay I&lt;/a&gt;. I have also introduced &lt;a href="http://AltDotNet.org"&gt;&lt;span style="font-weight: bold;"&gt;ALT.NET group&lt;/span&gt;&lt;/a&gt; as I knew it was never introduced in technical events in Egypt, and I'm so excited about that movement. I'm checking with the guys the plans for localizing the group for more options to come. I hope to see a wide spreading user group with the ALT.NET soul in Egypt pretty soon.&lt;br /&gt;
&lt;br /&gt;
So, I want to give a BIG thank you to ITWorx guys, first Sherif Ibrahim who did all the preparations for the talk, Mohammed Samy who introduced me so nicely, and the rest of guys who attended the session and especially those who bore with me  and kept enthusiast to the end as we exceeded our decided 1.5 hour (like most of my sessions!) . Really thank you all, great geeks. I hope you enjoyed the session as much as I enjoyed talking to you.&lt;br /&gt;
&lt;br /&gt;
I'm not sure what are the availability plans for the slides and video inside ITWorx, so, I uploaded the slides to BOX.net so that anybody can check it out. You can &lt;a href="http://www.box.net/shared/e6gjl3hhui#1:10925247"&gt;&lt;span style="font-weight: bold;"&gt;check the session folder&lt;/span&gt;&lt;/a&gt; for the slides.&lt;br /&gt;
&lt;br /&gt;
Again, thank you all guys, and wish to meet you all in later technical events like EDC and small user group gatherings (hope to have any in Egypt) or even internal events like today.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-weight: bold; text-decoration: underline;"&gt;Update (11:20 PM):&lt;/span&gt;&lt;br /&gt;
The slides are available in both PowerPoint 2007 and 2003 formats now.&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117002"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=117002" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/117002.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2007/11/20/My-Web-2.0-Using-ASP.NET-AJAX-Session-PowerPoint-Slides.aspx</guid>
            <pubDate>Tue, 20 Nov 2007 20:39:58 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/117002.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2007/11/20/My-Web-2.0-Using-ASP.NET-AJAX-Session-PowerPoint-Slides.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/117002.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/117002.aspx</trackback:ping>
        </item>
        <item>
            <title>ALT .NET - Those who don't have to go with everyone else without thinking</title>
            <link>http://geekswithblogs.net/Mohamed/archive/2007/06/20/ALT-.NET---Those-who-dont-have-to-go-with-everyone.aspx</link>
            <description>&lt;p&gt;Dody asked me today to search for ALT .NET. the findings were pretty surprising &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/wink_smile.gif" /&gt;&lt;/p&gt;
&lt;p&gt;ALT .NET is a group of .NET developers who simply don't just take things exactly as shipped by Microsoft, instead, they don't mind using other open source software or whatever alternative if suits better to the use. They don't hate Microsoft nor insist of just doing everything differently seeking just difference (well, at least not most of them as I noticed!), but if the different way is better, then why close minds &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/shades_smile.gif" /&gt;&lt;/p&gt;
&lt;p&gt;I'm not 100% adopting that way though. Typically I'm trying to be a Microsoft monkey, yet still a geek. Sometimes those two don't go together though, so... who knows &lt;img alt="" src="/Providers/BlogEntryEditor/FCKeditor/editor/images/smiley/msn/teeth_smile.gif" /&gt;&lt;/p&gt;
&lt;p&gt;You can read more about that approach &lt;a href="http://laribee.com/blog/2007/04/10/altnet/"&gt;here&lt;/a&gt; and &lt;a href="http://weblogs.asp.net/rosherove/archive/2007/06/04/alt-net-alternative-tools-and-approaches-to-mainstream-net.aspx"&gt;here&lt;/a&gt; (Note, the 2nd link has list of alt tools. I don't 100% like//hate this list though).&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113333"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=113333" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mohamed/aggbug/113333.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Mohamed Ahmed Meligy</dc:creator>
            <guid>http://geekswithblogs.net/Mohamed/archive/2007/06/20/ALT-.NET---Those-who-dont-have-to-go-with-everyone.aspx</guid>
            <pubDate>Wed, 20 Jun 2007 07:56:37 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/Mohamed/comments/113333.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/Mohamed/archive/2007/06/20/ALT-.NET---Those-who-dont-have-to-go-with-everyone.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/Mohamed/comments/commentRss/113333.aspx</wfw:commentRss>
            <trackback:ping>http://geekswithblogs.net/Mohamed/services/trackbacks/113333.aspx</trackback:ping>
        </item>
    </channel>
</rss>