Real World Software Architecture

Real World Software Architecture is dedicated to providing information and experiences from the field of Software Architecture.



Subscribe with RSS or ATOM Add to Google

Links

  • Home Page
  • Real World Software Process Engineering
  • Suggested Reading
  • .NET Dev and Arch Collection
  • SEI Essays on SA
  • Software Architecture
  • Bredemeyer
  • wwisa
  • Product Line Engineering
  • PLEES
  • Software Product Lines
  • MSDN Architecture Center
  • patterns & practices






Tuesday, August 24, 2010

Microsoft Silverlight 4 and SharePoint 2010 Integration Book Review

This is a very well done little book. Is is short and concise so there is not a lot of filler nonsense I am finding in a lot of books these days.

The author does great job of getting you up and running quickly, and then goes into deeper integration topics later in the book.

The book covers deploying a Silverlight application to a document library as well as linking a SharePoint module to a Silverlight RIA to deploy your xap file.

It really focuses on using SharePoint and Silverlight integrated with each other. They show how to create an external content type using the SharePoint Designer to access data in a SQL database and how to use the Business Connectivity Services (BCS). This is an approach I would not have considered before reading this book. I would have just created an external web service and hit that to access the data, but my approach isn’t really integration.

They show how to integrate with SharePoint workflows, how to use CAML queries, how to use the developer dashboard, and how to debug.

They do a complete job of showing how to do everything with both the SharePoint 2010 Silverlight Client Object Model and the SharePoint 2010 WCF Data Services.

The downloadable code is very well organized and is very usable. They have the complete projects ready to deploy.

All in all I think this is a great book. If you are interested in integrating Silverlight 4 and SharePoint 2010, then this book is a must have. It will get you through the learning curve quickly and have you up and running in no time.

posted by tadanderson at 7:13 PM 0 comments

Friday, August 13, 2010

Are you a .NET development shop, or a Microsoft development shop?

I am not sure if the market has clearly stated that there is a difference between being a Microsoft shop and a .NET shop. I watch a lot of places try to decide which way to go without realizing they are actually making the choice. Once you've gone far enough down one of the paths it becomes very dificult to turn back. I am not talking about allowing opensource through the door, I am talking about choosing products (open source or not) other than what Microsoft has available when their solution is within budget and meets the functional requirements of the need.

I see this happen for multiple reasons. The most obvious reason is because someone has sold the man (or woman) with the money on the idea that they should not put all there eggs in one basket. Just that analogy is stupid. Imagine carrying 12 baskets instead of one to get your eggs home. Then if you want to keep them cool not all the baskets are going to fit in one fridge. You may say that is good in case one of the fridges goes out. Well, you usually have eaten all the eggs or they have gone rotten by the time the fridge goes out.

Two examples of not wanting to put all the eggs in one basket-

-- I have seen this on a huge government project. They chose AquaLogic over SharePoint and then still forced development to be done in .Net. What a nightmare. That wasted millions of dollars on integration development, which still is not being done right years later.

-- I’ve watched Crystal Reports chosen over SQL Reporting Services (which they already owned with SQL Server) several times, strapping the projects into spending tons on Crystal support in the coming years.

Another reason for choosing tools other than Microsoft tools is lack of experience in enterprise level developers. Some come from smaller shops where open source is the way of life. It has to be in order to afford things. They come into the enterprise shop and all they know are the tools they learned in the smaller shops, so those are the ones they are allowed to continue to use. Others are just open source junkies. They want .NET, but Microsoft sucks, so at every opportunity they are reaching for any tool not coming out of Microsoft. It’s the cool thing to do. I see this a lot in the context of choosing between patterns and practices tools and their equivalent. If you are a Microsoft shop, you'll be using patterns and practices tools, unless they cannot meet the technical requirements you need. If you’re simply a .NET shop, any toolset will do.

I not only see this happen with open source tools, but I see toolsets being chosen that cost a bundle, upfront and down the road. I have seen teams convince management they must have the latest UI toolkit in order to implement the same functionality they could have implemented with the AJAX Toolkit or other out of the box controls. This adds tons of maintenance overhead to the project, time is needed to learn the tools, and licensing cost continues on forever. I can’t count how many times I have seen this, and the tools were not needed, not even close.

Again, let me be clear, if Microsoft does not have the tool available then you have no choice. Some examples are Rules Engines, UML tools, process authoring tools, and MDM solutions. Microsoft's rules engine is buried in BizTalk, their MDM solution has only matured to the point of being a decent reference table manager, Visio is good for pictures but not documentation like SPARX EA, and the Process Template Editor is still in bad shape when compared to EPF.

The advantages to having all your eggs in one basket and trying to stick with Microsoft tools are many. The top one is Modifiability (my favorite Quality Attribute) achieved through greater cohesiveness in your overall toolset. The different Microsoft teams have greater insight into the roadmaps of fellow team’s products, and that helps with integration plans. Choosing a partner product usually achieves the same results since Microsoft is committed to sharing with them.

In the end, when I am in a Microsoft shop, my rule of thumb is show me why we cannot use the Microsoft product, and then we will consider something else. Not all shops are Microsoft shops, and that is ok, but you should figure out what you are, and then move forward accordingly if you want to make life easier.

posted by tadanderson at 5:46 PM 0 comments

Monday, August 02, 2010

Microsoft has released the Ribbon for WPF

Microsoft has released the Ribbon for WPF.  The download includes the code and samples.  Below is a screenshot of the samples:


Click here for larger image

Overview  (From MSDN Site)
This release is a managed implementation of the Ribbon for WPF. The Ribbon is a command bar that organizes the features of an application into a series of tabs at the top of the application window, is designed to help you quickly find the commands that you need to complete a task. The Ribbon user interface (UI) increases discoverability of features and functions, enables quicker learning of the application, and helps users feel more in control of their experience with the application. The Ribbon replaces the traditional menu bar and toolbars.

Additional Information  (From MSDN Site)
Note: There are a large number of design revisions in this release since the CTP version. This is mainly to facilitate MVVM-centric applications. r />
Design-time: The MSI will install design-time support for Visual Studio 2010 and Expression Blend 4. This includes a project template for a ‘WPF Ribbon Application’, an item template for a ‘Ribbon Window’, and Ribbon controls in the toolbox such as, RibbonButton, RibbonToggleButton, RibbonMenuButton, etc.

Sources: Ribbon source code is available for reference purposes only. Please see EULA for more information.

Samples: A few samples are also included to provide an overall view of all the available Ribbon features integrated within a WPF application. These samples include:

RibbonWindow Wordpad Sample
This sample illustrates a Ribbon control hosted within a RibbonWindow that emulates the Wordpad appearance. To run this scenario:
--Set RibbonWindowSample as the start project
--Set StartupUri=”RibbonWindowWord.xaml” in RibbonWindowSample\App.xaml

RibbonWindow MVVM Sample
This sample illustrates a Ribbon control hosted within a RibbonWindow that is completely populated from a view-model collection. To run this scenario:
--Set RibbonWindowSample as the start project
--Set StartupUri=”RibbonWindowMVVM.xaml” in RibbonWindowSample\App.xaml

RibbonBrowser Wordpad sample
This sample illustrates a Ribbon control hosted within a browser window that emulates the Wordpad appearance. To run this scenario:
--Set RibbonBrowserSample as the start project
--Set StartupUri=”PageWord.xaml” in RibbonBrowserSample\App.xaml

RibbonBrowser MVVM sample
This sample illustrates a Ribbon control hosted within a browser window that is completely populated from a view model collection. To run this scenario:
Set RibbonBrowserSample as the start project
Set StartupUri=”PageMVVM.xaml” in RibbonBrowserSample\App.xaml

Get it here

posted by tadanderson at 6:30 PM 0 comments

Sunday, August 01, 2010

Mine is bigger than yours- Toshiba Qosmio X505-Q890 Laptop Review

I recently had to buy a new laptop. I'd love to buy a MacBook Pro, but can't come to terms with the amount of cash you have to lay down.

I needed something fast since mine completely died, so I decided to try to get something prebuilt. I ended up finding this power house on Amazon. I did a comparison of price for the same options on Dell and IBM and the cost was nearly twice the price.



I used to be an HP fan. I could always count on getting good stuff cheap from them, but after two computers completely died on me in the past year I have left HP behind. Both had hard drives go bad and cost me a ton of time getting back on track. Below is the short list of what I had to install and configure.

Microsoft Office 2010
Microsoft Project 2010
Microsoft Visio 2010
Microsoft SQL 2008 R2 Developer
Visual studio 2010
Expression Studio
Sparx EA
MDG Sparx EA add-ons - Zachman Framework, TOGAF, DoDAF-MODAF, and SysML.
VirtualBox
VMware Player
Windows Virtual PC
Paint.net
iTunes / sync phone

Data wise I am usually pretty good at backing up, so I didn't lose much there. This new laptop is a monster. I had no idea it would be so big. It will not be traveling to the islands with me. Like I said above I purchased it pre-built so I could get it faster, and actually just ordered it off Amazon. Below are some of the specs and picture of the laptop compared to my old one.



Click here for larger image


Click here for larger image


Click here for larger image


Click here for larger image

The Intel Core i7-740QM processor rocks.






Click here for larger image

I also needed a new bag since this behemoth would only fit in one of my back packs.



That is huge too. Below are some pictures of the bag.


Click here for larger image


Click here for larger image


Click here for larger image


Click here for larger image


The laptop has a solid state drive as the primary. It is smoking fast. I installed Visual Studio 2010 Ultimate Edition in 23 minutes. A two hour chore on most systems. One thing to note is that Toshiba uses 10GB of the primary to create restore disks. After you create them you can claim the space. Below is the hard drive configuration out of the box.


Click here for larger image

The power cord is also crazy large...



Click here for larger image


Some of my favorite features are:
-- The speakers kick butt.
-- Has a Blu-ray player
-- Runs quiet and cool
-- I can run 2 Virtual PCs at the same time
-- The keyboard lights up. At first I thought that was corny, but now I love it. My wife comes into my office late at night to read and hates having the over head light on so she uses a reading lamp and I use a desk lamp. I am not the best typer, especially on a new keyboard, so the lighting up keyboard rocks.
-- The big clear screen. It is great for design diagrams and coding.

The only downside is that this behemoth won't be going on vacation with me. It will be fine for occasional business travel, but we lug so much other equipment on vacation, another 15 pounds won't cut it.

All in all if you want a power house for a great price this is a great option.

posted by tadanderson at 9:44 AM 0 comments

Previous Posts

  • DevOps: A Software Architect's Perspective Book Re...
  • Scaled Agile Framework (SAFe) LiveLessons Video Se...
  • Bulletproof Android: Practical Advice for Building...
  • Swift for Programmers Book Review
  • Security in Computing (5th Edition) Book Review
  • Swift in 24 Hours, Sams Teach Yourself Book Review
  • Sparx Systems Releases Enterprise Architect 12
  • Learning Swift Programming Book Review
  • Android Security Internals: An In-Depth Guide to A...
  • Adaptive Code via C#: Agile coding with design pat...



Archives

  • December 2005
  • January 2006
  • February 2006
  • March 2006
  • April 2006
  • June 2006
  • August 2006
  • October 2006
  • November 2006
  • December 2006
  • January 2007
  • February 2007
  • March 2007
  • April 2007
  • May 2007
  • June 2007
  • July 2007
  • August 2007
  • September 2007
  • October 2007
  • November 2007
  • December 2007
  • January 2008
  • February 2008
  • March 2008
  • April 2008
  • May 2008
  • June 2008
  • July 2008
  • August 2008
  • September 2008
  • October 2008
  • December 2008
  • January 2009
  • February 2009
  • March 2009
  • April 2009
  • May 2009
  • June 2009
  • July 2009
  • August 2009
  • September 2009
  • October 2009
  • November 2009
  • December 2009
  • January 2010
  • February 2010
  • March 2010
  • April 2010
  • May 2010
  • June 2010
  • August 2010
  • September 2010
  • October 2010
  • November 2010
  • December 2010
  • January 2011
  • February 2011
  • March 2011
  • April 2011
  • May 2011
  • June 2011
  • July 2011
  • August 2011
  • September 2011
  • October 2011
  • November 2011
  • December 2011
  • January 2012
  • February 2012
  • March 2012
  • April 2012
  • May 2012
  • June 2012
  • July 2012
  • August 2012
  • September 2012
  • October 2012
  • November 2012
  • December 2012
  • January 2013
  • February 2013
  • March 2013
  • April 2013
  • May 2013
  • June 2013
  • July 2013
  • August 2013
  • September 2013
  • October 2013
  • November 2013
  • December 2013
  • January 2014
  • February 2014
  • March 2014
  • April 2014
  • May 2014
  • June 2014
  • July 2014
  • August 2014
  • September 2014
  • October 2014
  • December 2014
  • February 2015
  • March 2015
  • April 2015
  • June 2015
  • July 2015
  • September 2015

Powered by Blogger