Saturday, December 27, 2008

Sharepoint

A SharePoint site is a Web site that provides a central storage and collaboration space for documents, information, and ideas. A SharePoint site is a tool for collaboration, just like a telephone is a tool for communication, or a meeting is a tool for decision making. A SharePoint site helps groups of people (whether work teams or social groups) share information and work together. For example, a SharePoint site can help you:

* Coordinate projects, calendars, and schedules.
* Discuss ideas and review documents or proposals.
* Share information and keep in touch with other people.

SharePoint sites are dynamic and interactive -- members of the site can contribute their own ideas and content as well as comment on or contribute to other people's.

Agile Methodolgoy

Agile
--------------------

Agile methodologies generally promote:
1)A project management process that encourages frequent inspection and adaptation;
2)a leadership philosophy that encourages team work, self-organization and accountability; a set of engineering best practices that allow for rapid delivery of high-quality software; and a business approach that aligns development with customer needs and company goals.
3)Agile chooses to do things in small increments with minimal planning, rather than long-term planning. Iterations are short time frames (known as 'timeboxes') which typically last from one to four weeks.
4)Each iteration is worked on by a team through a full software development cycle, including planning, requirements analysis, design, coding, unit testing, and acceptance testing when a working product is demonstrated to stakeholders
5)This helps to minimize the overall risk, and allows the project to adapt to changes more quickly. Documentation is produced as required by stakeholders.
6)Agile methods emphasize face-to-face communication over written documents. Most agile teams are located in a single open office to facilitate such communication. Team size is typically small (5-9 people) to help make team communication and team collaboration easier. Larger development efforts may be delivered by multiple teams working toward a common goal or different parts of an effort. This may also require a coordination of priorities across teams.

Silverlight

silverlight
---------------------------------
WPF is programmed with your favorite .NET language, Silverlight is currently programmed with JavaScript only (there's was talk of cross-platform .NET support coming)
Silverlight does not support some of the more advanced concepts of WPF such as controls, templating, 3D
Silverlight integrates right into an HTML page where as WPF XAML files have to be loaded via a frame if they want to mix with HTML content
Simpler security model for Silverlight vs. WPF XBAPs

Interface and Abstract class

If you anticipate creating multiple versions of your component, create an abstract class. Abstract classes provide a simple and easy way to version your components. By updating the base class, all inheriting classes are automatically updated with the change. Interfaces, on the other hand, cannot be changed once created. If a new version of an interface is required, you must create a whole new interface.


If the functionality you are creating will be useful across a wide range of disparate objects, use an interface. Abstract classes should be used primarily for objects that are closely related, whereas interfaces are best suited for providing common functionality to unrelated classes.

If you are designing small, concise bits of functionality, use interfaces. If you are designing large functional units, use an abstract class.
If you want to provide common, implemented functionality among all implementations of your component, use an abstract class. Abstract classes allow you to partially implement your class, whereas interfaces contain no implementation for any members.