Blog Home  Blog Home Feed your aggregator (RSS 2.0)  
Mikael Freidlitz - Monday, October 13, 2008
software architecure, design and an occasional line of code
 
 Tuesday, October 14, 2008

Hey, I have been out of the loop so forgive you me if this is old news. :-$LegoContainers

The Microsoft Patterns an Practices team has had two really interesting releases lately. The purpose of them both is to help you avoid writing monolithic applications. In true agile spirit, the aim is to write only as much as necessary at the time.

First out, the Composite Application Guidance for WPF. I attended a briefing on this by Dotway's George Bolsch, who is on the advisory board of this particular CAG. The idea is to provide software development teams with the tools needed to build their WPF apps in a highly modular way. The focus in this case is not the application itself but the construction process. By applying CAG for WPF, you can split the development across multiple teams and then seamlessly compose those pieces into an application.

The second release on my mind is the Managed Extensibility Framework. Unlike CAG for WPF, which focuses on composition, MEF provides application extensibility. Team vs. application focus in other words. MEF can, in its simplest form, be considered a generic plug-in mechanism but from my perspective, it provides an enhanced support for agile development principles. If you make sure that you have implemented the proper extension points and that the application's core features are in place, you can then add functionality in the form of extensions without having to recompile the core. There is also an MSDN Code Gallery Area for MEF.

I really didn't think of it before I started writing but the apparent direction of thoughts after mentioning these two releases would be to also consider implementing some kind of Dependency Injection / Inversion of Control framework. Obviously, the minds of the P&P team wandered that way as well and they have subsequently released their first attempt at a DI container, called Unity. Coincidently, CAG for WPF comes with out-of-the-box support for Unity.

These are all techniques that you should consider using when you develop .NET and in particular WPF applications. The minimum engagement is to at least know as much about them that you can make an well grounded decision to leave them out of your solution rather than just missing them by accident. 

10/14/2008 4:44:01 PM (W. Europe Daylight Time, UTC+02:00)  #      .NET | Architecture  |  Trackback
 Monday, October 13, 2008

Obviously, I will be there.

Daniel Akenine, the IASA Sweden chairman, will visit Gothenburg to bootstrap a local chapter of the International Association of Software Architects.

If you happen to be in the Gothenburg area, I think you should join us this evening. November 4th at 18:00. Sign up at the IASA Sweden web page now.

10/13/2008 7:12:42 PM (W. Europe Daylight Time, UTC+02:00)  #      Architecture | IASA  |  Trackback
 Sunday, October 05, 2008

Any SharePointers still around here? In that case, you might want to know that Microsoft has a nice list of Best Practices over at their SharePoint Server TechCenter. They actually do have a bunch of suggested practices for developers as well, so it's not all IT Pro stuff.

10/5/2008 9:36:31 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback

Yet again Google delivers. This time they provide us with Google /*Code Search*/ which searches through Google Code Search millions and millions of lines of open source code. By default it searches through all code available, but if you hit the Advanced Code Search link, you can preset a specific language as well as adjust some other preferences. As for regular Google search, these options are also available from the search box so if you for instance are a bit curious on how to write an if statement in C#, you'd just time something along the line of if lang:C#.

10/5/2008 9:22:41 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Friday, September 19, 2008

I passed a car this morning (interestingly enough, not a JEEP) with this bumper sticker, It's a JEEP thing - you wouldn't understand it and realized that that's exactly what makes the difference.

I've spent plenty time with developer friends fretting over the differences between good developers and ground JEEPlevel coders. I actually do have some JEEP friends as well and have heard enough to actually understand it. I remember one time when they told me of a meet where a girl got stuck in a mud pool with her JEEP. The crowd started chanting 'dive, dive, dive...'  ...and of course she did! She climbed the hood of the car, grabbed the winch  wire and dove and actually swam through the mud. It's a JEEP thing.

When speaking with non-developer acquaintances and they ask me what I do for a living, I rarely venture beyond answering that I work with computers. I couldn't tell them that I feel lost without my computer, about all the late nights trying to solve that last piece of a code puzzle and so on. They just wouldn't understand it. To some extent, I think that the same thing goes for the coder/developer issue. In the long run, there is only one thing that makes the difference.

It's all about the passion.

9/19/2008 9:31:55 AM (W. Europe Daylight Time, UTC+02:00)  #      Rant  |  Trackback
 Friday, September 05, 2008

ScrumProcess 
I was made aware of this post by Jeff Sutherland, based upon email conversations between himself, Scott Downey and Björn Granvik, CTO of Jayway.

It compares team efficiency when following a waterfall process versus following a Scrum process. Jeff invites us to take part of some of the conversation between MySpace's Scott Downey and Björn and the overall conclusion is that new Scrum teams do need shock therapy to get started. By bootstrapping teams, Scott managed to boost the team's performance to 240% of MySpace corresponding waterfall teams in only 2.9 days per team member, in average. I learned directly from Björn that a Jayway team working at a customer location had an increase in performance of ~400% in three months.

The key issue in most cases seem to be people in the Scrum team's surroundings with too much influence and too little understanding of how the Scrum Process works. This springs to mind a post I wrote a couple of years ago in frustration of trying to be agile in a non-agile environment. The meaning was to make that a series and I wonder if it isn't about time that I get some of my thoughts on helping organizations transition to agile down in writing.

9/5/2008 10:45:05 AM (W. Europe Daylight Time, UTC+02:00)  #      Agile  |  Trackback
 Thursday, September 04, 2008

I just realized that today is the 1 month anniversary since I started my new job. It's been a hectic month but only in the best of aspects. Building a local representation of an organization that only has top notch developers or better really isn't that hard work.

With the recent Dotway Visual Studio 2008 & .NET Framework 3.5 Open Space in mind, I feel invigorated and enthusiastic about being back in the software development arena. Magnus has a nice write-up of the outcomes. Even if we actually didn't focus too much the suggested theme, discussions ran high and low. A noteworthy comment from one of the delegates was that he passed on the second beer and had a coke instead, in order to stay sharp and be part of the intense and creative discussions.

Oredev 

I just signed up to attend this year's incarnation of Øredev. It will be absolutely amazing! I'm looking forward to key notes by Ted Neward and Robert C. Martin and sessions by James Coplien, Patrik Löwendahl, Harry Pierson, Jimmy Nilsson, Eric Evans and many many more! I will also take the opportunity to take a SCRUM certification course for Jeff Sutherland. If Øredev 2008 isn't pure coolness, I don't know what is.

9/4/2008 12:52:10 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Friday, June 20, 2008

It is almost a year ago since I decided to quit. During this time, I've been having fun as IT Manager for Specsavers Sweden but it had to come to an end. I'm just not ready to leave the consulting business yet.

After a few weeks of rewarding conversation, I have decided to join forces with Dotway. Dotway focuses on specialist .NET consulting and provide services to Microsoft Sweden among other companies. Members of the company also frequently speak at MSDN events and provide coaching in many of the .NET disciplines.

Dotway is a member of Way Group Europe - a group of companies that has agility and highly trained specialist consultants in common. Other companies in the group are Jayway, well reknown for their Java skills and Øredev, the developer conference that bring the big names in systems engineering to Sweden.

Even if Dotway already are represented in Gothenburg, I am looking forward to taking on the role as Managing Director for Dotway Gothenburg and get up to full speed during the autumn. We will recruit heavily among Gothenburg's top .NET consultants. I'll be looking forward to seeing some of you as my future coworkers. ;-)

6/20/2008 12:13:06 AM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Monday, June 02, 2008

Yes, Ola got it right to such extent I even had to copy the title of his post.

In short, the frustration of dealing with businesses unfamiliar with delivering 'project style' can be overwhelming. Anyone recognize the person rushing in and demanding a feature to be added to the top of the priority list? This feature claiming 2 weeks of development time where there are only 3 left.

Usually, when you initiate a project, you already have a sufficient list of requirements. These will usually do and you really don't need more to fill out the time. Instead, you will kick off by prioritizing which requirements get booted from the top of the list, rather than what previously unknown (good-to-have) features that should be added.

As a PM you will meet each additional request with a smile and and gracefully state that you will be happy to add the request to the feature list for the next release. You should currently be in the process of removing requirements that should not be on the top of your list.

By arguing for removal, you get a good understanding for the business case of the feature. If a stakeholder manages to defend the requirement in a way that you keep it on the top of the list, you will also understand the benefits of implementing and and you will not have to go back and challenge it again throughout the project cycle.

6/2/2008 3:50:24 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Wednesday, March 05, 2008

The rumors of my death has been greatly exagerated. In fact, I don't even have writer's block. During the recent time, I have come to realize that what I had in mind to write about was not an option. In my efforts to adopt a different business practise for my company, it would mean that I revealed too much of our internal processes for it to be kosher.

Last week, I finally got started going to the gym again. I think it's been a year and a half since last and my good I needed that. My new gym membership came with an offer of recurring BIAs (Bioelectrical impedance analysis). In effect, a BIA tells you how your body mass is divided between water, fat and lean muscle mass. E.g. how fit you are.

While at Microsoft's V.I.P. launch (courtesy of Johan Lindfors with sessions by Jenny Nyberg) and in particular during the SQL Server 2008 session, I came to think of that there should be recurring measurements of an organisation's BIA as well. BIA in this case would be Business Intelligence Agility. I was a bit surprised that it was only the guys at Sybase that had caught up on this concept before me, apart from them viewing it as a base for enterprise modeling. to me, BIA would measure how easy it is to make an organization's data available for data mining and BI applications. Let's say that a company use a business system like Navision, and stora all data in native Navisaion storage, there will be plenty of data, but only available for transformations according to the Navision mining model. I am still not able to syndicate with other data and I can only use transformations available to Navision.

A system of high BIA will have acessible, well structured data that can be ported to a BI platform of choice. In other words, BIA would tell how fit your data is from a BI perspective. More specific parameters to follow...

Oh, and SQL Server 2008 compression is cool. Look into it - it will save storage, memory and increase speed. ;-)

3/5/2008 1:33:09 AM (W. Europe Standard Time, UTC+01:00)  #       |  Trackback
 Thursday, February 21, 2008

Det här är ett tillfälligt inlägg som inte har tagits bort. Ta bort det manuellt. (d15ec91a-ede6-4424-b044-2b857e87411c - 3bfe001a-32de-4114-a6b4-4005b770f6d7)

2/21/2008 10:44:16 AM (W. Europe Standard Time, UTC+01:00)  #       |  Trackback
 Tuesday, October 23, 2007

I recently spent some time catching up on my friend Richard's blog (Swedish), and not surprisingly, we share a rigid opinion on the matter of Business Intelligence. I came up with this idea from joining together a few of Richard's posts and in this case, I don't mean Business Intelligence in the same, traditional way as Richard does, but rather in the sence of the intelligence of a business.

Thinking back on my time as Vice President of Content- & Knowledge Programs for the International Association of Software Architects, when our President and CEO, Paul Preiss, was visiting Sweden provides some fond but also eye-opening memories. Paul is genuinly proud of his openmindedness, particularly based on, as he says, him being American - suggesting that maybe not so many Americans are too aware of what is going on outside of the US' borders. In spite of this openmindedness, he was almost chocked when we described a typical Swedish business model, mainly focusing on business hierarchies, interpersonal respect, how managers and staff communicate with each other and so on. Apparently, the Swedish model (as us swedes already know, of course) is distinctively different from both the American (heh, international, as americans often refer to it) and Japanese management- / business styles.

With this, and especially with large, international corporations in mind, wouldn't it be super interesting to be able to measure a company's Business Intelligence by factors such as:

  • Management style(s)
  • Interpersonal skills
  • Business agility
  • Methodology Adoption level
  • Process Adoption level

...And so on. I believe that this list could go on and on. The important aspect is that for a multinational organization, it is vital to adopt its core to each local market.

Be intelligent about how you run your business!

10/23/2007 10:59:00 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Tuesday, October 09, 2007

Evolution is an imperfect and often violent process. A battle between what exists, and what is yet to be born. [Heroes S1E6 "Better Halves"]

How true this is.

A couple of months has passed since I took on my new role as Manager of Business IT and Process Management. My current organization rests on the deep end of the complexity pool so I will not go too much into detail on how it all fits together. For now, let's just say that I work at the Swedish HQ of an international retail organization where most of the stores in Sweden are franchises while the rest of the world mainly is corporate owned.

Coming from a consulting background with large companies as main customer base, I still tend to get surprised by how this company not only survives but actually prospers in spite of its gaudy past. There has been various acquisitions with one business model being applied after another, one way of identifying and documenting processes after another and one way of managing the company after another.

And here we are today.

If you look at the numbers alone, most people would say that this business is doing pretty well. The scary part is - it is!

Bullheaded as I be, I enter the board room, claim my seat and proclaim that the time to change pretty much everything as far as organization and structure concerns has come. Eagerly, I lay up my master plan and explain why we obviously want to change and how much less everyone will have to work and how our profit will soar.

No applause. Imagine that...

Most of my remarks on the current state of the organization are met with an undisputable 'it works for us'. It does. So how am I supposed to argue with margins that show a decent profit, a solid increase in the ammount of stores and an organization full of coworkers that feel that everything is great just the way it is. All I need to do is leave things alone. Where I see missing structure and lack of processes, my coworkers see an organization that is making profit and a model that has worked for years and years.

After a week or five, I cave in and resign my ideas of a leap in effectivity and consider the golden middle ground my best option. When I ask for process definitions, people reach into their shelves to grab a notepad, browsing to a specific page and slam it into the desk in front of me with a content 'Hah!'. Some processes are documented. In notepads. In peoples book shelves.

Hah! What if I could offer a full set of process defintions, electronically available to all employees, where anyone that is dependent on this particular process can follow its progress. Where anyone that is supposed to provide input to the process is made aware of this well ahead of time to keep the process running swiftly. The response comes with the speed of a bullet. 'We have all we need. This works for us'.

I have learned that evolution is an imperfect process. Does this mean that I will have to resort to violence? Structure and well documented processes will prevail!

I will have to get back to you on this one.

10/9/2007 1:11:40 AM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Monday, July 02, 2007

Yes. Really.

After finally realizing that I am but a mere human and in fact, quite a flawed such, I have taken the decision to change my path of carreer.

I have been a systems development consultant all my professional life and the time has come to try something new. Considering that I repeatedly keep widening my professional focus area(s), I also see no other choice than to step down from all my other assignments as well. That means no more INETA and I have also, only a few minutes ago, turned in my notice to Paul Preiss, meaning that I am also leaving my years as Vice President for the International Association of Software Architects behind me. This is really something that I do with great sadness and regret but it must be done.

For the recent subscribers to my blog - I assume that most of you have a SharePoint-centric interest. I will not give any further MOSS courses. In fact I will also stop teaching alltogether. I will try to keep my 'References...' post up to date and I will obviously post regarding new findings even if I suppose that they will be scarse, considering that MOSS will no longer be part of my professional toolset.

Cornerstone's MOSS course will keep running without me. Software will be built, and projects will be run successfully - without me. It is really good to know that tomorrow will be pretty much the same as today, whether I am trying to change things or not. For a whily onwards, I will focus on only doing my job.

I was about to start writing a 'thank you' section but in fact, I actually owe most of you a huge thanks! ...Argh, ok... I just need to pinpoint a few here, otherwise I will just freak out. Jossan, Patrik, Jimmy, Robert, Daniel and Paul.

Who knows; maybe one day I'll be back. Today, I'd say not likely. But really, who am I to tell...

7/2/2007 10:12:31 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Thursday, June 28, 2007

When time permits, I usually end my MOSS classes with references to a few places to visit that I highly recommend. Microsoft Office SharePoint Server 2007 is such a potent platform for building collaborative, managed enterprise solutions that it will take some time to really understand all of its benefits. The following places will be of good service during your quest for MOSS excellence:

  • The blog of Johan Dewe. It seems that he's finally back from his paternity leave and writing awesome posts on MOSS - in Swedish.
  • Todd Bleeker's blog contains a number of invaluable HowTo style posts.
  • Ted Pattison's buddy Daniel Larson usually provides invaluable SharePoint insight.
  • The man behind SmartPart, Jan Tielens, obviously has a place to share his MOSS wisdom.
  • Exile Dane, Lars Fastrup, does not only provide an awesome SharePoint Search replacement. He has also released SharePoint Solution Installer, a most excellent tool that will set you back 0.00 ($|£|€)
  • There is actually a downloadable VHD (Virtual Hard Drive - for Virtual PC) for MOSS 2007 available from Microsoft Downloads. It will expires 30 days after initiation.
  • Scot Hillier knows a lot about SharePoint Server 2007.
  • If you intend to go enterprise on your Microsoft Office SharePoint Server 2007, you will, without a doubt, create Business Data Catalog (BDC) applications. And you would not want to use the tool (Notepad) provided by Microsoft to configure the metadata but rather the beautiful BDC Meta Man, provided by SharePointNick Swan and friends.
  • When the time comes to designing your MOSS implementation, you really should stop by over at Heather Solomon's first.
  • As a final note in this list, I just need to point out that Telerik just released a lite edition of their astounding RadEditor for free.

To add to this, there are a set of books which I would like to recommend:

  • Todd Bleeker's "Developer's Guide to the Windows SharePoint Services v3 Platform"
  • "Inside Microsoft Windows SharePoint Services 3.0" by Ted Pattison and Daniel Larson
  • Scot Hillier has done so extremely well with his "Microsoft SharePoint: Building Office 2007 Solutions in C# 2005"
  • Wrox has released "Professional SharePoint 2007 Development" written by a bunch of authors featuring Microsoft's Tom Rizzo among others.
6/28/2007 10:41:59 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Monday, June 18, 2007

This post is oh-so-late and I must start by apologizing to those who have been waiting. It took me longer than expected to translate this piece to English which is my language of preference for official stuff.

Preludium

This is an overly precise guide on how to set up and configure a great lab environment for exploring Microsoft Office SharePoint Server 2007. It is based on Virtual PC images, and there need to be at least two of them if and only if you intend to explore document conversion. If that is not in your focus area, you will be doing just as well with a single VPC image.

System requirements for student computers

Pentium 4 3.0GHz

2 GB RAM

Windows XP

Microsoft Virtual PC 2007

It would be better if they had…

Intel Core 2 Duo processor

4 GB RAM

Installation of VPC environments

The following Virtual PC VHDs are used during the exercises:

  • Windows Server 2003 R2 Base
  • Windows Server 2003 R2 DC
  • Windows Server 2003 R2 MOSS 2007

If you don’t have them readily available, they must be created according to the following description.

Installation of Base VPC

  1. Install a clean Windows Server 2003 R2
  2. For Regional and Language Options, chose the locale of your choice.
  3. Name the server baseserver
  4. Chose t0pSecret as Administrator’s password
  5. Click the Start menu and then chose Control Panel/Add or Remove Programs
  6. Click Add/Remove Windows Components
  7. Uncheck Internet Explorer Enhanced Security Configuration. Then click Next
  8. Click Finish
  9. Close Add or Remove Programs
  10. Click the Start menu and then right click My Computer. Chose Properties
  11. Click the Advanced tab. Chose Settings for Performance
  12. Click the Advanced tab. Chose Change
  13. Chose No paging file. click Set
  14. Click Yes to acknowledge the warning
  15. Click OK
  16. Click OK
  17. Click OK
  18. Click OK
  19. Click Yes
  20. Once the server has restarted, log on and defragment the hard drive:
    1. Start Windows Explorer
    2. Right click Local Disc (C:) and chose Properties
    3. Click the Tools tab and then chose Defragment now…
    4. Click Defragment
      This will take several minutes
    5. Click Close, then close the Disk Defragmenter and Local Disk (C:) Properties
  21. Run Virtual Disk Precompactor:
    1. In the Virtual PCs host menu, chose CD/Capture ISO Image…
    2. Chose Virtual Disk Precompactor, found at C:\Program Files\Microsoft Virtual PC\Virtual Machine Additions
      This will zero out empty space on the disk, improving compression factor
    3. Click OK once the program has completed
  22. Now you need to SysPrep Windows Server 2003 R2 Base!!!
  23. Shut down Windows Server 2003 R2
  24. In Virtual PC Console, chose File/Virtual Disk Wizard
  25. Click Next
  26. Chose sedan Edit an existing virtual disk and then click Next
  27. Browse your way to the VHD file for Windows Server 2003 R2 Base. Select it and click Open
  28. Click Next
  29. Ensure that Compact it is selected and then click Next
  30. Click Next
  31. Click Finish
    This will take several minutes
  32. Click Close
  33. Write protect the Base-VHD:
    1. Right click VHD-file and chose Properties
    2. Check the Read-only Attribute
    3. Click OK

Create a Domain Controller and Active Directory

  1. Start from Windows Server 2003 R2 Base to create a differencing disk:
    1. In Virtual PC Console, chose File/Virtual Disk Wizard
    2. Click Next. Chose Create a new virtual disk and click Next again
    3. Chose A virtual hard disk and click Next
    4. Create a new folder for Windows Server 2003 R2 DC. Name the file Windows Server 2003 R2 DC. Click Save
    5. Click Next
    6. Chose Differencing and click Next
    7. Browse to Windows Server 2003 R2 Base. Select the VHD file and click Open
    8. Click Next
    9. Click Finish
    10. Click Close
  2. Create a new VPC based upon the newly created differencing disk:
    1. In Virtual PC Console, chose File/New Virtual Machine Wizard
    2. Click Next and then chose Create a virtual machine. click Next
    3. Name the file Windows Server 2003 R2 DC and place it in the folder with the same name. Click Save in the Browse… dialog. Click Next
    4. Click Next
    5. Click Next to accept the default settings or change dedicated memory according to needs and availability
    6. Chose An existing virtual hard disk and click Next
    7. Click Browse… and browse to Windows Server 2003 R2 DC.vhd. Click Next
    8. Click Finish
  3. Start the new VPC in the Virtual PC Console
    A few configurations are taking effect the first time and this takes a few minutes
  4. Log on as Administrator / t0pSecret
  5. Rename servern:
    1. Cklick the Start menu and right click My Computer. Chose Properties
    2. Click the Computer Name tab and then click Change…
    3. Name the server DomainControl
    4. Reboot
  6. Create Active Directory
    1. Log on as Administrator / t0pSecret
    2. In the Manage Your Server dialog, click Add or remove a role. click Next
    3. Chose Custom Configuration and click Next
    4. In the list, select Domain Controller (Active Directory) and click Next
    5. Click Next. A new dialog opens. Click Next. Click Next.
    6. Click Next to create a Domain controller for a new domain
    7. Chose Domain in a new forest and click Next.
    8. Chose No, just install and configure DNS on this computer. Click Next
    9. Type contoso.com for the domain’s full DNS name. Click Next.
    10. Click Next to confirm the domain’s NetBIOS name – CONTOSO
    11. Click Next. Click Next. Click Next
    12. Type t0pSecret for Restore Mode Password. Click Next
    13. Click Next
      The Domain is now configuring. This will take several minutes
    14. Click Finish. Then click Restart Now
    15. Log on as Administrator / t0pSecret
    16. Click Finish
  7. Add new computer to the DNS:
    1. Click Manage this DNS server
    2. Expand DOMAINCONTROL and then expand Forward Lookup Zones. Click contoso.com
    3. Right click contoso.com. Chose New Host (A)
    4. Type MOSS2007 in the text box and type 192.168.1.2 in the IP address entry field. click Add Host
    5. Click OK. Click Done
  8. Add additional aliases to the DNS:
    1. Right click contoso.com. Chose New Alias (CNAME)
    2. Enter portal as Alias name. Point this alias to MOSS2007.contoso.com
    3. Click OK
    4. Right click contoso.com. Chose New Alias (CNAME)
    5. Enter team as Alias name. Point this alias to MOSS2007.contoso.com
    6. Click OK
    7. Right click contoso.com. Chose New Alias (CNAME)
    8. Enter mysite as Alias name. Point this alias to MOSS2007.contoso.com
    9. Click OK
    10. Right click contoso.com. Chose New Alias (CNAME)
    11. Enter sharedservices as Alias name. Point this alias to MOSS2007.contoso.com
    12. Click OK
    13. Close dnsmgmt
  9. Create several users that are to be used during exexercises:
    1. Click Start/Administrative Tools/Active Directory Users and Computers
    2. Expand contoso.com and click Users
    3. Right click Users and chose New/User
    4. As First name, type John
    5. As User logon name, type john
    6. Click Next
    7. As Password, type Passw0rd
    8. As Confirm password, type Passw0rd
    9. Uncheck User must change password at next logon
    10. Check Password never expires
    11. Click Next
    12. Click Finish
    13. Right click Users and chose New/User
    14. As First name, type Jane
    15. As User logon name, type jane
    16. Click Next
    17. As Password, type Passw0rd
    18. As Confirm password, type Passw0rd
    19. Uncheck User must change password at next logon
    20. Check Password never expires
    21. Click Next
    22. Click Finish
    23. Right click Users and chose New/User
    24. As First name, type SqlService
    25. As User logon name, type sqlservice
    26. Click Next
    27. As Password, type Passw0rd
    28. As Confirm password, type Passw0rd
    29. Uncheck User must change password at next logon
    30. Check Password never expires
    31. Click Next
    32. Click Finish
    33. Right click Users and chose New/User
    34. As First name, type MossService
    35. As User logon name, type mossservice
    36. Click Next
    37. As Password, type Passw0rd
    38. As Confirm password, type Passw0rd

mm. Uncheck User must change password at next logon

    1. Check Password never expires
    2. Click Next
    3. Click Finish
  1. Add Service accounts to the proper security groups:
    1. Double click MossService
    2. Click the Member Of tab, then click Add…
    3. In the text box, type Domain Admins and click Check Names to validate that the right group name was provided
    4. Click OK
    5. Click OK
    6. Double click SqlService
    7. Click the tab Member Of, then click Add…
    8. In the text box, type Domain Admins and click Check Names to validate that the right group name was provided
    9. Click OK
    10. Click OK
  2. Leave Windows Server 2003 R2 DC running while you create the next VPC!!!

Create a Server for Microsoft Office SharePoint Server 2007

  1. Start from Windows Server 2003 R2 Base to create a differencing disk:
    1. In the Virtual PC Console, chose File/Virtual Disk Wizard
    2. Click Next. Chose Create a new virtual disk and click Next again
    3. Chose A virtual hard disk and click Next
    4. Create a new folder for Windows Server 2003 R2 MOSS 2007. Name the file Windows Server 2003 R2 MOSS 2007 and click Save
    5. Click Next
    6. Chose Differencing and click Next
    7. Browse to Windows Server 2003 R2 Base, select the VHD file and click Open
    8. Click Next
    9. Click Finish
    10. Click Close
  2. Create a new VPC based upon the newly created disk:
    1. In Virtual PC Console, chose File/New Virtual Machine Wizard
    2. Click Next and then chose Create a virtual machine. click Next
    3. Name the file Windows Server 2003 R2 MOSS 2007 and place it in the folder with the same name. click Save in the Browse… dialog, then click Next
    4. Click Next
    5. Change dedicated memory to as much as you can spare. click Next.
    6. Chose An existing virtual hard disk and click Next
    7. Click Browse… and browse to Windows Server 2003 R2 DC.vhd. click Next
    8. Click Finish
    9. Start the new VPC in Virtual PC Console
      A few configurations are taking effect the first time and this takes a few minutes
    10. Log on as Administrator / t0pSecret
  3. Change IP address on the server:
    1. Chose Start/Control Panel/Network Connections/Local Connection
    2. Click Properties
    3. Double click Internet Protokoll (TCP/IP)
    4. Change IP address to 192.168.1.2
    5. Set Preferred DNS server to 192.168.1.1
  4. Change name of the server:
    1. Click the Start menu and then right click My Computer. Chose Properties
    2. Click the tab Computer Name and then click Change…
    3. Name the server MOSS2007
    4. Change domain to contoso
    5. Click OK
    6. Log on as Administrator / t0pSecret
    7. Click OK
    8. Click OK
    9. Click OK
    10. Reboot
      A few configurations are taking effect the first time and this takes a few minutes
  5. Configure server roles:
    1. In the Manage Your Server dialog, click Add or remove a role. Then click Next
    2. Select Application server (IIS, ASP.NET) and click Next
    3. Check both Frontpage Server Extensions and Enable ASP.NET. click Next
    4. Click Next
      A few configurations are taking effect the first time and this takes a few minutes
    5. Make sure you have the installation disks at hand. If the Windows Server 2003’s installation dialog auto-starts, just shut it down
    6. At the information that This Server is Now an Application server, click Finish
    7. In the dialog Manage Your Server, click Add or remove a role. Then click Next
    8. Select Mail server (POP3, SMTP) and click Next
    9. Under Authentication Method, chose Active Directory-Integrated. Then type contoso.com for E-mail domain name and click Next
    10. Click Next
      The server is being configured. This will take a few minutes
    11. At the information that This Server is Now an Application server, click Finish
    12. Check Don’t display this page at logon and close Manage Your Server
  6. Edit Security policies:
    1. Click Start/Administrative Tools/Local Security Policy
    2. Expand Local Policies and click User Rights Assignment
    3. Double click Act as part of the operating system and add MossService and SqlService. click OK
      At the request for user with proper rights, type Administrator / t0pSecret
    4. Double click Allow log on locally and add Domain Users. click OK
      At the request for user with proper rights, type Administrator / t0pSecret
Install SQL Server 2005
  1. Chose to install Server components, tools, Books Online and samples
  2. Acceptera conditions and click Next
  3. Click Install
    Microsoft SQL Server 2005 Setup
    will install necessary components. This will take a few minutes
  4. Click Next
  5. Click Next
  6. At completed System Configuration Check, click Next
  7. Click Next
  8. Check all boxes and click Advanced
  9. Expand Documentation, Samples, and Sample Databases
  10. Expand Sample Databases
  11. Click AdventureWorksDW Sample Data Warehouse and chose Will be installed on local hard drive
  12. Click Next
  13. Click Next
  14. As Service Account, chose SqlService / Passw0rd / contoso
  15. Click Next
  16. Click Next
  17. Chose Collation designator and sort order and chose the following:

§ Latin1_General

§ Accent - sensitive

§ Kana - sensitive

§ Width - sensitive

  1. Click Next
  2. Click Next
  3. Click Next
  4. Click Install
    This will take several minutes
  5. Click Next
  6. Click Finish
Install Visual Studio .NET 2005
  1. Chose Install Visual Studio 2005
    Installation components are loaded. This will take a few minutes
  2. Click Next
  3. Accept the terms and click Next
  4. At Select features to install, chose Custom
  5. Click Next
  6. Chose Visual C# and Visual Web Developer
  7. Deselect Visual J#, Visual C++ and Visual Basic
  8. Deselect Dotfuscator Community Editon, Crystal Reports for Visual Studio and Microsoft SQL Server 2005 Express Edition
  9. Click Install
    Visual Studio is installed. This will take a few minutes
    Click Finish
  10. Click Exit
Install Office 2007
  1. Provide the proper Product Key and click Continue
  2. Accept the terms and click Continue
  3. Chose Customize
  4. Deselect:

§ Microsoft Office Access

§ Microsoft Office Groove

§ Microsoft Office OneNote

§ Microsoft Office PowerPoint

§ Microsoft Office Publisher

§ Microsoft Office Visio Viewer

  1. Click Install Now
    Office 2007 is being installed. This will take a few minutes
  2. Click Close
  3. Immedieately restart Office Word 2007 and activate the product
  4. Close Office Word 2007
Install Office SharePoint Designer 2007
  1. Provide the proper Product Key and click Continue
  2. Accept the terms and click Continue
  3. Click Install Now
    This will take a few minutes
  4. Click Close
  5. Immediately restart Office SharePoint Designer 2007 and activate the product
  6. Close Office SharePoint Designer 2007
Install Microsoft Office SharePoint Server 2007 Enterprise

Pre step: Install .NET Framework 3.0

  1. Accept terms and click Install
    This will take a few minutes
  2. Click Exit
  1. Provide the proper Product Key and click Continue
  1. Accept the terms and click Continue
  2. Click Advanced
  3. Select Complete and click Install Now
    SharePoint Server is being installed. This will take a few minutes
  4. Click Close
  5. Click Yes to restart the server
  6. Log on as Administrator / t0pSecret
  7. Click Start/All Programs/Microsoft Office Server/SharePoint Products and Technologies Configuration Wizard
  8. Click Next
  9. Click Yes
  10. Chose No, I want to create a new server farm and click Next
  11. Enter moss2007 for Database Server
  12. Enter contoso\sqlservice / Passw0rd for Username and Password
  13. Click Next
  14. Click Next
  15. Click Next
    SharePoint Server is being configured. This will take a few minutes
  16. Click Finish
Configure Microsoft Office SharePoint Server 2007 Enterprise

Perform the following in Central Administration.

  1. Click the Operations tab
  2. Click Services on server
  3. Chose Custom to show all services
  4. Start Windows SharePoint Services Web Application
  5. Start Windows SharePoint Services Search
    1. Enter contoso\mossservice as user everywhere possible. Password is Passw0rd
    2. Leave Database authentication be. Do not provide a user in this field
    3. Click Start
  6. Start Office SharePoint Server Search
    1. Check to use this server as both indexering and search queries
    2. Enter administrator@contoso.com for email address
    3. Use contoso\sqlservice / Passw0rd as user/password
  7. Start Excel Calculation Services
  8. Configure Shared Services:
    1. Click the tab Application Management
    2. Click Create or configure this farm’s shared services
    3. Click New SSP
    4. Click the link Create a new Web application
    5. Enter sharedservices.contoso.com for Host Header
    6. Use contoso\mossservice / Passw0rd as user/password for Application Pool
    7. Click OK
    8. Click the link Create a new Web application again
    9. Now enter mysite.contoso.com for Host Header. Ensure that the port number still is 80
    10. Enter contoso\mossservice / Passw0rd as user/password for Application Pool
    11. Click OK
    12. Chose sharedservices.contoso.com as Web application for SSP
    13. Chose mysite.contoso.com as Web application for My Site
    14. Enter contoso\sqlservice / Passw0rd as user/password for SSP Service Credentials
    15. Click OK
      Share Services is being configured. This will take a few minutes
    16. Click OK
  9. Create a team site:
    1. Click the tab Application Management
    2. Click Create or extend Web application
    3. Click Create a new Web application
    4. Type 80 for port number and team.contoso.com for Host Header
    5. Enter contoso\mossservice / Passw0rd as user/password for Application Pool
    6. Click OK
    7. Click Create Site Collection. Enter Team Site for Title
    8. Chose Team Site as template and enter contoso\administrator as Primary Site Collection Administrator
    9. Click OK
    10. Click OK
  10. Create a portal:
    1. Click Create or extend Web application
    2. Click Create a new Web application
    3. Type 80 for port number and portal.contoso.com for Host Header
    4. Enter contoso\mossservice / Passw0rd as user/password for Application Pool
    5. Click OK
    6. Click Create Site Collection. Enter Portal for Title
    7. Click the tab Publishing and chose Collaboration Portal as template.
    8. Enter contoso\administrator as Primary Site Collection Administrator
    9. Click OK
    10. Click OK
    11. Close Internet Explorer
6/18/2007 12:06:27 AM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Tuesday, June 05, 2007

Finally, my buddy Andreas Brink has started blogging. I have met few people as persistent as Andreas; and he is persistent - in anything he sets his mind on. One of the most disturbing of his ideas (in my mind) has been his refusal to blog. Andreas really is worth listening to and I see him as a great addition to any software engineering discussion, especially since we tend to have a slight difference in focus.

At the time of writing, he has only released a post on his thoughts from the Developer Summit Conference, but I expect to see a lot more from him on the qualitative aspects of software development.

6/5/2007 10:22:27 AM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Tuesday, May 22, 2007

I almost can't believe it - I'm stuck in Stockholm for a week and then I'm off to Turkey for a well deserved vacation. The big issue is that my almost-fully translated copy of the MOSS 2007 lab setup that I promised in my last post. I entirely refuse to rewrite which means that I assume that I will have a busy Friday night, since there actually are a few hours to spend between me dropping down in Gothenburg and our take off towards sun and no connectivity for a week.

Oh well - I'll try to pick up on another topic instead - the non-appearance of properties in web parts. Almost any sample code you find out there relies on the SharePoint web part feature set, which you should consider more or less obsolete. Instead, for MOSS 2007 as well as WSS 3 you should alway consider the regular ASP.NET 2.0 web part implementation your first option. The two implementations are almost interchangeable coding-wise which leads to some confusion.

Getting started
Open up Visual Studio and set up a new C# Class Library project. In my case, I named it HelloMoss. After setting up a project reference to System.Web, you simply need to paste this code into your IDE:

using System;

using System.Collections.Generic;

using System.Text;

using System.Web.UI;

using System.Web.UI.WebControls.WebParts;

 

namespace HelloMoss

{

    public class HelloMoss : WebPart

    {

        string _greetName = "Moss";

 

        protected override void Render(System.Web.UI.HtmlTextWriter writer)

        {

            writer.Write("Hello " + _greetName);

            base.Render(writer);

        }

 

        [Personalizable(PersonalizationScope.User),

        WebBrowsable(true),

        WebDisplayName("Hello web part"),

        WebDescription("Greets a user optionally configured by property.")]

        public string greetName

        {

            get { return _greetName; }

            set { _greetName = value; }

        }

    }

}

 
Notice the Personizable part of the attributes section - that's what is making the entire difference. after adding the web part to the SharePoint web application's SafeControl list in the web.config, you should be able to add it to the web part gallery and then put it on a web page. The result could be something similar to this:

5/22/2007 10:56:25 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Monday, May 07, 2007

Just a quick note to relieve my utterly bad conscience: I have a few outstanding posts, that I have promised friends, coworkers and students. I have prepared a set of excuses, most of which you would propably want to pay no attention to either way, so I won't even give it a try.

There is a lot going on on this side at the moment and I will soon publish updates on that matter.

I assume that next post in line is a description of how to set up a classroom / laboration environment for Microsoft Office SharePoint Server 2007 Enterprise. This is a reflection of the environment that we use at Cornerstone during our sessions for the T660 course. You'd want to read this configuration guide, since there are a few caveats related to setting up a fully functional lab environment, especially if you'd want to employ the enterprise features.

5/7/2007 2:04:28 PM (W. Europe Daylight Time, UTC+02:00)  #       |  Trackback
 Friday, March 30, 2007

[Updated April 2, 2007: Added "Complete reference of all STSADM operations (with parameters) in MOSS 2007" to the Operations section. Obviously, José had one of them rainy days...]

While scavenging the web for information related to the course (T660 - Developing Microsoft Office SharePoint Server 2007 Solutions) that I'm delivering for Cornerstone, I came up with all kinds of interesting resources. Somehow, I just felt a sudden urge to share those with you.

Developing solutions on the MOSS platform requires a somewhat broad knowledge of what is available to you as a developer. All in all, I believe that the links in this list should cover most of your needs.

I do have some additional links (currently unsorted) related to specific topics. If I notice this page becoming somewhat of a reference page, I'll add those as well.

Introduction to SharePoint Products

Enterprise Content Management

Business Data Catalog

Configuration, Deploy, Operations, Architecture & Governance

Licensing and Packaging options

It's really annoying that I even have to add a section like this. Product licensing models should not be this complicated! Anyhow... I believe that you will find most of your answers here.

Definitely worth reading

Some good stuff here that I don't want to label.

Certification

The obvious reason for this list. The list is by all means a derivate from the course but still, there would be no list without the certification requirememnts.

Other Resource Lists

 

Good luck with all your SharePointing!

3/30/2007 9:16:51 PM (W. Europe Daylight Time, UTC+02:00)  #      MOSS 2007 | Office Sharepoint Server 2007  |  Trackback
Copyright © 2010  Mikael Freidlitz . All rights reserved.
Based on 'Portal' theme by Johnny Hughes.