.NET 3.5 SP 1 GDR is Out
The .NET 3.5 SP 1 GDR (General Distribution Release), basically the patch for the bugs in .NET 3.5 SP 1, is now out! Details of the patch are/will be available at KB959209
Father Christmas is a SharePoint fan
It really is the season of giving, especially for the SharePoint developers/users/fanboys (yes Marc, I am looking at you). Some of the presents that are under the tree are:
WSRP Toolkit for SharePoint: http://feeds.feedburner.com/~r/sharepointteamblog/~3/485910608/announcing-the-wsrp-toolkit-for-sharepoint.aspx
The WSRP Toolkit for SharePoint provides sample code for producing WSRP conformant data from SharePoint lists and libraries. External portal platforms (e.g. BEA AquaLogic Portal, IBM WebSphere Portal, SAP NetWeaver Enterprise Portal etc.) can then render SharePoint data natively through their WSRP consumer portlets.
I am excited about this because it really does being more interop to SharePoint.
The SharePoint Guidance from the patterns & practices team: http://blogs.msdn.com/francischeung/archive/2008/12/18/shipped-sharepoint-guidance.aspx
- Architectural decisions about patterns, feature factoring, and packaging.
- Design tradeoffs for common decisions many developers encounter, such as when to use SharePoint lists or a database to store information.
- Implementation examples that are demonstrated in the Training Management application and in the QuickStarts.
- How to design for testability, create unit tests, and run continuous integration.
- How to set up different environments including the development, build, test, staging, and production environments.
- How to manage the application life cycle through development, test, deployment, and upgrading.
- Team-based intranet application development.
I have underlined the one that most excites me, unit testing SharePoint!
SharePoint User Interface Extender: http://blogs.msdn.com/chrisfie/archive/2008/12/19/announcing-the-codeplex-release-of-shuie-sharepoint-user-interface-extender.aspx
ShUIE is an addition to Microsoft SharePoint that allows a developer to inject JavaScript and CSS fragments depending on the context of the page being displayed. JavaScript and CSS injected can be optionally minified, and jQuery is included to increase functionality.
This will just make things like Slide.Show integration or jQuery integration so much easier!
SharePoint on the iPhone: http://blogs.msdn.com/ekraus/archive/2008/12/18/sharepoint-on-the-iphone.aspx
-Asynchronous – even with poor reception, the browsing experience should be “good”
-Available via iTunes App Store
-Advanced compression algorithm – faster downloads & browsing
-Uses SSL to connect
So all you buggers who went to CT for a holiday, us who remained now have something to keep us busy and give us an edge over you for next year.
The Cat(.NET) is out of the bag
Those who know me as a developer, and those who attended the boot camp I ran for the last two weeks, have an idea that I like analysis tools (in the boot camp I present a session on my favorite 7 tools, 3 of them are analysis tools). That said I have been following a team at Microsoft for ages who have been building a tool called CAT.NET, which is another static analysis tool. This one focuses on analyzing code for security issues. I looks good, but it really doesn’t blow me away.
What’s the first thing you do when you get a new tool? Run it against your own code and then the Microsoft code ;) No where could I get this code to ever give me a security issue – which is either a good or bad thing. When it’s done it provides a report in HTML and XML which is boring as hell:
The report on System.Web.Services.dll
To see a problem I looked at the rules, which are defined in XML, to actually force an issue. I decided to take a stab at the process command execution rule, with the amazingly complex code like this:
This produced a nice report like this:
That said during one of my tests with it I did get a different result, a nice crash when checking System.Data.dll
StackOverflowException in the security application.
But none of the above is the reason why it does not blow me away, it doesn’t blow me away because it’s another tool that is actually not needed. Looking at the files and code (thanks to reflector) this could have easily been built into FXCop and made that a better solution overall. It is in beta still, so hopefully this is an indication of a tool that has been grown in the dark and now that the light of the public the team will start to understand real world scenarios.
If you needed an indication of the beta status of this tool, check out how many NotImplementedExceptions are in the code still :(
Remote only means in America
Oh well, no freebies for me. It seems the SharePoint REMOTE survey I mentioned is only for American’s. I am seriously wondering if they know how remote South Africa is compared to Redmond… maybe they thought I was in the other Johannesburg.
Have a laugh
Someone pointed out that my post yesterday was very serious, and not like me. Well here is something to counter the serious-ness-isy from yesterday and hopefully return balance to the force… or something like that.
more song chart memes
BizTalk 2009 Beta Out
Yes we can!
I thought that stealing Obama’s now famous chant to highlight that nothing is impossible within the celebration of democracy would be appropriate for this post. Over a year ago I posted about a blog which I felt was written by the biggest loser in the world (See What A Loser). This idiot was churning out the kind of rhetoric that a small, vocal minority loves to in South Africa about how much they hate it and how bad it it. It’s a narrow one-sided very and those sort of people need to be shipped off to a place they feel is not bad and leave the rest of us, who believe in South Africa and want to make it great to do so. I followed it up with a call to report the blog (See Report the Idiot), and then I forgot about it.
Today someone commented on it and I went to look up what has happened in a year (quick Google search):
- The idiot causes some death threats (if you needed more proof that this idiot is scared and believes violence is the only solution. Maybe the saying violence attracts violence holds some truth.)
- Then the best news: The idiot was shutdown! http://mybroadband.co.za/vb/showthread.php?t=114660
Let me say it once more, when it comes to removing idiots from the web the answer is definitely Yes We Can! Now about removing them from here, anyone got a boat to lend ;)
Use SharePoint - Get a Gift
Microsoft is conducting a survey for people who use SharePoint daily (I am guessing each week day is enough to count for this). This survey can be done remotely which means that in SA we can take part (unless there is some other rule which prevents us) and in exchange for participation we get a Microsoft hardware or software title.
If you are interested please email [email protected] and insert SharePoint into the subject line.
Thanks to Mark Miller for the heads up!
Scott Hanselman - Last night at Microsoft
Being on the southern tip of the world and add the slowest bandwidth anywhere (confirmed by Scott himself) we seldom get the greats like Scott Hanselman out to talk to us, let alone for free, and when he is on holiday… but that is what the S.A. Developer community got last night and what a night it was. He spoke last night on MVC and I made some notes I thought I would share.
The first concept is that
- ASP.NET > Web Forms
- ASP.NET > MVC
It’s an interesting way of thinking that ASP.NET is not Web Forms, since it is normally that we use those two interchangeable. ASP.NET is a framework for building web applications, if we use web forms on that framework is a choice not a requirement. Web forms in itself is a lie, it tries to make us believe that the web is stateful… so that we get the RAD/VB6 experience for development. The problem is that like the Matrix, the lie constrains us. MVC is the anti-RAD in a way, it opens up a lot more to the developer than Web Forms traditionally does. Knowing there is a lie, and knowing the truth can hurt you (the same way Neo knew there was no gravity, yet fell) and so MVC can hurt you. MVC is NOT a replacement for Web Forms, it is another way to solve a set of problems and some problems are better solved in web forms, and others in MVC (or ASP.NET Dynamic Data).
MVC is made up of models, viewers and controls and all of these are changeable. So the viewers uses web forms to render the HTML, but there are other options. One of those is NHaml which is a very different way to create HTML (can read about it here) and I thought that looked very interesting. Viewers should contain no logic, they should focus on rendering HTML only. What is very nice is that for the rendering side JQuery is bundled directly into MVC! It is also important to note that ascx files (ASP.NET controls) are not a
Separate from the viewers is the controls which uses the ASP.NET Routing feature of 3.5 SP 1 heavily. It is very elegant in it’s implementation and shows a forward thinking of convention over configuration. In other words it if you type in a URL like http://test/account/view, it will first check in the viewers\account folder for a view.aspx or ascx file and then in the viewers\shared folder for a view.aspx or ascx file. No config to say that this URL maps to this file. Controllers should contain the bulk of the logic but should not have any web concepts (i.e. don’t use the Request object). Obviously you could, but this breaks the important separation in the MVC design. What is nice, is that because the design of MVC is to help enforce separation, unit testing is amazingly simple and if you have the full versions of Visual Studio then it even builds unit tests for you! So while it may be very easy to put some code in a controller to check if a user is authenticated, you need to decide what level of tolerance for code smell you can handle.
Separate still from both of those is the models. Which is your data model for example LINQ to SQL. The purest form of MVC is you have your data model and then a model to talk to controllers so there is a separation in the models and everything is clean. How much benefit that has in real world is unfortunately not that much and because you have the power (you took the red pill) you can share the model from the models to the controllers.
After that Scott showed his latest project, called NerdDinner. Which is based on MVC and will be an open source solution through CodePlex one day. He showed a lot of the code and highlighted the good bits and the bad bits. This really highlighted what he was talking about and some of the problems you need to solve when working with MVC. After that was Q&A with Pizza.
Defiantly one of the best talks I have attended in a long time. He is on his way to Cape Town (taking a day out of his holiday to fly specially to CT) so if you are in CT, you must go and see him! Details can be found on S.A. Developer!
SharePoint Survey Permissions: Part 2 - Allow anonymous users to vote on surveys
Part 1, which covers permissions to allow users to vote but not edit the website, can be found here
For the second post I thought I would share the most confusing issue I have personally with SharePoint survey permissions: namely on web site where anonymous users will hit it how do you let them vote? Since they are not members of the site you need to do a few extra steps to get it to work. Before I continue I recommend you read the first post since I will refer back to some parts of it.
The first thing is if you go to the permissions you need to give anonymous users permission, but there is no anonymous user option like we had with the domain group NT AUTHORITY\AUTHENTICATED USERS previously. However if you have configured anonymous access correctly you will find a menu option under settings which allow you to configure Anonymous Access.
You may find that it doesn’t work straight away, as in my case, because everything is set to read-only. So you can’t give the anonymous users permissions :(
To solve this, you need to go to the advanced settings for your survey and set Read Access to All Responses, and click OK. Now don’t worry that you may be sharing information, you will turn this off again in a moment.
Now if you go back to the anonymous access settings section of the permissions those options has they are no longer read-only! You can now set up anonymous access to your survey and click OK,
Now, if you want to, you can go back to the advanced settings page and set the Read Access to Only their own. Note: The anonymous settings you set are not lost, they are just set to read-only and your survey is available to anonymous users.