Tuesday, December 16, 2008

Unwired discount coupons

Feel free to use the Unwired discount coupons worth $30 on a new Unwired Wireless modem or wireless card! 



FR-6R55-8FVD unused
FR-8LH3-PUYF unused
FR-BXDF-2EQG unused

Monday, December 8, 2008

Validation of viewstate MAC failed error

If you have experienced this issue and you are not running in a web farm environment, this is a nice article which explains the issue and tries to solve it.

http://blogs.msdn.com/tom/archive/2008/03/14/validation-of-viewstate-mac-failed-error.aspx

Wednesday, July 2, 2008

Scenario Driven API Design

I am entrusted with the task of designing a new API for our flagship product Elcom's Community Manager

This New API was primarily intended to help clients to extend the community manager and use its feature rich cms functionality and help developers to reduce their development time.

API cannot be changed and any change would be a breaking change so OOP and other design patterns are not the best solution when it comes to designing api's.

I started the project by putting myself into the user shoes and there by writing code samples.

This scenario is called as Scenario driven design and is better suited to API development

Some of the guidelines of this design

1. Simplicity
Code Samples (start api design by writing code samples).

Structuring Hierarchial Namespace to organize information and enable people to find types.

Advanced and complicated scenario must be simplified if not better avoid them in the API.

Wise use of exceptions messages (Use exception messages to communicate framework usage mistakes to the developer)

Allow Progressively Learning for developer

2. Know your User

a. Think that User has very limited capability and make things easy
b. If user easily gets into trouble using the api then we have failed.
c. User should be able to start programming reading none or very little documentation
d. Create - Set - Call Pattern is preferred even by advanced developers so this should be the standard
. Create Instance using default empty constructor
. Set Properties
. Call Methods
e. Speak to the user and understand requiments (Requirements scoping)
f. Make other dev teams use the API and request feedback.

3. Think Development Ecosystem

Intellisense
Avoid Generic Names like message, element, log etc may cause ambiguous reference conflicts
Consistency (All Types should have a similar pattern)
No Hungarian casing like CMArticle , CMFolder etc.

Method vs Properties

Use Properties

If the member logical attribute of the type

Use Methods

If Order of execution is important use method

If member returns an array

If method might not return immediately

Wednesday, June 11, 2008

Databinding in silverlight 2

Noticed a nice databinding article today on simple-talk newsletter by John Papa
This is a nice one for developing applications using silverlight.
http://www.simple-talk.com/dotnet/.net-framework/data-and-silverlight-2-data-binding/

Here is another nice one for making waiting pages.. when your page is big or heavy while it takes the time to load.

http://www.simple-talk.com/dotnet/asp.net/implementing-waiting-pages-in-asp.net/

Wednesday, June 4, 2008

CAML Queries in Sharepoint

CAML Queries in sharepoint

Looking for a way to filter lists in sharepoint, then caml will come to your help.

Complex CAML Queries such as the following can be made:

<view><query><orderby><fieldref name="Event_x0020_Date" ascending="TRUE"></orderby><where><or><eq><fieldref name="Lookup_x0020_Status"><value type="Text">{all}</value></eq><and><and group="true"><eq><fieldref name="ATS_x0020_Status"><value type="Text">Active</value></eq><or><contains><fieldref name="Title"><value type="Text">{k}</value></contains><contains><fieldref name="Event_x0020_Description"><value type="Note">{k}</value></contains></or></and><and group="true"><eq><fieldref name="Lookup_x0020_Status"><value type="Text">Active</value></eq><or><contains><fieldref name="Lookup_x0020_Description"><value type="Note">{k}</value></contains><contains><fieldref name="Title"><value type="Text">{k}</value></contains></or></and></and></or></where></query></view>

Here is a nice msdn example.. http://msdn.microsoft.com/en-us/library/ms196939.aspx

and can only be used to compare 2 boolean expressions. Doing otherwise results in a runtime error in Sharepoint Services (described by the ever-helpful "Cannot complete this action. Please try again." message).





If you would like to do some advanced filtering it is better to get a Caml Viewer Tool such as stramitCamlViewer.












Using sharepoint designer to group Filters is the best way of grouping filters for doing some simple grouping.

It would be great if microsoft can provide a advanced filtering option in the future sharepoint releases.



Hope this helps.








Tuesday, May 20, 2008

Nice silverlight 2 Developer Video's

For those of you who weren’t fortunate enough to go to REMIX 08

(~50) set of Screencasts on Silverlight 2


http://www.mtaulty.com/SLVideos.html



Monday, May 12, 2008

Looping image array and displaying them in sharepoint


Hi Guys,

Here I am going to look at XSLT Transformation and how to display a number of images like the following
I have a page in Sharepoint where i am trying to display a array of images.
I need to use XSL transformation to make this work using sharepoint designer.
There is a @CompanyLogos Column(Lookup column with multiple values to a picture library image list) in my custom list.

On the sharepoint page... call the template by passing in the value (@CompanyLogos= a.gif;b.gif;c.gif)

Click to preview

Here is the definition for Template

Click to preview

I found this template here
http://www.stylusstudio.com/xsllist/199908/post40580.html