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, February 28, 2006

Compact Framework 2.0 team needs to finish the .NET CF 2.0 release.

It is evident that the CF 2.0 team needs to be pulled out of whatever they are working on in WCF and come back to finish the .NET CF 2.0 release.

Windows Mobile Survey Results - Project "More Code!"

WSE 3.0 cannot be used with the Compact Framework 2.0 on Mobile 5.0 devices

Forum: Can WSE 3.0 be used used with the Compact Framework 2.0 on Mobile 5.0 devices?

.NET Compact Framework 2.0 Guidance and Documentation is Pitiful

No WS-* support forces the use of SSL

Forum: Can WSE 3.0 be used with the Compact Framework 2.0 on Mobile 5.0 devices?

Another blog on Windows Mobile Developer Survey Results: Project "More Code!"

I keep hearing "We are listening", but I think we've said enough that it is now time to start producing.

The Compact Framework 2.0 team needs to finish the .NET CF 2.0 release.

posted by tadanderson at 7:35 AM 0 comments

Monday, February 27, 2006

ASP.NET 2.0 “How do I?” videos on MSDN.

This is a nice set of videos to get up to speed on ASP.NET 2.0 new features quickly.

They include videos on:
-Data Access
-Master Pages and Site Navigation
-Membership and Roles
-Profiles and Themes
-Web Parts and Personalization
-Output Caching and SQL Cache Invalidation
-Partial Page Caching
-Localization
-Wizard and Validation Controls
-Tips and Tricks

posted by tadanderson at 9:53 AM 0 comments

Sunday, February 26, 2006

DNA, SOA, Software Architecture, VB.NET, CMMI, Agile Development - Doing what Microsoft does, not what they say to do…

We are in a new era of trying to figure out what Microsoft is doing. To do what they say to do can lead to trouble. The past has proven this.

I learned this lesson years ago when MS was preaching the DNA model for building applications. Microsoft never implemented DNA in their own applications they always used ISAPI filters written in C++. The reason for selling DNA is that it was what the development community was capable of handling. Visual Basic was what their developers used so they had to make that tool available. Microsoft ignored the internet when companies like Allaire were building for the internet. Microsoft basically took all their non internet ready applications and tied them together with ASP glue and said we are internet ready and our solution for you is DNA. Microsoft has final gotten around to adding ColdFusion tags to ASP.NET 2.0, that ColdFusion offered 6 years ago.

DNA and ASP has been attributed with building a lot of successful applications, but those applications for the most part are a conglomerate of spaghetti code and are maintenance nightmares. Back in the days of ASP 2.0 I always tried to sell my clients on ColdFusion, but they would usually never bite because of the upfront cost. I couldn't convince then that going with ASP and VB COM+ DNA would cost them much more in the long run because of it not being maintainable or modifiable. But they all did learn the hard way, and my predictions we never disproved.

Where we are now is in the middle of a landslide of Microsoft suggestions on how we should approach development with their tools and trying to discern which are valid approaches to development, which tools should be used, and which are marketing propaganda to keep the development community happy and in their corner.

Microsoft is not in the same boat as they were back in the ASP COM+ DNA days. But we are still finding some things coming out of their camp that are market driven instead of best practice driven. Some examples of this are there approach to VB.NET, MSF for CMMI, MSF for Agile development, and their current Mobile development improvements.

Microsoft pushed the VB 6.0 developer to move to VB.NET. It took me 6 months on a state project to convince them they should not be developing framework components with VB.NET. After a few iterations of development they felt the pain I pointed out that would come, and we switched to C#. The first move of a new CIO at a company I worked for that developed hospital software was to change all development to C#. That meant changing 14 different development sites world wide. He gave everyone 6 weeks to get up to speed. No one had to leave because they couldn’t pick it up.

I am a firm believer that all Enterprise level applications should be developed in C# and if needed C++. VB.NET is great for Rapid Application Development of front end applications. C# is geared to be a RAD code level development tool, where as VB.NET is geared to be a designer RAD development tool. VB.NET also enables the VB 6.0 developer to continue to develop in a non-OOP fashion by using extra VB namespaces provided by Microsoft that wrap other .NET namespaces. This allows for some very dangerous developing to take place when it comes to performance and coding best practices.

Microsoft of course says the languages are equal, but that was a marketing ploy to not loss their VB community of developers. Culturally however, in the architect and developer community, a framework coded in VB.NET such as we are trying to implement is not viewed as being very credible. I have seen more VB 6 developers develop unusable code in VB.NET, than I have seen successful development since .NET has come out.

In truth I would be quicker to hire a 5 year veteran of Java to code C# than I would be to hire a 10 year VB veteran to code VB.NET or C#. Java developers understand OOP, VB guys have been fooled into thinking that they understand it.

One important thing to consider is the fact that Microsoft uses C# to develop it's products. BizTalk is a perfect example. The new tools in BizTalk 2004 has been developed in C# by Microsoft. There is an excellent article in SD Times on C# this month called 'One Language to Rule them All: C#'. It is not available on line yet but soon will be.

Microsoft has been preaching MSF for years. Their latest incarnations are MSF for CMMI and MSF for Agile development. Putting together processes that you use is one thing, but is Microsoft using these processes? If so, to develop what? And what level of CMMI have they been certified for? I will be steering clear of these process implementations until that is revealed.
For more on my thoughts on Process see these blogs:
The Process Ladder- UP, RUP, EUP, PLE, & Never Neverland
VSTS 2005, DSL, and Software Architecture

It is going to be hard to decipher what MS is doing in house with their tools at this point in time because they are already ignoring this release of tools and are head full bore into their next release of tools to support Vista and WCF. I found this out the hard way when I starting looking for support on Mobile 5.0 for the WS-* specs. Here was some of that process:
No WS-* support forces the use of SSL
.NET Compact Framework 2.0 Guidance and Documentation is Pitiful
WSE 3.0 cannot be used with the Compact Framework 2.0 on Mobile 5.0 devices

In the end it seems we are stuck with whatever was released in the first release of .NET CF 2.0 and are now on hold waiting for their next platform.

Trying to weed through all the marketing driven releases from MS is not an easy task, but in the end it is something that always needs to be done. I will be waiting to use DSLs and Software Factories until I see the first product released from Microsoft that has fully used Software Factories to develop it. I have a feeling I will be waiting a while. And I am really not interested in seeing a Software Factory that implements Pet Shop. Until Microsoft is selling pets, Pet Shop is just another marketing tool.

posted by tadanderson at 8:59 AM 0 comments

Wednesday, February 22, 2006

No WS-* support forces the use of SSL

After trying everything possible to find a way to encrypt data on the mobile device in the same fashion WSE allows for desktop smart clients to encrypt data and avoid SSL, I can not find a solution solid enough to use.

We will move forward and test using SSL. If it is found to hinder performance to an unacceptable degree, we will return to investigating alternatives.

OpenNETCF SDF (Smart Device Framework) 2.0 is very far off from being a solution. They are missing 50% of the classes need to accomplish what they did with their SDF 1.4 in relation to WSE 2.0. By the time we get around to testing they may be further along.

Microsoft's CF team provided no guidance that was acceptable. If they didn't point to OpenNETCF, they pointed to home brewed samples that do not meet the level of quality we are trying to obtain. In short this response I got from one of the team members sums it up "We're working on the right level of WS-* support. Sadly, it didn't get done for V2."

Using the CryptoAPI would get very complex when it comes to complex types. Although CF 2.0 adds more support for Cryptography, it is still not ideal for what we are trying to accomplish.

It sad that we will have to remove WSE from our architecture and depend solely on SSL to encrypted data. After all the work that went into WSE it is beyond me why the WS-* support was completely over looked on the Mobile 5.0 platform and Compact Framework 2.0.

posted by tadanderson at 10:27 AM 0 comments

Sunday, February 12, 2006

.NET Compact Framework 2.0 guidance and documentation is pitiful.

.NET Compact Framework 2.0 guidance and documentation is pitiful.

Here is the FAQ's section of the .NET CF 2.0. Not much meat there.

I have ordered both Windows Mobile 5.0 Developer Resource kits and they just don't provide the guidance needed at a detailed level.

Here they tell you what is new in CF 2.0, but they don't show us how to use it ANYWHERE.

Here is the CF 2.0 Development center. Most of the information pointed to is out of date.

MS needs to step up to the plate and get some real world code samples out, especially on Web Services and Encryption. Mobile Smart Client Applications that do not use Replication or RDA will most likely be using web services to communicate, and there is very little guidance on how to accomplish that securely.

Here is an interesting side note- Security in Windows Mobile 5.0 Messaging Pack Disappoints

Everyone you ask for feature guidance points you to OpenNETCF, which I applaud on their efforts.

It would seem we need to wait until OpenNETCF gets done building and documenting the OpenNETCF Smart Device Framework 2.0 before we have a completed managed compact framework 2.0 for Mobile 5.0 devices.

posted by tadanderson at 10:11 PM 1 comments

Saturday, February 11, 2006

WSE 3.0 cannot be used with the Compact Framework 2.0 on Mobile 5.0 devices

With all of the PPC and Smart Phone development going on I find it insane that the Compact Framework doesn't take advantage of WSE 3.0.

There are a few options available to us, like http://opennetcf.org/ which just released beta1 of their library Smart Device Framework (SDF) 2.0. But why isn't Microsoft providing us with the tools we need to use their tools?

I posted to two Microsoft forums ( Here and Here) for feedback, but I just got pointed to OpenNETCF.

If Microsoft is going to make use depend on third parties for secure communication when using web services on smart devices, they should start getting involved with those third parties and put together some samples on how to use them correctly.

posted by tadanderson at 7:29 AM 0 comments

Sunday, February 05, 2006

Visual Studio 2005 Guided Tour

This site is a really great way to get familiar with Visual Studio 2005 features and capabilities. The site offers a tour of Visual Studio Professional and Visual Web Developer.

The Visual Studio 2005 tour includes:
IDE Enhancements
where new productivity features such as Snaplines, the Class Designer, SmartTags, Edit and Continue and various other new and improved IDE enhancements.
Language Enhancements where C#, VB, C++, and J# all receive individual focus in key areas of the tour where you can learn about new feature improvements such as Generics, Iterators, My, and various other language improvements.
Smart Client Development technologies including Windows Form development, .NET Compact Framework development, and Visual Studio Tools for Office development.
The Visual Web Developer includes:
SQL Express
Building Web Sites
Creating a Web Site
Adding a Web Page
Adding a Page Load Event Handler
Working with HTML
Data Bound Controls
Adding a GridView Control
Examining a SQL Data Source
Binding Data Bound Controls
Examining the HTML
Object Data Binding
Adding a Data Layer Class
Configuring the Object Data Source
Consuming the Object Data Source
Adding Update Functionality
Master Pages
Master Pages Overview
Creating a Master Page
Setting Up the Menu Control
Adding a New Page that Uses the Master Page
Converting an Existing Web Page to Use the Master Page
Page Output and SQL Dependency Caching
Overview
Page Output Caching
Setting Up SQL Server 7/2000 Dependency Caching
Using SQL Server 7/2000 Dependency Caching
Using SQL Express Dependency Caching
Authentication and Authorization
Overview
Setting Up the Login User Interface
Using the Web Site Administration Tool
Running Your Secure Site
Web Parts
Preparing to Add Web Parts
Adding Controls To Web Zones
Adding Editor Zones
Adding Catalog Zones
Geek Speak Sample Application

posted by tadanderson at 3:22 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