<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MSDN Magazine</title><link>http://blogs.msdn.com/msdnmagazine/default.aspx</link><description>The official blog of MSDN Magazine</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>A Tentative Content Plan for 2010</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/11/13/9921692.aspx</link><pubDate>Fri, 13 Nov 2009 01:34:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9921692</guid><dc:creator>msdnmag</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9921692.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9921692</wfw:commentRss><description>&lt;p&gt;&lt;img style="border-bottom: 0px; border-left: 0px; margin: 0px 5px 0px 0px; display: inline; border-top: 0px; border-right: 0px" title="" border="0" alt="" align="left" src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/ATentativeContentPlanfor2010_F73C/image_3.png" width="160" height="135" /&gt; Dear readers, while we could yet make some few tweaks to the agenda, these below is for now the most possible content plan for next year.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;table border="1" cellspacing="1" cellpadding="1"&gt;&lt;tbody&gt;     &lt;tr bgcolor="#ffffff"&gt;       &lt;td valign="top"&gt;&lt;strong&gt;Month&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top"&gt;&lt;strong&gt;Theme&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#dbe5f1"&gt;       &lt;td valign="top"&gt;January&lt;/td&gt;        &lt;td valign="top"&gt;Cloud Computing&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#ffffff"&gt;       &lt;td valign="top"&gt;February&lt;/td&gt;        &lt;td valign="top"&gt;Distributed Computing, SOA&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#dbe5f1"&gt;       &lt;td valign="top"&gt;March&lt;/td&gt;        &lt;td valign="top"&gt;Modeling and Tools, Application Lifecycle Management&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#ffffff"&gt;       &lt;td valign="top"&gt;April&lt;/td&gt;        &lt;td valign="top"&gt;Programming and Design Techniques&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#dbe5f1"&gt;       &lt;td valign="top"&gt;May&lt;/td&gt;        &lt;td valign="top"&gt;Rich Internet Applications&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#ffffff"&gt;       &lt;td valign="top"&gt;June&lt;/td&gt;        &lt;td valign="top"&gt;Performance and Scalability&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#dbe5f1"&gt;       &lt;td valign="top"&gt;July&lt;/td&gt;        &lt;td valign="top"&gt;Developing for Office 2010&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#ffffff"&gt;       &lt;td valign="top"&gt;August&lt;/td&gt;        &lt;td valign="top"&gt;Data-access&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#dbe5f1"&gt;       &lt;td valign="top"&gt;September&lt;/td&gt;        &lt;td valign="top"&gt;Concurrency and Parallelism&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#ffffff"&gt;       &lt;td valign="top"&gt;October&lt;/td&gt;        &lt;td valign="top"&gt;Interoperability&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#dbe5f1"&gt;       &lt;td valign="top"&gt;November&lt;/td&gt;        &lt;td valign="top"&gt;Security&lt;/td&gt;     &lt;/tr&gt;      &lt;tr bgcolor="#ffffff"&gt;       &lt;td valign="top"&gt;December&lt;/td&gt;        &lt;td valign="top"&gt;Embedded Devices and Mobile Computing&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The magazine is composed by some few featured articles plus several regular columns. In general, the monthly themes affect mainly to those featured articles better than the columns. But exceptions to this rule may happen, why not, in the sense that columns may also be on the monthly theme or eventually a featured article may be on something else, if we also consider that topic relevant enough.&lt;/p&gt;  &lt;p&gt;Are you interested in writing for MSDN Magazine? Did you know that you may do it? We are about to post on how you can submit your ideas, what are the kind of articles we are looking for (in order to increase your chances of being accepted), general styles, length and other aspects.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Stay tuned!!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9921692" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category></item><item><title>Lining Up Columns</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/10/09/9905842.aspx</link><pubDate>Fri, 09 Oct 2009 04:17:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9905842</guid><dc:creator>msdnmag</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9905842.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9905842</wfw:commentRss><description>&lt;P&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; MARGIN: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="" border=0 alt=columns align=left src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/LOT_DC02/columns_thumb.jpg" width=150 height=184&gt;&lt;/P&gt;
&lt;P&gt;Continuing with this series on my plans for MSDN Magazine, I’ll address here another question that I’m getting often these days.&lt;/P&gt;
&lt;P&gt;While a few posts ago I talked about &lt;A href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/07/9904758.aspx"&gt;the mindsets on which my content strategy is to be based&lt;/A&gt;, it’s now time to talk a bit about the concrete stuff I’m envisioning, in order to turn my editorial line into something more tangible.&lt;/P&gt;
&lt;P&gt;The magazine today is composed by certain regular sections, known as &lt;EM&gt;columns&lt;/EM&gt;, and completed with &lt;EM&gt;features&lt;/EM&gt;: extra articles not tied to any of those columns in particular. In practice, as one of my partners made me notice, columns are less regular than expected as they don’t appear on every issue each, but they actually alternate their occurrences.&lt;/P&gt;
&lt;P&gt;In that sense, the idea of reformulating the column lineup has as goal to narrow the set of columns in something that covers the whole development scope, but it also is definite, predictable.&lt;/P&gt;
&lt;P&gt;The current alternating column lineup comprises:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Toolbox&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;CLR Inside Out&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Basic Instincts&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data Points&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Office Space&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cutting Edge&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Patterns in Practice&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;The Polyglot Programmer&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Test Run&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Service Station&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Security Briefs&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Extreme ASP.NET&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Wicked Code&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Under the Table&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Team System&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Foundations&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Windows with C++&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Concurrent Affairs&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Going Places&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;.NET Matters&lt;/STRONG&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;End Bracket&lt;/STRONG&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;Regarding the thoughts above, what the reader may expect is some merge between columns of similar kind and perhaps the removal of certain columns whose frequency is beeing&amp;nbsp;remarkably low. In that sense, it is not that we’ll stop publishing that kind of stuff forever but will do it as feature articles, not as regular columns.&lt;/P&gt;
&lt;P&gt;What you are about to read now it’s not yet consolidated as I’m still working with different stakeholders in order to arrive at by consensus and cross-validation; ensuring that no gaps will remain unclosed in this content strategy and that the overall plan is realistic. Do you want to hear my early conclusion so far? Making this kind of project plans, dear reader, doesn’t differ that much from making software project plans! &lt;IMG alt=smile_regular src="http://spaces.live.com/rte/emoticons/smile_regular.gif"&gt; Indeed, one have to align expectations coming from different parts, with a particular perspective each. As I don’t want to leave you out of this debate, I’m publishing hear my thoughts in order to get your feedback. Don’t miss the chance and get involved. Be part of the magazine you want to get.&lt;/P&gt;
&lt;H3&gt;And the Winners Are…&lt;/H3&gt;
&lt;P&gt;Based on the &lt;A href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/07/9904758.aspx"&gt;mindsets&lt;/A&gt; and &lt;A href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/08/9905656.aspx"&gt;the blueprint sketched in the last post&lt;/A&gt;…&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="A typical N-tier, layered architecture." border=0 alt="A typical N-tier, layered architecture." src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_thumb.png" width=500 height=265 mce_src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;STRONG&gt;Figure 1. A typical N-tier, layered architecture.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;… this is a tentative column lineup intending to cover all those aspects that must be present in professional application development. Let’s see:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Application Design&lt;/STRONG&gt;. (A little disclaimer first: not only this column lineup is not yet final but also column names would be also subject to rework). A division of labor like the one depicted in Fig. 1 is achievable thru different ways. You may define your layers, assigning namespaces to each, defining interfaces to be exposed between layers (usually lower layers expose interfaces to upper ones but not vice versa), and finally implementing those interfaces in concrete classes. Or you may take advantage of any application framework like Castle Project, Spring.NET, CSLA.NET or P&amp;amp;P’s Enterprise Library. &lt;BR&gt;The purpose of this column is to keep you updated on strategies and tactics for application design and application architecture, as a way to help you achieve decoupled components that will be easier to evolve and extend. &lt;BR&gt;We’ll complete this column coverage by explaining patterns and delivering lessons learned on library design. &lt;BR&gt;Regarding the current column lineup, &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc626083.aspx" target=_blank&gt;&lt;STRONG&gt;Patterns in Practice&lt;/STRONG&gt;&lt;/A&gt; seems to be somewhat similar to the idea sketched in this bullet but perhaps this tentative section of the magazine will be a superset of that one. &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501042.aspx" target=_blank&gt;&lt;STRONG&gt;Cutting Edge&lt;/STRONG&gt;&lt;/A&gt;, when emphasizing patterns usage seems also to be continued in this new column.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Web Applications&lt;/STRONG&gt;. This column would be a reincarnation of current &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501048.aspx" target=_blank&gt;&lt;STRONG&gt;Extreme ASP.NET&lt;/STRONG&gt;&lt;/A&gt; and as long as I was checking the current one, it won’t vary too much. Perhaps a bit more emphasis on infrastructure aspects that a developer must take into account (IIS, session management for performance and scalability, etc.) but I didn’t have to review too much to find that such content has been being published, actually. Just want to remark that no matter what it happened, I’ll make sure that will happen in the future.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Desktop Applications&lt;/STRONG&gt;. In this section, the reader will find information pertaining to client-side deployable applications. In most cases in a fully capable workstation (desktop computer, notebook) but eventually we’ll consider in this category other devices like smartphones, embedded systems, etc. &lt;BR&gt;Will cover here not only presentation layer patterns, techniques and technologies like WPF, Silverlight or Office applications, but also deployment considerations, coexistence with other applications, optimization techniques for footprint reduction, runtime resources, some basic infrastructure concepts for monitoring, virtualization, etc., with their related technologies (Windows operating system, App-V, Forefront, and so on). &lt;BR&gt;I believe that there’s no correlated section today in the magazine. Perhaps a smaller portion of &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501049.aspx" target=_blank&gt;&lt;STRONG&gt;Foundations&lt;/STRONG&gt;&lt;/A&gt;, particular regarding WPF, &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501066.aspx" target=_blank&gt;&lt;STRONG&gt;Wicked Code&lt;/STRONG&gt;&lt;/A&gt; (that lastly was devoted to Silverlight, but that column doesn’t have any specific technology behind), and &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501054.aspx" target=_blank&gt;&lt;STRONG&gt;Office Space&lt;/STRONG&gt;&lt;/A&gt;. I should include &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc511990.aspx" target=_blank&gt;&lt;STRONG&gt;Going Places&lt;/STRONG&gt;&lt;/A&gt; too.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Distributed Applications&lt;/STRONG&gt;. We could say that, today, between &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501058.aspx" target=_blank&gt;&lt;STRONG&gt;Service Station&lt;/STRONG&gt;&lt;/A&gt; and a considerable part of &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501049.aspx" target=_blank&gt;&lt;STRONG&gt;Foundations&lt;/STRONG&gt;&lt;/A&gt; devoted to WCF and WF, we are mostly covering aspects of distributed applications, service-orientation, etc. However, we must consider that distributed applications are not just made on .NET at every party. While our center of gravity will be in .NET, will consider special cases like, to mention one, Java interoperability, etc. &lt;BR&gt;Regarding the &lt;A href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/07/9904758.aspx"&gt;mindset&lt;/A&gt; about infrastructure background, will also consider BizTalk Server and other products that cover several related aspects (business activity monitoring, etc.) &lt;BR&gt;We’ll also discuss best practices for distributed applications like the coarse-grain pattern, asynchronism, concurrency, federated identities, etc. &lt;BR&gt;For sure, as told, infrastructure matters. With the advent of codenamed Dublin application server, will highlight its features here, and how developers can take advantage of. &lt;BR&gt;There’s one only case in distributed computing that I prefer to leave aside: &lt;EM&gt;Cloud Computing&lt;/EM&gt;, which it seems that deserves its own column.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Data&lt;/STRONG&gt;. It will surely include current &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501043.aspx" target=_blank&gt;&lt;STRONG&gt;Data Points&lt;/STRONG&gt;&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/en-us/magazine/dd876690.aspx"&gt;&lt;STRONG&gt;Under the Table&lt;/STRONG&gt;&lt;/A&gt; columns, but will also span to other data related topics like Business Intelligence. In professional development projects there are other stakeholders beside programmers, and regarding data in particular, there’s a guy called DBA who takes decision on database-access. As told when discussing &lt;A href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/07/9904758.aspx"&gt;mindsets of the next editorial line&lt;/A&gt;, we’ll take into account factors like conflicts of interest and other team-related issues.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Core .NET&lt;/STRONG&gt;. I foresee here a merge between &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501040.aspx"&gt;&lt;STRONG&gt;CLR Inside Out&lt;/STRONG&gt;&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501031.aspx"&gt;&lt;STRONG&gt;.NET Matters&lt;/STRONG&gt;&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501041.aspx"&gt;&lt;STRONG&gt;Concurrent Affairs&lt;/STRONG&gt;&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/en-us/magazine/dd578519.aspx"&gt;&lt;STRONG&gt;The Polyglot Programmer&lt;/STRONG&gt;&lt;/A&gt;, &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501035.aspx"&gt;&lt;STRONG&gt;Basic Instincts&lt;/STRONG&gt;&lt;/A&gt; and &lt;A href="http://msdn.microsoft.com/en-us/magazine/dd365279.aspx"&gt;&lt;STRONG&gt;Windows with C++&lt;/STRONG&gt;&lt;/A&gt;. With this column my intention is to focus on the runtime platform itself (to mention some, the garbage collector and parallel execution among others), and at the same time on its programming features, particularly those related with expressive power and programmer productivity (like the inclusion of anonymous types, lambda expressions, etc., which helped avoid lots of lines of code). Just anticipating the question “&lt;EM&gt;what about dynamic languages? will they be consider too?&lt;/EM&gt;” my answer is “&lt;EM&gt;definitively.&lt;/EM&gt;”&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Meta-Development&lt;/STRONG&gt;. Remember the mindset “&lt;EM&gt;We, the People of the Project Team&lt;/EM&gt;”. Consider the development process. Consider the development team and the broader team considering the project leader, security specialist, database-administrator, testers, users, IT Management, etc. Consider communication, conflict resolution between the parties, interests… Do also consider tools to make communication more efficient and the process in general more productive. Regarding this last, we’ll base this column in Visual Studio Team System but will also consider its numerous extensions (MS-owned and third-party ones). I don’t believe we have, in the current column lineup, a similar column today but there are lots of Visual Studio-related articles published as featured stuff (I mean, not as regular columns). However, a subset of this column has been coming for several years now. I’m talking about &lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501061.aspx"&gt;&lt;STRONG&gt;Test Run&lt;/STRONG&gt;&lt;/A&gt; column. Testing is just one aspect in a broader, more complex software development lifecycle and we’ll keep this kind of stuff. We’ll complement it with the other SDLC aspects, though.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cloud Computing&lt;/STRONG&gt;. As told before, this is actually a special case of distributed applications. However, the latest achievements on its field (several of those yet not launched but just announced) are keeping this topic as a brand new runtime paradigm. Windows Azure promises a programming model that won’t vary substantially from the current, on-premise-based delivery model. However, despite its well-known benefits in lowering IT costs, there still is certain reactive behavior in &lt;EM&gt;moving to the cloud&lt;/EM&gt;. How to make compatible identities in the cloud and identities in the company domain directory server? How to deal with data stored outside and confidential information stored internally? (a survey showed as result that most of companies are not massively going to the cloud because of the issue of confidentiality). Will finally SQL Azure offer a programming model similar to traditional SQL Server programming or not? How about the development environment? … A lot of concerns around Cloud Computing so it won’t be a bad idea, at least for some while, to keep a column on it. This will include interoperability with other cloud platforms and development languages.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;&lt;A href="http://msdn.microsoft.com/en-us/magazine/cc501064.aspx"&gt;Toolbox&lt;/A&gt;&lt;/STRONG&gt;. It offers insightful information on third-party tools and gadgets. It has been out there for a long while but typically offering new stuff as long as the rest of the partner ecosystem keeps active and releasing new stuff. Let’s keep it, then.&lt;/LI&gt;
&lt;LI&gt;&lt;STRONG&gt;Cross-cutting Aspects&lt;/STRONG&gt;. I’m not quite sure about whether it’s convenient to keep a separated column for cross-cutting aspects like security, performance, scalability, manageability, user experience, fault-tolerance and many others. All these aspects require a specific expertise and I’m sure that any matter expert on a given aspect &lt;EM&gt;xx&lt;/EM&gt; any of these will tell me “&lt;EM&gt;you must definitively have a permanent column on aspect xx!!&lt;/EM&gt;” And they all will probably be right. The point is that I can’t allow infinite permanent columns, otherwise the magazine would have infinite pages (it actually sounds nice, but keep in mind that the subscription price would also be infinite &lt;IMG alt=smile_wink src="http://spaces.live.com/rte/emoticons/smile_wink.gif"&gt;). Since the year 2000 until these days we have a column called &lt;A href="http://msdn.microsoft.com/en-us/magazine/bb985041.aspx"&gt;&lt;STRONG&gt;Security Briefs&lt;/STRONG&gt;&lt;/A&gt;. It doesn’t appear every month but it has survived as possibly no other column in the magazine. &lt;BR&gt;My thought, actually, is that cross-cutting concerns, as they are present at any layer, any tier in the diagram of Fig. 1, they all require different tactics depending on the context you are. For instance, in the presentation layer of a web tier, you must take care about potential &lt;A href="http://en.wikipedia.org/wiki/Cross-site_scripting" target=_blank&gt;cross-site scripting&lt;/A&gt; while in the database tier you must be concerned about &lt;A href="http://en.wikipedia.org/wiki/SQL_injection" target=_blank&gt;SQL injection&lt;/A&gt;. Both kind of threats are similar in nature and their countermeasures are similar too. But while both strategies are analogous, their concrete tactics vary. &lt;BR&gt;We could move to another aspect. Performance for instance. We may decide to implement caching for any inter-tier communication (client-side to server-side, data-access layer to database tier, etc) as a way to reduce response-time of those request whose response very with a rather low frequency. Like the security example, at an architectonic level the strategy sounds the same, but at a coding level, ASP.NET offers caching techniques that are others than the one offered by the Caching Application Block included in the Enterprise Library or the distributed, rollover features that will offer Project “Velocity”. Principles are the same in any case but some special tuning was made for each context. &lt;BR&gt;For the reasons above exposed, I believe that it could make more sense to discuss cross-cutting aspects as part of the other columns. Or, eventually, as featured articles (articles outside regular columns). It’s perhaps too early to decide. The reader must be sure that, given the case that we don’t include this column, it won’t be a signal that we won’t cover cross-cutting aspects: it will be a signal that we’ll do embedded in the other columns and/or as featured articles. In any case, the online version of the magazine will group articles as a consequence of multi-tagging. That way, you’ll be able to retrieve cross-cutting concern articles as easily as pulling the articles of a given column.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;So, I listed ten tentative columns. These are still preliminar and the idea of publishing there was to satisfy the anxiety about what plans I'm envisioning. It will require some reviews, reworks in order to be confirmed. That should happen in the next few weeks.&lt;/P&gt;
&lt;P&gt;And, before finishing,&amp;nbsp;what about the featured articles? What will they be on? In principle, they are intended to be based on the monthly theme (I’ll offer a post on upcoming themes soon). That may not be the case for every featured article but, if not, will be just the exception and probably because some of the columns will be also based on the monthly theme. I’ll cover all these in further detail soon.&lt;/P&gt;
&lt;P&gt;Thoughts?&lt;/P&gt;
&lt;P&gt;Sincerely,&lt;/P&gt;
&lt;P&gt;&lt;A href="mailto:mmeditor@microsoft.com"&gt;Diego Dagum&lt;/A&gt; &lt;BR&gt;Editor Director &lt;BR&gt;&lt;STRONG&gt;MSDN Magazine&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9905842" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Thoughts/default.aspx">Thoughts</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category></item><item><title>A Necessary 101 on Professional Application Development</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/10/08/9905656.aspx</link><pubDate>Thu, 08 Oct 2009 19:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9905656</guid><dc:creator>msdnmag</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9905656.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9905656</wfw:commentRss><description>&lt;P&gt;I’m in the job of establishing partnerships with different stakeholders (authors, readers, vendors, colleagues, etc.) in order to consolidate &lt;A href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/07/9904758.aspx"&gt;the vision depicted in my last post about the editorial line&lt;/A&gt; I’d like to promote thru &lt;A href="http://msdn.microsoft.com/magazine"&gt;this magazine&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;In order to defend my ideas about column lineup, editorial style, bill of materials, etc., I need to start from a common ground and that ground is the goal to make this magazine an indispensable reference for success on professional, world-class application development.&lt;/P&gt;
&lt;P&gt;This post won’t talk too much about the magazine but about such kind of applications, mainly for those who are not familiar.&lt;/P&gt;
&lt;P&gt;Let’s start by checking back the diagram I showed in that post on &lt;A href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/07/9904758.aspx"&gt;editorial mindsets&lt;/A&gt;:&lt;/P&gt;&amp;nbsp;&amp;nbsp; 
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="A typical N-tier, layered architecture." border=0 alt="A typical N-tier, layered architecture." src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_thumb.png" width=500 height=265 mce_src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;STRONG&gt;Figure 1. A typical N-tier, layered architecture.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This diagram shows a typical, modular multichannel architecture at a very high level. With more or less degree of similarity, real-world application architectures look like this one.&lt;/P&gt;
&lt;P&gt;Let’s start by saying that these are N-tier applications, in the sense that the application doesn’t comprises a single executable file with its set of libraries but different tiers are executing different parts of a distributed application, each part consisting in an executable process with its associated libraries. This subdivision obeys to the goal of making the application maintainable by keeping cohesion high and coupling low, in a way that components can be easily reused and the impact of later changes is narrowed to a small portion of the application and not the whole.&lt;/P&gt;
&lt;H3&gt;Technical and Business Channels&lt;/H3&gt;
&lt;P&gt;From a user perspective, the application is accessed through different channels (see Fig. 1). Channels, at a technical level, are typically web (browser-based channels), desktop (fully deployed applications), mobile, embedded devices, etc., or even third party applications, which access our application by consuming services offered by this latter. From a business perspective, channels are better known as “home banking”, “retail”, “branch”, “POS”, “ATM” and other business-related terms but any of those, at an implementation level, falls under some of the technical categories. &lt;/P&gt;
&lt;H3&gt;Tiers (Processes)&lt;/H3&gt;
&lt;P&gt;Users typically see the channel they use as "the entire application", but beyond that front-end we may find a series of one or more physical tiers, running other parts of the application. Some of those tiers could be out of our scope. Typical examples are the database or a service offered by a third party that will be consumed from our application as a black box.&lt;/P&gt;
&lt;P&gt;I’m not including those external tiers in this diagram but just (at the bottom layer in Fig. 1) the bound of our application that is responsible to deal with them.&lt;/P&gt;
&lt;P&gt;Tiers show the distribution of an entire application at a process-level. In other words, different tiers run in isolated processes that may or may not be in a single physical equipment.&lt;/P&gt;
&lt;H3&gt;Layers (Modules). Difference with Tiers&lt;/H3&gt;
&lt;P&gt;Tiers, at once, are composed by layers. Layers show modular, logical distribution of the components. Classes and interfaces in a given layer are supposed to work for an overall responsibility (i.e. user input, presentation, data-access, service delivery and several other ends).&lt;/P&gt;
&lt;P&gt;That said, while tiers are defined based on expected workloads, required capacity (both attributes based on the application during runtime), layers are chosen for the sake of application comprehensibility from a development-time (not runtime) perspective.&lt;/P&gt;
&lt;P&gt;Layers may depend on external APIs to perform their tasks. For instance, a data-access layer could be based on ADO.NET components while a presentation layer could rely on WPF or ASP.NET MVC. However, there is a sacred layer that should not depend on any external API in particular and is the one in the middle, known as &lt;STRONG&gt;domain logic layer&lt;/STRONG&gt;. That is the layer that backs the abstract model of our business goal. Its components are typically Customer, Invoice, Product, Address and other real-world nouns; and it’s expected to remain invariable as long as domain rules don’t change. Particularly, it’s expected to remain invariable if tomorrow we modify a data source from XML to ADO.NET, or replace the user interface by adding a RIA channel (i.e. Silverlight, Adobe Air, etc.)&lt;/P&gt;
&lt;P&gt;Layers and its contained sublayers are like namespaces that one could explore deeper and deeper. At some point, you’ll find classes, interfaces, structures and other .NET elements. Layers may occasionally span across tiers. For instance, we could find at both margins, server-side and client-side, some domain logic layer. It’s not necessarily that the client-side only contains presentation logic, especially if we want to allow some minimal level of offline capability. You may find other examples in your distributed applications.&lt;/P&gt;
&lt;P&gt;All this organization of responsibilities pay off when new end-user functionality (i.e. use cases) needs to be added: it’s easier to determine whether new UI components must be developed, whether the data schema must be updated, new domain logic must be added, etc). It’s also easier to assign the resulting components to be created or recoded to different matter experts, in a way similar than the way graphic designers prototype UI components whose behaviors are coded, asynchronously by software developers. And last but not least, when organized this way, applications are more easy to be tested, as we could test the domain logic without having to set a database for data retrieval, and so forth.&lt;/P&gt;
&lt;H3&gt;Where to Get More on Application Architecture&lt;/H3&gt;
&lt;P&gt;Depending on your experience, a blueprint like this one is possibly not new for you. Whether that is the case or not, if you want to get more details on implementations aspects, I strongly suggest you to take a look to &lt;A href="http://apparchguide.codeplex.com/" target=_blank&gt;the guide published by &lt;STRONG&gt;Patterns &amp;amp; Practices&lt;/STRONG&gt; on Application Architecture&lt;/A&gt; in January 2009. For the moment, let’s just say a couple of more things:&lt;/P&gt;
&lt;H3&gt;Cross-cutting Aspects&lt;/H3&gt;
&lt;P&gt;This model completes with some cross-cutting concerns. Those are aspects that will be present at any level (tier, layer, etc.) For instance, we cannot restrict Security constraints to a lost, final layer in a back-end tier because that way any single request must traverse the whole architecture to confirm that the user was not, actually, authorized to perform certain task. We are certainly applying security measures in the UI when we avoid to show the password that is being typed. We are also applying security measures in the data-access layer when we “purify” input parameters prior to call a stored procedure. We still apply security measures when we confirm, at any tier, that a sensitive request is coming from a trusted source that is also authorized for that kind of operations, and so on.&lt;/P&gt;
&lt;P&gt;Like security, there are several other cross-cutting concerns to care about. Performance, fault-tolerance, manageability, health checking, etc., are just some few examples of those.&lt;/P&gt;
&lt;H3&gt;Software Development Lifecycle and Application Lifecycle Management&lt;/H3&gt;
&lt;P&gt;The other thing not shown in Fig. 1 is related with the development process. While the center of gravity won’t move from the development phase, it’s not bad to consider other stakeholders in the value chain and our relationship with them. How do we make components that are easy to test in an automated, repeatable way; how do we design our low-level libraries to maximize reusability while decreasing the complexity of the components that will use those; how do we estimate timescales; etc. The process is as important as the outcome that is expected as a result of it because brings predictability to the rest of stakeholders (particularly users and sponsors like the IT management or other non-IT managers).&lt;/P&gt;
&lt;P&gt;In that sense, there exist tools that help manage the overall application lifecycle process, while enabling different stakeholders perform their core activities along the different lifecycle instances.&lt;/P&gt;
&lt;H3&gt;Epilogue&lt;/H3&gt;
&lt;P&gt;In this post, we have surfaced a blueprint that it has been for a while a comprehensive base for professional development. The way it was presented is a least common denominator as you’ll find variations in real-world implementations (either in the way layers were assigned to tiers, or how tiers were chosen, etc.)&lt;/P&gt;
&lt;P&gt;This common denominator set a ground in which the content plan for the magazine (monthly themes, column lineup, etc.) will be stood up.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9905656" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Thoughts/default.aspx">Thoughts</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/patterns/default.aspx">patterns</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/architecture/default.aspx">architecture</category></item><item><title>File &gt; New &gt; Project: Developing a New MSDN Magazine!!</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/10/07/9904758.aspx</link><pubDate>Wed, 07 Oct 2009 14:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9904758</guid><dc:creator>msdnmag</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9904758.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9904758</wfw:commentRss><description>&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="" border=0 alt="" src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/lost_A90F/VisualStudioFileNewProjectHero_3.png" width=650 height=233&gt;&lt;/P&gt;
&lt;P&gt;For some while now, my colleagues were asking me about my plans for the magazine. In other words, my editorial line, editorial style.&lt;/P&gt;
&lt;P&gt;This post is all about it.&lt;/P&gt;
&lt;P&gt;While I’ll plan to keep magazine’s main structure composed by regular columns and featured articles, and I have no intention to touch the current technical depth (explicit coding in articles, downloadable code samples, etc.) I’ll put some emphasis based on five mindsets that I'll explain shortly.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT-WIDTH: 0px; DISPLAY: inline; BORDER-TOP-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px" title="A typical N-tier, layered architecture." border=0 alt="A typical N-tier, layered architecture." src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_thumb.png" width=500 height=265 mce_src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/FileNewProjectDevelopingaNewMSDNMagazine_F4C1/image_thumb.png"&gt;&lt;/A&gt;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&lt;STRONG&gt;Figure 1. A typical N-tier, layered architecture.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;This is a simplified diagram of a typical multichannel architecture. Real-world architecture diagrams share some similarities and possibly some few variations with this diagram. I assume you are already familiar with this schema;&amp;nbsp;if that is not the case or&amp;nbsp;you&amp;nbsp;prefer a more detailed explanation, I posted a&amp;nbsp;101 &lt;A title="A Necessary 101 on Professional Application Development" href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/08/9905656.aspx" mce_href="http://blogs.msdn.com/msdnmagazine/archive/2009/10/08/9905656.aspx"&gt;here&lt;/A&gt;.&amp;nbsp;But the important thing to know here is that when you already have a blueprint to base your application on, adding new end-user functionallities (i.e. use cases) is a straighforward job: the blueprint already prescribes you which spots must be filled, which components must be provided and with which responsibilities each. This makes me come to the first mindset:&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;1st Mindset: Architectural Consciousness&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;ASP.NET won’t prevent you to issue a database command right from the page itself, or it’s code beside however… it’s that good? It may work in small, controlled, non-mission-critical applications but the design principles that are being violated there are a basic two: high cohesion and low coupling. In that sense, dear reader, it's my intention to show you technology usage under the frame of a diagram like the above one. Thus you'll&amp;nbsp;find where is the right place to put data logic, how to deal with cross-cutting concerns like security or quality attributes (performance, user experience, and so forth).&lt;/P&gt;
&lt;P&gt;For sure, we’ll still keep code examples lighter in that sense, as samples are to help you focus on a detailed aspect of a given technology. Once you got the point with code samples, we’ll help you understand where that technology or technique fits in a typical world-class scenario. Thus, application architectural consciousness is the first mindset I’m taking into account for my editorial line.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But application architecture is just one aspect. The diagram above is oversimplified and doesn’t show details on how tiers communicate. For that diagram, was intentionally made like that to help you focus on functional aspects. Once you got those, you’ll need sooner or later to be aware about other aspects that are present when you want to put all these pieces together.&lt;/P&gt;
&lt;P&gt;Let’s imagine for a while that we are talking about a deployable desktop application (a desktop client-tier above or, simply, a desktop channel). We may focus just on presentation aspects like new Silverlight features or data binding in WPF, but in order to complete the panorama for that kind of applications, we must also consider deployment conditions, subsequent releases, coexistence of different versions, coexistence with other applications in the same workstation (with possible incompatibilities, resource allocation issues, etc.) and a long list of potential issues that may arise.&lt;/P&gt;
&lt;P&gt;It may be argued that several of those issues must be solved from the infrastructure, being therefore part of the TO-DO list of an IT Pro, not a developer. I admit it. It’s not my intention to make you an IT Pro expert and we already have a prime magazine for IT Pros: &lt;A href="http://technet.microsoft.com/magazine" target=_blank mce_href="http://technet.microsoft.com/magazine"&gt;TechNet magazine&lt;/A&gt;. But just to broaden your vision about certain tactics beyond the scope of the development camp, that may save you a lot of man-hours in trying to tackle the issue by coding. So, if the first mindset was “application architecture consciousness”…&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;2nd Mindset: Infrastructure Awareness&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;We (Microsoft) realized that we were not doing a good job these last years in the strong, &lt;EM&gt;all-or-nothing&lt;/EM&gt; content segmentation we delivered through either MSDN or TechNet but almost never&amp;nbsp;through both. We were segmenting our audience in developers and IT Pros, assuming that any possible intersection between those two sets was, in the best case, pretty thin. Occasional.&lt;/P&gt;
&lt;P&gt;In the times to come, dear reader, this won’t keep being the norm as reality has shown that, depending on the size of organization, its&amp;nbsp;IT departments, etc, two or more roles may be played by a same team member (for instance, in my personal case, I played at the same time the architect role while taking care of the IBM WebSphere application server in production).&lt;/P&gt;
&lt;P&gt;We won’t merge MSDN and TechNet, for sure. We just want to avoid developers coding low-level components like tracing and monitoring logic in their applications because they ignore that they may generate events to be captured either by the operating system or a system management tool like Microsoft System Center or its competitors. We want you, developer, to know that despite ClickOnce is a smart, easy way to deliver applications, it's not the only one and in certain scenarios it could have limitations. For those scenarios there exist other techniques not-based in Visual Studio but in other products in the Microsoft platform. We won't explain those techniques in detail for you but we make sure that you can find more information about those techniques easily if you want.&lt;/P&gt;
&lt;P&gt;In fact, in real-world applications, strategies comprise a series of tactics. Some being developer practices, some being IT pros ones. Which one is easier to apply, more cost-effective, etc. will depend on the context, but being aware about all those is a great starting point to understand your strengths, your limitations and be ready to raise your bar and get ready to grow.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Enough, for the moment, with application architecture and infrastructure. Let’s now talk about about problem solving. It’s pretty common to say “&lt;EM&gt;who only has a hammer, thinks that every problem seems a nail&lt;/EM&gt;”. A friend of mine also told me “&lt;EM&gt;if you learn that a developer just read GoF book on design patterns, don’t let him/her design your next applications&lt;/EM&gt;.” What my friend meant was that the degree of excitement everybody got after reading that one or any other book on application design was a bit damaging in the short term. Indeed, the anxiety to put in practice those concepts just acquired betrayed us pretty soon, making us adopting a supposed solution for what was not exactly a problem. Or at least, not the problem that solution solved.&lt;/P&gt;
&lt;P&gt;The GoF is just an example, but this happened with almost every new concept we acquired (AOP paradigm, MVC presentation pattern, Composite Application Block, …) The third mindset, in that sense, is all about taking right technical decisions.&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;3rd Mindset: When and When Not, Why and Why Not&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The problem of applying wrong techniques or technologies is very often complemented with the overdose symptom: applying a right solution but in excess. An example? Web services. They are an adequate solution to make interoperate distributed applications, mainly when they were coded in different platforms. However, calling methods between different tiers implies a reformulation of the communicational model. In other words, while we can make applications “converse” we shouldn’t make them “chat”. Otherwise, message marshalling/unmarshalling, serialization/deserialization steps will undermine the latency and users patience. Worse, we may later extract the wrong conclusion if we end up by believing that we should have get rid of web services.&lt;/P&gt;
&lt;P&gt;To avoid misunderstandings, we’ll tell you not just the &lt;EM&gt;what&lt;/EM&gt; and &lt;EM&gt;how-to of technology&lt;/EM&gt;. We’ll now put some emphasis in its &lt;EM&gt;when&lt;/EM&gt; and &lt;EM&gt;why&lt;/EM&gt;. And for sure, we’ll do that same regarding their negatives: &lt;EM&gt;what not to do&lt;/EM&gt;, &lt;EM&gt;how not to do&lt;/EM&gt;, &lt;EM&gt;why not&lt;/EM&gt;, &lt;EM&gt;when not&lt;/EM&gt;.&lt;/P&gt;
&lt;P&gt;Enough said regarding architecture, infrastructure and problem solving. Let me share now some thoughts about the environment.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;4th Mindset: We, the People of the Project Team&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Are we, the developers, the only people in this world? In world-class projects, aren’t there other stakeholders in the value-chain? Certainly not: there are not only more people but also processes in place, intended to estimate, measure and control the application lifecycle. We, the developers, are a substantial part of that process and without us no software can be delivered. But as we are not alone, we must be conscious that other stakeholders in the value chain might take decisions that could affect the way we develop software.&lt;/P&gt;
&lt;P&gt;Examples are several and I’ll tell some here but I can imagine that you will immediately remember your owns.&lt;/P&gt;
&lt;P&gt;A DBA prevented me to use an object/relational mapper (those days the most evolved one, with several books written about it) because its lack of support for stored procedures obliged him to open the database security not just at a table level (increasing, thus, the surface attack and consequently the risk) but also accepting commands generated on the fly by the O/R-M. As that data-access strategy was generated by the application &lt;EM&gt;on-the-fly&lt;/EM&gt; (during runtime), he had no chance to tune the commands the same way he did when already enclosed in stored procedures. We had a bitter discussion. Each one, explaining the benefits of his own approach. I told that the O/R-M was helping me save lots of hours of data-access logic development. He said that we were to pay that saved time forever when the application was in production, plus the security risk. We escalated the problem to the management. No matter who was right, he won. If we were discussing about development techniques, the management would have probably supported me. But we were discussing about the database and that guy, coincidently, was the database administrator (where you wondering what "DBA" stood for?).&lt;/P&gt;
&lt;P&gt;In that same project I tried to apply an agile approach. It seemed to be the perfect environment to do so: a small team, everybody coding (including me who was playing an architect and project leader role, all at once). Users were fascinated with the dynamics of the methodology: prototypes that were at the same time executable and incrementally incorporated new features (user stories, in the jargon). We were forced to stop and switch back to a waterfall approach. Why? Because despite the support of mid- and low-level users, not just the IT management but also managers in business departments were anxious to get a fully detailed project timeline with deliverables, milestones, etc. To make things worse, one of them swung by one of his subordinated and saw a running prototype. The same that users were excited about. It was just that this guy was not only not excited, but he also made a very bad publicity about the project and myself as a development manager, telling that what we were delivering was tremendously far different&amp;nbsp;than what they were expecting and I had promised during early phases. The more I tried to justify and explain the methodology, the more the board got scared. Checkmate in that scenario.&lt;/P&gt;
&lt;P&gt;The moral of the story is not that you shouldn't apply an agile approach: the moral is that whatever you do, you'll find other stakeholders and everything may be subject to a negotiation. So be prepared to negotiate, to convince and&amp;nbsp;to conceal, as clearly we, the developers, are not alone in world-class development projects. MSDN Magazine will provide as part of the coverage on technologies, impact on other stakeholders and potential conflicts of interest.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And last but not least…&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P&gt;&lt;STRONG&gt;5th Mindset: Solutions for Today and Tomorrow&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Regarding the timeliness of our stuff, not just the magazine but Microsoft in general, we got some criticism based on the fact that we make extent coverage on technologies that are still evolving, in detriment of the ones that are already out there. As evolving technologies are not yet released, readers can’t do too much but wait until that happened. Coming back to the previous point, in several organizations we, developers, are not allowed to deploy betas, CTPs or any other early-access bundles (at least not in mission critical applications). I'll take that into account so while&amp;nbsp;I won’t completely remove that kind of &lt;EM&gt;upcoming&lt;/EM&gt; stuff (as we want you to get a glimpse about roadmap and future of the .NET platform), I’ll narrow the amount of such kind of information per issue, making sure that most of the core is immediately actionable in your rolled out projects.&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;H3&gt;Wrapping Up&lt;/H3&gt;
&lt;P&gt;I told you, dear reader, about the mindsets I’ll apply while directing MSDN Magazine content plan. We’ll try at any time to put technologies under the frame of a broader scope, in terms of application architecture, infrastructure platform and the project team. We’ll do also emphasis on best/bad case scenarios of technologies and techniques, taking care about a reasonable balance between released vs. upcoming technologies.&lt;/P&gt;
&lt;P&gt;In upcoming posts, I’ll describe a tentative column lineup, community participation in the content acquisition process and changes in the magazine website. &lt;/P&gt;
&lt;P&gt;More to come!! Keep in touch!!&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Sincerely,&lt;/P&gt;
&lt;P&gt;&lt;A href="mailto:mmeditor@microsoft.com" mce_href="mailto:mmeditor@microsoft.com"&gt;Diego Dagum&lt;/A&gt; &lt;BR&gt;Editor Director &lt;BR&gt;&lt;STRONG&gt;MSDN Magazine&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9904758" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Announcements/default.aspx">Announcements</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Thoughts/default.aspx">Thoughts</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category></item><item><title>MSDN Magazine Gets New Editor (Introducing Diego Dagum)</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/09/28/9904634.aspx</link><pubDate>Mon, 28 Sep 2009 18:05:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9904634</guid><dc:creator>msdnmag</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9904634.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9904634</wfw:commentRss><description>&lt;P&gt;&lt;IMG style="BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; MARGIN: 0px 5px 0px 0px; DISPLAY: inline; BORDER-TOP: 0px; BORDER-RIGHT: 0px" title="Diego Dagum" border=0 alt="Diego Dagum" align=left src="http://blogs.msdn.com/blogfiles/msdnmagazine/image_508FCDBB.png" width=260 height=256 mce_src="http://blogs.msdn.com/blogfiles/msdnmagazine/image_508FCDBB.png"&gt; Hello, everybody.&lt;/P&gt;
&lt;P&gt;Mi name is Diego Dagum and I recently became the new editor director for MSDN Magazine.&lt;/P&gt;
&lt;P&gt;After two years of leadership, former editor &lt;A href="http://codebetter.com/blogs/howard.dierking/archive/2009/09/22/goodbye-msdn-magazine.aspx" target=_blank mce_href="http://codebetter.com/blogs/howard.dierking/archive/2009/09/22/goodbye-msdn-magazine.aspx"&gt;Howard Dierking decided to accept a new challenge&lt;/A&gt;, so we were working together these last weeks in the skill transfer.&lt;/P&gt;
&lt;P&gt;I’ll share some facts about me, my background as a developer and as an editor. In later posts, I’ll let you know about my editorial line for your magazine.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;About me&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Born in Argentina, I got my bachelor degree in Computer Sciences in the University of Buenos Aires (UBA).&lt;/LI&gt;
&lt;LI&gt;I started as a developer for professional, enterprise projects in the early 90’s, almost twenty years ago. I can tell you, dear reader, that I have coded in a large variety of programming languages. Since relics like FORTRAN or Clipper (and other xBase dialects), living-deads like COBOL (I had been told in the University those years that was not being used anymore in the industry… allo? ), complex but politically correct like C-Language and, closer to these days, C# and Java.&lt;/LI&gt;
&lt;LI&gt;In fact, before joining Microsoft, I was a Java developer with a very active participation in the Java community. I’m proud of having presented a paper in the &lt;EM&gt;1st Conference “Principles and Practices of Programming Java”&lt;/EM&gt;, in Dublin, Ireland, in 2002.&lt;/LI&gt;
&lt;LI&gt;You may imagine, dear reader, that having been involved in enterprise, often mission-critical development projects made me, as the time went by, not just a senior developer but an application architect. I promise you, dear reader, that in the new course of MSDN Magazine you’ll learn not just about the latest development techniques on the MS and particularly .NET platforms but I’ll help you plan your career in order to think as an architect in your next projects. The application architect role is the natural evolution in the developer career path, after senior developer or developer lead.&lt;/LI&gt;
&lt;LI&gt;I’m a MS employee since the end of 2004 and I started as a technical evangelist, fostering .NET adoption for world-class, mission-critical projects. While .NET had been out there for two years by then, in the enterprise sector didn’t have yet massive adoption and IT managers were, therefore, not yet decided to use it for line of business applications. This has a lot to do with my story as an editor, so I’ll start covering it in the next bullets.&lt;/LI&gt;
&lt;LI&gt;I started compiling every month the 10 most important news, relevant for application architects no matter the platform they were working for, and sending that as a newsletter. As a value-added, I started blogging every week explaining certain architecture trends in my own words and exclusively for my own audience (a few corporate accounts in Latin America).&lt;/LI&gt;
&lt;LI&gt;When the news was told in Microsoft headquarters, I soon became content strategist for the &lt;A href="http://msdn.microsoft.com/en-us/architecture" target=_blank mce_href="http://msdn.microsoft.com/en-us/architecture"&gt;Architecture Center in MSDN&lt;/A&gt;. The experience was something new for me, as my main background still was in application development, not content creation.&lt;/LI&gt;
&lt;LI&gt;However I was learning all the tricks of the trade by not just managing the content plan for that website but also as content owner for the Architecture track at North America TechEd conference.&lt;/LI&gt;
&lt;LI&gt;Working with authors, technical writers, and other content-related professionals for some few years opened for me the doors to the editor role in &lt;A href="http://www.architecturejournal.net/" target=_blank mce_href="http://www.architecturejournal.net"&gt;The Architecture Journal&lt;/A&gt;, a Microsoft magazine on architecture trends, based on community contributions. The Journal comes every quarter and despite I took now this responsibility, there are –for the moment- no plans to remove the Journal duty from me. In other words, I’ll lead both magazines.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;This is, in brief, my story as a developer and as an editor. In subsequent posts, dear reader, I’ll reveal details on my editorial plans. I hope you get easily excited when you learn about these!&lt;/P&gt;
&lt;P&gt;Sincerely,&lt;/P&gt;
&lt;P&gt;&lt;A title="Email the editor" href="mailto:mmeditor@microsoft.com" mce_href="mailto:mmeditor@microsoft.com"&gt;Diego Dagum&lt;/A&gt; &lt;BR&gt;Editor Director &lt;BR&gt;&lt;STRONG&gt;MSDN Magazine&lt;/STRONG&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9904634" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Announcements/default.aspx">Announcements</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category></item><item><title>brownfield development – other ideas?</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/09/02/9890636.aspx</link><pubDate>Thu, 03 Sep 2009 02:21:38 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9890636</guid><dc:creator>hdierking</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9890636.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9890636</wfw:commentRss><description>&lt;p&gt;If you haven’t been following it over the last couple of months, we’ve been running a series of articles about brownfield development – authored by &lt;a href="http://www.jameskovacs.com/blog/"&gt;James Kovacs&lt;/a&gt;, &lt;a href="http://codebetter.com/blogs/kyle.baley/default.aspx"&gt;Kyle Baley&lt;/a&gt;, and &lt;a href="http://www.igloocoder.com/"&gt;Donald Belcham&lt;/a&gt;.&amp;#160; The big idea here is that rather than have yet another article or set of articles about implementing some new technology from the ground up (and usually in some kind of contrived scenario), we wanted to show how you can drive incremental improvements into existing codebases (hence the term “brownfield” as opposed to “greenfield”).&amp;#160; &lt;/p&gt;  &lt;p&gt;For the first of these series’, we wanted to address Web development – traditional ASP.NET development to be more specific.&amp;#160; Therefore, we have taken an existing open source project, &lt;a href="http://www.screwturn.eu/"&gt;ScrewturnWiki&lt;/a&gt;, and have systematically refactored it along a bunch of different dimensions to produce the following.&lt;/p&gt;  &lt;table border="1" cellspacing="0" cellpadding="2" width="501"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/dd758790"&gt;Getting Your House in Order&lt;/a&gt;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="249"&gt;This is part one of a multipart article series about improving an existing &amp;quot;classic&amp;quot; ASP.NET Web application. This first part helps to get your house in order with good development practices on an existing codebase, including version control, issue tracking, and automated self-contained build scripts. ASP / ASP.NET; Test / Debug; Web &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/dd744751"&gt;Testing&lt;/a&gt;&lt;/td&gt;        &lt;td valign="top" width="249"&gt;This is part two of a multipart article series about improving an existing &amp;quot;classic&amp;quot; ASP.NET Web application. This second part focuses on automated testing. ASP / ASP.NET; Test / Debug &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/dd894045"&gt;XHTML and CSS Improvements&lt;/a&gt;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="249"&gt;This is Part 3 of a multipart article series about improving an existing &amp;quot;classic&amp;quot; ASP.NET Web application. This third part focuses on XHTML and CSS. XML / XSL; Web; ASP / ASP.NET&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/dd896902"&gt;JavaScript improvements&lt;/a&gt;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="249"&gt;This article will focus on refactoring ScrewTurn Wiki’s JavaScript using jQuery, and testing it with QUnit. &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/dd898316"&gt;Improvements Using jQuery and jQuery UI&lt;/a&gt;&amp;#160;&lt;/td&gt;        &lt;td valign="top" width="249"&gt;This is part 5 of a multipart article series about improving an existing &amp;quot;classic&amp;quot; ASP.NET Web application. This fifth part focuses on jQuery and jQuery UI. ASP / ASP.NET; Web &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/ee210417"&gt;Separation of Concerns&lt;/a&gt;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="249"&gt;This is part 6 of a multipart article series about improving an existing &amp;quot;classic&amp;quot; ASP.NET Web application. This installment focuses on improving separation of concerns in Web applications.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/ee343987"&gt;Death of a Singleton&lt;/a&gt;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="249"&gt;In part 6, we moved away from the UI a little and worked more in the code behind the pages. In this article, we’ll continue that work and focus on a specific pattern that is used through the codebase: the Singleton. ASP / ASP.NET &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="250"&gt;&lt;a href="http://msdn.microsoft.com/magazine/ee424155"&gt;Disentangling Our Tangled Web&lt;/a&gt;&amp;#160;&amp;#160; &lt;/td&gt;        &lt;td valign="top" width="249"&gt;This is part 8 of a multipart article series about improving an existing &amp;quot;classic&amp;quot; ASP.NET Web application. This installment focuses on better ways to wire together loosely-coupled applications using dependency injection and an inversion of control container.&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt; So as we bring this particular series to a close, I have 2 areas where I would love to get your feedback.&amp;#160; &lt;/p&gt;  &lt;p&gt;First, what about this particular series worked – what didn’t?&amp;#160; Did you like the intermingled videos – was it helpful that you could also read the articles on &lt;a href="http://channel9.msdn.com/posts/howarddierking/"&gt;Channel9&lt;/a&gt; – did you even notice?&lt;/p&gt;  &lt;p&gt;Second, I think that the whole “brownfield” series concept is a repeatable one.&amp;#160; What other series’ would you like to see?&amp;#160; Some things that come to mind include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Breaking a monolithic architecture in to something more service oriented&lt;/li&gt;    &lt;li&gt;WinForms refactoring – could go a bunch of different ways here&lt;/li&gt;    &lt;li&gt;Leveraging the cloud in existing apps&lt;/li&gt;    &lt;li&gt;Bring exposing workflows as first class citizens&lt;/li&gt;    &lt;li&gt;etc?&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Thougts?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9890636" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Thoughts/default.aspx">Thoughts</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/patterns/default.aspx">patterns</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Web+apps/default.aspx">Web apps</category></item><item><title>2010 Column Planning</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/08/07/9860793.aspx</link><pubDate>Sat, 08 Aug 2009 02:54:41 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9860793</guid><dc:creator>hdierking</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9860793.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9860793</wfw:commentRss><description>&lt;p&gt;It’s that time of year once again where I go through my column lineup to see how individual columns are performing and then use that data, along with various other inputs (like what topics I think are emerging and want to get ahead of, etc.) to determine next year’s column lineup.&amp;#160; I want to extend my process to you and get your feedback on which columns are working well and which ones aren’t.&amp;#160; Additionally, just to give you a bit of additional insight, here is some of the data that I’m looking at as I go through the process.&amp;#160; Obviously, this is just one dimension of performance, but it’s also one that has a pretty large sample size so I generally trust it more than I do other measures, such as the “5-star” ratings.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/2010ColumnPlanning_EDCC/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/msdnmagazine/WindowsLiveWriter/2010ColumnPlanning_EDCC/image_thumb.png" width="635" height="500" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So give me your thoughts.&amp;#160; If it were up to you, which columns would you run more frequently?&amp;#160; Which ones would you cancel?&amp;#160; Or more generally, is there anything on this chart that surprised you?&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9860793" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category></item><item><title>Announcing a New Series: From Web Dev to RIA Dev</title><link>http://blogs.msdn.com/msdnmagazine/archive/2009/03/18/9489211.aspx</link><pubDate>Thu, 19 Mar 2009 09:29:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9489211</guid><dc:creator>hdierking</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9489211.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9489211</wfw:commentRss><description>&lt;p&gt;I’m sitting here in my hotel room at MIX 2009, where a ton of really huge announcements were made today.&amp;#160; In a much more scaled down attempt at continuing that tradition, I want to announce that starting in May, we are launching a 9 week series focused on introducing ASP.NET Web application developers to creating rich internet applications – and introduce a few other patterns along the way to help create better Web software.&lt;/p&gt;  &lt;p&gt;The approach will take an existing Web application that has been written in classic ASP.NET and refactor parts of it based on the goals of each installment.&amp;#160; Some of the specific details are still being worked out, but I wanted to take this opportunity to introduce you to &lt;a href="http://www.jameskovacs.com/blog/"&gt;James Kovacs&lt;/a&gt;, the guy who’s going to be working them out, hopefully with some help from you.&amp;#160; I’ll let James post separately on his thoughts and initial items that he would like feedback on, but wanted to at least be the first one to tell you all how excited I am about this upcoming series!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9489211" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Announcements/default.aspx">Announcements</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Editor_2700_s+Notes/default.aspx">Editor's Notes</category></item><item><title>ASP.NET Presentation Patterns</title><link>http://blogs.msdn.com/msdnmagazine/archive/2008/12/19/9236837.aspx</link><pubDate>Fri, 19 Dec 2008 18:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9236837</guid><dc:creator>tdorsey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9236837.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9236837</wfw:commentRss><description>&lt;P&gt;In a layered Web app, the presentation layer is just as important as navigation logic, business logic, and data access.&lt;/P&gt;
&lt;P&gt;In the &lt;A href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog" mce_href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog"&gt;December 2008&lt;/A&gt; issue of &lt;A href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog" mce_href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog"&gt;MSDN Magazine&lt;/A&gt;, Dino Esposito examines some &lt;A href="http://msdn.microsoft.com/magazine/dd252940.aspx?pr=blog" mce_href="http://msdn.microsoft.com/magazine/dd252940.aspx?pr=blog"&gt;design patterns for building an ASP.NET presentation layer, starting with the Model-View-Controller (MVC) pattern&lt;/A&gt;—the root of all patterns specifically targeted to the UI.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i.msdn.microsoft.com/dd252940.fig05(en-us).gif" mce_src="http://i.msdn.microsoft.com/dd252940.fig05(en-us).gif"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9236837" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/patterns/default.aspx">patterns</category></item><item><title>How Connection Manager Connects</title><link>http://blogs.msdn.com/msdnmagazine/archive/2008/12/18/9236648.aspx</link><pubDate>Fri, 19 Dec 2008 05:31:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9236648</guid><dc:creator>tdorsey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9236648.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9236648</wfw:commentRss><description>&lt;P&gt;Without Connection Manager, for all but the simplest network environments, the only way an application could choose a connection would be by presenting the user with a list and asking him to select one.&lt;/P&gt;
&lt;P&gt;In the &lt;A href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog" mce_href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog"&gt;December 2008&lt;/A&gt; issue of &lt;A href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog" mce_href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog"&gt;MSDN Magazine&lt;/A&gt;, Marcus Perryman explains why the &lt;A href="http://msdn.microsoft.com/magazine/dd263096.aspx?pr=blog" mce_href="http://msdn.microsoft.com/magazine/dd263096.aspx?pr=blog"&gt;correct use of Connection Manager is vital when a Windows Mobile application requires network data&lt;/A&gt; and shines a light on some of Connection Manager's inner workings.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i.msdn.microsoft.com/dd263096.fig01(en-us).gif" mce_src="http://i.msdn.microsoft.com/dd263096.fig01(en-us).gif"&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9236648" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Windows+Mobile/default.aspx">Windows Mobile</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Smartphone/default.aspx">Smartphone</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/mobile+apps/default.aspx">mobile apps</category></item><item><title>x64 Debugging With Pseudo Variables</title><link>http://blogs.msdn.com/msdnmagazine/archive/2008/12/15/9221908.aspx</link><pubDate>Tue, 16 Dec 2008 05:48:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9221908</guid><dc:creator>tdorsey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9221908.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9221908</wfw:commentRss><description>&lt;P&gt;For many years, Visual C++ has included a set of pseudo variables and format specifiers for use in debugging.&lt;/P&gt;
&lt;P&gt;In the &lt;A href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog" mce_href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog"&gt;December 2008&lt;/A&gt; issue of &lt;A href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog" mce_href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog"&gt;MSDN Magazine&lt;/A&gt;, Kenny Kerr shares some of the &lt;A href="http://msdn.microsoft.com/magazine/dd252945.aspx?pr=blog" mce_href="http://msdn.microsoft.com/magazine/dd252945.aspx?pr=blog"&gt;pseudo variables and format specifiers that he’s found most useful for debugging C++ applications&lt;/A&gt; in the x86 and x64 processor architectures.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://i.msdn.microsoft.com/dd252945.fig06(en-us).gif" mce_src="http://i.msdn.microsoft.com/dd252945.fig06(en-us).gif"&gt; &lt;/P&gt;
&lt;P&gt;Check the magazine archives for previous installments of the &lt;A href="http://msdn.microsoft.com/magazine/cc501067.aspx?pr=blog" mce_href="http://msdn.microsoft.com/magazine/cc501067.aspx?pr=blog"&gt;Windows With C++&lt;/A&gt; column.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9221908" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/C_2B002B00_/default.aspx">C++</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Testing/default.aspx">Testing</category></item><item><title>Configuration Testing With Virtual Server</title><link>http://blogs.msdn.com/msdnmagazine/archive/2008/12/12/9187503.aspx</link><pubDate>Fri, 12 Dec 2008 10:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9187503</guid><dc:creator>tdorsey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9187503.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9187503</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://msdn.microsoft.com/magazine/cc895445.aspx?pr=blog"&gt;September 2008&lt;/a&gt; issue of &lt;a href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog"&gt;MSDN Magazine&lt;/a&gt;, Dr. James McCaffrey &lt;a href="http://msdn.microsoft.com/magazine/cc793968.aspx?pr=blog"&gt;introduced you to software configuration testing with Microsoft Virtual Server&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog"&gt;December 2008&lt;/a&gt; installment of the &lt;a href="http://msdn.microsoft.com/magazine/cc501061.aspx?pr=blog"&gt;Test Run&lt;/a&gt; column, he walks you through the process of &lt;a href="http://msdn.microsoft.com/magazine/dd252952.aspx?pr=blog"&gt;automating software configuration testing using Virtual Server and Windows PowerShell&lt;/a&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;img src="http://i.msdn.microsoft.com/dd252952.fig01(en-us).gif" /&gt; &lt;/p&gt;  &lt;p&gt;For more &lt;a href="http://msdn.microsoft.com/magazine/cc159291.aspx?pr=blog"&gt;articles on testing&lt;/a&gt;, be sure to check out our MSDN Magazine archives.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9187503" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/virtualization/default.aspx">virtualization</category></item><item><title>Claims-Based WCF Services with Geneva Framework</title><link>http://blogs.msdn.com/msdnmagazine/archive/2008/12/10/9187493.aspx</link><pubDate>Wed, 10 Dec 2008 10:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9187493</guid><dc:creator>tdorsey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9187493.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9187493</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;The &amp;quot;Geneva&amp;quot; Framework, formerly called &amp;quot;Zermatt,&amp;quot; is the code name for the new framework for building claims-based applications and services, and for implementing federated security scenarios.&lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog"&gt;December 2008&lt;/a&gt; issue of &lt;a href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog"&gt;MSDN Magazine&lt;/a&gt;, Michele Leroux Bustamante describes &lt;a href="http://msdn.microsoft.com/magazine/dd278426.aspx?pr=blog"&gt;how to approach claims-based WCF services using the Geneva Framework&lt;/a&gt;, and compares to WCF claims-based security without the Geneva Framework.&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;img height="240" src="http://i.msdn.microsoft.com/dd278426.fig05(en-us).gif" width="239" /&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9187493" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/WCF/default.aspx">WCF</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/services/default.aspx">services</category></item><item><title>Rendering Text On A Path With WPF</title><link>http://blogs.msdn.com/msdnmagazine/archive/2008/12/08/9180410.aspx</link><pubDate>Mon, 08 Dec 2008 10:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9180410</guid><dc:creator>tdorsey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9180410.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9180410</wfw:commentRss><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;Text is more than just its literal meaning. By treating text characters as graphical objects, the programmer can make text dance and fly on the screen.&lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog"&gt;December 2008&lt;/a&gt; issue of &lt;a href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog"&gt;MSDN Magazine&lt;/a&gt;, Charles Petzold shows you how to &lt;a href="http://msdn.microsoft.com/magazine/dd263097.aspx?pr=blog"&gt;position text characters along a curved line with Windows Presentation Foundation (WPF) and animate the individual points defining the path&lt;/a&gt; to watch the characters bounce around in response.&lt;/p&gt;  &lt;p&gt;&lt;img src="http://i.msdn.microsoft.com/dd263097.fig01(en-us).gif" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&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;You can &lt;a href="http://msdn.microsoft.com/magazine/dd264665.aspx?pr=blog"&gt;browse the sample code online&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9180410" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/graphics/default.aspx">graphics</category></item><item><title>Design Patterns for Testability</title><link>http://blogs.msdn.com/msdnmagazine/archive/2008/12/05/9180396.aspx</link><pubDate>Fri, 05 Dec 2008 20:39:53 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9180396</guid><dc:creator>tdorsey</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/msdnmagazine/comments/9180396.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msdnmagazine/commentrss.aspx?PostID=9180396</wfw:commentRss><description>&lt;p&gt;Testability is both as an important quality of your designs and another tool you can use to create and think through designs.&lt;/p&gt;  &lt;p&gt;In the &lt;a href="http://msdn.microsoft.com/magazine/dd264793.aspx?pr=blog"&gt;December 2008&lt;/a&gt; issue of &lt;a href="http://msdn.microsoft.com/msdnmag/default.aspx?pr=blog"&gt;MSDN Magazine&lt;/a&gt;, Jeremy Miller examines the &lt;a href="http://msdn.microsoft.com/magazine/dd263069.aspx?pr=blog"&gt;design issues, patterns, and principles that can enhance testability&lt;/a&gt; in your apps.&lt;/p&gt;  &lt;p&gt;For more &lt;a href="http://msdn.microsoft.com/magazine/cc159291.aspx?pr=blog"&gt;articles on testing&lt;/a&gt;, be sure to check out our MSDN Magazine archives.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9180396" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/Testing/default.aspx">Testing</category><category domain="http://blogs.msdn.com/msdnmagazine/archive/tags/patterns/default.aspx">patterns</category></item></channel></rss>