Angus Logan

MCMS/SPS/.NET/SQL/Microsoft Australia

March 2005 - Posts

New BizTalk Mailing List

Via notgartner.com: Mitch Denny's Blog 

Bill Chesnut has just set up a BizTalk mailing list. You can subscribe to it by emailing biztalker@listserver.readify.net with Subscribe in the subject. The mailing list has a cool name too – “biztalker”.

Please Stay Out Of The Database!!!

This is also very relevant for MCMS as well as SharePoint.

Via Fitz

We had a fun internal debate this week on a new tool developed in France.  If you can read French, it’s documented here; the download link for the executable (whose UI is in English) is here.  The tool grabs deleted documents from the database and saves them to your local hard drive.

I’m far more in favor of undelete techniques that are user-accessible and use our object model to do what they do.  Commercial products like SmartLibrary (to name one of several) or roll-your-own code examples are available.  But this tool is (a) free, (b) only reads from the database — the only writing it does is to your hard drive, (c) is only really usable by an administrator.  In an emergency, it may be a good last-resort tool.  I haven’t used it myself, so I can’t really comment on whether it will work or not.

I’d be tempted to say it at least can’t hurt, but one of our developers reminded me that even reading from the database can indeed have negative effects on performance and stability.  Just to name two such effects, I’ll paraphrase his comments:

  • Deadlocks: direct SELECT statements against the database take shared read locks at the default transaction level, and can violate our lock hierarchy, leading to seemingly random failures.
  • Incorrect data: if you avoid taking locks to avoid a deadlock, you’ll very likely observe the database in an intermediate state and retrieve incorrect data.

Hopefully I don’t need to remind anyone of the dangers of writing to our database, but those risks should be far more obvious.

And it’s not that, if you wind up writing code that communicates with our database, I’m going to hate you.  It’s that (and Microsoft) won’t be able to help you.  It’s that you will run the risk of breaking or degrading the performance/stability of technology we built to be fast and robust.  The odds of a database change in our next Service Pack aren’t small.  It’s that you’ll on your own if anything goes wrong.  Consider this carefully.

Our object model is a contract with you.  We’ve gone to a lot of trouble to ensure that using the OM results in stable and performant database interactions.  If anything’s amiss, we’re honor-bound to fix it.  Please, please use it.

Does approx. $12,000 (85) of Kylie Minogue Concert tickets count as capital expenditure?
 
As you are all aware the fabulous Kylie Minogue is touring with her Show Girl tour.
 
Anyway my partner, Mikey (left) has purchased 85 tickets which is about $12,000! How crazy is that... I wonder if Kylie knew would she let him go back stage and promote him to super-keen-fan-fairy?
 
So if you know Kylie or are on her tour people, tell her Mikey purchased HEAPS of tickets so we can go and hang out back stage (which is the gay Nirvana!)
 
Of course the impossible princess will find this post before the Brisbane Show (I hear she uses Technorati).
Free SPS Ifilters

Via Martyn Johnson 

If you are looking for extra Ifilters then pay a visit to http://www.citeknet.com/ .

Ifilters for CAB, CHM, EXE, HLP, MHT, RAR, ZIP

CNET: VoIP calls become iPod radio broadcasts

Wow it (podcasts) must be mainstream if CNet are reporting on it.

---

 A growing number of people are sharing their iPod digital music using freely available software and Skype, a free Internet phone service.

The enthusiasts are borrowing heavily from another personal broadcasting phenomenon called podcasting, in which digital recordings are posted on a Web site for download to Apple Computer's popular iPod digital music players. "Skypecasters," as they call themselves, use Skype's peer-to-peer telephone network to distribute recordings over the Internet directly to each other for free.

Read the article.

GotDotNet User Sample: SharePoint Document Library Event Handler for Parsing JPEG Images
U2U CAML Query Builder and Execution Tool Released

Via Patrick Tisseghem's 

What is the CAML Builder?

CAML itself is the abbreviation of Collaborative Application Markup Language. It is an XML-based query language that helps you querying, building and customizing Web sites based on Windows SharePoint Services. The XML elements define various aspects of a WSS site. In the first version of our CAML Builder tool, only the query aspect of CAML is worked out. The tool will help you build, test and execute your CAML queries.

We provide you with two things:

  1. A Windows application you can use to connect to your portal or team site and build your CAML query string in a WYSIWYG manner. (U2UCamlCreator.exe)
  2. A small assembly you can reference helping you with the execution of your CAML query string within your code. (U2U.SharePoint.CAML.Server.dll)

CAML builder is downloadable from our SharePoint site. You just unzip the file and start working with it. We will work out an official article with more guidance info on the stuff you can do with CAML and the tool. But for the moment, if you want to start, here is a small walkthrough demonstrating the possible use of the tool.

A Small Example

To illustrate the CAML Builder, I will guide you through a small example. Suppose, you have within a WSS team site the following list of products.

You now have to build a small Web part to be displayed on the home page of the team site that displays the results of the following query: 'Get me all products that have a Red color, and a price higher that $500 but less than $1000 and contain the word mountain in the product name and all of this ordered by size'. You can build a nice UI to make the parameters dynamic, but the query itself is not an easy one to construct in CAML without some help. With the CAML Query Builder, it takes only a couple of seconds to build this query string.

Here are the steps

  • Open the CAML Query Builder tool - U2UCamlCreator.exe
  • Enter the URL to your site and either use the credentials of the logged on user or provide ones yourself. Note that the CAML builder internally works completely with the SharePoint Web services and thus can be used on non-SharePoint machines.


     
  • A treeview with the available lists and libraries is displayed.


     
  • Clicking on the list you want to work with displays the fields in another panel.


     
  • The panel above lets you build up your CAML string very easily. For our query, we first select the size field and then check the Order By.


     
  • Next is the part of the color. Clicking the color and the Where checkbox allows us to define the nex part of the query. Just click the small > button to add the new part to the Query string visualized in the treeview at the right.


     
  • Finishing off with the price and the contains in the same manner


     
  • In the lower panel of the window, you will find the CAML query string written out in full. As you notice, it is quite a challenge to construct this string without the help of the builder.


     
  • Of course, we can test our work by clicking the Test button.


     
  • I can copy and paste the query string now to be used within my application. But I do not want to have this string in my code. So what I will do is save the query configuration I just have created in a small XML file that in our application has a .caml extension.


     
  • And then we can close the tool. Note that when you start it again, you can simply open the saved .caml file and continue with the query.
     
  • I am going to build now a small ASP.NET user control to execute this query and show it in a datagrid wrapped up in a Web part to my users.
    I will of course use the SmartPart to host the user control in SharePoint.

    The user control UI is very simple. It just contains a datagrid.


     
  • Executing a CAML query string can be done via the SPQuery class of the WSS object model. Together with the CAML Query Builder tool, we also provide you with a small assembly that encapsulates all of that code. The only thing you need to do is

    - set a reference to
    U2U.SharePoint.CAML.Server.dll

    - declare a namespace
        
          using U2U.SharePoint.CAML.Server;

    - In the load event-handler, create an object of the CAMLHelper class. You have the option in the constructor to provide it with the site, list and CAML query string in the form of an XML document or just point to the file we have saved using the Query Builder tool itself.

         CAMLHelper hlp = new CAMLHelper(Server.MapPath("~/UserControls/products.caml"));

    - You have two methods on the CAMLHelper. The ExecuteQuery returns you a DataTable, and the ExecuteXMLQuery returns you an XML string.

          DataGrid1.DataSource = hlp.ExecuteQuery();
          DataGrid1.DataBind();

     
  • Deploying our user control and code behind 'the SmartPart way', we end up on our home page with the following result. I also use the property builder of the datagrid to display only a number of the columns returned by the helper.

 

Voilà. In a couple of minutes I have created here a Web part that internally does some fairly complex stuff. Using the CAML Query Builder and the assembly hiding the execution details for me, I can concentrate on the business part of the Web part and not on the plumbing to get it all executed.

I really want to thank Karine Bosch (our CAML girl) who I think has done a great job with the implementation of the CAML Builder. If you have any specific questions regarding the tool, you can contact either her (karine@u2u.be) or myself (patrick@u2u.be). We have a small discussion forum available on the SharePoint site in addition.

What's the future bringing? Well, Karine has started on a small update of the CAML builder to be able to internally switch from the Web Services approach to the Object Model approach. And then she will start concentrating on how we can define which fields we want to have returned instead of returning all of them.

From the U2U side, we are working on a number of other SharePoint and IBF-related tools we will bring to the community. We just need the time to finish them :-)

My Setup from Home

WARNING: NASTY QUALITY PHOTOS FROM SMARTPHONE!

How can you get stressed when its all water around you :)



SharePoint Stress Testing

Via James Edelen @ Mindsharp Blogs

Stress Testing SharePoint with Application Center Test (ACT)
Testing SharePoint is and incredibly important part of capacity planning. There is nothing worse than spending weeks or months implementing a solution and it not being able to handle the required load. Using a tool like ACT will enable you to test your hardware before production in order to ensure that it will perform as expected. It will also let you more easily discover bottlenecks in your system before going live. You can watch performance counters on your servers while stress testing to find bottlenecks.
ACT stands for Microsoft Application Center Test tool and it is included with Microsoft Visual Studio .NET Enterprise and Enterprise Architect. When you launch it, it creates a blank project as shown below:

Under the project (which in this case is called Application Center Article), there are 3 items – tests, results and users. You must create a test before you can run a test. On creation, you will be given two choices – Create an Empty test and Record a test. Record a test is great, but it only works with SharePoint Anonymous Access, which is not ideal for stress testing, so we will create a new Blank Test. To Create a Blank Test:
1. Right-click Tests and select new Test
2. Click Next to start the Wizard
3. Select Create an Empty Test
4. Select a Script Language (all examples here will be VBScript)
5. Give the Test a Descriptive name (SharePoint Basic Test)
6. Click Finish to complete the wizard.
This will create the most basic test you can have:
Test.SendRequest("http://localhost")
This command creates a request and sends it to the localhost. It will ask the webserver for the default document and time how long it takes for the server to process the request and send the data back to the client. You will want to edit this line to point to your SharePoint server.
Now, we still need to do a couple of things to prepare a test to run against SharePoint. First is that we need to create users. You will want to create a batch of test users (between 50 and 100) in Active Directory. These users should have progressive name (ie test0, test1,test2, etc) and they should all have the same password. These users must have at least reader permissions to SharePoint.
Once the users are created in active directory, they must be referenced in ACT. As long as the users have progressive names and the same password, doing this is incredibly easy. To associate these users with ACT do the following:

1. Right click the Users item and select add.
2. Right click on the created group (new users group), select rename and change the name to a descriptive name (SharePoint Users) – this should look like the following:

3. Click the Actions Menu, then select Generate Users
4. Under number of users, select the number of test users you created
5. Under User name prefix, enter the domain\username (trainsbydave\test)
6. Under Password, enter the password for all these users.
It should now look as follows:

Now, click ok and all the users will be associated with ACT. It will looks as follows:

You now have all the users associated with the SharePoint users group in ACT, but we still need to link the SharePoint Users Group to the Test and set some properties on the test. To do so:

1. Right click the test your created earlier and select properties
2. On the General Tab, enter a number of simultaneous browser connections and set a test duration time.

NOTE: When setting the number of simultaneous browser connections, you want to start this number low (1) and slowly ramp up until you get your CPU usage to 90% on your Web Front End SharePoint Servers.

NOTE: Often you will want to set a 30 second warmup period in order to allow the portal to load and cache data before running the full blown test in order to get more accurate results.

3. One the Users Tab, select specify users and check the group you created (SharePoint Users)
4. Click OK
You are now ready to run the test. Click the green sideways triangle on the taskbar to start the test. You will get a screen that looks like this:

Once the test completes (or is stopped), you will want to review the test results. Click on the results item under the project and select the report for the test you just ran.


Under that report, you will get some very useful information. The most useful are:
Average requests per second: 6.92
Average time to first byte (msecs): 112.83
Average time to last byte (msecs): 120.29

The Average requests per second should meet or exceed the number you calculate using the Operations per second equation. The Average time to first byte is the time in milliseconds that it takes the server to generate the page and start sending it. The Average time to last byte is the time from the request being sent until the whole page is downloaded to the client. Using this, you can test your portal and use performance counters on your servers to monitor bottlenecks.

EPIC 2014 - Googlezon! flash movie.
I stumbled across www.ourmedia.org from a post Scoble had on his blog (his main blog, did you know he is stopping his link blog?).
 
Anyway there I found EPIC 2014 - its pretty cool - pure fiction but still pretty cool - check it out here. 8mb flash movie.
Telerik / McmsControls provide great support.

I have been using the McmsControls (www.mcmscontrols.com) this week in Anger (a good kinda anger :) ).

We are looking at a 100% Telerik solution from the radMenu to the radEditor (when v5.0 comes out :) ) with a bit of the radPanel and Treeview thrown in as well.

(I may also mention: I use the radEditor lite 2.03 (now upto 2.05) in almost every engagement and the clients love it).

They are good products.

If I find a problem and log it on Client.NET by the next morning I have a new assembly and a great explanation of the issue.

Check them out at www.mcmscontrols.com

Gretchen from Microsoft HR gets her Podcast (JobCast?) On

Love it!!! – but it only goes for 30 seconds as an introduction :(

Via Technical Careers @ Microsoft 

That's right ... a new feature ... JobsBlogCast!  I plan on interviewing Microsoft employees, hiring managers, recruiters ... and even applicants .... so you can hear first-hand about what it's like to work, hire, recruit, and interview at Microsoft.  My first blogcast is a little introduction just to test the functionality.  I'm happy to say that I used Microsoft Office LiveMeeting and Windows Media Encoder to record it. (thanks, JP and Josh, for the tips, and Rob, for the inspiration).

Direct Download

Subscribe to Future JobsBlogCasts

Enjoy!

gretchen

500 downloaders of CMS RAPID !!! WOO HOO! (& livemeeting coolness)

I had a big chat with Nick today. He showed me some really really cool new stuff.

In preparation for the CMS Rapid webcast I am doing (in the Asia-Pacific timezone GMT+10) I also had a big play with LiveMeeting (www.microsoft.com/livemeeting) they are giving out 15 days of free subscriptions. – very cool –

  • you sign up;
  • start a livemeeting;
  • tell it to broadcast audio over the internet - you think it is going to come from your mic but what you actually do is enter your phone number (any country code) and it then calls you; and broadcasts your phonecall out to the web.
  • coolest thing i've seen for a while - all for free!!!

Anyway back to CMS Rapid

Via MCMS.RAPID Launch

Yesterday we had the 500th unique person download RAPID which is a milestone we had our eye on, and is simply superb news !

We have downloads from more than 60 different countries with the top 5 looking like this: US, UK, Canada, Netherlands, Australia and Denmark (last two are joint 5th !)

We also have 162 and 141 different partner and customer organisations respectively. For a specialist solution these are truly impressive statistics and demonstrate the significant uptake of RAPID across the world.

We are also seeing no plateauing of the rate of download - the number of people on average per day is as high as it was at pretty much any stage other than the very first 2 days of the beta stage when the download was first made available.

SharePoint Online Training

Via  Arpan Shah's WebLog

You can do SharePoint Products and Technologies Hands on Labs online. http://www.microsoft.com/technet/traincert/virtuallab/sps2003.mspx

This is -absolutely- killer. You can learn about the product without even having to set it up.

Read your blogs within VS.Net

If only I could get emails and Instant Messenger in VS.NET I would never have to leave :)

Via JOPX 

Whow, way cool, an addin for VS.Net to read blogs and wait it gets even better - it's open source... Download it here.

The trill of the kill from your own cubical

I got the coolest thing from Justin Walduck who I work with.

 

I think there is sarcasm hidden in there somewhere I just can’t tell…

 

---

 

Ever get up in the morning and feel like killing something? Well, now you can do it from the comfort of your home computer!

For $300, hunters can log onto www.live-shot.com and shoot a wild animal--in real time, with real guns. The only requirement is to obtain a Texas hunting license first, which is also available over the Internet. Here's how it works: Hunters pay for two hours and two rounds from a 30.06 rifle, having full control over the firearm which is connected to a motorized arm. The online hunter watches their prey through a camera built into the scope, and pulls the trigger with a mouse click.

The game--which presently includes sheep, Blackbuck Antelopes, and Wild Hogs--is stationed on a secluded ranch in Texas. Ranch personnel is standing by to provide the kill shot in case the animal is only wounded. Meat processing and taxidermy cost extra, and an additional $9.95 plus shipping buys the proud hunter a DVD recording to gloat with in front of his buddies.

SharePoint customization anyone? Introducing a new member to the blogsphere

Its interesting – SharePoint Customizations (or the Australian way, Customisations) are getting a lot of airplay recently;

I guess its because lots of people have implemented SPS or WSS and now have a fully functional portal – that looks like Contoso (which isn’t a good thing) so now they want to ‘sex-it-up’.

Anyway Andrew Connell is plugging his workmate’s blog Heather’s blog [rss] that tackles the both the DEV & UI issues around SPT & MCMS.

Via andrew connell 

The last 1.5 years I’ve worked closely with one specific co-worker on a MCMS and an MCMS-SPS project.  She has a design background and is a great developer as well.  More importantly, she just “gets it”… great problem solver.  Over the last two projects, she’s gotten herself into being quite the expert on SharePoint UI customization not to mention grasping countless gochas and undocumented nuances within SharePoint and MCMS.

I’d like to introduce Heather’s blog.  If you work with SharePoint and deal with any customization (templates, site definitions, CSS, etc) or admin-type topics/issues, this is a _MUST SUBSCRIBE_ blog.  I’ve seen some of the stuff she plans to blog about… and trust me on this one: you won’t find it anywhere else on the web.  Some things Microsoft has documented on MSDN, but it doesn’t go NEARLY to the detail Heather has done.

Last thing… she’ll be at TechEd 2005 in Orlando.  You can find us (along with some other co-workers) buried in the portal track breakout sessions.

» Heather’s blog [rss]

[you owe me a drink at TechEd for this post Heather ]

CMS.Rapid Australian Launch Webcast Announced

 

Who is involved in the webcast?

Angus Logan (Data#3) , Matthew Dunstan (Microsoft Australia), Nick Mayhew (Artemis)

What is it about?

CMS.Rapid which is a free framework that enables MCMS developers to produce advanced MCMS websites in short timeframes with minimal effort. The web cast will be similar to the UK launch but may be more localized for Australia.

Where is this event?

The Web (LiveMeeting land to be more specific) - or drop me a line angus_logan@data3.com.au if you want to watch live from the MS Offices in Brisbane

When will this be taking place?

6th of April 12pm – 1pm AEST (GMT +10)

Why should I care?

Because CMS.Rapid is changing the MCMS landscape and looks like another great initiative coming out of the of the UK with Microsoft’s full support.

How do I register?

Go to the following URL and sign up - you will be emailed the details of the LiveMeeting closer to the date. https://www.local.microsoft.com.au/australia/events/register/home.aspx?levent=574474&linvitation

 

MCMS.Rapid and MS-CRM

Ah my 2 loves. Microsoft Content Management Server & MS CRM (not forgetting SPT/SQL RS/.NET/beer).

This is a very interesting topic! - I have been involved in many MS CRM to .NET integration projects at Data#3 so I would be interested in seeing how this progresses.

Pure Speculation: One possible option would be being able to create contacts/accounts in CRM and then have those contacts into your website running on top of MCMS.Rapid and then use some kind of custom authentication to check the credentials supplied against CRM and allow access to secured areas etc.

Via Mark Harrison 

I had a session today with the Microsoft CRM guys and it became evident that it would be really useful if the proposed MCMS.Rapid V1.1 membership / user profiling optionally integrated with Microsoft-CRM. What do you think ?

Please send any thoughts on MCMS.Rapid membership / user profiling functionality to blog'AT'markharrison.co.uk and Nick.Mayhew'AT'artemiscorp.com.

Aparently I rock too

:)

Comments from Angus Logan:

Sender: Nigel
=====================================

re: Disable Button On PostBack (ASP.NET) - also works with validation controls

Excellent Piece of code, exactly what I was looking for, thanks for posting it.

Source: http://msmvps.com/anguslogan/archive/2004/12/22/27223.aspx#38583

More Posts Next page »