<?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>Goto 100  - Development with Visual Basic : Architecture</title><link>http://blogs.msdn.com/goto100/archive/tags/Architecture/default.aspx</link><description>Tags: Architecture</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Building a "brand new application" - WPF, ADO.NET Data Services, LINQ to Entities with .NET Framework 3.5 SP1</title><link>http://blogs.msdn.com/goto100/archive/2008/07/07/building-a-brand-new-application-wpf-ado-net-data-services-linq-to-entities-with-net-framework-3-5-sp1.aspx</link><pubDate>Tue, 08 Jul 2008 00:19:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8704177</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/goto100/comments/8704177.aspx</comments><wfw:commentRss>http://blogs.msdn.com/goto100/commentrss.aspx?PostID=8704177</wfw:commentRss><description>&lt;P&gt;At the end of June I run workshops with 2 ISVs both looking to completely re-develop their applications. One is entirely VB6, the other a combination of VB6 with C++. &lt;/P&gt;
&lt;P&gt;The beauty of "starting from scratch" with a one to two year development plan is you can take a hard look at the latest technologies from Microsoft - and there are a lot of them! As a result, both application architectures at a high level ended up looking pretty similar.&lt;/P&gt;
&lt;P&gt;The following links should help those teams drill in further - and maybe you?&lt;/P&gt;
&lt;P&gt;In both cases we went with &lt;A href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms520330.aspx" mce_href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms520330.aspx"&gt;.NET Framework 3.5 SP1&lt;/A&gt; as our base level technology (NB: SP1 is really a feature pack)&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Presentation Tier&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Rich Client for power/frequent users, typically inside the firewall with the need to be occasionally connected 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/aa970268.aspx" mce_href="http://msdn.microsoft.com/en-us/library/aa970268.aspx"&gt;Windows Presentation Foundation 3.5&lt;/A&gt;&amp;nbsp; 
&lt;UL&gt;
&lt;LI&gt;In June we released the &lt;A href="http://msdn.microsoft.com/en-us/library/cc707819.aspx" mce_href="http://msdn.microsoft.com/en-us/library/cc707819.aspx"&gt;Composite Application Block for WPF&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;A href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms318410.aspx" mce_href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms318410.aspx"&gt;ADO.NET Synchronisation Services&lt;/A&gt; to a local database cache 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/bb628449.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb628449.aspx"&gt;Workflow Foundation&lt;/A&gt; for ....errr...workflow :-) 
&lt;LI&gt;Communication to middle tier via HTTP/REST&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Browser Client for occasional users, typically outside the firewall 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://silverlight.net/GetStarted/" mce_href="http://silverlight.net/GetStarted/"&gt;Silverlight 2.0&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms336418.aspx" mce_href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms336418.aspx"&gt;ASP.NET AJAX&lt;/A&gt; 
&lt;LI&gt;Workflow Foundation&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Middle Tier&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Serving both types of clients. Ability to scale out. 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/data/bb931106.aspx" mce_href="http://msdn.microsoft.com/en-us/data/bb931106.aspx"&gt;ADO.NET Data Services&lt;/A&gt; - exposing entities and operations 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms452029.aspx" mce_href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms452029.aspx"&gt;SP1 Documentation for Data Services&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;ADO.NET Entity Framework and LINQ to Entities - delivering object relational mapping 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms439009.aspx" mce_href="http://vs2008sp1docs.msdn.microsoft.com/en-us/ms439009.aspx"&gt;SP1 Documentation for Entity Framework&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;Workflow Foundation 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-us/library/ms735119.aspx" mce_href="http://msdn.microsoft.com/en-us/library/ms735119.aspx"&gt;Windows Communication Foundation&lt;/A&gt; to drive and respond to external systems &lt;/LI&gt;&lt;/UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Note&lt;/STRONG&gt;: We ruled out LINQ to SQL in favour of LINQ to Entities - however worth saying that in both cases we only needed to support SQL Server and therefore LINQ to SQL would be a valid alternative 
&lt;UL&gt;
&lt;LI&gt;LINQ to SQL has shipped and N-tier development with it is nicely covered &lt;A href="http://msdn.microsoft.com/en-us/library/bb384398.aspx" mce_href="http://msdn.microsoft.com/en-us/library/bb384398.aspx"&gt;in the documentation&lt;/A&gt; and in Beths posts 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/bethmassi/archive/2008/04/12/linq-to-sql-n-tier-smart-client.aspx" mce_href="http://blogs.msdn.com/bethmassi/archive/2008/04/12/linq-to-sql-n-tier-smart-client.aspx"&gt;Middle Tier&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/bethmassi/archive/2008/04/14/linq-to-sql-n-tier-smart-client-part-2-building-the-client.aspx" mce_href="http://blogs.msdn.com/bethmassi/archive/2008/04/14/linq-to-sql-n-tier-smart-client-part-2-building-the-client.aspx"&gt;Presentation Tier&lt;/A&gt; 
&lt;LI&gt;&lt;A href="http://blogs.msdn.com/bethmassi/archive/2008/04/16/linq-to-sql-n-tier-smart-client-part-3-database-transactions.aspx" mce_href="http://blogs.msdn.com/bethmassi/archive/2008/04/16/linq-to-sql-n-tier-smart-client-part-3-database-transactions.aspx"&gt;Data Tier&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Data Tier&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Where we store all the data :-) 
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/en-gb/sqlserver/bb671064.aspx" mce_href="http://msdn.microsoft.com/en-gb/sqlserver/bb671064.aspx"&gt;SQL Server 2008&lt;/A&gt; 
&lt;UL&gt;
&lt;LI&gt;Extended via SPs, Triggers and Types using TSQL or CLR integration as appropriate&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;STRONG&gt;Blogs (sample of the best):&lt;/STRONG&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ADO.NET Team on Entity Framework &lt;A title=http://blogs.msdn.com/adonet/archive/tags/Entity+Framework/default.aspx href="http://blogs.msdn.com/adonet/archive/tags/Entity+Framework/default.aspx" mce_href="http://blogs.msdn.com/adonet/archive/tags/Entity+Framework/default.aspx"&gt;http://blogs.msdn.com/adonet/archive/tags/Entity+Framework/default.aspx&lt;/A&gt; 
&lt;LI&gt;ADO.NET Data Services Team &lt;A title=http://blogs.msdn.com/astoriateam/ href="http://blogs.msdn.com/astoriateam/" mce_href="http://blogs.msdn.com/astoriateam/"&gt;http://blogs.msdn.com/astoriateam/&lt;/A&gt; 
&lt;LI&gt;Sync Framework team &lt;A title=http://blogs.msdn.com/sync/default.aspx href="http://blogs.msdn.com/sync/default.aspx" mce_href="http://blogs.msdn.com/sync/default.aspx"&gt;http://blogs.msdn.com/sync/default.aspx&lt;/A&gt;&amp;nbsp; 
&lt;LI&gt;UK based Mike Taulty with some &lt;STRONG&gt;great content&lt;/STRONG&gt; on &lt;A href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1027.aspx" mce_href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1027.aspx"&gt;ADO.NET Data Services&lt;/A&gt;, &lt;A href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1024.aspx" mce_href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1024.aspx"&gt;Entity Framework&lt;/A&gt; and &lt;A href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1015.aspx" mce_href="http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/category/1015.aspx"&gt;Silverlight&lt;/A&gt; 
&lt;LI&gt;Tim Sneath (ex UK) on all things WPF/Silverlight &lt;A title=http://blogs.msdn.com/tims href="http://blogs.msdn.com/tims" mce_href="http://blogs.msdn.com/tims"&gt;http://blogs.msdn.com/tims&lt;/A&gt;&amp;nbsp; 
&lt;LI&gt;Product group WPF site &lt;A title=http://windowsclient.net/ href="http://windowsclient.net/" mce_href="http://windowsclient.net/"&gt;http://windowsclient.net/&lt;/A&gt; 
&lt;LI&gt;Related - SQL Server Data Services &lt;A title=http://blogs.msdn.com/ssds/default.aspx href="http://blogs.msdn.com/ssds/default.aspx" mce_href="http://blogs.msdn.com/ssds/default.aspx"&gt;http://blogs.msdn.com/ssds/default.aspx&lt;/A&gt;&amp;nbsp; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;P.S. Both teams will be using Visual Basic 2008 :-) I thought you would like that one...&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8704177" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/goto100/archive/tags/Visual+Basic+6/default.aspx">Visual Basic 6</category><category domain="http://blogs.msdn.com/goto100/archive/tags/Visual+Basic+.NET/default.aspx">Visual Basic .NET</category><category domain="http://blogs.msdn.com/goto100/archive/tags/UK/default.aspx">UK</category><category domain="http://blogs.msdn.com/goto100/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/goto100/archive/tags/.NET+Framework+3.5/default.aspx">.NET Framework 3.5</category><category domain="http://blogs.msdn.com/goto100/archive/tags/UX/default.aspx">UX</category><category domain="http://blogs.msdn.com/goto100/archive/tags/Data/default.aspx">Data</category><category domain="http://blogs.msdn.com/goto100/archive/tags/Visual+Basic+2008/default.aspx">Visual Basic 2008</category><category domain="http://blogs.msdn.com/goto100/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Top 5 questions in my last year working with ISV early adopters</title><link>http://blogs.msdn.com/goto100/archive/2008/06/20/top-5-questions-in-my-last-year-working-with-isv-early-adopters.aspx</link><pubDate>Fri, 20 Jun 2008 16:32:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8625349</guid><dc:creator>Eric Nelson</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/goto100/comments/8625349.aspx</comments><wfw:commentRss>http://blogs.msdn.com/goto100/commentrss.aspx?PostID=8625349</wfw:commentRss><description>&lt;p&gt;As I get ready to transition role, I find myself increasingly thinking "what happened in the last 12 months that would be useful to take into the next 12 months". &lt;/p&gt; &lt;p&gt;One of the great bits about my current role is I spend a lot of time 1:1 in day long, two day long, three day long engagements talking about our latest technologies and how they might help. I get into "warts and all" discussions and I get to see the real issues faced by UK developers and architects - both with their own stuff and with our stuff. &lt;/p&gt; &lt;p&gt;I decided a useful step would be to think about the top 5 questions that just keep coming up time and time again. My hope is they may give me a steer on where I should spend some of my research, my blogging, my screencasting etc.&lt;/p&gt; &lt;p&gt;In no particular order:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;UX: &lt;/strong&gt;"Eric, Microsoft have Windows Forms, WPF, Silverlight, AJAX and ASP.NET MVC. Which should we use for our next generation of our user interface?"  &lt;li&gt;&lt;strong&gt;Data: &lt;/strong&gt;"Eric, Microsoft have ADO.NET Datasets, Datareaders, LINQ to SQL and LINQ to Entities. Which should we use for our next generation of our data access layer?"  &lt;li&gt;&lt;strong&gt;End to End: &lt;/strong&gt;"Eric, we understand each of the individual technologies pretty well BUT we are unsure how best to combine them to build a full solution. Given our situation what would be the best approach?"  &lt;li&gt;&lt;strong&gt;SOA/ESB:&lt;/strong&gt;"Eric, we are trying to work out what SaaS, S+S, SOAs, ESBs and ISBs really mean to us over the next 5 years. What should we be doing now?"  &lt;li&gt;&lt;strong&gt;Buy or Build:&lt;/strong&gt; "Eric, we think there are various Microsoft and 3rd party technologies, products and frameworks we could benefit from BUT we don't want to pick up unnecessary dependencies. What do you think we should use and won't regret in the future?"&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;All interesting questions. All tough questions. All need a lot of context before you can answer them. Hmmmm... but I think it should be possible to distill some of those discussions into something many more folks can benefit from. Fingers X'd.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8625349" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/goto100/archive/tags/UK/default.aspx">UK</category><category domain="http://blogs.msdn.com/goto100/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/goto100/archive/tags/UX/default.aspx">UX</category><category domain="http://blogs.msdn.com/goto100/archive/tags/Data/default.aspx">Data</category></item></channel></rss>