The World’s Leading Microsoft .NET Magazine
   
 
realworldsa


Search this Blog

 








iPing-it!

---------------

---------------

Latest Entries

Effective REST Services via .NET Book Review

Tuesday, 23 June 2009 7:51 P GMT-05
I have resisted reading about and digging into REST for a while now.  Every time I would pick up an article or book I felt like I transported back to the 90's and I was reading an old HTML 2.0 book or specification.  The stuff I started on the internet with.  To me the REST movement is kind of like the A-HA moment of the internet programming community.  Kind of like, "O...  that is what they intended".

This book brought all those back in time feelings up all throughout the first 2 chapters.  I must say though, that I thoroughly enjoyed reading them.  The history lesson and the state of things today, where very well written and kept my attention and interest throughout both chapters.  The author's do a great job of digging into the guts of the foundations of REST, which really helps in the later chapters when they discuss the .NET tools used to develop RESTful solutions.

I also like that the authors aren't RESTful zealots.  They give Web Services their rightful place and do not present REST as a new silver bullet, but rather a new tool for the tool belt.

They cover a ton of stuff in the remaining chapters and appendixes including using RESTful services from desktop applications using Windows Forms and WPF, using Silverlight 2.0, JavaScript, the ASP.NET MVC Framework, WCF 3.5, IIS 7.0, and Azure. Every chapter goes deep enough into the topic to give you a great start down the right path of using the technology.

The book is a very pleasant read and is well organized.

The downloadable code is very usable, well organized, and contains some great example implementations.

I also have noticed the authors are keeping the accompanying web site up to date and have already released a code fix.

If you want to learn the ins and outs of RESTful Services using .NET technologies, this book is the ticket. 

I highly recommend this book.

Two New Excellent Microsoft Learning Resources for Developers

Friday, 19 June 2009 9:53 A GMT-05
The first learning resource, the latest MSDN Community Distribution CD, is what led me to the second learning resource MSDN Ramp Up.

I have place the contents of the MSDN Community Distribution CD below (everything that says download is already included in the CD download):

Download the New IIS SEO Toolkit Beta
The IIS Search Engine Optimization (SEO) Toolkit helps Web developers, hosting providers, and server administrators improve their sites' relevance in search results by recommending how to make them more search engine-friendly. The IIS SEO Toolkit Beta can be installed with the Microsoft Web Platform Installer 2.0 Beta for use with IIS 7.0 and IIS 7.5.

Download the Microsoft SDL Process Template for Visual Studio Team System
The SDL Process Template directly integrates the policy, process, and tools of the Security Development Lifecycle v4.1 into Visual Studio Team System 2008. It automates the creation of SDL requirements and recommendations in the familiar Visual Studio Team System development environment. It also provides auditable security requirements and project status, and provides data that allows you to assess the effectiveness of third-party security tools and demonstrate security return on investment.

Your Featured Content
Just Launched on Ramp Up: Web Development with ASP.NET
Ramp Up is a free learning program for developers. We've just launched "Web Development with ASP.NET," "Move from ASP to ASP.NET," and "Move from PHP to ASP.NET." The easy-to-access content is presented in a guided path to make learning efficient. See how Ramp Up can help you become more employable.

Web Resource
On Demand Series: An Early Look at Visual Studio 2010 and .NET 4.0
This on-demand series includes sessions covering Visual Studio 2010, .NET Framework 3.0, ASP.NET AJAX 4.0, Velocity, parallel computing, test-driven development, and Visual Studio Team System 2010. View these sessions today!

Introduction to .NET 4.0
This course provides an overview of new features include the Managed Extension Framework (MEF), theading, and design by contract. Also includes a discussion of the various types of managed languages including the object-oriented languages (C#, C++, VB), the new Dynamic Languages (Iron Python and Iron Ruby), and the Functional Language F#.

New Features in Visual Studio 2010
This course demonstrates some of the new features in the Visual Studio IDE, including the new start page, the code editor, the XML schema editor, and new tools for web development and deployment

ASP.NET AJAX 4.0
This course provides an introduction to ASP.NET AJAX 4.0, focusing on the new client-side controls and templating capabilities, including the dataview control

SQL Server 2008 Developer Fundamentals Part 1
This Web seminar will give an introduction of how to use T-SQL with SQL Server 2008. It will start with covering the basics and then move on to high-lighting some of the new syntax introduced with SQL Server 2008.

Developers look at Windows 7
This is a high-level overview of what's new in the Windows 7 user interface. New features including the new Taskbar, Ribbon, Jump Lists, and Multitouch are demonstrated, so that developers know the new functionality they can leverage, but no code is shown.

Introduction to SQL Server Integration Services 2008 (SSIS)
This course will cover how to use SQL Server Integration Services 2008 (SSIS) to manage an Extract, Transform, and Load (ETL) process. We will start by looking at the fundamental components that make up SSIS and then move onto designing packages using Business Intelligence Development Studio

Case Studies
B2B Vertical Search - Enabling Information Discovery and Decision Making for an Industry Community
Since implementing its FAST ESP search solution in 2007, Platts has seen growth in registrations, a 50 percent increase in trial requests, and revenue is up 40 percent year over year.

Law Firm Automates Complex Workflows, Streamlining Processes and Development
Holland & Knight deployed Nintex Workflow 2007, an application based on Microsoft Office SharePoint Server 2007, to automated workflows. IT staff estimate the Nintex Workflow 2007 solution reduced development time from one week to less than one day.

Security for Developers
Safe Unlinking in the Kernel Pool
Learn about the Conficker Worm

Other MSDN Videos:
MSDN Video: Globalization and Localization with ASP.NET AJAX
MSDN Video: Using the ASP .NET AJAX Control Toolkit
MSDN Video: Cloud Computing What in It for Me
MSDN Video: Adding Authentication to an ASP .NET AJAX Application

Get the CD ISO download here.

Ramp Up, which is included in the DVD content as a link to a web site, can be accessed here.

Software and Systems Requirements Engineering In Practice Book Review

Wednesday, 17 June 2009 9:12 P GMT-05
This little book is packed with sound advice.

Pros-
The book covers a wide variety of topics and does so at a detailed enough level that you have a good understanding of the topic. They do not waste time on filler content. It covers building a requirement’s taxonomy, eliciting requirements, Model-Driven Requirements Engineering, quality attributes, the importance of architecture, engineering platforms, requirements management, requirements-driven testing, rapid development techniques, hazard and threat analysis, distributed requirements engineering, and creating a requirements database.

As the book covers all these topics the authors made really great use of visualizing the material with really great diagrams.

They cover a lot of best practices and offer really sound advice. The tips on developing uses cases are great.

Each chapter comes with an extensive reference section.

Cons-
The publisher should have made the book a bit larger. The diagrams included in the book are some of the best I have seen, but they are very small. They could have made electronic versions available online (I guess I could blow them up on a copier).

The book was definitely written by people hanging out in the engineering world because they use a ton of acronyms and they are not always easy to figure out. They did not include all of them in the index.

I found it a little annoying that some of the key concepts/tools point to internal Siemens tools like the DesignAdvisor and URML (Unified Requirements Modeling Language).

All in all
I highly recommend this book. Its size allows me to carry it around with my laptop. I have been taking it everywhere for weeks now and every time I think of shelving it at work or at home I choose not to so I can review one or more of the sections one last time.

If you are involved in software development at all (developer, user, project manager, architect, tester, etc.) this is required reading.

Programmatic Differences Between Silverlight and WPF – A Whitepaper

Thursday, 11 June 2009 9:11 P GMT-05
Wintellect has released a very cool white paper on the programmatic differences between Silverlight and WPF. The paper includes notes on the changes coming in Silverlight 3.0.

Introduction (from white paper)

The Windows Presentation Foundation (WPF) is Microsoft’s latest development platform for building next-generation Windows client applications. Silverlight, a subset of WPF, extends the platform to the web via the add-on mechanism available in most current browsers. As a subset of WPF, the ability to create rich Internet applications is unprecedented; however, there are some significant differences between the capabilities of Silverlight and WPF, as well as important differences in the programming features of the two technologies.

There are several architectural reasons for the discrepancies between WPF and Silverlight. First and foremost is that Silverlight 2 is a downloadable plug-in running within a browser. In order to insure that the plug-in is a small as possible, Microsoft built a smaller version of the .Net Framework, one that is highly optimized for size and is a small subset of the full .NET Framework, to embed within it. WPF, on the other hand, has full access to the main .Net Framework and all its associated assemblies. The difference between the smaller, downloadable .Net Framework and the full desktop version is one of the major disparities between the two platforms. In addition, the fact that Silverlight is rooted within the browser, and inherits the limitations of that environment, further differentiates the two platforms.

This whitepaper documents both the identical (or nearly so) functionality as well as the differences. WPF and Silverlight have many technological concepts in common: Dependency Properties, Data Binding, Custom Controls and Animation to name a few. In addition, this paper documents functionality implementations that may be available in only one technology or the other. For example, WPF implements a large library of controls for document handling, including printing and formatting large documents.

Finally, this whitepaper outlines some strategies in obtaining code reuse across both technologies. Due to minor differences in implementations of common elements, developers need to carefully plan their development in order to reuse code in both platforms. Of course, since certain functionality may not exist in one platform, developers may need to reduce the scope of the application in those cases.

One last note about this whitepaper: for brevity and consistency issues, all code samples are written in C#. The code samples are small in scope and should not be difficult to translate to Visual Basic.Net or any other .Net programming language.

Get it here.

Pro ASP.NET MVC Framework Book Review

Wednesday, 10 June 2009 4:34 P GMT-05
This is the book for learning the ASP.NET MVC Framework in detail.  The author goes into great detail about every aspect of the framework in a very understandable approach.

The first half of the book gives you an overview of the history of ASP.NET and why we need the ASP.NET MVC Framework. After going through a small introductory application the author covers the skills needed to effectively use the framework.  They include the MVC Architecture, Domain Modeling, Loose Coupling, Testing, and new C# 3.0  language features.  You then build a real world application before moving on to the second half of the book.

The second half of the book covers the ASP.NET MVC Framework in great technical detail.  Every aspect of the framework is covered.

The thing I like most about this book is that the author does not pull any punches when talking about the WebForms framework, and that he goes into great detail without losing you.

The writing style is topnotch and the chapters flow together well.

The book's code samples are very well organized and usable.

If you are going to adventure into the ASP.NET MVC Framework, you will want this book by your side.  I highly recommend this book.

Prism (Composite WPF and Silverlight) Quick Start Kit

Monday, 8 June 2009 9:46 A GMT-05
David Hill has put together a nice Prism Quick Start Kit. These samples should get anyone up and running with ease. I have been building an application with Prism 2.0 (Composite WPF and Silverlight). The framework is really sweet. I used the Composite UI Application Block in the past, and can tell you that this framework is much easier to use.

I have included a few screen shots of the application, and the over all architecture below, in order to give you an idea of the way I am using it.

Architecture:

Click here for larger image.


Click here for larger image.


Click here for larger image.


Click here for larger image.

Requirements Engineering: From System Goals to UML Models to Software Specifications Book Review

Friday, 15 May 2009 12:58 P GMT-05
This is not for the happy go lucky requirements gatherer. It is a detailed breakdown of everything requirements engineering for software intensive systems. It will make you think.

The book describes the KAOS method in detail and the author uses Objectiver as the modeling tool. Sometimes a book is not worth buying when you are not using the tool. That is not the case with this book. It is packed with valuable advice and examples.

Reading the book did prompt me to download Objectiver. Very cool tool, but it is also complex. Complex is not a bad thing when you consider this book is about an engineering discipline, and engineering is needed because you are trying to do something complex.

The author covers the fundamentals of Requirements Engineering in detail in the first part of the book, Building System Models for Requirements Engineering in part two, and then Reasoning About System Models in part three.

This book does exactly what the title says, it shows you how to go from System Goals to UML Models to Software Specifications.

If you are building complex systems, this book is definitely for you.

I highly recommend this book, and have nothing negative to say about.

Microsoft .NET RIA Services May 2009 Preview Available

Tuesday, 12 May 2009 12:44 P GMT-05
Microsoft has released the Microsoft .NET RIA Services May 2009 Preview.

Overview (from MSDN)
The .NET RIA Services is a framework that provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations.

Microsoft .NET RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. RIA Services provides a pattern to write application logic that runs on the mid-tier and controls access to data for queries, changes and custom operations. It also provides end-to-end support for common tasks such as data validation, authentication and roles by integrating with Silverlight components on the client and ASP.NET on the mid-tier.

Get the install and whitepaper here.

C# VB.NET and ASP.NET Refactoring Book Reviews

Wednesday, 29 April 2009 3:36 P GMT-05
Both of these books are great.  Each has it's own unique sections, while at the same time they cover the same refactorings, smells, and Object-Oriented Design Principles in detail.

I bought the VB.NET version because I have been stuck on a VB.NET project for the past 3 years (actually 3 months, but it sure feels like years).

I have not seen the weak static typing to strong dynamic typing explained so well and in such detail anywhere else.  The information in this chapter teaches the developer how to use VB.NET to program a quick prototype or industrial strength applications.  He goes into tremendous detail on how to properly use the Option Strict, Option Explicit, and Option Infer statements.

I was so impressed with the VB.NET version of the book that I bought the C# and ASP.NET version of the book.  The C# and ASP.NET version of the book contains two chapters on refactoring ASP.NET code.

Both books have chapters on LINQ and other language enhancements, Refactoring to Patterns, Advanced Object-Oriented Concepts, Code Organization on a Large Scale, and multiple chapters on refactoring and smells.  Throughout each book the author touches on Object-Oriented Design Principles.  Both books have a list of all the refactorings, smells, and Object-Oriented Design Principles page numbers so they are easy to find.

The author points out that one of the motivating factors in writing these books was to give us the refactoring techniques in the languages we work in.  I agree with his motivation, all the other books I have read used Java as the language and although I learned a ton from them, each language has its own subtle differences. 

The author's style of writing make reading these books a pleasure.  They are very well organized.

Both come with well organized and very usable code downloads.

Both of these books are highly recommended.  They definitely make learning refactoring and Object-Oriented Concepts and Design Principles very enjoyable.


Thinking in Systems Book Review

Friday, 24 April 2009 10:43 A GMT-05
This little book zeros in on Systems Thinking and provides the reader with all the information they need to get started down the road of commonsense.

It covers stock and flow diagrams in detail. The author’s style of teaching and writing make the reading very easy. She uses examples that are really easy to relate to.

This book will make you start looking at everything as a stock, flow, or feedback loop.

The samples are intended to be built in Stella/iThink and there is an appendix that has all the formulas in it. The thinking in systems web site says they are developing the models for download. In the meantime, you can build them all pretty quickly using the formulas provided.

If you have no Systems Thinking experience, this book is a perfect introduction that should be read before reading a book like Software Process Dynamics.

I recommend this book to anyone that wants a little more logic in their thought life. I really does put a new perspective on things.

Top 10 Architecture Mistakes Podcast and Presentation

Thursday, 23 April 2009 9:23 A GMT-05
Eoin Woods, one of my favorite non-author, working Software Architects, who just happened to co-author one of the best Software Architecture books ever written ( Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives ), has put together a pretty cool presentation, Top 10 Architecture Mistakes.

Eoin also was recently on Software Engineering Radio discussing the presentation's contents.

Below is a summary outline of the presentation.
Mistake 1: Scoping Woes
Solution 1: Controlling Scope
Mistake 2: Not Casting Your Net Widely
Solution 2: Building a Stakeholder Group
Solution 2: Example Rankings
Mistake 3: Focusing on Function
Solution 3: Consider Your Qualities
Solution 3: Example Trade-off
Mistake 4: Boxes and Line Descriptions
Solution 4: Adding Precision to Description
Solution 4: Example View Set
Solution 4: Example of Confusion
Mistake 5: Forgetting It Needs to be Built
Solution 5: Grounding Your Architecture
Solution 5: Grounding SOA
Mistake 6: Lack of Platform Precision
Solution 6: Specifying Your Platform
Mistake 7: Performance Assumptions
Solution 7: Assume Nothing!
Solution 7: Dealing with Performance
Mistake 8: DIY Security
Solution 8: Reusing Infrastructure
Mistake 9: Lack of Disaster Recovery
Solution 9: Practice, Practice, Practice
Mistake 10: No Backout Plan
Solution 10: Know Where You Came From

Get the Presentation here.
Listen to the Podcast here.

Software Architecture: Foundations, Theory, and Practice Book Review

Sunday, 19 April 2009 4:50 P GMT-05
The is the book is by far the most textbookiest (new word?) books I have bought on Software Architecture. That is a good thing. It means that Software Architecture is becoming main stream enough that it is now offered as a college course topic along with other software engineering topics. Enough so that books are being written in a format intended solely for that purpose.

This book does a great job of covering a wide range of topics. It goes deep enough into each one of them to give the reader a great foundational understanding.

At first I was a little leery of their use of the ArchStudio tool suite, but the further I got in the book and the more I used the tool I could see the value it has in the architecture process. The tool really brings to light the connections between system components and forces a component based design. One of my favorite chapters is the Connectors chapter. The way they visually present their variation dimensions is really cool.

I don’t know quite how to explain it, but the book has a unique presentation that I haven’t seen in other architecture books. I am not referring to how the material is arranged. I am referring to the material presented. I like it. It seems to bring to light all the topics in software architecture that are important, but they are explained in a unique enough way that it doesn’t feel like your learning the same thing you learned in the last software architecture book.

I read every book that comes out on the topic of software architecture for two reasons. The hope of learning something new, and to remind myself of all the things I have to keep in the forefront of my thinking, kind of a mental exercise. This book makes it easy to get my mental exercise. The authors have a good writing style that makes the material easy to get through.

The only downside to this book is that you have to be a teacher to get access to the additional material the authors offer. It would be nice if they allowed anyone who has purchased the book access.

I recommend this book for the beginner, as well as the experienced, software architect. It is a must read.