14 January, 2010

Are you really know how to program in .NET?

Have been interviewing many .NET developers/programmers/analysts recently, to be honest, many of them are below average. I've consolidated some essential .NET development materials and resources on the web for those who keen on learning software development:

Overview of the .NET Framework : Entry ticket please. Framework architecture, Common Language Runtime, Common Type System, Class Library, Guidelines and Best Practices ...

C# Programming Guide & C# Language Specification 3.0 : Arrays, Strings, seems easy? Not quite. Generics, LINQ Query Expressions, Lambda, Iterators, Collection, Threading, Reflection ...

Design Guidelines for Class Library Developers : Good codes, bad codes. That makes a difference.

ASP.NET and Visual Web Developer : How to build an advance ASP.NET web site. What's more? Web Services, AJAX, Model View Controller (MVC)

Improving .NET Application Performance and Scalability : The need of speed.

Microsoft Data Development Technologies At-a-Glance : At the end of the day, data is what you really concern. So, how to access data is critical.

Microsoft Application Architecture Guide : For developers or solution architects to design and build effective, high quality applications. It provides guidance for using architecture principles, design principles, and patterns that are tried and trusted.



How to measure your web site?

Measuring web site traffic and marketing effectiveness is hard and often ignore during software development. Some web analytics software provide extensible solution with a consolidated view of visitor interactions. Omniture and Google Analytics are the enterprise-class web analytics solution that gives you rich insights into your website.

Quote: "Free product offerings are tempting, and a good learning tool, but strategic initiatives with an opportunity for large gains in site yield should choose commercial products." "Narrow a shortlist of Web analytics vendor choices to those that answer the big question, which is software as a service (SaaS) or on premises, then concentrate on price, support and "ecosystem" partners."



Other players: CoremetricsUnica, Webtrends

Read more:
The Interactive Marketing Metrics You Need - Forrester Research
Key Challenges in Web Analytics, 2009 (PDF)

12 January, 2010

Flash vs Silverlight

Still enterprises are still prefer Flash than Silverlight at the moment. But Silverlight has been greatly improved in these few years. Have a look:


Flash vs Silverlight Gallery
(you will be more interested in this comparison)

Silverlight Showcase

Silverlike

Designing a Knowledge Management System

In the past four years, I've managed to implement for about 3 Knowledge Management Systems in 3 large listed enterprises, one is a railway company, one is a sport company and the other is an international sourcing and retail company. I want to share my view on the succeed factors of building a KM system in a real world:
  • Sell it as a corporate-wide initiative and secure funding and supports from top management
  • Select a group of KM champions in every business unit
  • Choose a right software platform
  • Design a simple document taxonomy
  • Build a community of practice
  • Connecting people using web 2.0 technologies
  • Keep the content of KM portal flash and up-to-date


A knowledge handbook of a great KM project in Hong Kong.

Critical-Thinking Questions [1]
  • Why would a company need a system for managing knowledge?
  • How is knowledge managed at your organization? Is there a centralized repository in place, or do you engage in impromptu sharing?
  • How would you organize your project documentation, so that it is convenient for you?
  • How do you see your company's business processes changing, if you implemented a knowledge-management system?
  • For a knowledge-management system to be successful, the technical architect should select the KMS based on what criteria?
  • What is the ROI of the knowledge-management system? How would you go about measuring it?

Articles on KM:
Architecting a Knowledge-Management System [1]
Six ways to make Web 2.0 work


Model View Controller (MVC)

I had a long discussion with a friend of mine on applying Model View Controller (MVC) in modern web application development. My view to the value of this design pattern is: It depends!

You can read more about MVC on ASP.NET MVC , MSDN, Java Patterns or a pet shop example.

.

SharePoint development patterns and practices

The Developing SharePoint Applications guidance helps architects and developers design and build applications that are both flexible and scaleable.
http://msdn.microsoft.com/en-us/library/dd203468.aspx

The TechNet best practice resource centre is another good resource.
http://technet.microsoft.com/en-us/office/sharepointserver/bb736746.aspx

Or checkout my SharePoint reading list:
http://delicious.com/paulabraham/sharepoint

.

11 January, 2010

The Practice of Design

Our customer says: “I want our new system to have a response time of no more than two seconds!!”
Our IT Director says: “We must cut cost!! All new development efforts must fit within our existing environment, using existing tools.”

We have faced these challenges many times and are used to design challenges that have both stringent customer requirements and built-in IT constraints due to existing environment or technology realities.
So what do you do in such cases? You dig deep and become very creative. You pull out all your design skills. What does that mean? If you are like us, you have a solid foundation in design methodology, you have strong technical skills, and you have wellhoned ‘people skills’ like negotiating and communicating. Then, you put them all together and get to work!

As Architects, we have found that in order to meet the challenges placed on us by both the customer and our Information Technology leadership, we must understand the whole system of interconnected elements that participate in, impact, and influence the design process. The scope of a software architect’s world is awesome, as the breadth of experience documented in this book demonstrates...

Extract from ITABOK.

.

Becoming an Architect in a System Integrator

So inspired by Amit Unde after reading this article.

...

Being an architect is tough! What architects do is a mystery to much of the world; this is hardly surprising, because an architect's work is intangible—"thought-ware," if you will—and it happens in the background. That makes many wonder about the architect's role in an organization. Architects interact with many stakeholders—CIOs, project managers, business users, and developers—and each expects them to work differently. While the CIO expects an architect to derive a solution road map for implementing the company's IT vision, the developer expects the architect to provide direction on the technical problem. The architect needs to have a bird's-eye view in one scenario, while in some other scenarios, the architect needs to dive deep into the problem area. The architect is expected to be both a generalist and a specialist.

Many companies try to reduce the ambiguity by introducing different flavors of the role, such as enterprise architect or solution architect. Ironically, differentiation within the role can add to the confusion since there is no standardization of the designations across companies. Let's find the commonalities and define these different flavors of the role.





Read more here: http://msdn.microsoft.com/en-us/architecture/cc505970.aspx

.

01 November, 2006

Developer maps for Office, SharePoint and InfoPath



You can download them via:
http://www.microsoft.com/downloads/details.aspx?FamilyId=771AEB45-9D27-4D1F-ACD1-9B950637D64E&displaylang=en.

ASP.NET AJAX

ASP.NET AJAX is a free framework for quickly creating a new generation of more efficient, more interactive and highly-personalized Web experiences that work across all the most popular browsers.

Read the
ASP.NET AJAX Showcase

This is a cool site developed using ASP.NET AJAX
http://www.pageflakes.com/

Microsoft is spending lots of $$$ on catching up these Web 2.0 things. I guess more will come soon :)