<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Bill Gibson's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/billgibson/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/billgibson/feed.xml</link>
    <description>Thoughts on building SQL Server Data Tools</description>
    <lastBuildDate>Tue, 16 Apr 2019 04:48:09 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>SQL Server Data Tools - From Oslo to Juneau.</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/sql-server-data-tools-from-oslo-to-juneau</link>
      <pubDate>Mon, 12 Dec 2011 11:15:00 GMT</pubDate>
      <dc:creator><![CDATA[Bill Gibson MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2011/12/12/sql-server-data-tools-from-oslo-to-juneau/</guid>
      <description><![CDATA[Time to blog again!&nbsp; The road to Oslo turned out to have many twists, turns and eventually...]]></description>
      <content:encoded><![CDATA[Time to blog again!&nbsp; The road to Oslo turned out to have many twists, turns and eventually roadblocks.&nbsp; So for a little over a year now I&rsquo;ve been working on database development tools with SQL Server Data Tools &ndash; known earlier as &lsquo;Juneau&rsquo;.&nbsp;&nbsp;Seems to be a far north theme here!&nbsp;&nbsp;&nbsp;

We&rsquo;re readying the first release of SSDT as part of SQL Server 2012 so life is exciting (hah!)&nbsp; We&rsquo;ve just shipped a tech preview, CTP4, which you can <a href="https://msdn.microsoft.com/en-us/data/hh297027">download here</a>.&nbsp; The tools target SQL 2005 and later so you don&rsquo;t have to install SQL 2012 to use them.&nbsp; And they work with any edition of SQL Server &ndash; from Express to Enterprise.&nbsp; If you don&rsquo;t have, or want to install, SQL Server you can use Local DB, the lightweight SQL Server runtime that installs with the tools.&nbsp; This is&nbsp;perfect for desktop debugging or just practising your SQL. And of course the tools also target SQL Azure in the cloud.

Think of SSDT as the next generation of the database projects&nbsp;that currently ship in the high-end Visual Studio SKUs.&nbsp;&nbsp;Moving the tools&nbsp;from Visual Studio to SQL Server means&nbsp;any SQL Server user can use them &ndash; no charge.&nbsp; They still install and run in VS &ndash; either the installation you have already or a lightweight shell SSDT will install for you.&nbsp; And being in SQL Server means we can really push the envelope and work closely with the engine teams to make the tools richer and more integrated with the database.

SSDT uses a model-based declarative approach which is what makes it so interesting to me &ndash; I'll post more on this later.&nbsp;&nbsp;As for me, I&rsquo;ve been working on the model-based schema comparison tool -&nbsp;more on that in another post also.

<p>For more info on SSDT check out the <a href="https://msdn.microsoft.com/en-us/data/tools.aspx">SSDT main page</a> and <a href="https://blogs.msdn.com/b/ssdt/">SSDT team blog.</a>&nbsp; But if you just can't wait go straight to the <a href="https://msdn.microsoft.com/en-us/data/hh297027">download page</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Oslo CTP update; Data Modeling Design Patterns in M</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/oslo-ctp-update-data-modeling-design-patterns-in-m</link>
      <pubDate>Wed, 28 Jan 2009 17:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2009/01/28/oslo-ctp-update-data-modeling-design-patterns-in-m/</guid>
      <description><![CDATA[As modelers, one of the things we're doing all the time is&nbsp;looking for patterns - trying to...]]></description>
      <content:encoded><![CDATA[<p style="MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri">As modelers, one of the things we're doing all the time is&nbsp;looking for patterns - trying to distinguish what in each model is truly unique to the domain from that which is more broadly applicable, and then either using&nbsp;or adapting existing patterns or harvesting new patterns to put in our back pocket.<span style="mso-spacerun: yes">&nbsp; </span><span style="mso-spacerun: yes">T</span>he January Oslo&nbsp;CTP update (<em><strong>woohoo!!</strong>)</em>&nbsp;on the <a href="https://msdn.microsoft.com/en-us/oslo/default.aspx" mce_href="https://msdn.microsoft.com/en-us/oslo/default.aspx">Oslo Dev Center</a> includes an initial set of <a href="https://msdn.microsoft.com/en-us/library/dd326765.aspx" mce_href="https://msdn.microsoft.com/en-us/library/dd326765.aspx">data modeling design patterns</a>.&nbsp; These patterns, described and illustrated in M, include patterns for modeling&nbsp;<span style="mso-spacerun: yes">enumerations and relationships, </span></font></font><font size="3"><font face="Calibri"><span style="mso-spacerun: yes">including closed type-based enumerations, open extent-based enumerations, and&nbsp;one-to-many, many-to-many and one-to-one relationships.&nbsp;&nbsp; </span></font></font><p style="MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri"><span style="mso-spacerun: yes">While this may seem like pretty basic stuff&nbsp;you'll likely find some or all of it useful, particularly if you're new to M and coming at&nbsp;it and repository modeling with an OO rather than relational mindset.&nbsp;&nbsp;</span></font></font><font size="3"><font face="Calibri">The patterns&nbsp;all have code samples so you may find it&nbsp;useful to have the patterns open&nbsp;while you're coding.</font></font></p><p style="MARGIN: 0in 0in 10pt" class="MsoNormal"><font size="3"><font face="Calibri"><span style="mso-spacerun: yes">We'll add </span>more&nbsp;patterns as&nbsp;our experience grows and the language evolves and is more fully implemented.&nbsp; In&nbsp;the pipeline are patterns for vertical partitioning, including patterns that help when mapping a generalization hierarchy&nbsp;in a conceptual model to a relational&nbsp;design.&nbsp;&nbsp; You can see some early exploration of these kinds of patterns in the domain schemas included in the CTP.</font></font></p>

<span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">As always, we'd love to get your&nbsp;feedback.&nbsp; If you have any comments on the patterns and the usefulness of this kind of material let us know.&nbsp; And if you have any broadly useful patterns&nbsp;in your back pocket&nbsp;that&nbsp;might map nicely into M they would be great to hear about also.</span>

<span style="LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"></span>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Domain Modeling</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/domain-modeling</link>
      <pubDate>Tue, 27 Jan 2009 23:27:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2009/01/27/domain-modeling/</guid>
      <description><![CDATA[My focus within the Olso team&nbsp;is on domain modeling &ndash; creating models for specific...]]></description>
      <content:encoded><![CDATA[<p style="MARGIN: 0in 0in 10pt" class="MsoNormal">My focus within the Olso team&nbsp;is on <strong><em>domain modeling</em></strong> &ndash; creating models for specific problem domains using the Oslo modeling platform&rsquo;s languages and tools.<span style="mso-spacerun: yes">&nbsp; Let me describe&nbsp;why we think of this as more than just data modeling.</span><p style="MARGIN: 0in 0in 10pt" class="MsoNormal">At the center of an Oslo&nbsp;domain <em>is</em> a data model authored in M.<span style="mso-spacerun: yes">&nbsp;The </span>primary purpose of this model or schema is to describe repository storage, defined in terms of <em>extents.&nbsp;</em>This domain schema defines data integrity constraints and may also define&nbsp;reusable data definitions or <em>types</em>, as well as&nbsp;<em>computed values</em> that describe interesting ways to retrieve and compute data from the model.<span style="mso-spacerun: yes">&nbsp; The schema&nbsp;is compiled into SQL, resulting in tables, views, constraints&nbsp;and functions which are loaded into a SQL Server database primed with some simple Repository patterns.&nbsp; The result is a simple and easy-to-query and otherwise normal SQL database, which can be queried using&nbsp;any SQL data access API or tools.</span></p><p style="MARGIN: 0in 0in 10pt" class="MsoNormal">Surrounding this data model and considered part of the domain may be any number of domain specific languages, which if developed using Oslo may be textual, authored in MGrammar, or visual, authored with Quadrant.<span style="mso-spacerun: yes">&nbsp; </span>These DSLs define ways in which domain information (instance data) can be created or presented.<span style="mso-spacerun: yes">&nbsp; </span>Any number of textual&nbsp;and visual languages may be defined for the same domain, each customized to provide some specific perspective.<span style="mso-spacerun: yes">&nbsp; </span>A domain can also reference other domains, so models and languages may also reference (and in due course, embed) other models and languages.</p>

<span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Accompanying each&nbsp;DSL may be utilities that map or import/export language 'documents'&nbsp;to and from repository storage.<span style="mso-spacerun: yes">&nbsp; For textual DSLs described in MGrammar s</span>imple transformations can be expressed in the grammar itself - more complex transformations need to be&nbsp;described separately.&nbsp;<span style="mso-spacerun: yes">&nbsp;</span>A key Oslo scenario will involve cataloging and potentially creating/editing pre-defined artifacts that might otherwise be created and/or consumed externally by other tools.</span>

<span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Collectively, the domain schema, textual and visual&nbsp;DSLs, and their accompanying&nbsp;import/export tools&nbsp;define what we think of as a domain from an Oslo standpoint and will typically be&nbsp;evolved as a unit.&nbsp; This&nbsp;whole-domain perspective is an important part of the way we think about modeling with Oslo and&nbsp;strongly influences how you can expect the Oslo&nbsp;platform to be developed.</span>

<span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">You can see some early examples of domain schemas included with the CTP on the <a href="https://msdn.microsoft.com/en-us/oslo/default.aspx" mce_href="https://msdn.microsoft.com/en-us/oslo/default.aspx">Oslo Dev Center</a>.&nbsp; Take a look if you can.</span>

<span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Next up, data modeling design patterns in M...</span><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">&nbsp;</span></p>]]></content:encoded>
    </item>
    <item>
      <title>Getting Back in the Saddle (although no longer on a Whitehorse)</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/getting-back-in-the-saddle-although-no-longer-on-a-whitehorse</link>
      <pubDate>Tue, 27 Jan 2009 21:12:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2009/01/27/getting-back-in-the-saddle-although-no-longer-on-a-whitehorse/</guid>
      <description><![CDATA[Long time no blog!&nbsp; In the meantime I've changed jobs within Microsoft;&nbsp;I've...]]></description>
      <content:encoded><![CDATA[<span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">Long time no blog!<span style="mso-spacerun: yes">&nbsp; </span>In the meantime I've changed jobs within Microsoft;&nbsp;I've been&nbsp;working for the last several years on the modeling platform known as &ldquo;Oslo&rdquo; which&nbsp;'came out' at PDC in&nbsp;October.<span style="mso-spacerun: yes">&nbsp;You can f</span>ind out more about Oslo at the <a href="https://msdn.microsoft.com/en-us/oslo/default.aspx" mce_href="https://msdn.microsoft.com/en-us/oslo/default.aspx">Oslo Dev Center</a>.&nbsp; </span><p><span style="FONT-FAMILY: 'Calibri','sans-serif'; FONT-SIZE: 11pt; mso-bidi-font-size: 10.0pt; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-fareast; mso-hansi-theme-font: minor-latin; mso-bidi-font-family: 'Times New Roman'; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA">I was amazed to find my blog still accessible after being dormant for so long.&nbsp; While it was with some nostalgia that I freshened up the links to the Whitehorse tech notes below, you should follow this&nbsp;link to get the latest on <a href="https://msdn.microsoft.com/en-gb/vsts2008/arch/default.aspx" mce_href="https://msdn.microsoft.com/en-gb/vsts2008/arch/default.aspx">Visual Studio Team System Architect Edition</a>.&nbsp; </span></p>]]></content:encoded>
    </item>
    <item>
      <title>Whitehorse Architecture TechNotes Published on MSDN</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/whitehorse-architecture-technotes-published-on-msdn</link>
      <pubDate>Tue, 06 Dec 2005 09:40:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2005/12/06/whitehorse-architecture-technotes-published-on-msdn/</guid>
      <description><![CDATA[Phew!&nbsp; A set of Visual Studio Team System Tech Notes have now been published on MSDN, including...]]></description>
      <content:encoded><![CDATA[Phew!&nbsp; A set of <a href="https://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/default.aspx" mce_href="https://msdn.microsoft.com/vstudio/teamsystem/reference/technotes/default.aspx">Visual Studio Team System Tech Notes </a>have now been published on MSDN, including some fifteen new articles I've written on topics related to the Whitehorse architecture tools.&nbsp; These should all be easy to read and&nbsp;are inter-linked, to make them&nbsp;an easy to browse.&nbsp; Hopefully they will provide some&nbsp;useful&nbsp;background&nbsp;and some new&nbsp;insights into the Distributed Systen Designers.&nbsp; <p>Below are&nbsp;links to each&nbsp;of my notes, ordered in what is probably a good sequence in which to read them.&nbsp; </p><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718852.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718852.aspx">TN_1104: Understanding the System Definition Model</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718877.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718877.aspx">TN_1114: The Four Layers of Systems in the System Definition Model</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718847.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718847.aspx">TN_1100: Understanding Applications and the Application Diagram </a>  </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718848.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718848.aspx">TN_1105: Why Class Libraries are not shown on an Application Diagram</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718892.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718892.aspx">TN_1109: Understanding Systems and the System Designer</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718850.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718850.aspx">TN_1101: Understanding and Using the Default System</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718890.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718890.aspx">TN_1110: Using Systems to Represent Services in a Service Oriented Architecture</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718878.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718878.aspx">TN_1112: System Portfolio Management</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718853.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718853.aspx">TN_1102: Designing Substitutable Web Services</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718879.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718879.aspx">TN_1113: Representing Connections to Manual, Physical and Other Kinds of System</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718891.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718891.aspx">TN_1111: Top-down System Design</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718849.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718849.aspx">TN_1108: Connecting Applications to Web Services via Class Libraries</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718851.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718851.aspx">TN_1106: Copying Endpoints vs Creating Endpoints from WSDL</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718855.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718855.aspx">TN_1103: Web Service Endpoint Name Propagation</a>   </li><li class="gray"><a class="" href="https://msdn.microsoft.com/en-us/aa718854.aspx" mce_href="https://msdn.microsoft.com/en-us/aa718854.aspx">TN_1107: Understanding, Using and Creating Toolbox Prototypes </a>  </li><li class="gray"><a class="" href="https://blogs.msdn.com/a_pasha/archive/2005/05/16/418038.aspx" mce_href="https://blogs.msdn.com/a_pasha/archive/2005/05/16/418038.aspx">Why do ASP.NET WebService and ASP.NET WebApplication look alike on the Application Designer?</a> </li>]]></content:encoded>
    </item>
    <item>
      <title>On shadow applications and agile development</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/on-shadow-applications-and-agile-development</link>
      <pubDate>Thu, 01 Dec 2005 16:49:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2005/12/01/on-shadow-applications-and-agile-development/</guid>
      <description><![CDATA[Randy Miller has published a paper&nbsp;on agile development that discusses the use of 'shadow'...]]></description>
      <content:encoded><![CDATA[Randy Miller has published a <a href="https://www.stsc.hill.af.mil/crosstalk/2005/12/0512Miller.html">paper&nbsp;on agile development </a>that discusses the use of 'shadow' applications in an agile modeling and development context, in which he talks in somewhat veiled terms about the use of the Whitehorse design tools.&nbsp; The term shadow application emerged from discussions Randy and I had at Tech Ed earlier this year as we developed the <a href="https://blogs.msdn.com/billgibson/articles/480226.aspx">top-down design approach </a>described in&nbsp;my earlier article.&nbsp; In the article I show how you can use a shadow application as a placeholder for the behavior of a system and thus design systems top-down.&nbsp;In his paper, Randy take this idea further and suggests the shadow application is actually written or generated, consistent with the code-oriented agile development philosophy.]]></content:encoded>
    </item>
    <item>
      <title>Logical vs. Physical Architectural Modeling Concerns</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/logical-vs-physical-architectural-modeling-concerns</link>
      <pubDate>Fri, 11 Nov 2005 12:33:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2005/11/11/logical-vs-physical-architectural-modeling-concerns/</guid>
      <description><![CDATA[We've been having hallway discussions about some of the dimensions of modeling application...]]></description>
      <content:encoded><![CDATA[We've been having hallway discussions about some of the dimensions of modeling application architectures.&nbsp; SDM adopts a&nbsp;particularly physical perspective, as it focuses on the deployment packaging stack of concerns.&nbsp; Its focus is on resources (things like assemblies, config, XML files&nbsp;etc.) that are composed into independently deployable applications, that are composed into systems, which are then&nbsp;composed into still higher level systems.&nbsp; SDM, does allow you focus on tangible software entities and express their behavior - very CBD-like.&nbsp; But of course there are other&nbsp;perspectives, and particularly troublesome to some is the absence in the current designers of a logical perspective, in which you can define what an application does, independently of describing how it does it or&nbsp;how that implementation is packaged.&nbsp; The discussion turned to the role of namespace in that logical perspective, specifically to the question, are namespaces the&nbsp;primary logical organizing perspective.&nbsp;I wrote some comments in an email on the subject and have elaborated on them here and invite comment.

While namespaces are clearly not a packaging&nbsp;concept as they can cut across assemblies, they are not necessarily the best or only way to organize the elements in a logical architecture. &nbsp;Instead&nbsp;the notion of a cross-cutting and entirely logical organization of function is proposed.&nbsp; The term "module" was suggested some months ago by a colleagure for this notion.&nbsp;&nbsp;Thus a&nbsp;module is an arbitrary collection of function.&nbsp; A module could be a collection of methods, one class, many classes; may be coincident with an assembly, cross assemblies or contain assemblies.&nbsp; Modules can also&nbsp;describe data.&nbsp;Early on in your design, you might think about modules but go no further than&nbsp;giving a&nbsp;name and describing the role. &nbsp;A classic block structure architecture diagram might be used to show the way modules interact, either depicting a specific instance of an architecture or a pattern before any details exist of the behavior of each module.&nbsp; 

You might assign namespaces to modules &ndash; although the naming of types/classes, while important, is not intriniscally linked to the logical structuring of software.&nbsp; Namespaces&nbsp;might reflect the logical structure and you might be tempted to conflate the two, such that you use namespaces when really you&nbsp;arethinking about modules.&nbsp; At some point in your design process as you refine your module designs and start to define classes, creating&nbsp;namespaces will become important.&nbsp; And at some point in your design packaging considerations will become important, when you will specify applications, frameworks, and systems.&nbsp; With your packaging decisions you harden the partitioning of the functions in your modules and make&nbsp;communication and binding decisions.&nbsp;&nbsp; 

<p>Thus there are module, namespace and packaging dimensions, These represent orthogonal but related concerns which inform each other.&nbsp; Different design strategies will have you tackle these aspects: physical structure (systems, applications, frameworks), logical structure (modules) and implementation (classes with namespaces) in different amounts at different times &ndash; being able to reason about all three as and when you choose will be the most flexible and should be what we aim for in tools.&nbsp; Associating a namespace with a module or even a package may make good sense when the purpose of the module/package and the goals of the namespace align but the two are not intrinsically linked.&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>ARCast on model-driven development</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/arcast-on-model-driven-development</link>
      <pubDate>Thu, 03 Nov 2005 22:08:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2005/11/03/arcast-on-model-driven-development/</guid>
      <description><![CDATA[An interesting initial round on this model-driven development podcast, including comments from Jack...]]></description>
      <content:encoded><![CDATA[An interesting initial round on this <a href="https://www.microsoft.com/architecture/default.aspx?pid=share.podcast">model-driven development podcast</a>, including comments from Jack Greenfield from our team.&nbsp; Will be fun to watch this one develop...&nbsp;&nbsp;As someone who was involved in what we believed to be one the big successes of the 80's and 90's so called CASE era, I always find it a little irritating to hear about all the failures, so it was interesting to hear some positive comments about the lessons to learn from that period.&nbsp; From my experience, what we were doing at Texas Instruments was successful&nbsp;for a long time, in large part because the problem domain we tackled was limited and the patterns well recognized-- we were targeting large scale integrated database transaction processing systems.&nbsp;In effect, while we never&nbsp;described it in these terms, what we&nbsp;developed was a domain specific language - or at least a family&nbsp;of languages.&nbsp; And as one of the contributors mentioned, the approach relied on the assumption that you never modified a line of generated code - there were lots of user exits but you never touched the code.&nbsp; We even implemented a feature that deleted the source code after it had been compiled to save space :-)&nbsp;&nbsp;The approach we used then would be much harder to make successful now, when frameworks are so much richer and the problem domains and application model so much more varied.&nbsp;]]></content:encoded>
    </item>
    <item>
      <title>Kick the VSTS tires...</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/kick-the-vsts-tires</link>
      <pubDate>Thu, 03 Nov 2005 01:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2005/11/03/kick-the-vsts-tires/</guid>
      <description><![CDATA[Now you can try out Team System in a hosted environment without the hassle of downloading and...]]></description>
      <content:encoded><![CDATA[Now you can try out Team System in a hosted environment without the hassle of downloading and installing.&nbsp; Check out Rob Caron's <a href="https://blogs.msdn.com/robcaron/archive/2005/11/01/487947.aspx">post </a>for details.]]></content:encoded>
    </item>
    <item>
      <title>Going dark...</title>
      <link>https://docs.microsoft.com/archive/blogs/billgibson/going-dark</link>
      <pubDate>Sun, 30 Oct 2005 09:51:00 GMT</pubDate>
      <dc:creator><![CDATA[Garry Trinder]]></dc:creator>
      <guid
        isPermaLink="false">https://qa.msdn.wdslab.com/billgibson/2005/10/30/going-dark/</guid>
      <description><![CDATA[I've not lost enthusiasm for this blogging thing, its just that I've been asked to convert some of...]]></description>
      <content:encoded><![CDATA[I've not lost enthusiasm for this blogging thing, its just that I've been asked to convert some of my blog entries into MSDN TechNotes and write others afresh to accompany the Visual Studio launch, so I've been busy with&nbsp;notes/articles in&nbsp;work on the following topics among others:

Understanding the SDM Type System<br>The Four Layer Model of Systems in SDM<br>Understanding Applications in Application Designer<br>When and how to use the Default System <br>The Role of System Designer<br>Using Systems to Define Services<br>Designing Substitutable Services<br>Understanding Creating and Using Toolbox Prototypes<br>Top-Down Design (published <a class="" href="https://blogs.msdn.com/billgibson/articles/480226.aspx" mce_href="https://blogs.msdn.com/billgibson/articles/480226.aspx">here </a>already)<br>Why no Class Libraries on the Application Designer (blogged <a href="https://blogs.msdn.com/billgibson/archive/2005/10/12/479980.aspx" mce_href="https://blogs.msdn.com/billgibson/archive/2005/10/12/479980.aspx">here </a>already)

<p>I will post the finished articles here and/or links to them on MSDN.&nbsp; </p>]]></content:encoded>
    </item>
  </channel>
</rss>