The World’s Leading Microsoft .NET Magazine
   
 
realworldsa


Search this Blog

 








iPing-it!

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

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

For New Post Alerts

Latest Entries

Introducing .NET 4.0 With Visual Studio 2010 Book Review

Wednesday, 10 February 2010 3:39 P GMT-05
This book is a smorgasbord of .NET 4.0 goodies. This book does an excellent job of pulling all the new features in .NET 4.0 into one place. It covers the topics in enough detail that you leave the topic understanding what it is about and in many cases with references to find out more.

I am currently working as the SME on some of the Microsoft Learning tracks for Visual Studio 2010, so I have had to dig deep into Visual Studio 2010. I wish I would have had this book at the beginning of the project. I have not found anything missing as far as new features go.

Below is the table of contents from the book.

Chapter 1: Introduction
Chapter 2: Visual Studio IDE and MEF
Chapter 3: Language and Dynamic Changes
Chapter 4: CLR and BCL Changes
Chapter 5: Parallelization and Threading Enhancements
Chapter 6: Windows Workflow Foundation 4
Chapter 7: Windows Communication Foundation
Chapter 8: Entity Framework
Chapter 9: WCF Data Services
Chapter 10: ASPNET
Chapter 11: Microsoft AJAX Library
Chapter 12: jQuery
Chapter 13: ASPNET MVC
Chapter 14: Silverlight Introduction
Chapter 15: WPF 4.0 and Silverlight 3.0
Chapter 16: Windows Azure

The biggest ding to this book is the typos. Holy smokes, editors should not drink on the job. I won’t ding the book the book for that.

Another ding is that although they talk about code samples, I cannot find any. They give you the database they used throughout the book, but I have found no use for it without the code to attach to it.

All in all I recommend this book to anyone interested in getting up to speed quickly with the new features in .NET 4.0. It is nice to have them all in one place. It is also nice to have them in a book that does not cover every feature. For example an ASP.NET 4.0 book will have every feature in the 4.0 release along with all the past releases.

The book is definitely worth the purchase.

The Visual Studio 2010 and .NET Framework 4 Release Candidate (RC) is Available

Monday, 8 February 2010 10:36 P GMT-05
Microsoft has released the Visual Studio 2010 and .NET Framework 4 Release Candidate (RC).

MSDN subscribers can get it now.

Also check out the Visual Studio 2010 Release Candidate Walkthroughs.

C# 4.0 in a Nutshell Book Review

Monday, 1 February 2010 2:47 P GMT-05
This book is great. It’s no nonsense approach to covering the C# 4.0 language is like a breath of fresh air. It is clean, to the point, and thorough. It makes finding a topic, and learning it, or getting a refresher, a very fast process.

This new version includes new chapters on parallel programming (including PLINQ), and dynamic programming, and new sections on code contracts and COM interoperability.

The authors have a great writing style which makes the book a very enjoyable read. You can read this cover to cover, or use it as a very handy reference. You won’t find any case studies, or made up scenarios, to help the authors describe the technology. They stick to writing about the technology, which is nice.

One of my favorite features of the book is the way the authors do their diagramming. They include a lot of diagrams that give a visual representation of the feature they are describing. The diagrams really help with getting a quick understanding of the overall picture of the topic. The authors also demonstrate with code that is always easy to understand and within the scope of the topic at hand. You don’t have 2 pages of code with 3 lines highlighted.

Another part of this book I love is the way the authors deliver the code samples using LINQPad. I own the full auto completion version of LINQPad and it rocks. I have been using it since its first release and it has become my favorite tool when working with databases.

My only complaint about the book is the construction. The gluing job they did is horrible. It has big clumps of glue embedded in the pages which cause the binder to really bend. It will probably fall apart within a month of heavy use. I won’t ding the book for that. It is a publisher issue, not an author issue.

All in all I highly recommend this book. It belongs on the shelf of any serious developer.

Applied Software Product Line Engineering Book Review

Tuesday, 26 January 2010 3:30 P GMT-05
The authors of this book represent an all-star lineup of the best of the best in the Software Product Line Engineering (SPLE) field. They do a great job of providing a snapshot of the current SPLE best practices in the industry today.

Each chapter is written by a different author, or team of authors. This leads to some different perspectives on SPLE. This works for this type of book, but it does provide a conflict in the points of view taken in certain chapters. If you have experience with SPLE this shouldn’t be an issue because you will already understand what those different views are, but for someone with little or no experience this could cause confusion. I found none of the points of view wrong, just different. Different domains require, and provide for, different approaches.

I recommend this book to those that are experienced as a guide to the evolution of the topics covered, and to the beginner I would use it as a road map of topics you should learn more about in order to get the full understanding behind each chapter. Each chapter provides an excellent reference section.

I would suggest also reading the following books. They provide more information about the material covered in some of the chapters.

Software Product Lines: Practices and Patterns is mentioned several places in the book. It is key to getting a more in-depth look at the 29 practice areas and the patterns that help to apply them.

Designing Software Product Lines with UML: From Use Cases to Pattern-Based Software Architectures goes in-depth into the use of Product Line UML based Software engineering (PLUS). UML and PLUS are mentioned several places in the book. PLUS is what I use when I build a software product line. I have created a UML stereotype in SPARX EA which you can download here.

The table of contents is below.

ORGANIZATIONAL AND MANAGERIAL ISSUES
Software Product Line Engineering: Overview and Future Directions
A Roadmap for Software Product Line Adoption
New Methods behind a New Generation of Software Product Line Successes
Evaluating Product Family Development Using the Balanced Scorecard Approach
Product Management for Software Product Lines: An Overview

METHODOLOGIES AND PROCESSES
A Systems Product Line Approach
Adoption of Software Product Lines to Develop Autonomic Pervasive Systems
Development of a Software Product Line for Validation
Environments
Building a Family of Compilers
Formal Verification and Software Product Lines

TECHNICAL ISSUES
Multiple-View Requirements Models for Software Product Line Engineering
Managing Flexibility and Variability: A Road to Competitive Advantage
Feature Oriented Analysis and Design for Dynamically
Reconfigurable Product Lines
Separating Application and Security Concerns in Modeling
Software Product Lines
Architecture as Language

INDUSTRY EXPERIENCES AND CASE STUDIES
Management and Financial Controls of a Software Product Line Adoption
Efficient Scoping with CaVE: A Case Study
Model-Driven, Aspect-Oriented Product Line Engineering: An Industrial Case Study
Evaluation of Design Options in Embedded Automotive Product Lines
Product Line in the Business Process Management Domain

I found the material covered to all be of great value. There are a lot of great case studies through out the book beyond the section of chapters that cover case studies. They help to take the practices covered from theory to reality.

My biggest pain point with this book is the index. It is just down right sad. I am not going to ding the book for something technical the editors missed. I have been very tempted to grab an electronic version to make up for its weakness', although I have not seen one for sale.

All in all if you are involved with Software Product Line Engineering at all, this is a mandatory read.  Software Product Line Engineering is an evolving field and this book brings us up to date on the evolution of the field.

Recruiters, I really want a job, but please stop wasting our time

Wednesday, 6 January 2010 11:24 A GMT-05
I get approximately a dozen phones calls and 15 emails a day when I put out my resume. If I answer just one of them, it is a good day. There are several reasons I don’t answer, and it baffles me as to why I received the call or email in the first place.

Recruiters, to help you stop wasting your time, I have listed a few reason I won’t answer you.

If your email or message contains “I know you are not interested in relocating, but this job opportunity may convince you to”, don’t call and don’t email. There is a reason I say at the top of my resume, and check “I won’t relocate” on the profile information. It is because I WON’T RELOCATE!!!!! And no I don’t know anyone who lives in Nowhereville, because I don’t live there!!!!

If I have to play your message more than 3 times trying to figure out what your phone number is… well honestly, it has become so annoying that lately I have only been listening twice. If I can’t get your number because you have mastered blabbering out your phone number in less than a microsecond, I don’t waste my time trying to figure it out.

I am a “.NET” Architect. I have zero interest in becoming a Java architect. No price, no hours, no location, and no title will change my mind. No they are not the same thing because they are both object oriented.

I tell you who I am, all about my experience, the rates I am looking for, and the locations I will work in, so I expect you to do the same. If I want to know where the location is, who the client is, what the rate is, and what the duration of the contract is, I expect to be told. Keeping that information secret does you no good. The clients always have more than one recruiter/head hunter looking, and not all of them think withholding information is to their advantage. We always find out eventually. If I don’t know the rate range, I won’t interview, so the first one to give me all the info I need to make a decision, is the one I go with.

When I say no thank you to a position, that actually means no thanks. I have at least a dozen recruiter’s emails going straight to trash because they have decided to not take no as an answer. I think they went through some sort of Tony Robbins Ninja Recruiting Seminars, and have been brainwashed into not hearing or seeing the word no.

We can figure out if I am a good candidate by email. Location, rate, duration, and job descriptions can all be sent by email. If those look like a match to me, I will call you. But I don’t have time to talk to 25 people a day, I have a full-time job. So just sending me a “call me”, usually indicates to me you don’t have a job available, and you just want to collect profile information on me.

Luckily I don’t have to complain about meet and greets because you all have lost you expense accounts in the current economy. But if you start getting them back, forget it. I know there used to be point systems. They got points for getting your resume, talking to you on the phone, meeting for lunch, and doing preliminary interviews with their staff. The more points at the end of the month, the bigger the bonus.

Last but not least. If you get me on the phone and say “tell me a little bit about your background”, I’ll hang up on you. Read the resume, that is what it is for. If you can’t read, have a friend read it to you, but do not call me to have me read it to you.

I hope this helps you save a little time, at least with me.

.NET Architecture and Development Book Recommendations updated for 2010

Tuesday, 29 December 2009 7:17 P GMT-05
For the new year we updated the book recommendation and process guidance sections on Real World Software Process Engineering.  We have posted the book recommendations below.

These are all books we use, or plan to use when they are released.  We have reviewed a lot of them here.

HAPPY NEW YEAR!!!

Software Process Engineering


Product Line Engineering


Software Architecture


SOA: Service Oriented Architecture


Component Development


Coding Guidelines


Frameworks


Patterns


OOAD


Brownfield Development


Scalability


Security


.NET 4.0 and VSTS 2010


.NET 3.5 and VSTS 2008


ASP.NET, AJAX, MVC, and Silverlight


SQL Server and T-SQL


Shiny Turds Books that do not Cut the Mustard *-Do not Buy-*


.NET 3.0 Platform

ACER Aspire 1410 Review- Laptop Power with Netbook Size

Wednesday, 23 December 2009 11:28 P GMT-05
My wife and I recently took a trip to Costa Rica.  Before I continue I would like to sidebar...

If you are planning a trip to Costa Rica, check out the blog she wrote on it, Tips when Traveling to Arenal Costa Rica. I think it should have been titled "Every single thing you need to know when Traveling to Arenal Costa Rica"

We flew on an airline that only allowed a single carry on bag, which had to be less than 22 lbs.  That meant my laptop went, or our camera equipment went.  With no TV in the first hotel for 4 days, we decided to look for a Netbook.

After doing an average amount of research, I decide to go with the ACER Aspire 1410. Specs below:

Product Features and Technical Details

Product Features
* Box Contents - Acer AS1410 Notebook, 6-Cell Lithium-Ion Battery (up to 6-hours), AC Power Adapter, AC Power Cord; Software Bundle - Windows 7 Home Premium 64-bit, Microsoft Works with Office Home and Student 2007 60-day Trial, McAfee Internet Security Suite 60-day Subscription, 1-Year International Travelers Limited Warranty
* Intel Celeron 1.2GHz SU2300 Processor
* 1M L2 Cache, 800MHz Front Bus Speed
* 2048MB DDR2 Dual-Channel 667MHz RAM (4GB Max.)
* 160GB (5400 RPM) SATA Hard Drive

Processor, Memory, and Motherboard
* Hardware Platform: PC
* Processor: 1.2 GHz Intel Celeron
* System Bus Speed: 800
* Number of Processors: 1 (dual core)
* RAM: 2000 MB (expandable to 4 GB)
* RAM Type: SODIMM

Hard Drive
* Size: 160 GB
* Manufacturer: Portable
* Type: Serial ATA

Weight: 3.1 pounds

Battery: last 4 to 5 hours

PROS:
* Very light weight.
* Battery power has not let me down yet.
* I have loaded all the Microsoft Express version of Visual Studio 2008 and SQL Server 2008 Express. That is enough for demos, for travel programming fun, and looking at book examples. No issues with performance and I still have not upgrade to 4 GB of RAM.
* Loaded all of Office 2007 and have no performance complaints.
* Screen has a great resolution
* Keyboard has bigger keys than my normal size laptop.
* Has the full version of Windows 7 64 bit installed unlike other Netbooks I was looking at, which have the starter version. It is performing great!!!
* Screen is slightly bigger than a normal netbook, which is just enough to get away from the feeling that I am watch a movie on my phone, like other netbooks gave me.
* Price, you just can't beat it.
* Perfect for games. Easy to pass around.

CONS:
* Volumn is a little low. Overcame that with a set of external speakers (Logitech V20 Notebook Speakers (Black) )
* Windows Media Player plays slow. I don't think I can blame the laptop for than though, since VLC plays everything just fine.

All in all I highly recommend this little thing!!!

Some shots of it are below. I have included a side by side with my 17 inch laptop, and some shots of code and windows media player to give you an idea of screen real estate. The shots are not that great with respect to showing off the clarity of the screen, but they give you an idea of what fits on it.


Click here for larger view


Click here for larger view


Click here for larger view


Click here for larger view


Click here for larger view


Click here for larger view


Click here for larger view














































PDF2Text is a Free tool to Convert PDFs to Text

Wednesday, 23 December 2009 12:01 A GMT-05
The PDF2Text Converter download contains an application that converts PDF files into a text file, keeping the PDF's format.

I recently needed to be able to convert several PDF files over a few weeks of time into a text file. I needed the text file to stay in the same format as the PDF. It was being imported by an application that needed it to be in that format.

I tried the Microsoft conversion tools, and the Adobe suite, but they both mangled up the format of the file. I looked around for an open source options but could not find one.

So I built this one. Just drag the PDF onto the surface of the application.


Click here for a larger image.

Get it here.

Great New Silverlight 4.0 Resources

Tuesday, 8 December 2009 10:45 P GMT-05
There are some great new Silverlight 4.0 resources available. Below are some of the best.

John Papa has put together an awesome “What’s new in Silverlight 4” whitepaper".

Here is a list of what is new in Silverlight 4:

* Enabling Business Application Development
o Printing
o Rich Text Area Control
o Rich Text Area with FlowDirection of RightToLeft
o Text Input
o WCF RIA Services
o Managed Extensibility Framework (MEF)
o Viewbox Control
o Auto-Sizing Columns and Copy from DataGrid
o Navigation Page Loading Extensibility
o Command Property on ButtonBase and Hyperlink
o SelectedValue and SelectedValuePath on the Selector
o Support for Referer Header
o UDP Multicast Client Support
o Single Source Multicast (one-to-many)
o Authentication Support with ClientHttpWebRequest
o IDataErrorInfo
o INotifyDataErrorInfo
o Grouping on CollectionViewSource
o Editable CollectionView IEditableCollectionView
o Binding to String Indexers
o StringFormat, TargetNullValue, FallbackValue
o Databinding Support for Dependency Objects
o ObservableCollection<T> Constructor Accepts IList and IEnumerable
* Empowering Richer Experiences
o Fluid UI States for ItemsControl
o Word Based Text Trimming (trailing ellipses)
o Implicit Styles
o MouseWheel Support
o Right Mouse Click
o Programmatic Clipboard Access
o Silverlight as a Drop Target
o Webcam and Microphone Support
o CompositeTransform
o Support for all PNG Formats
o Offline Digital Rights Management
o MP4 Playback Protected DRM
o WMS Multicast
o Output Protection
* Moving Beyond the Browser – Sandboxed Applications
o Out-of-Browser Windowing Updates
o WebBrowser Control
o HtmlBrush
o Notifications (Toast)
* Moving Beyond the Browser – Trusted Applications
o Native Integration
o File System Access
o Cross-Domain Networking Access
o Full File Path on Open and Save Dialogs
o Full Keyboard in Full Screen Mode

Get from his blog here.

Silverlight 4 Training Course

Overview from Channel 9
The Silverlight 4 Training Course includes hands-on-labs, a video and a whitepaper designed to help you learn about the new features in Silverlight 4 focusing on three major areas: Enabling Business Application Development, Empowering Richer Experiences and Moving Beyond the Browser. Some of the new highly anticipated features include Printing, WebCam and Microphone support, custom right-click, rich text, HTML support and access to local files with trusted applications.

Check it out here

PDC 09 Videos
There are a ton of great videos on Silverlight and WPF 4.0.

Check them out here.

Resources from silverlight.net

Videos and Sample Code
This is a series of videos covering the top Silverlight 4 Beta features in more detail with available source sample code in C# and Visual Basic.

Visual Studio 2010 Beta 2

Visual Web Developer Express 2010 Beta 2

Silverlight 4 Beta Tools for Visual Studio 2010 This will install the developer runtime of Silverlight 4 Beta, the Visual Studio project support and the Silverlight 4 SDK.

Microsoft Expression Blend for .NET 4 Preview This is a preview version of Expression Blend that will enable authoring of Silverlight 4 Beta applications.

Silverlight Toolkit The toolkit has been updated to provide support for Visual Studio 2010 and Silverlight 4 beta development. The Toolkit provides numerous controls for your application and source code is also included for these controls using an Open Source license.

WCF RIA Services Microsoft WCF RIA Services simplifies the traditional n-tier application pattern by bringing together the ASP.NET and Silverlight platforms. The 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.

Online Silverlight 4 Beta Documentation

Offline CHM help Silverlight 4 Beta Documentation file download

Tim Heuer also has a great post here: Silverlight 4 Beta – A guide to the new features

Sticking it to the Man, Our Day will Come

Tuesday, 8 December 2009 12:35 P GMT-05
As I look out across the industry at what companies are doing to employees, at least in IT, what I see disgusted me. Many companies are not refusing to pay because they can’t; they are refusing to pay because they want to take advantage of the current economy. Fear is holding employees prisoner to job conditions they normally would have never seen.

Salaries are down 30%. They are paying 70k for 100k worth of work. All I can say is that their short sightedness and ignorance is going to come back to bite them in the butt, and hard.

Those companies cheap-ing out now are going to pay dearly in the future…. Salaries are down 30% (70k for 100k worth of work) now, but around the corner they will be up 40% (140k for 100k of work) and they won’t have any choice but to pay. You can’t get something for nothing, even when you have nothing to offer. So paying half price now is not getting these companies further ahead.

There will be several scenarios to watch when the economy comes back, none will be good for the company playing these games.

Those companies that could not normally afford to do the work they tried to pull off during these tough times by hiring expertise they usually would not be able to afford, will watch their project crumble as the experts walk out the door. They won’t be able to recover them because they won’t have the resources available to hire new experts. Those who can afford to do the work will watch their bitter experts walk out the door and then have to higher new experts at 1.4 times the rate in order to salvage their projects. That will not only cost them the higher salaries, but also the cost of transitioning the new teams on board.

There will be a lot of companies without the means to hire new talent period. Not only because they can’t afford it, but because the IT personnel numbers are dropping. It is no longer the field to go into. The glam days of the dot com boom have faded, and it is now being looked at as actual work. Most of the clowns who became self proclaimed programmers over night have gone back to bagging groceries.

The smart company would heed this warning, and start securing their talent now. They would step up and sacrifice now to make their IT experts happy. They won’t be there for long, and they soon won’t be replaceable. Of course, like a friend of mine pointed out, there is always the option of opening up the H1 flood gates again for those companies without the resources to hire local talent.

Two new video resources for learning Composite Application Guidance for WPF and Silverlight 3 (PRISM)

Monday, 7 December 2009 8:41 A GMT-05
There are 2 new video resources for getting your head around PRISM (patterns & practices Composite Application Guidance for WPF and Silverlight).

The first is John Papa's session from PDC 09, Advanced Topics for Building Large-Scale Applications with Microsoft Silverlight.

Below is the overview from the video page:
Come learn about Silverlight application development patterns such as composite applications with Prism, developing using the Model-View-ViewModel (MVVM) pattern, and methods of implementing large, modular, multi-page applications within your team. Hear about frameworks created to help assist in rapid development using these patterns without sacrificing good application development patterns.

Check the Advanced Topics for Building Large-Scale Applications with Microsoft Silverlight video out here.



The second is a new 10 part video series by Mike Taulty that he has posted to Channel 9.

Below is his summary found on the video pages:
In talking to customers building business applications with Silverlight I find that Prism (and it's friend Unity) is frequently mentioned but not everyone has seen it and so I thought I would explore it myself and capture some of the results of that exploration here.

We start off with some fairly basic code which we move towards making use of dependency injection and modularity;

* Part 1: Taking Sketched Code Towards Unity
* Part 2: Dependency Injection with Unity
* Part 3: Modularity with Prism
* Part 4: The Unity Bootstrapper

and then we move that code into the Silverlight world and try to illustrate some specific areas of Prism;

* Part 5: Moving to a Modular Silverlight Project
* Part 6: Shells, Regions, Views
* Part 7: Commands
* Part 8: Loosely Coupled Events with Event Aggregation
* Part 9: Sharing Data via Region Contexts

and then finally we try and bring some of these concepts together in a longer, more realistic example of a simple Email application built using the Prism framework - warning, this is a much longer session but I wanted something that draws things together;

* Part 10: A Larger Example: "Email Client"

The recommendation would be that you watch the 10 screencasts in order but if that feels like too long a process or if you're already very familiar with concepts like dependency injection and containers like Unity then perhaps watch the last screencast first and then refer back to the previous screencasts if certain areas need more illumination.

Check them out here.

Microsoft Application Architecture Guide 2nd Edition Book Review

Monday, 16 November 2009 2:39 P GMT-05
Man, was I glad to see them print this thing. I had bugged them about it, but they said it wouldn’t pay for itself. It’s good to see they changed their mind. I have been lugging it around in a binder, and that had been less than pleasurable.

I like keeping this with me because it serves as great reference of all the things I am supposed to remember, but often forget. When it comes time to begin a new architecture I like having my valuable books nearby, and this is one of them.

This book is packed with guidance on Mobile applications, Rich client applications, Rich Internet applications, Service applications, and Web applications built with .NET. The solution guidance provided in this book is all 100% .NET and Microsoft centric. It maps all the important aspects of software architecture to ways to implement them in .NET or with Microsoft products. This is the compass you need to find out what Microsoft has to offer for building different types of architectures.

The book includes individual chapters on designing Mobile applications, Rich client applications, Rich Internet applications, Service applications, Web applications, Hosted and Cloud Services, Office Business applications, and SharePoint LOB applications.

The book also includes some nice appendixes. They include the Microsoft Application Platform, Presentation Technology Matrix, Data Access Technology Matrix, Integration Technology Matrix, Workflow Technology Matrix, patterns & practices Enterprise Library, and a patterns & practices Pattern Catalog.

The book primarily focuses on architecture, but each chapter provides resources for guidance on the details of implementation for the technologies mentioned in that chapter.

The book focuses on the technical aspects of .NET architecture. It does not cover the soft skills needed to be an architect, or cover the customer facing skills need to communicate with the business stakeholders. You won't find much on process either, just an overview. These missing topics have not taken away from the book, they have made it a stronger book. There are plenty of resources on how to execute the soft skills and architecture process. This book concentrates on how to communicate with the development team through solid design and well known patterns and principles.

If you are a .NET Architect, Developer, or Project Manger of a .NET team, you should have this book at your side. As a matter of fact, I would recommend making one of your interview questions for your team members – “Tell me what your favorite part of the Microsoft Application Architecture Guide 2nd Edition is?” If the candidate does not have a favorite part, you get back that hour you almost wasted on them.