I thought I might create a screen cast for a bit of fun, so this screen cast shows how you can stop IE from prompting you to enter your windows login credentials:
Basically you need to ensure that your site is in the Local Intranet zone, IE will automatically forward your current login credentials on to sites in this zone.
I've been working on a large MOSS project for the past few months, I've learned a lot about designing and building the logical architecture of a MOSS instance. I thought that I might try to put some of my findings into words. Firstly I'd like to set the scene to some hypothetical scenario: You have just walked into the offices of Golf Corp, they are a national company that manages the golf handicap and scoring system of 150 golf courses. They have chosen to implement Microsoft Office Sharepoint Server to serve their 1000 staff and 20,000 users. Your mission should you choose to accept it, is to design the logical architecture and the server topology. From your first meeting you discover the following facts: - Approved Golf Corp staff can add and edit golf scores and content
- Approved golf course staff can add and edit golf scores only of it's members
- The portal will be the homepage for all Golf Corp staff
- Golf Corp currently uses Active Directory for it's corporate network
- Users should be able to view their previous scores
- Golf Corp already has a SQL Server database with all users and current scores and handicaps.
The first place a new MOSS consultant should look for logical architecture guidance is at the Microsoft reference. The key points are the use of web applications, zones and policy. It has been my experience that consultants who have only worked on smaller MOSS projects (single site collection, default zone, etc) haven't really looked at these concepts. I will make this a multi-part series, for this Part 1, lets first look at the basics of Zones and Authentication. A Zone is a URL that users enter your portal on - you can create a total of 5 zones with the names of: Custom, Intranet, Default, Extranet, Internet. That leads us to our next important bit, each Zone can have a different authentication provider these might include, NTLM / Kerberos, Forms, Anonymous etc. The next important concept that a MOSS consultant should have is an idea about this diagram: This diagram is also from the Microsoft reference design, an original Visio version can be found here. This excellent post from the Sharepoint team further explains the concepts that I have touched on here. The post raises a very important point: When a user request cannot be associated with a zone, the authentication and policies of the Default zone are applied. Consequently, the Default zone must be the most secure zone This diagram says so much, I will be referring to it in future posts as I cover more topics, the main point of this post however is to cover the top of the diagram, which lists the Zones and the types of users that make use of the zone. It is very important that your MOSS consultant understands these concepts, the next topic of Zone policy will build on top of what I have covered here. Does your MOSS instance have a Logical Architecture diagram like the one above?
Well I've started to get serious about blogging again, I'm now doing some interesting work that will give me the opportunity to post some useful content. In preparation for this, I've redesigned this web site and blog to reflect the new changes ahead. Also I've started using Twitter more and more, you can follow me at: http://twitter.com/DanielPollard
So its been a couple of weeks with my TyTN II so I thought it would be a good time to write about my experience.with it. Well as I type this I am sitting at McDonalds watching the kids play. In this time I've answered some work emails, checked the cricket score, taken some photos (and posted them to flickr) and chatted on messenger (not to mention writing this post). Some of the drawbacks I've found are very trivial, I think that it takes to much effort to create a new sms, I get annoyed at silly dialog boxes that assume that you have a stylus. I find the keyboard reasonably easy to use and my thumbs are pretty big. I really like the home screen that comes on this device, all the tiles are a nice size for my fingers. I must say that windows mobile 6 seems much improved, the multi-tasking is much smoother than previous versions. I read that one of the cons of this device was the battery life, I haven't experienced any problems myself but I do tend to have it tethered to my laptop most of the day. The other con was the camera speed, this is most certainly an issue it is very slow, for no apparent reason. I really can't believe its taken me this long to finally go mobile, being able to just browse google maps for the nearest shop of type X or reading google reader on my way home on the train ... I will never go back.
Last week I attended a training session on windows mobile, the training focused on the corporate features of windows mobile and exchange 2007. Well that inspired me to go and get a HTC TyTN II on the Three network. I rarely stray outside their coverage area, so I think they will be a good fit. The device is absolutely awesome, I've used a number of windows mobile devices over the years and I haven't been overly impressed with them. There are still a few things that really annoy me with windows mobile like silly message boxes (I hate anything that pops up, what's worse is when you need to use the stylus, I HATE the stylus). Windows mobile 6 is a big step up in my opinion, not just for the corporate features. The device has an inbuilt GPS, which was another influencing factor, since I do a bit of GPS development work. It was the first time that I've had a chance to run google maps, which is simply unreal. I really like the slide out keyboard, it really works for me, I can use the device without the stylus (maybe 95% of the time), the camera also seems usable. The big thing is really the data plan, being able to download content in high speed, I really love being connected full time, nothing beats it.
I've been doing a bit of XML work lately, writing and testing XSLT's. I've found that visual studio 2008 is a fantastic environment for this. Firstly you need to use the properties window of an XML document the two relevant properties are the Schemas and Stylesheet settings.
By assigning a schema to your XML document you will then get validation and intelli-sense when you edit your XML document. The stylesheet property allows you to select an XSLT to apply to the XML document you are working on, this can be run from the XML menu option and will produce a new output file.
One of the subjects I did for my masters degree was enterprise design patterns based around Fowlers Enterprise Architecture book, one part of an assessment piece was to review a book on patterns. I choose the book Head First Design Patterns, at first I thought I would just glance over it and get a feel for what the book was saying, but I found that I couldn't put it down. The narrative for each pattern is really engaging, it takes you down one path to see the mistakes and finally brings you back to view the full solution. The book is based around java, but the language isn't really important. I would highly recommend this book regardless of your experience with the classic GOF design patterns.
Last year saw the introduction of a bunch of cool new bits to play with, visual studio 2008, the MVC CTP for ASP.NET and the parallel extension CTP are the things that I'm most interested in. I love the new features in the 3.5 .NET framework offered by visual studio, all the cool language enhancements really make c# sweet. I'm also impressed with LINQ, I've been doing some work generating some complex queries with it, the SQL it produced really blew my mind. Combine the parallel extensions with the LINQ stuff above and you start to see how cool the whole model is, some pretty big brains have got this stuff right. The MVC framework for ASP.NET is another interesting technology, I've had a look at other ASP.NET MVC frameworks in the past but none has really done it for me, mostly because it didn't feel integrated enough. I also love how they have incorporated all the new language features into the ASP.NET MVC framework, it's very cool. I'm looking forward to the next few months to see how some of the CTP projects evolve, I've already got plans to use parts of the MVC framework on some of my projects, the parallel stuff is interesting but I'm not sure that I can make good use of it on anything at the moment.
Our Media Center PC reached its end of life when we returned from our holidays and found that it wouldn't boot. I had a look at the internals and I found that the power supply was dead. The power supply wasn't a standard off the shelf part that we could easily replace so we bit the bullet and went shopping for a new media center PC. We choose the following: HP m8190a Media Center PC with: - Intel Core 2 Quad processor Q66002.4GHz, 4MB L2 Cache, 1066MHz FSB, EM64T, Execute Disable Bit
- Intel G33 Express Chipset
- Memory - 2048MB DDR2
- Integrated Intel High Definition Audio, 7.1 Surround Sound Ready
- Hard drive - 500.0 GB 3G Serial ATA hard drive at 7200RPM
- SuperMulti SATA Drive with Lightscribe Technology, Double Layer (8.5GB)
- HD DVD Player for high definition movies 2.4x HD DVD-ROM, 5x DVD-ROM, 15x CD-ROM
- nVidia GeForce 8600GT 3D PCI-Express Graphics card with 512MB DDR2 dedicated graphics memory with HDMI, DVI and TV-out capability
- Wireless 802.11 b/g LAN
- Single PAL TV Tuner HP
- Media Center Remote Control
- 15-in-1 Digital Media Reader
So far it's been a beast, runs media center really smoothly, all the HD channels are crystal clear without any stuttering etc. I'm a little annoyed about the HD DVD drive, we bought it a day before the HD war was won by Blue-ray, we got given a copy of Harry Potter in HD DVD, pretty funny. I've dropped some more hard drives in it and intend to replace the single tuner with a dual tuner from the old media center PC. The good news was that the old media center PC was put into a new case and is working fine (apart from all the connectors that were on the old HP case), this upgrade was planned for later in the year, so it doesn't really matter in the scheme of things.
As usual it's been a long time between posts, I guess this post is really just a quick recap of the past year. 2007 was a pretty good year, work wise it was my most productive year by far, work was busy and interesting all year and to top it off I completed my Masters as well, it's going to be hard to top off that in 2008. For 2008 I've moved into a new job, back to the consulting world of ironed shirts and early mornings. I don't really have any well laid plans at the moment, just to see where the ride will take me. Outside of work I want to improve and play lots of golf, if I can get my handicap below 18 by the end of the year I would have exceeded my expectations. I really want to make Golfplotr better, I've done a bit of work on it over the xmas break, but it's not quite ripe yet. I guess I should resolve to post more often, not making any promises but ...
I've started to get interested in playing golf again. My wife Rebecca got me a gift voucher to a driving range for a fathers day present. Since then I managed to score an early xmas present in the way of some new golf clubs. I played my first real round on the weekend just past at the beautiful Northlakes golf course, it was unreal. So all this golf excitement got me thinking that it would be cool to be able to share my golf round on my Facebook page, then I thought, maybe it would be cool to see my round plotted on a google map. So I started building a web application called GolfPlotr, the idea is that you can either enter your score card details, or use some windows mobile software (with GPS support) to enter your golf rounds. Then you can compare your rounds with other people. I also made the Facebook version, so that you can see and compare your Facebook friends golfing endeavors. It's still mostly a work in progress, but I think its getting to a useable stage. Let me know what you think, or leave a comment at the GolfPlotr Blog.
I've been doing some Facebook application development using Nikhil Kotharis Facebook.NET framework. I must say, I'm very happy with it. I thought I might post a simple class that I created that lets me use the infinite sessions that Facebook can provide you with. It might be the wrong way to go about it, but it works for me. Firstly you need to store the SessionKey from each user as they use your application, you should also store if they are infinite by checking the SessionExpires property on the Session object. The class is: public class FBASession : Facebook.Service.Core.FacebookSession { private FacebookService _service; public FacebookService Service { get { return _service; } set { _service = value; } } private Facebook.Service.Core.FacebookSession _session; public Facebook.Service.Core.FacebookSession FBSession { get { return _session; } set { _session = value; } } public FBASession(string appKey, string secret, string sessionKey, string userID) : base(appKey, secret) { _service = new FacebookService(appKey, secret, sessionKey, userID); _session = _service.Session; } } Now with this we can use the data we store to create a session and send messages to any user of the application: FBASession FBSession = new FBASession("<app key>", "<secret key>", "<stored session ID>" , "<facebook ID of user>"); FBSession.Service.Notifications.SendNotification("<facebook ID of user>", "<fb:userlink uid=\"" + facebookUserID + "\" /> has done something and wants you to know", null); This will allow your facebook application to send a notification (or update the mini-feed etc ) to/of another user. I was lucky enough to attend a presentation on ASP.NET Ajax at tech-ed that Nikhil presented, it was one of the better sessions at tech-ed, so thanks for all your effort.
Working on a project, I wanted to serialize the object as JSON: using System.Web.Script.Serialization; JavaScriptSerializer jss = new JavaScriptSerializer(); string serializedObject = jss.Serialize(object); This is using the ASP.NET AJAX framework I see that ScottGu has a post about building an extension method to perform this function .... very nice.
|