tag:blogger.com,1999:blog-359745852024-03-06T15:43:13.906+11:00SharePoint+CRM SixJournal from a SharePoint, CRM, .NET and Microsoft Technologies EnthusiastDouglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.comBlogger87125tag:blogger.com,1999:blog-35974585.post-86842794136772291292013-02-12T15:43:00.001+11:002015-01-19T17:32:53.781+11:00Social Business and Mobility: How can mobility contribute to social business?<span style="font-family: inherit;">This is an article also published by the same author at:<br /><a href="http://www.uniqueworld.net/blog/mobility-contribute-social-business/">http://www.uniqueworld.net/blog/mobility-contribute-social-business/</a><br /> </span><br />
<hr />
<span style="font-family: inherit;">Two of the hottest trends right now are <span style="color: blue;"><span style="color: black;">social
business</span></span> and mobility. </span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">When people
talk about social business, most often the first thing that springs to mind is:
How do you create a tool that reaps the same benefits as Facebook, Google+ and
Twitter? </span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">In terms of
mobility, the issue becomes: How can mobility contribute to the benefits of
social business? </span><br />
<span style="font-family: inherit;"></span><br />
<div style="text-align: left;">
<span style="font-family: inherit;">When you look at the </span><a href="http://infographiclabs.com/infographic/facebook-2012/" target="_blank"><span style="color: blue; font-family: inherit;">statistics for
Facebook</span></a><span style="font-family: inherit;">, there is a rapidly growing trend for users to
access via mobile. In fact, in 2012, of the 845 million Facebook users, 425
million are mobile users. That is 50.3%! </span></div>
<span style="font-family: inherit;"></span><br />
<div style="text-align: center;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1wJcof_72quavZJJbTaiBSRUpZ_ZtDpX60w8wfdmj0N_aKjIhgaUy4-e8jK-mUhlJ9KGEZw-08IZO9rT7WbliKEGuG5BSqpJzUYO9PF5FBZAG0JkBuYVMo9mNXkf9jRS75QKQJw/s1600/fb2012_960px.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1wJcof_72quavZJJbTaiBSRUpZ_ZtDpX60w8wfdmj0N_aKjIhgaUy4-e8jK-mUhlJ9KGEZw-08IZO9rT7WbliKEGuG5BSqpJzUYO9PF5FBZAG0JkBuYVMo9mNXkf9jRS75QKQJw/s1600/fb2012_960px.jpg" /></a></div>
<br /></div>
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">But just how big is this
trend? According to a </span><a href="http://www.morganstanley.com/institutional/techresearch/pdfs/Internet_Trends_041210.pdf"><span style="color: blue; font-family: inherit;">prediction by
Morgan Stanley in April 2010</span></a><span style="font-family: inherit;">, the number of mobile users will surpass desktop
users in 2014. With an explosion in enabling technologies from Apple (iPads,
iPhones), Google (Android OS), and Microsoft (Windows 8, Windows Phone 8), I can
only see <em>even greater acceleration</em> in the adoption of mobile
technologies.</span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">These
consumer trends will have an impact on how we work in the enterprise. The
question is <em>HOW will it</em> <em>impact</em> the
enterprise?</span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">This YouTube
presentation provides an eye-cathing overview of the growth in mobile phones to
the end of 2012.</span><br />
<span style="font-family: inherit;"></span><br />
<a href="https://www.youtube.com/watch?v=0aUQLIPdtg8">https://www.youtube.com/watch?v=0aUQLIPdtg8</a><br />
<br />
<span style="font-family: inherit;">I should
now explain what I mean by social business and mobility.</span><br />
<span style="font-family: inherit;"></span><br />
<strong><em><span style="font-family: inherit;">Social Business?</span></em></strong><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">Social
Business is all about revolutionising how companies operate and bringing value
to all employees, customers, partners, suppliers and stakeholders. It is about
bringing together, connecting and engaging both internal and external
individuals of an organisation to form an ecosystem. It requires an organisation
to implement strategies, processes and tools to achieve the level of engagement
from all parties in order to optimise the value that is generated.
</span><br />
<span style="font-family: inherit;"></span><br />
<strong><em><span style="font-family: inherit;">Mobility?</span></em></strong><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">No, I do
not mean traveling on a motorised scooter! I’m actually referring to mobility in
terms of accessing information from various portable devices at any time.
</span><br />
<span style="font-family: inherit;"></span><br />
<strong><span style="font-family: inherit;">So
how does mobility assist in social business? </span></strong><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">Many of us
have already adopted mobile technology like smart phones and tablets outside of
work, and have got used to accessing cool apps that allow us to do things such
as reading about our friend’s cat or their unusual interests. But when we take
these devices to work and expect to do the same, we find we access can’t access
information in the same way on mobile devices at work. </span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">The main
benefit of mobility for organisations is it accelerates adoption and provides
agility, bringing additional value to existing applications and information.
Mobility also comes with other benefits:</span><br />
<span style="font-family: inherit;"></span><br />
<ul><span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;"><em>Agility</em>: Mobile devices (Smart Phones and
Tablets) enable individuals to stay connected any time, wherever they
are.
</span>
</li>
<li><span style="font-family: inherit;"><em>Additional access channels</em> (Mobile
access): Mobile devices offer a convenient alternative for individuals to
connect.
</span>
</li>
<li><span style="font-family: inherit;"><em>Ease
of access</em>: Mobile devices are always on, and mobile applications are
lightweight, easy to use.
</span>
</li>
<li><span style="font-family: inherit;"><em>Low
cost</em>: Mobile applications are relatively easy and quick to
develop.
</span>
</li>
<li><span style="font-family: inherit;"><em>Sensor
packed</em>: Mobile devices contain many built-in capabilities that desktops do
not always have (geolocation sensors, gyroscopes, cameras, microphones, NFC, and
more). These added capabilities can come in handy for an
organisation. </span></li>
<span style="font-family: inherit;">
</span>
</ul>
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">Mobility
however comes with some risks in areas such as:</span><br />
<span style="font-family: inherit;"></span><br />
<ul><span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;"><em>Security:</em> Mobile devices are
unfortunately easier to lose, vulnerable to hacking and viruses. They contain
so many apps (and information with it) that can be accessed without a password,
they suddenly becomes a risk in the eyes of the IT department.
</span>
</li>
<li><span style="font-family: inherit;"><em>IT
governance:</em> Because of the security risks involved, IT departments want to
introduce policies to control the security on mobile devices. Fortunately,
mobile platforms are acknowledging the need for governance and introducing
features to help in this regard.
</span>
</li>
<li><span style="font-family: inherit;"><em>Privacy:</em> This is a difficult one. Mobile
devices by nature are designed to be used anywhere. When sensitive information
is viewed in public areas, will this pose an issue to your organisation?
However, if your organisation’s social tools are opened up to people outside the
organisation, does it still pose such a threat? </span></li>
<span style="font-family: inherit;">
</span>
</ul>
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">With each
benefit it brings, mobility introduces risks, but many can be mitigated with
appropriate measures.</span><br />
<span style="font-family: inherit;"></span><br />
<strong><span style="font-family: inherit;"><em> So, who are the main players that offer mobility
for the enterprise?</em> </span></strong><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">Currently
in the market there are a number of social tools available for the enterprise.
Most social mobile apps extend access to enable users to join communities, micro
blog, view activity streams, and more. The point here is all these apps aim to
increase engagement with more ease.</span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">The main
players in the mobile social space are:</span><br />
<ul><span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;">NewsGator</span></li>
<span style="font-family: inherit;">
</span><br />
<li style="text-align: left;"><span style="font-family: inherit;">Jive</span></li>
<span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;">Telligent </span></li>
<span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;">Yammer</span></li>
<span style="font-family: inherit;">
</span></ul>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.newsgator.com/"><span style="font-family: inherit;">
<img alt="Newsgator" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi29Vj-Py3SIBrpqXo8M1e5Jtewc0wx47h1kJW8beAI-ylLb0VkVW_IKuzSx9e3iJuGqdBTj7m7Xs3iPrTUApzBvSH_vnSdPTNJD7VyO97gZgVOR02aLZsCcDlSTThvfYMYPd-A7Q/s1600/Newsgator-logo.png" title="Newsgator" /></span></a></div>
<span style="font-family: inherit;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.newsgator.com/Portals/0/Resources/Mobile-Datasheet-NewsGator-103111.pdf" target="_blank"><span style="font-family: inherit;"><img alt="Newsgator Mobile App" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhF_Bl9jEID9AWvuLzA2FMm9gq-2bOvhnDe5NwsOPS5fk1k2iCwvCSGvlU3HoLF3of7Hh_J5Qn7Q-FIAbnfyQOCGGLA3WyN5X21tIupW77zlRE_1SllpIXKBruCIy8zazlUTVOcGQ/s320/Newsgator-social-e1346134426890.png" height="152" title="Newsgator Mobile App" width="320" /></span></a></div>
<span style="font-family: inherit;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.jivesoftware.com/" target="_blank"><span style="font-family: inherit;"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHdwz9DuQgTwGTMTVhTbwsurPKW5iq0N3Ufr3bJpHhRLb84onwU9wreGITVQZFxoYqURNw8c76RR0HKIQes2203HLNXl4Nl_1LvD2m20OpoCwoHgZdU6TnsJriN39uqATykMiYBQ/s1600/jive-logo-e1346135629902.jpg" title="Jive" /></span></a></div>
<span style="font-family: inherit;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.jivesoftware.com/social-business/solutions/social-intranet/features" target="_blank"><span style="font-family: inherit;"><img alt="Jive iPad Add" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnKVIeWf5urPoVRkxmrsb-AEeO-RTPLVKAKKxsnWijvgqPMWWKvekzdo2JlZfL8XVvftR9kfOslQrV1E_-oeW4BF8ni0zLMNEt9OzHFSmE_Hg5zcBNdawlb763sTWSDMEUxcRCaw/s320/jive-e1346134502237.png" height="179" title="Jive iPad Add" width="320" /></span></a></div>
<span style="font-family: inherit;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://telligent.com/support/telligent_evolution_platform/community/w/community6/version-comparison-for-telligent-evolution-mobile-and-telligent-community-mobile.aspx" target="_blank"><span style="font-family: inherit;"><img alt="Telligent" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirgXCAluaUpI3FFToP5fVIkMT0q3UvsbWBuPiY1dfwuJCsq2MdcXvH00CqhBisjY0Bod82PcHcS2M68hwQYIyMZb0IqqdvQYgTcS6fZMGJHyOjmlzKuIwaBPAC-HqH-5e3j3yIRg/s1600/telligent.png" title="Telligent" /></span></a></div>
<span style="font-family: inherit;"></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.yammer.com/"><span style="font-family: inherit;"><img alt="Yammer" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAGGX_K-CRX5e6XycOt9SZQZOawvHbciMCyE5R5xfRC7YG62rg4fn5ggt5l9HZm0jlZCUwRbOcvI9V1kjbDNx0HBpBCnTY3l1TFufrc51AgAzuttfmJhLDkj0X_p-xouOl6nSLDw/s1600/yammer-e1346134598524.png" title="Yammer" /></span></a></div>
<a href="http://www.yammer.com/" target="_blank"><span style="font-family: inherit;"></span></a><br />
<span style="font-family: inherit;"></span><br />
<strong><span style="font-family: inherit;"><em>What can we do with social business and mobility?</em></span></strong><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">Besides
these pre-baked mobile apps, your organisation may need to extend other social
applications as mobile apps (crowdsourcing or mining information from social
responses, etc). </span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">Regardless
of what mobile apps are available or possible, it is important not to get lost
in the hype and excitement. It is important to understand how it will assist
your organisation to achieve its strategic goals.</span><br />
<span style="font-family: inherit;"></span><br />
<span style="font-family: inherit;">Ask the
business:</span><br />
<ul>
<li><span style="font-family: inherit;">What is
the purpose?
</span>
</li>
<li><span style="font-family: inherit;">How will
it bring value?
</span>
</li>
<li><span style="font-family: inherit;">What are
your goals?
</span><br />
<ul><span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;">Improve
communication?
</span>
</li>
<li><span style="font-family: inherit;">Improve
engagement?
</span>
</li>
<li><span style="font-family: inherit;">Improve
efficiency?
</span>
</li>
<li><span style="font-family: inherit;">Improve
access?
</span>
</li>
<li><span style="font-family: inherit;">Improve
productivity?
</span>
</li>
<li><span style="font-family: inherit;">Increase
lead generation?
</span>
</li>
<li><span style="font-family: inherit;">Reduce
communication costs? </span></li>
<span style="font-family: inherit;">
</span>
</ul>
</li>
</ul>
<span style="font-family: inherit;">
</span>
<span style="font-family: inherit;">
</span><br />
<br />
<li><span style="font-family: inherit;">Who is the
audience?
</span><br />
<ul><span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;">Customers?
</span>
</li>
<li><span style="font-family: inherit;">Sales
people?
</span>
</li>
<li><span style="font-family: inherit;">Executives?
</span>
</li>
<li><span style="font-family: inherit;">Ground
staff?
</span></li>
<span style="font-family: inherit;">
</span>
</ul>
</li>
<span style="font-family: inherit;">
</span><br />
<br />
<li><span style="font-family: inherit;">What is
the business trying to achieve through social business?
</span><br />
<ul><span style="font-family: inherit;">
</span><br />
<li><span style="font-family: inherit;">Is it to
empower your mobile workforce with access to the tacit knowledge?
</span>
</li>
<li><span style="font-family: inherit;">Is it to
make it easier to find the right matter expert? </span></li>
<span style="font-family: inherit;">
</span>
</ul>
</li>
<span style="font-family: inherit;">
</span><br />
<br />
<li><span style="font-family: inherit;">How can
mobile access help contribute to these goals?
</span>
</li>
<li><span style="font-family: inherit;">What are
the common daily processes and tasks?
</span>
</li>
<li><span style="font-family: inherit;">How do
people currently use their mobile devices for work? </span></li>
<span style="font-family: inherit;">
<br />
I’d advise
organisations not to get mobility tools for the sake of having the latest and
greatest. Rather, they should focus on the purpose and role of mobile access in
social business. Think how mobility can help deliver benefits to the
organisation, then then think how mobility can contribute to social business.
<br />
<br />
<br />
</span><br />
<br />
<br />
<div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-88175770950166767982012-10-29T00:36:00.000+11:002012-10-29T00:36:35.480+11:00Windows 8 - Where did my Hibernation option go? How to get the Hibernation option back in Windows 8.So you've upgraded to Windows 8, all is good until you try to hibernate your Windows 8 PC. By default the hibernation option is disabled.<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkw0GtRXXN9iAvdsLLJzzmhxLVZv8EhQOdOoEDXtqn0dVbwdeIoNakVnlM3B6D31Pdtw4E7AiuRUHK9bzvCHm9uWwc8ThdDsCUdNHCnZDVkRXizM7bam7QB7Z1I-uUjkNGXfX-A/s1600/2.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em; text-align: left;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkw0GtRXXN9iAvdsLLJzzmhxLVZv8EhQOdOoEDXtqn0dVbwdeIoNakVnlM3B6D31Pdtw4E7AiuRUHK9bzvCHm9uWwc8ThdDsCUdNHCnZDVkRXizM7bam7QB7Z1I-uUjkNGXfX-A/s1600/2.png" /></a></div>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Mz0qeUhJgyoeJjR7IPCCJpBwqElx71mhidI4xzJhmnEdSWi1nYoWjXreG07ZZYzF8JXX_AYLi4VUOiXDmzYm1EFlkR2xp9oFYUeBfaj389_IPoV3bMbiYgP-zXMRv7qrzPe5tA/s1600/1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1Mz0qeUhJgyoeJjR7IPCCJpBwqElx71mhidI4xzJhmnEdSWi1nYoWjXreG07ZZYzF8JXX_AYLi4VUOiXDmzYm1EFlkR2xp9oFYUeBfaj389_IPoV3bMbiYgP-zXMRv7qrzPe5tA/s1600/1.png" /></a><br />
<br /><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
To get the Hibernation option back, follow these steps:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
1. Open up <b><i>File Explorer</i></b>.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyM7JuM86tcaxBvwoA_UAC5zvYC95LQDX9rxGpPerEtxAcx5QYHI5FkoE2MzEbbjRfeKt60p-ngQ30SGaie5DTe381eMRGRWpvNf7nfKEyg9oEuvxHzNHzlQz2DT7xixcyJFJGxw/s1600/a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="119" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyM7JuM86tcaxBvwoA_UAC5zvYC95LQDX9rxGpPerEtxAcx5QYHI5FkoE2MzEbbjRfeKt60p-ngQ30SGaie5DTe381eMRGRWpvNf7nfKEyg9oEuvxHzNHzlQz2DT7xixcyJFJGxw/s320/a.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
2. Click <b><i>Computer</i></b> (from the left) and then click "<b><i>Open Control Panel"</i></b> from the <b><i>Computer</i></b> ribbon.</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Lpk6HeGuCWhX5vEi5BuPxlKY3M-7mwk-drgyUl12JB_CNagh3nCMY4soPycmcWoSCuq2QMv4it6vvRsQ_jYoYtcIIX4eXhdZU3Hd2yo6BnNMmpaaDo4MPQEojAg1vqrZmdL_ig/s1600/b.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="274" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7Lpk6HeGuCWhX5vEi5BuPxlKY3M-7mwk-drgyUl12JB_CNagh3nCMY4soPycmcWoSCuq2QMv4it6vvRsQ_jYoYtcIIX4eXhdZU3Hd2yo6BnNMmpaaDo4MPQEojAg1vqrZmdL_ig/s320/b.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
3. Open "<b><i>Power Options" </i></b>from the "<b><i>Control Panel Items"</i></b> window.</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0TI2zPvqX6xjEnbghgp45Qmc5nW3xuwLeDUNVlboChux3ymZt0MpSXCbXci9S_IvaYSBTdtQYvq2iu_N34QMOcncFnb81xIZTmH5e1R7AqhUBFTUSOZyKBu7VXWzOm7s9WvSgQg/s1600/c.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="208" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0TI2zPvqX6xjEnbghgp45Qmc5nW3xuwLeDUNVlboChux3ymZt0MpSXCbXci9S_IvaYSBTdtQYvq2iu_N34QMOcncFnb81xIZTmH5e1R7AqhUBFTUSOZyKBu7VXWzOm7s9WvSgQg/s320/c.png" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Click "<b><i>Choose what the power buttons do"</i></b> option from the left.</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2yLePr8Akyce26samufvA52iWwtx_p6gtev9WI-LkkUMWCmo_9VFjmZ-uw4VtWz0ZmBDIf4gNK_0OYVrKqIVhwwJR8WDqxhPJ49UQ7KdTHzC-Y15HLcqWR7-_Ng5auRRoNDKgVw/s1600/e.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="238" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2yLePr8Akyce26samufvA52iWwtx_p6gtev9WI-LkkUMWCmo_9VFjmZ-uw4VtWz0ZmBDIf4gNK_0OYVrKqIVhwwJR8WDqxhPJ49UQ7KdTHzC-Y15HLcqWR7-_Ng5auRRoNDKgVw/s320/e.png" width="320" /></a></div>
<br />
5. Click "<b><i>Change settings that are currently unavailable"</i></b> option from the left (if it appears).<br />
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjddRYz9f4SIOZs19FmV1adBPjAHkVOVS2ItBSeFztdscuhVMEccvJwnVc9MRE2r9S9qNPuJlxW1DAUMhoPBDKtzrrFYTq7lhWfxgP0yT9t8RwL0oQFHYSZcdZ-FL9P1kD3poj92g/s1600/f.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjddRYz9f4SIOZs19FmV1adBPjAHkVOVS2ItBSeFztdscuhVMEccvJwnVc9MRE2r9S9qNPuJlxW1DAUMhoPBDKtzrrFYTq7lhWfxgP0yT9t8RwL0oQFHYSZcdZ-FL9P1kD3poj92g/s320/f.png" width="284" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Tick the check box adjacent to "<b style="font-style: italic;">Hibernate" </b>and click <b style="font-style: italic;">"Save Changes"</b>.</div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Q0oeEy_6PftEOg2vZmmgTQId4oEh7z_9El5FU2ThxIpL7jlysUT6w5PO3sTjf2ceuFfkLUb-63ihkiHFWyg64CGTtqlzkHl_Zk_uKJY-RhMcKLJ8Ba8DtIDUf1GSly4HA_KANQ/s1600/g.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_Q0oeEy_6PftEOg2vZmmgTQId4oEh7z_9El5FU2ThxIpL7jlysUT6w5PO3sTjf2ceuFfkLUb-63ihkiHFWyg64CGTtqlzkHl_Zk_uKJY-RhMcKLJ8Ba8DtIDUf1GSly4HA_KANQ/s320/g.png" width="284" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Your power menu options should now look like this:</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkw0GtRXXN9iAvdsLLJzzmhxLVZv8EhQOdOoEDXtqn0dVbwdeIoNakVnlM3B6D31Pdtw4E7AiuRUHK9bzvCHm9uWwc8ThdDsCUdNHCnZDVkRXizM7bam7QB7Z1I-uUjkNGXfX-A/s1600/2.png" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJkw0GtRXXN9iAvdsLLJzzmhxLVZv8EhQOdOoEDXtqn0dVbwdeIoNakVnlM3B6D31Pdtw4E7AiuRUHK9bzvCHm9uWwc8ThdDsCUdNHCnZDVkRXizM7bam7QB7Z1I-uUjkNGXfX-A/s1600/2.png" /></a></div>
<br />
<br />
<br />
<br /><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-15671816213763640562012-05-11T00:04:00.004+10:002012-05-11T00:04:51.661+10:00SharePoint 2010: Using the SharePoint Client Model to populate a jQuery AutoComplete box<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Intro</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">It's been a while since I did some coding - I've been playing more of a Business Consulting role, but sometimes still get to have some fun :)</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">My favourite thing about jQuery, is the jQuery UI Toolkit. Amongst it is an Autocomplete menu control as described here - <a href="http://jqueryui.com/demos/autocomplete/#default">http://jqueryui.com/demos/autocomplete/</a>. You can download the tool kit, and even style it using the themeroller. </span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsNyYcG-0qry4IRHBQp13rr-vyjWc8AKFZOSAafW7qJXLRCnPfY6ZZt4bZNMR4q6gH3YlEx8rehrQ2oyDPCzAqHPzPamqTgdfvwGmMST5hO5rAm6RkP-Aw4InIsAdMMLe51R6GcA/s1600/SPSixjQueryAutocompleteMenu.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: Arial, Helvetica, sans-serif;"><img border="0" height="341" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsNyYcG-0qry4IRHBQp13rr-vyjWc8AKFZOSAafW7qJXLRCnPfY6ZZt4bZNMR4q6gH3YlEx8rehrQ2oyDPCzAqHPzPamqTgdfvwGmMST5hO5rAm6RkP-Aw4InIsAdMMLe51R6GcA/s640/SPSixjQueryAutocompleteMenu.jpg" width="640" /></span></a></div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">The ingredients include:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">1. Getting jQuery to run on a SharePoint Page/Custom Web Part</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">2. Getting the HTML and jQuery working</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">3. Getting the SharePoint Client Object Model (OM) working</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">4. Getting the jQuery Autocomplete to work together with the SP Client OM.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Benefits</span></h4>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Why should we use this approach? If you have a need for an autocomplete menu, and need it to be loaded on the fly whilst typing, then this may most likely be your solution!</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">Getting Started</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">To start, there are a couple of options:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">A. Create a HTML file and save the code on this page into this file. Upload the file into the Site Assets library, and on any web part zone in SharePoint, add a Content Editor web part. In the web part properties, add a Content Link to this html file. I find this approach to be quickest whilst developing.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM6_gkT168kCjoBhHU2GP58BQt1PD_pr5_aI8xS_sGifRrvyds62Zzef3EENHrGJEvC_EJUzd_bVZrvBJzcoLoJqrPRhAp9nFGE0vYiFJ5-GHF0iCerwqZRiaNUVS6iI9f6Rlnog/s1600/webpartprops.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM6_gkT168kCjoBhHU2GP58BQt1PD_pr5_aI8xS_sGifRrvyds62Zzef3EENHrGJEvC_EJUzd_bVZrvBJzcoLoJqrPRhAp9nFGE0vYiFJ5-GHF0iCerwqZRiaNUVS6iI9f6Rlnog/s1600/webpartprops.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
B. Directly place the HTML+jQuery code into a Content Editor web part using the "Edit HTML Source" option from the Ribbon (SP will tend to change your HTML for you in this option)</div>
<div class="separator" style="clear: both; text-align: left;">
C. Write a custom web part to render this HTML+jQuery, including features that deploys delegate controls to register <link> lines to the jQuery library, etc. (Production quality)</div>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;"><b>1. Running JQuery on a SharePoint Page</b></span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">I've tried to add jQuery on a SharePoint page so many times, however the jQuery just doesn't run at times. What do we do?</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">The trick is to have the JavaScript initiation code inside the following code block:</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><script type="text/javascript"></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> JSRequest.EnsureSetup();</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $(document).ready(function () {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> ExecuteOrDelayUntilScriptLoaded(<i>EntryPointFunction</i>, "SP.js");</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> });</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"></script></span><br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">This block will allow any scripts (</span><i style="font-family: 'Courier New', Courier, monospace;">EntryPointFunction </i><span style="font-family: Arial, Helvetica, sans-serif;">in the example above<i>) </i>to run after any SharePoint JavaScript.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">2. JQuery AutoComplete Menu</span></h4>
<span style="font-family: Arial, Helvetica, sans-serif;">This is an awesome control - The code required includes the </span>
<span style="font-family: Arial, Helvetica, sans-serif;">jQuery</span><span style="font-family: Arial, Helvetica, sans-serif;">, and the HTML:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><script type="text/javascript">
</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">$("#tags").autocomplete({ source: dataSourceArray });</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"></script>
</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><input type="text" id="tags" /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<span style="font-family: Arial, Helvetica, sans-serif;">There are many options to setting up this autocomplete control, however it's all documented in the jQueryUI link above, so I'll skip through that.</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<br />
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">3. </span><span style="font-family: Arial, Helvetica, sans-serif;">SharePoint Client OM Script to query list data</span></h4>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">And below, is the JQuery to get the SharePoint Client OM to query data from the list "Data". It returns the values from the "Title" field where the title contains "Test". Notice the CAML query on the line </span><span style="font-family: Arial, Helvetica, sans-serif;">query.set_viewXml. </span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">When the query values are returned from the call after </span><span style="font-family: Arial, Helvetica, sans-serif;">ctx.executeQueryAsync, the </span><span style="font-family: Arial, Helvetica, sans-serif;">getDataWithQuerySuccess function will run - this is where our fun starts.</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">There's a while loop which helps us build up an array of Titles. If you need multiple dimensions (which the autocomplete box will support), you can use this instead:</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> <span style="white-space: pre-wrap;">availableTags.push(</span></span></div>
<div>
<span style="white-space: pre-wrap;"><span style="font-family: 'Courier New', Courier, monospace;">{ </span></span></div>
<div>
<span style="white-space: pre-wrap;"><span style="font-family: 'Courier New', Courier, monospace;">label: listEnumerator.get_current().get_item("Title"), </span></span></div>
<div>
<span style="white-space: pre-wrap;"><span style="font-family: 'Courier New', Courier, monospace;">id: listEnumerator.get_current().get_item("ID") </span></span></div>
<div>
<span style="white-space: pre-wrap;"><span style="font-family: 'Courier New', Courier, monospace;">});</span></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">But you will need to change the jQuery to handle this. Anyhow the Code will now look like this:</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"><script type="text/javascript"></span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> JSRequest.EnsureSetup();</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> $(document).ready(function () {</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> ExecuteOrDelayUntilScriptLoaded(loadData, "SP.js");</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> });</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> function loadData() {</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> var selectedItems;</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> filterData();</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> function filterData() {</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> var ctx = new SP.ClientContext.get_current();</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> var lst = ctx.get_web().get_lists().getByTitle('Data');</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> var query = new SP.CamlQuery();</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> query.set_viewXml("<i><View><Query><Where><Contains><FieldRef Name='Title'/><Value Type='Text'>Test</Value></Contains></Where></Query></View></i>");</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> selectedItems = lst.getItems(query);</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> ctx.load(selectedItems);</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> ctx.executeQueryAsync(getDataWithQuerySuccess, getDatasWithQueryFailure);</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> function getDataWithQuerySuccess(sender, args) {</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> var availableTags = new Array();</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> var listEnumerator = selectedItems.getEnumerator();</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> while (listEnumerator.moveNext()) {</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> availableTags.push(listEnumerator.get_current().get_item("Title"));</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> </span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> function getDatasWithQueryFailure(sender, args) {</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> /*Error Logic here*/</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div>
<span style="font-family: 'Courier New', Courier, monospace;"></script></span></div>
</div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">4. JQuery AutoComplete Menu with SP Client OM Script</span></h4>
</div>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">The last step is to combine the SP Client OM code with the jQuery AutoComplete Menu. I've included the whole piece with the styles, and script references as well below:</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<br />
<span style="font-family: 'Courier New', Courier, monospace;"><link href="/_layouts/SPSix/css/ui-lightness/jquery-ui-1.8.20.custom.css" rel="stylesheet" /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><script src="/_layouts/SPSix/js/jquery-1.7.2.min.js"></script></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><script src="/_layouts/SPSix/js/jquery-ui-1.8.20.custom.min.js"></script></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><style type="text/css"></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> .inputwarning</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> border: 1px solid #F75D59;</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> padding: 2px;</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> .ui-autocomplete</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> max-height: 200px;</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> overflow-y: auto; /* prevent horizontal scrollbar */</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> overflow-x: hidden; /* add padding to account for vertical scrollbar */</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> padding-right: 20px;</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> /* IE 6 doesn't support max-height</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span> * we use height instead, but this forces the menu to always be this tall</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><span class="Apple-tab-span" style="white-space: pre;"> </span> */</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> * html .ui-autocomplete</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> height: 200px;</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"></style></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><script type="text/javascript"></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> JSRequest.EnsureSetup();</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $(document).ready(function () {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> ExecuteOrDelayUntilScriptLoaded(loadData, "SP.js");</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> });</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> function loadData() {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> var selectedItems;</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $('#tags').keyup(function (event) {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> filterData();</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> });</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> function filterData() {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> var ctx = new SP.ClientContext.get_current();</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> var lst = ctx.get_web().get_lists().getByTitle('Data');</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> var query = new SP.CamlQuery();</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> query.set_viewXml("<View><Query><Where><Contains><FieldRef Name='Title'/><Value Type='Text'>" + $('#tags').val() + "</Value></Contains></Where></Query></View>");</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> selectedItems = lst.getItems(query);</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> ctx.load(selectedItems);</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> ctx.executeQueryAsync(getDataWithQuerySuccess, getDatasWithQueryFailure);</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> function getDataWithQuerySuccess(sender, args) {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> var availableTags = new Array();</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> var listEnumerator = selectedItems.getEnumerator();</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> while (listEnumerator.moveNext()) {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> availableTags.push(listEnumerator.get_current().get_item("Title"));</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> $("#tags").autocomplete({ source: availableTags });</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> </span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> function getDatasWithQueryFailure(sender, args) {</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> /*Error Logic here*/</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;"></script></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><span>Enter Keywords: </span><input type="text" id="tags" /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<div style="font-family: 'Courier New', Courier, monospace;">
<br /></div>
<h4>
<span style="font-family: Arial, Helvetica, sans-serif;">5. Now what?</span></h4>
<br />
<span style="font-family: Arial, Helvetica, sans-serif;">What's next? Using the AutoComplete Menu Select event, you can add additional functionality when the user selects the autocomplete box. Some examples of how I've used this:</span><br />
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span><br />
<br />
<ul>
<li><span style="font-family: Arial, Helvetica, sans-serif;">As a replacement of default SharePoint drop downs that only support a begins with type ahead.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">As a filter for custom web parts that require special query strings or parameters.</span></li>
<li><span style="font-family: Arial, Helvetica, sans-serif;">And more... Share your ideas with me below!</span></li>
</ul>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Basically the options are endless!</span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;"><br /></span></div>
<div>
<span style="font-family: Arial, Helvetica, sans-serif;">Have fun!</span></div>
<br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-89940451491436775162011-10-27T18:51:00.003+11:002011-10-27T19:19:27.618+11:00SharePoint 2010: Tip of the Day - Finding what level of SharePoint 2010 is installed?<strong>This is a quick tip bought to by SharePoint Six!</strong><br />
<br />
Tip 1: To quickly find out the build level of SharePoint 2010 using Powershell, use the following commands:<br />
<blockquote class="tr_bq"><em>$farm = Get-SPFarm<br />
$farm.BuildVersion</em></blockquote><br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBMZ_MExzxJbd089iQpxI0iJ3SBVV-m_qHCUfEcJKV0GVH7ZNhNuzu9p43n8vUiliu40JGw0K9rFRnUiJGBEDLC5n507v8XxHoPRhmgjODR-BFNGAjwvNipGAHblzVGG16uvVF0Q/s1600/BuildVersion.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBMZ_MExzxJbd089iQpxI0iJ3SBVV-m_qHCUfEcJKV0GVH7ZNhNuzu9p43n8vUiliu40JGw0K9rFRnUiJGBEDLC5n507v8XxHoPRhmgjODR-BFNGAjwvNipGAHblzVGG16uvVF0Q/s640/BuildVersion.JPG" width="640" /></a></div><br />
Tip 2: For a list of build numbers, go to Joe's blog: <a href="http://blogs.technet.com/b/sharepointjoe/archive/2011/02/01/sp2010-sharepoint-2010-build-level-and-version-numbers.aspx">http://blogs.technet.com/b/sharepointjoe/archive/2011/02/01/sp2010-sharepoint-2010-build-level-and-version-numbers.aspx</a><br />
<br />
Tip 3: For the latest patches, go to this site: <a href="http://technet.microsoft.com/en-us/sharepoint/ff800847.aspx">http://technet.microsoft.com/en-us/sharepoint/ff800847.aspx</a><br />
<blockquote class="tr_bq"></blockquote><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-9832889326193151412011-08-02T18:16:00.000+10:002011-08-02T18:16:01.237+10:00SharePoint: I'm presenting at SharePoint Saturday Sydney 2011I'm so excited! I'm presenting at SharePoint Saturday Sydney 2011!<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggj6T3ePgkW2yms9KIXg_oUflpaIpYctES3wKN7fdthZJo0g62rthxCkMJox9kfIGyHmbnN5-6x89egHS0e797mqYZJEPJASZLouSVYHFhc14JsazSn78Upi4b3GNVIeifT3W1CQ/s1600/image_thumb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggj6T3ePgkW2yms9KIXg_oUflpaIpYctES3wKN7fdthZJo0g62rthxCkMJox9kfIGyHmbnN5-6x89egHS0e797mqYZJEPJASZLouSVYHFhc14JsazSn78Upi4b3GNVIeifT3W1CQ/s1600/image_thumb.png" /></a></div><br />
<br />
I'll be discussing about "Applying Content Type Hubs and Managed Metadata To Improve Document Management in the real world". Hope to see you all there on the day for a fruitful session!<br />
<br />
The abstract for the session is below:<br />
<blockquote>"SharePoint 2010 offers a suite of new and enhanced capabilities, which if utilised effectively in select business scenarios can bring enormous value to organisations. Document Management is one area where SharePoint 2010 offers many new features and benefits. This session covers two new document management capabilities: The Content Type Hub and Managed Metadata. Douglas will walk through the anatomy of Content Type Hubs and Managed Metadata, recommended approaches, constraints and how to best work around these constraints. A number of typical document management scenarios will be used throughout the session to demonstrate the concepts and keep it real. If time permits, he will also share some C# code snippets which support the scenarios described."</blockquote>For more information:<br />
<a href="http://www.sharepointsaturday.org/sydney/Pages/meetings.aspx">http://www.sharepointsaturday.org/sydney/Pages/meetings.aspx</a><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com4tag:blogger.com,1999:blog-35974585.post-54700560001552447012011-04-14T19:00:00.002+10:002011-08-02T19:03:04.693+10:00SharePoint 2010: PSConfiguration issues with GetUserPropertyFromAD call<b><u><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Problem</span></u></b><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">As I was installing SharePoint 2010 at client site, I came across an error I've never seen previously. During the SharePoint 2010 "Configuration Wizard Step 3 - creating configuration database", the operation failed.</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<b><u><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Symptoms</span></u></b><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">The error in the Configuration Wizard was:</span><br />
<blockquote><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"><i>Failed to create the configuration database.<br />
An exception of type System.Collections.Generic.KeyNotFoundException was thrown. Additional exception information: The given key was not present in the dictionary.<br />
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.<br />
at System.ThrowHelper.ThrowKeyNotFoundException()<br />
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)</i></span></blockquote><span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">Matching Error in the installation logs was:</span><br />
<br />
<blockquote><i><span class="Apple-style-span" style="font-family: Verdana, sans-serif;"><span style="color: #1f497d;">04/14/2011 10:51:06 9 ERR Task configdb has failed with an unknown exception<br />
</span><span style="color: #1f497d;">04/14/2011 10:51:06 9 ERR Exception: System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.</span><span style="color: #1f497d;"> at System.ThrowHelper.ThrowKeyNotFoundException()</span><span style="color: #1f497d;"> at System.Collections.Generic.Dictionary`2.get_Item(TKey key)</span><span style="color: #1f497d;"> at </span><span class="Apple-style-span" style="color: red;">Microsoft.SharePoint.Utilities.SPUtility.GetUserPropertyFromAD(SPWebApplication webApplicaiton, String loginName, String propertyName)</span><br />
<span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPManagedAccount.GetUserAccountControl(String username)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPManagedAccount.Update()</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPProcessIdentity.Update()</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPApplicationPool.Update()</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPWebApplication.CreateDefaultInstance(SPWebService service, Guid id, String applicationPoolId, SPProcessAccount processAccount, String iisServerComment, Boolean secureSocketsLayer, String iisHostHeader, Int32 iisPort, Boolean iisAllowAnonymous, DirectoryInfo iisRootDirectory, Uri defaultZoneUri, Boolean iisEnsureNTLM, Boolean createDatabase, String databaseServer, String databaseName, String databaseUsername, String databasePassword, SPSearchServiceInstance searchServiceInstance, Boolean autoActivateFeatures)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPWebApplication.CreateDefaultInstance(SPWebService service, Guid id, String applicationPoolId, IdentityType identityType, String applicationPoolUsername, SecureString applicationPoolPassword, String iisServerComment, Boolean secureSocketsLayer, String iisHostHeader, Int32 iisPort, Boolean iisAllowAnonymous, DirectoryInfo iisRootDirectory, Uri defaultZoneUri, Boolean iisEnsureNTLM, Boolean createDatabase, String databaseServer, String databaseName, String databaseUsername, String databasePassword, SPSearchServiceInstance searchServiceInstance, Boolean autoActivateFeatures)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPAdministrationWebApplication.CreateDefaultInstance(SqlConnectionStringBuilder administrationContentDatabase, SPWebService adminService, IdentityType identityType, String farmUser, SecureString farmPassword)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPFarm.CreateAdministrationWebService(SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPFarm.CreateBasicServices(SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPFarm.Create(SqlConnectionStringBuilder configurationDatabase, SqlConnectionStringBuilder administrationContentDatabase, IdentityType identityType, String farmUser, SecureString farmPassword, SecureString masterPassphrase)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.Administration.SPFarm.Create(SqlConnectionStringBuilder configurationDatabase, SqlConnectionStringBuilder administrationContentDatabase, String farmUser, SecureString farmPassword, SecureString masterPassphrase)</span><span style="color: #1f497d;"> at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.CreateOrConnectConfigDb()</span><span style="color: #1f497d;"> at Microsoft.SharePoint.PostSetupConfiguration.ConfigurationDatabaseTask.Run()</span><span style="color: #1f497d;"> at Microsoft.SharePoint.PostSetupConfiguration.TaskThread.ExecuteTask()</span></span></i></blockquote><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><b><u>The cure</u></b> </span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">I checked the permissions for the SharePoint installation account on the MS SQL Database - it seemed to already have the correct security roles assigned (dbcreator and securityadmin).</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">I then noticed this line in the error logs: <i><span class="Apple-style-span" style="color: red;">"</span></i><i><span class="Apple-style-span" style="color: red;">Microsoft.SharePoint.Utilities.SPUtility.<b>GetUserPropertyFromAD</b>"</span></i></span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;"><br />
</span><br />
<span class="Apple-style-span" style="font-family: Georgia, 'Times New Roman', serif;">It's now apparent that psconfig is failing when trying to read a User Property from Active Directory. It turned out the domain had been setup so that domain accounts do not have access to read AD Properties. I simply gave the "Setup Administrator" and "Farm Account" accounts read permissions.</span><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-37690849571505784192010-07-16T09:51:00.001+10:002010-07-16T09:51:15.814+10:00SharePoint 2010 - SharePoint 2010 just got quicker. The latest patch is doing it’s job!<p>I’m running Windows 7 on a Dell Latitude E4300 4GB RAM with SharePoint Server 2010 installed for development and demo purposes. In the beginning SharePoint was running with an acceptable performance, but sometimes there would be a little wait here and there. </p> <p>A few days ago Microsoft released an update for SharePoint Foundations 2010, which it claimed would improve stability and performance. </p> <p>Guess what? After it was installed, I browsed my SharePoint sites using Chrome – man, it was lightning fast! Was it Chrome? Don’t think so. Same quick response in Internet Explorer 8! The performance is noticeably <strong>MUCH</strong> quicker. Great job guys! </p> <p><u>This is the patch I installed: <br /></u>Update for Office SharePoint Foundations 2010 (KB2032588)</p> <p>“Microsoft has released an update for Office SharePoint Foundation 2010, 64-bit Edition. This update provides the latest fixes to Microsoft WSS 2010, 64-bit Edition. Additionally, this update contains stability and performance improvements.”</p> <p><a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=f6f1d567-a21f-4770-80ba-f7d6e05f11aa">http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=f6f1d567-a21f-4770-80ba-f7d6e05f11aa</a></p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-41197083788659473202010-06-09T23:49:00.001+10:002010-06-09T23:55:06.624+10:00SQL Versions – Tip of the day<p>I was installing SharePoint 2010 – wait, what about the pre-requisites? <br />- <a href="http://go.microsoft.com/fwlink/?LinkId=165748">SQL 2005 SP3 with Cumulative update package 3</a> <br />- OR <a href="http://go.microsoft.com/fwlink/?LinkId=165962">SQL 2008 SP1 with Cumulative update package 2</a> <br /> <br />So what version have we got? Here’s the tip of the day (for me and to you to share), run this SQL Query to find out: <br /> <br /><font size="2" face="Courier New"><font color="#0000ff">SELECT</font> <font color="#ff00ff">serverproperty</font><font color="#800000">(</font><font color="#ff0000">'productversion'</font><font color="#800000">)</font><font color="#c0c0c0">,</font> <br />       <font color="#ff00ff">serverproperty</font><font color="#800000">(</font><font color="#ff0000">'productlevel'</font><font color="#800000">)</font><font color="#c0c0c0">,</font> <br />       <font color="#ff00ff">serverproperty</font><font color="#800000">(</font><font color="#ff0000">'edition'</font><font color="#800000">)</font>  </font> <br /> <br />This should give you information to determine the version number, the release level (RTM or Service Pack), and the edition (Express, Standard or Enterprise). <br /> <br />For convenience, I’ve added the version numbers required for SharePoint 2010: <br />- SQL 2005 SP3  - 2005.90.4035 <br />- SQL 2008 SP1 – 2007.100.2531.0 <br /> <br /> <br />For more version numbers go to <a href="http://support.microsoft.com/kb/321185">http://support.microsoft.com/kb/321185</a>. <br /> <br />Referenced from this <a href="http://support.microsoft.com/kb/321185">Microsoft KB</a> <a href="http://support.microsoft.com/kb/321185">http://support.microsoft.com/kb/321185</a></p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-35214967569774266152010-05-12T00:11:00.001+10:002010-05-12T00:11:05.106+10:00From Developer to Architect?<p>For a few years now, I’ve been coding on .NET, SharePoint, and the like. I went to University and learnt about Object Orientation. I hardly noticed nor appreciated the many OOP concepts that I’ve unconsciously applied to my coding/solution design. Dare I say it, I think this may describe many developers with around 2-4 years of coding experience up their belts.</p> <p>I recently started reading a few articles online and came to realisation of the extent to the level of OOP concepts that have actually been applied. It made more sense why some of solutions worked better than others (of which include both .NET and SharePoint solutions).</p> <p>Like many others, I’ve just had the time to understand and learn how to use API’s and/or how to ‘structure’ code to get the job done in the least amount of time with the best quality (least amount of bugs), but never to understand some software architecture concepts. Take my tip, re-learn the concepts that reflect what you already know – a design pattern.</p> <p>Here are the links I have referred to:</p> <ul> <li><a href="http://www.codeproject.com/KB/architecture/OOP_Concepts_and_manymore.aspx">Introduction to Object Oriented Programming Concepts (OOP) and More</a></li> <li><a href="http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf">Design Principles and Design Patterns</a></li> <li><a href="http://www.objectmentor.com/omSolutions/oops_what.html">Object Oriented Design Principles and Patterns</a></li> </ul> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com1tag:blogger.com,1999:blog-35974585.post-90577458385699543112010-03-11T18:08:00.001+11:002010-03-11T18:08:28.008+11:00Microsoft SharePoint Server 2010 – Certifications?<p></p> <p>I just read an official note that there will be new four SharePoint 2010 certifications – and they are not specific to either SharePoint Foundation 4 or SharePoint Server 2010.</p> <p>These exams are:</p> <ul> <li>70-667: TS: Microsoft SharePoint 2010, Configuring</li> <li>70-668: PRO: Microsoft SharePoint 2010, Administrator</li> <li>70-573: TS: Microsoft SharePoint 2010, Application Development</li> <li>70-576: PRO: Designing and Developing Microsoft SharePoint 2010 Applications</li> </ul> <p>According to <a href="http://borntolearn.mslearn.net/btl/b/weblog/archive/2010/03/03/what-s-comming-for-sharepoint-2010-exams.aspx">this blog post</a>, the exams are expected to be available in June/July timeframe. More details <a href="http://borntolearn.mslearn.net/btl/b/weblog/archive/2010/03/03/what-s-comming-for-sharepoint-2010-exams.aspx">here</a>.</p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-34924072842935594612010-02-02T19:16:00.001+11:002010-02-02T19:16:46.051+11:00Microsoft SharePoint 2007 – ItemAdded/ItemAdding List Event Receivers and SPFieldUserValue.User not returning SPUser<p> </p> <p><strong>The Problem <br /></strong>I recently had to develop an Event Receiver that would require reading off the SPUser object of the item. What I found is that, at times when the exact name of the user is entered <em>(and you click OK on the NewForm.aspx page without clicking the check name </em><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9yl3WQk8M3zpWQIyeP9op0pzfxRPU3aioRL09yX6O1LWTfs2rPMskxL0a2WzilLCZLsRuvrWbzU3-hXM_UNl1-fM4bu1aW4ktwF0-Uq2RwQ26cFGIZyyS5Iso-Q_slHkOy9mLWw/s1600-h/image%5B25%5D.png"><em><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3UbQlM6YASR3rcNHQKjrNkOnVeKlCrIqF4joeO827vszQDRmXN4g4fB_eSZojVWCdh1MdmHl5y81N5BX93i1G-kKJ5ZzyFvGy9NpO-hhyphenhyphenjFN5TdJTH9hbFBf5jHnHVsat20HkUg/?imgmax=800" width="23" height="22" /></em></a><em>  button)</em>, the SPFieldUserValue will return </p> <p><strong><font color="#ff8000"><em>–1;#domain\username</em> </font></strong></p> <p>rather than </p> <p><strong><font color="#ff8000">23;#domain\username.</font></strong> <br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUZl_BtyqQZKVjMebzv3KTVeZUHqg1iRM0grWAWNPom_RiEPW_RCEYbYmBgza16VVyH0VqiBKYabnXCSuz5d9-jlgxYg6JE9jjVAUE9crXoc-ebGNb_mTp0DoHjr-qic4ybX_aPg/s1600-h/image%5B29%5D.png"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicn_u8ZsibGTte4DXcQA_WeaWLM8U3BHu8jsHCyJB5v8k4sfUixu18kALsxUSzFMlBP-Gf9aRn6ErgXKV4pJcqn-gF2xvSrogYpW-S0on1xD2aDFafNHRNfoGKGfAK2ed2XttstA/?imgmax=800" width="540" height="53" /></a> </p> <p>This is a problem when you try to access the SPFieldUserValue.User (SPUser type) property and it returns null. </p> <p><strong>The Solution <br /></strong>The solution was to get the SPFieldUserValue as a string, and then use the username to then try and resolve for the SPUser object. My rough cut out code is attached – quickly modified for this example. (*Use at your own risk. Is also why I don’t usually post code on my blog!)</p> <p style="line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none" class="MsoNormal"></p> <p class="MsoNormal"><span style="line-height: 115%; font-family: "Courier New"; color: blue; font-size: 10pt; mso-no-proof: yes"></span></p> <iframe style="padding-bottom: 0px; background-color: #fcfcfc; padding-left: 0px; width: 98px; padding-right: 0px; height: 115px; padding-top: 0px" title="Preview" marginheight="0" src="http://cid-317711fa0e642182.skydrive.live.com/embedicon.aspx/Public/SharePoint+CRM%20Six/Code%20Samples/EventReceiverAndSPUserResolved.cs" frameborder="0" marginwidth="0" scrolling="no"></iframe> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-13455004303227061512009-12-08T22:28:00.002+11:002009-12-10T08:48:16.883+11:00Microsoft SharePoint Server 2010 Beta 2 – How to recover data from an unattached content and restore it to a (or another) siteA new feature in SharePoint 2010 is the ability to recover content from an unattached database (also tested to work for attached databases). The following are steps to do this (in case I forget in the future).<br />
<span style="color: red;">Note of warning: Screen shots and directions in this entry are based on SharePoint 2010 Beta (v. 14.0.4536.1000) and may change without notice.</span><br />
<b><u>I. Export from Database</u></b><br />
1. Within Central Administration v4, browse to “<b>Backup and Restore</b>” section in the Quick Launch<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCjjJO-8kC_WRet-RVCF3hPqe1i8HyTb0qNlGVfdKGHM3gIo31PP0R-5-gfTsaZtqColYtHK6gNo2l5aGduKpqPWk7FSObQybZ-HVQkUYtzjPWOd5Zd_sSP4P-IBshO3uBp_1hNw/s1600-h/image%5B4%5D.png"><img alt="image" border="0" height="313" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYhBLiQ5MMIQgGMglDJ3uPA1VZFvTZ0cQdc_sgS4CFLbzzTuUjl3GHqPKc5uEKp2RW3LOS4DCGJ2WsKexJ6bBqmCjv4kvZc-zELotOAlvxQO294Ya7As_-3BWRMRORv8zACXfRGQ/?imgmax=800" style="border-width: 0px; display: inline;" title="image" width="563" /></a> <br />
2. Click “<b>Recover data from an unattached content database</b>”:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglKGOhLH8mmvMbalM91EckbxWmEUxtgma9BpZn_RONpIcZMTzSc9hrdIZrBWVvrzBL-UdsirwWtfmEDqorNgkRhMPxsm7zgmOJrjmMFuggg_AfjotOv21bhA0BNhL9wxG25uD3ag/s1600-h/image9.png"><img alt="image" border="0" height="74" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlWGQhiFZTWWQgiIw50I4ANddDR95AURpviHB2GHxvIk7h4L5e7QZMz1CrP9bgSX33jo4fCTBKANme-IBqj4fA1KBsbWf8keDuys-9WqcSRgcjLuzZPPg5_X55JSZTcr_gbdFpZw/?imgmax=800" style="border-width: 0px; display: inline;" title="image" width="568" /></a> <br />
3. On the “Unattached Content Database Data Recovery” Page, enter the database server and database name of the source database to restore from, select “Browse content”, and click Next:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaYPQC-Ll7c7Upj2XcNcYy75WoEb32TsaSKf732K75VCz5yLBoaRO-0e09-mYTrisl0e31lvHb1TPKBQH_SdB-26bwlqhyphenhyphenOWTWZ91fFvHf7-d56XP5DupHLBuQ6UlbkjGahFxc6A/s1600-h/image%5B78%5D.png"><img alt="image" border="0" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrd21kvyDr0z-QhrCyaWXY17DEhfQh9mUcsjPv-SW5XWvxB0E8ArFyW60DmwHE_lcZ5vuZGUbeQBqGxfUnLoiaMPRN0vOm1_zImHoGHB_etRd2lCAHvjgV1YyDDcoQrgp1IZLX-Q/?imgmax=800" style="border: 0px none; display: inline;" title="image" width="559" /></a> <br />
4. Select the Site Collection from the Database, the site from the database and the List as required, select “Export site or list”, and click Next (Note – this screen shot is based on a Beta version, and it appears that even though you have the correct site collection selected, the URL shows the central administration url. Only the relative URL is correct here):<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxZwa12VxU8RMre0E7xXYZXsjNVKhQu15OOW8L4bP5_3anWHqVoVwyA2MKKyu5X7ALfPdMw2jmzvfcVkTtHgu5Xy8NtlQyRqIcdmrRXBfiTp54t-P3-nHvFAyhJlpCLBYmTyVycQ/s1600-h/image%5B80%5D.png"><img alt="image" border="0" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUWkzETWzCfHOpf4BzybFJQ-H2nywKbzYihQdRsafYnsVMVLT6kEien3RjvkRo6g0Xrfv5icZYsnuB3aFBfEzbpzXsnnsBHAIctVHiXydkJDVW38_dsPUsHtt-7N8zV6_fcrtQNg/?imgmax=800" style="border: 0px none; display: inline;" title="image" width="564" /></a> <br />
5. Type in a file share location (ensure the SharePoint Farm account has owner access to this folder in Windows), and click <b>Start Export</b>:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUeB9xzmjc043xfxDsj3r3AWvq3JDnoUEEUDmpLi2K9cPpAlm7S4Tw4PFwpdb03hrgneh_iwNINmAGt5BU-AnPpdKrjFPfAxVj6bFr5FE0MWIlzIMGgTwZHhUqO46yhA37a2J_LQ/s1600-h/image%5B81%5D.png"><img alt="image" border="0" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiPYTkHvzuGT_bUPgx0yRWh7FqBnIIRPHd_zISkyw8UzIUiJTcW3mAK9-aUwrpwKZkHTg4IYvoy2zKI5bQA0xRfW8O2QNtXCF9AKyLCQ5Of4XWIt9BDYh7xIR6QX_Xo88-iIxzVA/?imgmax=800" style="border: 0px none; display: inline;" title="image" width="573" /></a> <br />
6. Wait for the job to complete:<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYebjSEg7XfO1UrGukuJAjayq3kEhZICmfTTEMokhAnJhT6QA_W5ipczSAYeBXKF6CYct1scUI0QZtNqdf5wYAxhyjn4OtU07L-k-2rgCi7RgayZGNin1GlJHXUa70wY1E4IwW1g/s1600-h/image%5B82%5D.png"><img alt="image" border="0" height="235" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt1hdjyCyqQBv2LvRRisbQrj81ZwyAmLdNIvZcRSwT90f8OSOBMrR7-82FoIPz6g4M6uSF5F6wge3NSvawUIUlU2rr6oAJ__kYbE5x7pJ3V0-hqcV4NQT2UFh6PZC7AopCCYVVoA/?imgmax=800" style="border: 0px none; display: inline;" title="image" width="586" /></a> <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-Y1zL_YuvP9t3WjJI_3fhFcmj6Samh_6UZHnUDRm80YJdciHawZV7bOC79NA8Ez8kbsU2_IjGwRQUCZ4bKJl1CtI-Qm4wdbNhV0DHIjzPN5PvEs124nrdJfd8hESgeRI8KxEDXg/s1600-h/image%5B48%5D.png"><img alt="image" border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgigXqVaNcjotFOk5c5qMlOUjg4picziYUT5PLSaRjBw-fhIcRPVct9_Qdeew3eamvNkZ8AUjrPS3r1k00Fxjlq8Tj-u9ba7E4bLO46FgY-5uq4w1747nz1JU93Du14YMbpkuFabw/?imgmax=800" style="border-width: 0px; display: inline;" title="image" width="317" /></a> <br />
7. Files will be created in the share directory (Note: Contents of the .cmp file can be opened as a cab file – just like most other wsp packages):<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYK5NhWdbFeUY-k0fbuGl2sguJrq9YdqqLYsoy90gXXXXiD8pvSXP2ZeadSG2RJ_BdwpGEipOu3bwiHjE5yzQPFD9-SvpUR015FwgIHKoT5eNTWoO8wgDg8HnVkkRy41JzF6ML1A/s1600-h/image%5B52%5D.png"><img alt="image" border="0" height="152" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhG28dHhkAYmvV-GIEW_4v5pZtIqVxCX4A9bdP3TIP39ZhyI7hHqHUb3d2nXEkvoNDO5aaW7eBVNcWPIBTopGcsUDoulJ_POpTFoi-tfM7H0v768frROUG8L5iL30dj4vKwB_kDtw/?imgmax=800" style="border-width: 0px; display: inline;" title="image" width="442" /></a> <br />
<b><u>II. Import to new Site</u></b><br />
1. Open up the SharePoint 2010 Management Shell<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5t3IlxdUE8sKHxwD6Bwq0GufM-xq5qVUgo9dovnfJYjh_TjVRANT3ZVdfgRRAXteCmdo71gaV9TleHlh9tItdAlYDzzjd4UO0Plma1VjeZGQbjATtnWjZLcE6rIptkUNCmYSHtw/s1600-h/image%5B55%5D.png"><img alt="image" border="0" height="79" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiWtMEAZ3f_l0IsNgGRkYrL-dgx0QqOXmzrQaIlmXFnDdFLW0TrTpY0uZPejTecPSDdDhkM2tOwxssCitt8DJW8bVOVbzJGjhlcxwFOSsJw_DrZY1vlQviR4mkkamu-474uJCMxew/?imgmax=800" style="border-width: 0px; display: inline;" title="image" width="244" /></a> <br />
<br />
2. Let’s assume we have already created a blank site to be restored to @ dougleung.com. We will now restore to that SharePoint Site:<br />
Run this command in the Management Shell:<br />
Import-SPWeb –Identity [url] –path [path]<br />
eg. Import-SPWeb –Identity <a href="http://dougleung.com/">http://dougleung.com</a> –path <a href="file:///">\\servername\folder\exportfile.cmp</a><br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgmaR3evUp-fHGaRu1ZCseCsJysOEoMCe_UiIaexudgULtauzcgPEs9dT_nGinZmFhxNNyxLBRGWIamj4ugJkhIYOlud302UAKAqbybesPBgOVPPkRW2I6witMA88Z_el3fYnGljQ/s1600-h/image%5B84%5D.png"><img alt="image" border="0" height="122" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_VrpMoCLNJD6jSkADaOjmnw1iEeqPg81b-XkAkUYDigu-UvzsQhZiI0l5N8pocxNVRK1RI_SpSh7QHFRbUJsMMd26HeSXkE4_CruclpI1t8Fra3HSK_E_jeb1DQwerOZ4pN8Nkg/?imgmax=800" style="border: 0px none; display: inline;" title="image" width="603" /></a> <br />
3. Your contents from your export file (in this case the exported Announcements list) will be imported to the dougleung.com site.<div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-10511131896009393432009-10-22T18:30:00.000+11:002009-10-22T18:30:00.325+11:00Microsoft SharePoint 2010 Beta – Developer Resources<p>I was browsing around to dig more on SharePoint 2010 developer resources trying to get my head around more SharePoint 2010 knowledge. Some very useful resources for starters:</p> <p><strong>Get Started Developing on SharePoint 2010</strong> <br /><a title="http://msdn.microsoft.com/en-au/sharepoint/ee513147.aspx" href="http://msdn.microsoft.com/en-au/sharepoint/ee513147.aspx">http://msdn.microsoft.com/en-au/sharepoint/ee513147.aspx</a> <br />This page includes 10 series of video tutorials on SharePoint 2010 development with topics including Building SP 2010 Web Parts, SharePoint 2010 concepts, Accessing SP 2010 data with server/client side APIs, Access external data with BCS, SP 2010 Workflows, Creating Silverlight UIs for SP 2010 solutions, Sandboxed solutions and Dialogs and Ribbon controls for SP 2010. <br /></p> <p><strong>SharePoint Foundation 2010 and SharePoint Server 2010 SDK:</strong> <br /><a title="http://msdn.microsoft.com/en-us/library/dd776256.aspx" href="http://msdn.microsoft.com/en-us/library/dd776256.aspx">http://msdn.microsoft.com/en-us/library/dd776256.aspx</a> <br />This SDK has been publicly online since the SharePoint 2010 Sneak Peak web site was available. <br /> <br />The main important links I want to put up for myself are: <br />What’s New in SharePoint Foundation 2010: <br /><a title="http://msdn.microsoft.com/en-us/library/ee539826%28office.14%29.aspx" href="http://msdn.microsoft.com/en-us/library/ee539826%28office.14%29.aspx">http://msdn.microsoft.com/en-us/library/ee539826%28office.14%29.aspx</a></p> <p>What’s New in SharePoint Server 2010: <br /><a title="http://msdn.microsoft.com/en-us/library/ee557323%28office.14%29.aspx" href="http://msdn.microsoft.com/en-us/library/ee557323%28office.14%29.aspx">http://msdn.microsoft.com/en-us/library/ee557323%28office.14%29.aspx</a></p> <p> <br />Looks like I am on a steep learning curve… yet exciting and worth while!</p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-25587637323770121822009-09-18T08:03:00.001+10:002009-09-18T08:03:14.186+10:00Office Web Applications (Tech Preview) in Windows LiveWe’ve seen Google Docs, we’ve see Microsoft Office – but we haven’t yet seen Microsoft Office applications running as a Windows Live service. The Windows Live team announced on their blog today the release of a ‘Tech Preview’ to a “select group of SkyDrive" customers”. <br /> <br />As the a consumer, I am extremely delighted on the news as I was never really a fan of Google Docs. It’s great to get free access to a fully functional and fully featured MS Office over the web :) <br /> <br />Sounds interesting? Check out the Video below. <br /> <br /> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:58e90fcb-c382-4de8-9147-bc57e0af1855" class="wlWriterEditableSmartContent"><div id="047cc1ce-5b2f-4b0c-a467-8857b6340ada" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=nAvBfuaVluI&feature=player_embedded" target="_new"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiHhiJPwDhGDmQyjohVWuOJloXsrz_B_Zu1TmWbROnXdCeCN1cZ4SwyV1mpRQnrtek9NZft8Jd_JFy2TLe7J6s3HhfY7FKMVt4NJx6sRibGORpiJXw5UjsTGGlZ0_aiY7SYwcCq6g/?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('047cc1ce-5b2f-4b0c-a467-8857b6340ada'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/nAvBfuaVluI&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/nAvBfuaVluI&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div></div> <br /> <br />Source: <a title="http://windowslivewire.spaces.live.com/blog/cns!2F7EB29B42641D59!41451.entry?wa=wsignin1.0&sa=434146655" href="http://windowslivewire.spaces.live.com/blog/cns!2F7EB29B42641D59!41451.entry?wa=wsignin1.0&sa=434146655">http://windowslivewire.spaces.live.com/blog/cns!2F7EB29B42641D59!41451.entry?wa=wsignin1.0&sa=434146655</a> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com1tag:blogger.com,1999:blog-35974585.post-8145845587477511872009-08-05T17:18:00.001+10:002009-08-05T17:19:28.313+10:00MOSS 2007 – User Profile Imports and LDAP Cheat Sheet<p> </p> <p>I’ve tried to get an instance importing but still with no luck – there must be something else preventing it from importing… Anyways, I decided to write down my research for the day:</p> <p><strong><u>Default SharePoint settings are:</u></strong></p> <p><b>Search Base:</b> dc=domain,dc=company,dc=com <br /><b>Base Query:</b> (&(objectCategory=person)(objectClass=user))</p> <p><strong><u>Options:</u></strong></p> <p><strong>Options for Search Base: <br />- </strong>Can define a specific OU to base the import on. eg. ou=Sydney,ou=Department1,dc=domain,dc=company,dc=com <br /> <br /><strong>Options for LDAP Filter Query: <br /></strong><em>Get all accounts with email address: <br /></em>(&(objectCategory=Person)(objectClass=User)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(email=*)) </p> <p><em>Get active accounts – filter our disabled AD accounts: <br /></em>(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)) </p> <p><em>Get accounts in the Department1 OU:</em> <br />(&(objectCategory=Person)(objectClass=User)(memberof:1.2.840.113556.1.4.1941:=(CN=Authenticated Users,OU=Department1,DC=domain,dc=company,dc=com)))</p> <p><em>Get accounts with a first name: </em> <br />(&(objectCategory=Person)(objectClass=User)(!(userAccountControl:1.2.840.113556.1.4.803:=2))(!(!givenName=*)))</p> <p> </p> <p><strong>Good References: <br /></strong>Scope of Query – Base, One Level, Subtree: <a title="http://msdn.microsoft.com/en-us/library/aa746467%28VS.85%29.aspx" href="http://msdn.microsoft.com/en-us/library/aa746467%28VS.85%29.aspx">http://msdn.microsoft.com/en-us/library/aa746467%28VS.85%29.aspx</a></p> <p>LDAP Search Filter Syntax: <br /><a title="http://msdn.microsoft.com/en-us/library/aa746475%28VS.85%29.aspx" href="http://msdn.microsoft.com/en-us/library/aa746475%28VS.85%29.aspx">http://msdn.microsoft.com/en-us/library/aa746475%28VS.85%29.aspx</a></p> <p>Importing Specific group into SP User Profile Store with LDAP: <br /><a title="http://mindsharpblogs.com/wayne/archive/2005/06/15/497.aspx" href="http://mindsharpblogs.com/wayne/archive/2005/06/15/497.aspx">http://mindsharpblogs.com/wayne/archive/2005/06/15/497.aspx</a></p> <p>LDAP Attributes: <br /><a title="http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm#LDAP_Attribute_" href="http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm#LDAP_Attribute_">http://www.computerperformance.co.uk/Logon/LDAP_attributes_active_directory.htm#LDAP_Attribute_</a></p> <p>A Nice LDAP Attribute Table: <br /><a title="http://www.it.ufl.edu/projects/directory/ldap-schema/attributes.html" href="http://www.it.ufl.edu/projects/directory/ldap-schema/attributes.html">http://www.it.ufl.edu/projects/directory/ldap-schema/attributes.html</a></p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-42597611204654473862009-08-05T09:11:00.001+10:002009-08-05T17:20:13.804+10:00Assemblies – A good read on AnyCPU, x86, and x64<p>Just read the following blog spot by Eugene Rosenfeld, a MOSS MVP, about assembly compilations. In my opinion, a very good to read article:</p> <p><a href="http://thingsthatshouldbeeasy.blogspot.com/2009/08/anycpu-x86-x64-whats-difference.html">http://thingsthatshouldbeeasy.blogspot.com/2009/08/anycpu-x86-x64-whats-difference.html</a></p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-7362647473416050342009-07-14T22:18:00.007+10:002010-02-05T00:58:36.395+11:00Time Capsule 2006 to 2009 - The Technologies of a technical consultantI was sitting on the train today, thinking about the technologies I have worked with in the last three years. And you know what? I have to say web technologies have developed extremely quickly (Well of course it is!). Being a consultant allows me to indulge myself into the latest technologies, and most of the time, take the latest technologies for granted.<br />
<br />
Sometimes I think it is actually quiet an effort to keep up (yet I have to for my passion and profession). What I mean for example is say, you install an SDK for Silverlight 2.0, work with it a little while, then you will find yourself installing the SDK for Silverlight 3.0 (And of course with that Visual Studio 2010)! <span style="font-weight: bold;">It is hard work to keep up, but it is worth it!</span><br />
<br />
I've worked with SharePoint 2003, I'm working with SharePoint 2007 technologies and now with the sneak peak at the exciting <a href="http://sharepoint.microsoft.com/2010/Sneak_Peek/Pages/default.aspx">SharePoint 2010</a>, I have to say being a techy guy is the best job in the world! It is very rewarding to see Microsoft listening to customers, giving them what they want. I dig the new BCS, I dig the new ribbon within the web browser, I dig multi-item checkouts, I dig the new developer tools, I dig the new backup and restore tools, I dig the new central admin.....I dig it, I dig it, I dig it! <span style="font-weight: bold;">Then again, it is hard work to keep up, but it is worth it!</span><br />
<br />
Anyways, the purpose of this is to keep a time capsule of the (non beta) technologies I have played within the 3 yr period. Who knows how many of these technologies will stay in my list? Here goes...<br />
<br />
2006-2009:<br />
<span style="font-weight: bold;">Microsoft Technologies</span><br />
<ul><li>C#/VB</li>
<li>ASP.NET<br />
</li>
<li>.NET 1.0, 1.1, 2.0, 3.0, 3.5</li>
<li>SQL 2000, SQL 2005, SQL 2008</li>
<li>Windows 2000, Windows 2003, Windows 2008, Windows XP, Windows Vista, Windows 7<br />
</li>
<li>Microsoft CRM 3.0</li>
<li>Microsoft CRM 4.0</li>
<li>WSS 2</li>
<li>SharePoint Portal 2003</li>
<li>WSS 3</li>
<li>MOSS 2007</li>
<li>MS Office 2003/2007<br />
</li>
<li>Microsoft Search Server 2008 and FAST<br />
</li>
<li>Silverlight 1.0</li>
<li>Silverlight 2.0</li>
<li>Internet Explorer 6.0/7.0/8.0<br />
</li>
</ul><br />
<span style="font-weight: bold;">Third Party</span><br />
<ul><li>Javascript and AJAX<br />
</li>
<li>JQuery</li>
<li>Flash<br />
</li>
<li>DotNetNuke</li>
<li>SugarCRM</li>
<li>Meridio</li>
<li>HP Trim<br />
<br />
</li>
</ul><div style="text-align: left;"><a href="http://tbn2.google.com/images?q=tbn:9lpOrMhzYlET1M:http://www.slashgear.com/gallery/data_files/1/time_capsule.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="http://tbn2.google.com/images?q=tbn:9lpOrMhzYlET1M:http://www.slashgear.com/gallery/data_files/1/time_capsule.jpg" style="cursor: pointer; height: 142px; width: 213px;" /></a></div><a href="http://tbn0.google.com/images?q=tbn:vgrkmJ7q3w0adM:http://daddytypes.com/archive/disney_time_capsule.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="http://tbn0.google.com/images?q=tbn:vgrkmJ7q3w0adM:http://daddytypes.com/archive/disney_time_capsule.jpg" style="cursor: pointer; height: 212px; width: 212px;" /></a><br />
<a href="http://tbn2.google.com/images?q=tbn:coC-AuaoIcMK6M:http://www.albertacentennial.ca/images/time_capsule_3.jpg" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="http://tbn2.google.com/images?q=tbn:coC-AuaoIcMK6M:http://www.albertacentennial.ca/images/time_capsule_3.jpg" style="cursor: pointer; height: 165px; width: 220px;" /></a><br />
<a href="http://tbn1.google.com/images?q=tbn:zUKh_B6Qjsf96M:http://davidszondy.com/future/timecapsule/tc02-65.gif" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"><img alt="" border="0" src="http://tbn1.google.com/images?q=tbn:zUKh_B6Qjsf96M:http://davidszondy.com/future/timecapsule/tc02-65.gif" style="cursor: pointer; height: 286px; width: 220px;" /></a><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-86329560425215281542009-07-02T15:38:00.002+10:002009-07-14T23:23:16.951+10:00Silverlight 2.0 – Silverlight Apps calling asmx web services<p>A while back I worked on a Silverlight application that was hosted in SharePoint. The Silverlight application was to call a web service written by a third party vendor in .NET 2.0. <br /> <br /><strong><u>Problem</u></strong> <br />As what we all normally would do in a Silverlight app is to call this web service. However, I got the following error when my application tries to call the asmx web service:</p> <p><em>“An error occurred while trying to make a request to URI '</em><a href="http://localhost:1000/webservice.asmx%27"><em>http://localhost:1000/webservice.asmx'</em></a><em>. This could be due to attempting to access a service in a cross-domain way without a proper cross-domain policy in place, or a policy that is unsuitable for SOAP services. You may need to contact the owner of the service to publish a cross-domain policy file and to ensure it allows SOAP-related HTTP headers to be sent. Please see the inner exception for more details.”</em></p> <p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQVNw-xMGttqFO3xkmc0ITTgPlKJziTVsIlzbP62IHazDtd9VW4-63poNVBsQcv8Q-oBxOMhy8t0O-zi1q6h2-s1l1nMKM5xxc7s_FWBChRDQCob5-VQseeRYcMeQu6IA_cSLAvg/s1600-h/SLAccessError%5B6%5D.png"><img style="border: 0px none ; display: inline;" title="SLAccessError" alt="SLAccessError" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwBtubqFFyl1xVg_pbGsuxymLs2MVLF3mx7KxjZ9hLrrnYW3L0FdGlbbdIydgDY55NZaxU9gvbSiK-TW_qIi1Td2W1Vf0sv5MOHfRYDZqYg5rr5bUMoSmC_XRLsqky6UtCjVFVwg/?imgmax=800" width="479" border="0" height="388" /></a> </p> <p><strong><u>Solution</u></strong> </p> <p></p> <p></p> <p>After some research, I found a recipe to get it going again:</p> <ol> <li>Create a new file within the web service application (at the root of the requesting domain), called clientaccesspolicy.xml with the following contents: <br /> <br /> <br /><em><?xml version="1.0" encoding="utf-8"?> <br /><access-policy> <br /> <cross-domain-access> <br /> <policy> <br /> <allow-from http-request-headers="*"> <br /> <domain uri="*"/> <br /> </allow-from> <br /> <grant-to> <br /> <resource path="/" include-subpaths="true"/> <br /> </grant-to> <br /> </policy> <br /> </cross-domain-access> <br /></access-policy></em> <br /> <br /> <br /></li> <li>Create another file within the web service application(at the root of the requesting domain), called crossdomain.xml with the following contents: <br /> <br /><em><?xml version="1.0" encoding="utf-8"?> <br /><cross-domain-access> <br /> <allow-http-request-headers-from domain="*" headers="*"/> <br /></cross-domain-access></em> </li> </ol> <p>After adding these policy files, my app started working. Hope this helps.</p> <p><strong><u>References</u></strong></p> <p><a title="http://timheuer.com/blog/archive/2008/04/06/silverlight-cross-domain-policy-file-snippet-intellisense.aspx" href="http://timheuer.com/blog/archive/2008/04/06/silverlight-cross-domain-policy-file-snippet-intellisense.aspx">http://timheuer.com/blog/archive/2008/04/06/silverlight-cross-domain-policy-file-snippet-intellisense.aspx</a></p> <p><a title="http://timheuer.com/blog/archive/2008/06/10/silverlight-services-cross-domain-404-not-found.aspx" href="http://timheuer.com/blog/archive/2008/06/10/silverlight-services-cross-domain-404-not-found.aspx">http://timheuer.com/blog/archive/2008/06/10/silverlight-services-cross-domain-404-not-found.aspx</a></p><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com3tag:blogger.com,1999:blog-35974585.post-56613935636275453142009-07-02T11:01:00.001+10:002009-07-02T11:01:56.238+10:00Microsoft SharePoint 2007 – Renaming a MOSS Server<p> <br />This is the N-the time I’ve had to rename a SharePoint server, and every time I keep on forgetting the exact steps… so these are notes for the (Technical) me.</p> <ol> <li>Change each alternate access mapping for MOSS 2007/WSSv3 deployment in Central Admin reflecting new server name </li> <li>Register the change with SharePoint, using: <br /><em> <br /><strong>stsadm -o renameserver -newservername <newname> -oldservername <oldname></strong></em><strong> <br /></strong> <br /></li> <li>Rename server in Windows </li> <li>Restart server </li> <li>Post restart, update SharePoint farm credentials using: <br /><em> <br /><strong>stsadm -o updatefarmcredentials -userlogin <domain\domainuser> -password <password></strong></em> <br /> <br /></li> <li>Run an iisreset </li> <li>Check the accounts used in application pools within IIS, update to reflect new machine name accounts </li> <li>Rebuild the search index (remove and recreate) </li> <li>Operation Complete!</li> </ol> <p>Source: <a title="http://www.sharepointblogs.com/mirjam/archive/2007/08/06/renaming-a-moss-server.aspx" href="http://www.sharepointblogs.com/mirjam/archive/2007/08/06/renaming-a-moss-server.aspx">http://www.sharepointblogs.com/mirjam/archive/2007/08/06/renaming-a-moss-server.aspx</a> (Thank you <a href="http://www.sharepointblogs.com/members/Mirjam/default.aspx">Mirjam</a>)</p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-80159192877856875872009-06-24T10:03:00.001+10:002009-06-24T10:03:16.885+10:00Microsoft SharePoint 2007 – An iPhone Client to view SP Content?<p>SharePoint comes standard with the support for mobile browsing – and if you’ve used it, you would have to say it does the job. But what if you now you feel like bringing surfacing the information on an iPhone (Besides browsing SharePoint sites directly from Safari)? The product would no doubt be a very attractive app for use on the go. </p> <p>So recently, I stumbled across quiet an interesting product ‘<a href="http://www.spyk.com/Products/iShare/Pages/iShare.aspx">iShare</a>’ from <a href="http://www.spyk.com/">Spyk software</a>: A SharePoint Client App for the iPhone. <br /> <br />The iShare app allows users to login using Windows Authentication or SharePoint Forms Authentication and view, search and create content within a SharePoint Site. There is a list of files which this little app can open:</p> <li>Adobe Acrobat (.pdf) </li> <li>Microsoft Word (.doc, .docx) </li> <li>Microsoft Powerpoint (.ppt, .pptx) </li> <li>Microsoft Excel (.xls, .xslx) </li> <li>Images (.jpeg, .jpg, .tiff, .gif) </li> <li>Web pages (.html, .htm, .aspx) </li> <li>Text Files (.txt) </li> <li>Contacts (.vcf)</li> <p>Now, I do not have an iPhone neither have I used this application – so I cannot comment on the product… so give it a shot and leave a comment :) Apparently you can get it on the iPhone Apps Store. <br /> <br /><a title="http://www.spyk.com/Products/iShare/Pages/iShare.aspx" href="http://www.spyk.com/Products/iShare/Pages/iShare.aspx">http://www.spyk.com/Products/iShare/Pages/iShare.aspx</a> <br /> <br />Here are some screenshots from the iShare site:</p> <p><img border="0" hspace="68" vspace="50" src="http://www.spyk.com/Products/iShare/PublishingImages/BrowseInsidePhone.png" /><img border="0" hspace="20" vspace="20" src="http://www.spyk.com/Products/iShare/PublishingImages/BrowseSites.jpg" /><img border="0" hspace="20" vspace="20" src="http://www.spyk.com/Products/iShare/PublishingImages/ListLists.jpg" /><img border="0" hspace="20" vspace="20" src="http://www.spyk.com/Products/iShare/PublishingImages/search.jpg" /></p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com4tag:blogger.com,1999:blog-35974585.post-37828595681886998992009-06-23T16:37:00.001+10:002009-06-23T16:37:10.100+10:00Windows Presentation Foundation 4 in VS 2010<p>I don't usually blog about things other than SharePoint or CRM... but this is just really cool – not new as we’ve all seen this on the surface, but new as it can work on Windows 7! In the video, the speaker has used a Codeplex project “<a title="http://www.codeplex.com/MultiTouchVista" href="http://www.codeplex.com/MultiTouchVista">MultiTouchVista</a>” (<a title="http://www.codeplex.com/MultiTouchVista" href="http://www.codeplex.com/MultiTouchVista">http://www.codeplex.com/MultiTouchVista</a>) in conjunction with a “Windows 7 Multi-touch driver” to enable user input for multi-touching on normal mice. </p> <p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:46c6d0ab-7712-42cb-bb98-09d49ffd38df" class="wlWriterEditableSmartContent"><div id="c660d7fe-fc13-40c2-90dc-9dbccf20976f" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=0DM7NQJ0NA4" target="_new"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj26rki2p1iJRSx9s6imRKNbR-H09o1zitgEnVRHAB1VIZWbHcl1v08fk1xuU4UzPQIbXUkvFelaSeSnaO1q5ATkIxWMlFmnitbOymFfwS7cwulF5P4YcX8gFeLt9mu03qAZAf4gw/?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('c660d7fe-fc13-40c2-90dc-9dbccf20976f'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/0DM7NQJ0NA4&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/0DM7NQJ0NA4&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div></div> </p> <p> <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:46eafadc-5a47-411b-b2fc-d0ecef8bd599" class="wlWriterEditableSmartContent"><div id="3bb5e6b2-568a-485f-9f0e-ef2b1e172d4e" style="margin: 0px; padding: 0px; display: inline;"><div><a href="http://www.youtube.com/watch?v=CHsqS2QnR14" target="_new"><img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3PNoiddLVxSI6en9PmwEP0PveFqfarYSZGouUYxr6DXFjHzyTkDKXjNZTbgC_8NbJB2aAWkRqsoSFG7NpL1CTEI9cRi6TNeWlzcdAt8eQBAWfgkhBSiedmjMlC2tUK34ijPmarQ/?imgmax=800" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('3bb5e6b2-568a-485f-9f0e-ef2b1e172d4e'); downlevelDiv.innerHTML = "<div><object width=\"425\" height=\"355\"><param name=\"movie\" value=\"http://www.youtube.com/v/CHsqS2QnR14&hl=en\"><\/param><embed src=\"http://www.youtube.com/v/CHsqS2QnR14&hl=en\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"355\"><\/embed><\/object><\/div>";" alt=""></a></div></div></div> </p> <p>Having asking Google more… there’s apparently much Developer resources on multi-touch: <a title="http://code.msdn.microsoft.com/WindowsTouch" href="http://code.msdn.microsoft.com/WindowsTouch">http://code.msdn.microsoft.com/WindowsTouch</a></p> <p>Now… I wonder if anybody out there has written a track pad multi-touch driver? I don’t want to plug-in more than 2 mice into my Dell XPS!</p> <div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-38026440326340709822009-04-08T19:30:00.008+10:002009-04-08T20:05:46.106+10:00Microsoft SharePoint 2007 - Fixing a failed WSS v3 and/or MOSS 2007 SP1/Infrastructure Patch Upgrade<span style="font-weight: bold;">The Upgrade Process</span><br />I was upgrading an environment (MOSS version 12.0.0.4815) in the following manner:<br /><ol><li>Check all Timer jobs have run to completion in the existing environment</li><li>Check no errors with WSP</li><li>Install WSS v3 SP1 Patch (Skip Configuration wizard)</li><li>Install MOSS 2007 SP1 Patch (Skip Configuration wizard)</li><li>Install WSS v3 infrastructure Patch (Skip Configuration wizard)</li><li>Install MOSS 2007 infrastructure Patch</li><li>Following the prompts for the Configuration Wizard (PSconfigUI).</li></ol><br />Okay, so far so good.<br /><br /><span style="font-weight: bold;">The Problems</span><br />In the middle of the configuration wizard, it seemed to have stayed on Step 5 for hours. Looking at the Event Viewer, errors with messages:<br /><br />“<span style="font-style: italic;">Content index on Search could not be initialized. Error The content index is corrupt. 0xc0041800.Component: bd72df39-396a-472f-8a1a-db6c3241e922</span>”<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCVBcivXwD4Ga7D8kB1I7GvGNhaMUSxppu5WDP5a8zidXYplTvgPRe1J_ixMegZN-XFthhyphenhyphen4yvpI8lmXeelCrmkp0_bkTkys3gFJcxf2ABgKpdyC3vTpb_6jo6lqu4FICwYnvNVg/s1600-h/eventerrors.jpg"><img style="cursor: pointer; width: 362px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCVBcivXwD4Ga7D8kB1I7GvGNhaMUSxppu5WDP5a8zidXYplTvgPRe1J_ixMegZN-XFthhyphenhyphen4yvpI8lmXeelCrmkp0_bkTkys3gFJcxf2ABgKpdyC3vTpb_6jo6lqu4FICwYnvNVg/s400/eventerrors.jpg" alt="" id="BLOGGER_PHOTO_ID_5322254255620643506" border="0" /></a><br /><br />Checking Upgrade.log (in 12\Logs\), unveiled some Exception errors.<br /><br /><span style="font-weight: bold;">The Solution</span><br />So then I cancelled out of the setup (which took a while to cancel – actually it didn’t cancel until I ran the following command), and ran the following command to force the upgrade of the SharePoint environment:<br /><br /><span style="font-weight: bold; font-style: italic;">psconfig -cmd upgrade -force</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1SWAIPc7vNWl9t1HvgHvJqoFQjczC5ybhVx2ExE-HqZXhwuHUL4J2pAACIlJPZDS2TWMkuRRVNbNKsqIJXt6b0S77lJlUsFDThEVFijJ6lLA8bJf_I4LjNC_iiteNXHfInX0X1g/s1600-h/command.jpg"><img style="cursor: pointer; width: 400px; height: 284px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg1SWAIPc7vNWl9t1HvgHvJqoFQjczC5ybhVx2ExE-HqZXhwuHUL4J2pAACIlJPZDS2TWMkuRRVNbNKsqIJXt6b0S77lJlUsFDThEVFijJ6lLA8bJf_I4LjNC_iiteNXHfInX0X1g/s400/command.jpg" alt="" id="BLOGGER_PHOTO_ID_5322254255885493666" border="0" /></a><br /><br />Checked the version numbers and the existing sites I had - That seemed to have fixed my issues<br /><br /><br /><span style="font-weight: bold;">Alternative</span><br />Alternatively, the stsadm utility can be used (though I didn't have to use it):<br /><br /><span style="font-weight: bold; font-style: italic;">stsadm -o upgrade </span><strong style="font-weight: bold; font-style: italic;">-forceupgrade</strong><br /><br />For more details on this command:<br />Upgrade: Stsadm operation (Windows SharePoint Services)<br /><a href="http://technet.microsoft.com/en-us/library/cc288073.aspx">http://technet.microsoft.com/en-us/library/cc288073.aspx</a><br /><br />Upgrade: Stsadm operation (Office SharePoint Server)<br /><a href="http://technet.microsoft.com/en-us/library/cc263413.aspx">http://technet.microsoft.com/en-us/library/cc263413.aspx</a><br /><br /><br /><br /><span style="font-weight: bold;">References</span><br />Command-line reference for the SharePoint Products and Technologies Configuration Wizard (Office SharePoint Server)<br /><a href="http://technet.microsoft.com/en-us/library/cc263093.aspx">http://technet.microsoft.com/en-us/library/cc263093.aspx</a><br /><br />Install Windows SharePoint Services 3.0 by using the command line<br /><a href="http://technet.microsoft.com/en-us/library/cc752946.aspx">http://technet.microsoft.com/en-us/library/cc752946.aspx</a><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-74126954907300419072009-04-02T16:45:00.004+11:002009-04-02T17:01:39.929+11:00Microsoft SharePoint - Version numbersIt's been the Nth time I've had to checkup the version of SharePoint that is installed on a Farm - and I am now finally keeping this here for my own notes.<br /><br />All these times I've been hitting back on a very nice post by <a href="http://www.mindsharpblogs.com/penny">Penny Coventry</a> that contains a list of SharePoint Patches and respective version numbers:<br /><a href="http://www.mindsharpblogs.com/penny/articles/481.aspx">http://www.mindsharpblogs.com/penny/articles/481.aspx</a><br /><br />The easiest ways I use to check version numbers are:<br />1. In Central Admin, Site Actions > Site settings:<br /><br /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmGnrcIoRoPGxwKFZvjo2QtAtCECEtwEOg6ZYpVVCD6d5diZcd-uF9apWbpcYwAIcp0cmZqOgx_iI8MXfFD0aUZ4K3mHfjHpXdbLSm64PHhSg8XPoUFU5w0gd7zeABxc2ng6o17Q/s1600-h/ViaIE.JPG"><img id="BLOGGER_PHOTO_ID_5319969041485286034" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 219px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjmGnrcIoRoPGxwKFZvjo2QtAtCECEtwEOg6ZYpVVCD6d5diZcd-uF9apWbpcYwAIcp0cmZqOgx_iI8MXfFD0aUZ4K3mHfjHpXdbLSm64PHhSg8XPoUFU5w0gd7zeABxc2ng6o17Q/s400/ViaIE.JPG" border="0" /></a><br /><br /><strong>OR</strong><br /><br />2. In IIS, right click on the web application and select properties > 'HTTP Headers' tab, under Custom HTTP Headers section:<br /><br /> <a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7EITyS-4xylKG6SA563JCc8wb7LrQ2p4TRxl2KxcEtSu3yIs9vBe3mISN4R6zcqLeaAmQcO73WX2Nh9-pkk3n3mtHB6G-W-PJmTX5IN6XeogpiiDAv2i1esWX1DZei2xsTdvtFQ/s1600-h/OnTheServer.JPG"><img id="BLOGGER_PHOTO_ID_5319969037421769010" style="WIDTH: 400px; CURSOR: hand; HEIGHT: 345px" alt="" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7EITyS-4xylKG6SA563JCc8wb7LrQ2p4TRxl2KxcEtSu3yIs9vBe3mISN4R6zcqLeaAmQcO73WX2Nh9-pkk3n3mtHB6G-W-PJmTX5IN6XeogpiiDAv2i1esWX1DZei2xsTdvtFQ/s400/OnTheServer.JPG" border="0" /></a><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com2tag:blogger.com,1999:blog-35974585.post-16194774095415351282009-03-09T11:30:00.003+11:002009-03-09T11:40:59.340+11:00Microsoft SharePoint 2007 - Understanding performance considerations in SharePoint OMA colleague, <a href="http://fernandof.wordpress.com/2009/03/05/understanding-performance-considerations-in-sharepoint-om/">Fernando Felman</a> has highlighted a very useful and interesting blog spot by Andreas Grabner that walks-thru scenarios and looks into the performance of SharePoint when under various SharePoint object model calls.<br /><br />Though quite a few points in the post are obvious to the developer, I still think it is worth a good read :)<br /><br />The article:<br /><span style="font-style: italic;">SharePoint Object Model Performance Considerations</span><br /><a href="http://www.infoq.com/articles/SharePoint-Andreas-Grabner">http://www.infoq.com/articles/SharePoint-Andreas-Grabner</a><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0tag:blogger.com,1999:blog-35974585.post-68762051319670097382009-02-22T23:14:00.002+11:002009-02-22T23:17:18.395+11:00Live Framework: Creating a Silverlight Mesh-enabled web application in 8 stepsI stumbled across this pretty awesome how-to article that talks about how to create a Silverlight Application that utilises features from the Mesh!<br /><br />Enjoy...<br /><a href="http://blogs.msdn.com/katriend/archive/2008/11/19/live-framework-creating-a-silverligt-mesh-enabled-web-application-in-8-steps.aspx">Live Framework – creating a Silverlight Mesh-enabled web application in 8 steps</a><div class="blogger-post-footer">http://sharepointsix.blogspot.com
http://blog.dougleung.com</div>Douglas Leunghttp://www.blogger.com/profile/06853517044869154966noreply@blogger.com0