| Julius's profileJulius Ganns . netzkernPhotosBlogNetwork | Help |
|
October 28 New C# 4.0 Languages FeaturesOptional and Named Parameters: http://www.infoq.com/news/2008/10/CSharp-Optional Thank you, Anders. Wrapping up the great parts of the PDCOkay, the Keynotes are over and everyone is flashed... What have we seen in the last 24 hours? Windows Azure & Azure Services - Microsoft's Cloud Operating Platform with several enhancements for .NET developers like .NET Services, Live Services and SQL Services. Oslo - The next generation modeling platform for service-oriented applications. Windows 7 - How Windows Vista should have been: Fast, reliable and with new productivity features. Microsoft Office Web Applications - Microsoft has finally brought his Office suite to the web and added a couple of synchronization and integration features. Windows Live ID with OpenID support - Finally you can use your Windows Live ID to login to OpenID sites. .NET Framework 4.0 and ASP.NET 4.0 - A couple of cool new features, especially around the MVC Framework and Silverlight, but also extend VS2010 functionality and new programming language features. These are in my opinion the really huge things from PDC and there are a lot of more. I just registered for the Azure and the Live Services SDK and I will try it out today. October 27 Red Dog is now Windows AzureMicrosoft's cloud operating system running the infrastructure of Live Mesh will most likely be named Windows Azure in the future. Check our the following Channel 9 videos: Introducing Windows Azure Enjoy. October 26 Microsoft Windows Azure, Azure Services, Live Mesh and Live Desktop(Version 1.2 - October 28th, 2008) I'm following Microsoft's Cloud Computing project, Windows Azure and Azure Services, and especially a particular part of it, the Live Services Platform and the Mesh Services components, for about six months now and the more I see, the more excited I am. But let's start at the beginning: So, what is "Windows Azure"? Well, it is basically Microsoft's response to Amazon's EC2 and Google's AppEngine, but it seems to go a bit further. Windows Azure (formerly known as project "Red Dog") is a cloud computing platform and a corner stone of Microsoft's S+S (Software + Service) initiative. It is hosted on top of a pretty large server network, which offers basic system services (processing, storage, networking, etc.). On top of Windows Azure, Microsoft has built a collection of application services, called the Azure Services Platform. Azure Services is composed out of several hosting features and interfaces to SaaS applications developed by Microsoft, including, but not limited to, .NET Services, SQL Services, Live Services and some others. Read more about the Azure Platform and how all the pieces fit together in this article from Mary-Jo Foley. Microsoft has also launched a new portal at microsoft.com/azure. One of the application services collections, Microsoft is building into the Azure Services Platform, are Live Services. Live Services is the name for a couple of features for integrating various live.com offerings into your own applications. A core piece for building and "Live-enabling" your own applications is the Mesh Services Platform (formerly known as "Live Mesh"). The Mesh Services Platform is more or less an integration platform in the cloud, used to manage and synchronize information and devices. To access Mesh Services, a developer can use a unified data and communication API based on feeds. Microsoft makes it easy for developers to do that by providing several SDKs, one of which is the Live Framework for .NET developers. Everything you store inside Mesh Services within the Cloud is not only available all over the internet but also constantly synced to your local device. This allows developers to use the Live Framework without worrying about where the application is running or whether there is an Internet connection or not. The API itself is responsible for choosing the best option. The basic entity in the Mesh is a MeshObject. It can be represented as Feed (or more accurate: as Feed of Feeds), as JSON, as POX, as RSS or as one of several other standard data formats. If you're a Sitecore developer, you might find some familiarities here... Looking at Sitecore, the basic information entity is an Sitecore Item. It can also be represented in various formats, most obviously in XML and as .NET object. The system is also creating a map of all your devices and applications, that are currently connected to "your" Mesh. Beside your usual desktop or notebook PC, this could be a mobile phone, a MediaCenter or even a Mac. Something that has currently not been revealed is a server-side "device" provided by the Mesh network itself. Although I saw it on several C9 videos, I could not find any additional information in on of the Keynotes. Microsoft is very secretive about the whole project, but maybe this is the real "Windows Cloud" a lot of Microsoft folks were talking about lately. I'm just going to call it "Live Desktop" for now, because to me it looks like a browser based Desktop environment, rendered using Web 2.0 technology and using the Live Mesh as data storage and synchronization platform. Sounds familiar? I hope so... The Sitecore Desktop is a pretty good example for a great web desktop and a whole eco system for applications and services. I'm not suggesting here, that Microsoft is building something Sitecore already offers, but the concepts in both products are at least similar and so is the underlying philosophy. I will definitely deep dive into the Mesh and Windows Azure when more information become available after PDC and I will talk to Sitecore about possible ways to integrate these concepts and features. There is indeed a huge potential in these technologies, especially as it brings your web applications to your desktop by providing a synchronized location-transparent storage - on your local device as well as in the cloud. If Windows Azure and the Live Services Platform can live up to my expectations, it might become the number one cloud computing environment, something like a combination of Amazon EC2, AdobeAir, Sync Framework, Google Gears and several other great products. By the way, the first two Mesh-enabled application Microsoft is currently working on are a file sync application and a remote desktop application. The file sync application will most likely synchronize your files between all your devices and even with the Live Desktop - sounds like the combination of Windows Live FolderShare (which Microsoft acquired a couple of months ago, but hasn't really started to advertise or improve yet) and Windows Live Folders. If you haven't seen it by now, I strongly suggest you take a look at this video about Mesh applications with Ori from April 2008. October 23 netzkern Receives Fast 50 AwardYesterday we received the Deloitte Fast 50 Award. Deloitte is one of the world-wide largest consulting and financial services company. With an average turnover growth rate of 470% over the last 5 years, we're proud to receive this award in 2008 for the first time. Read more about it here. Sitecore and SharePoint Series - New TitleAs some of you may have already noticed, I changed the title of my SharePoint and Sitecore as Development Platform series. This is due to the fact that I received a lot of very positive feedback from the Sitecore and the SharePoint community as well as from a lot of developers, especially because this is not a fanatic or biased "bash the system" series, but a profound analysis of two development platforms. I changed the title to reflect this fact and want to thank everyone for their great feedback, suggestestions and comments. Currently I'm working on part 5 of the series, so stay tuned. October 19 Choosing an Enterprise Service Bus for netzkern.systemsBased on our updated strategy, we are are currently focusing our efforts on .NET as future enterprise platform at netzkern.systems. I for myself will remain a "jumper", switching between .NET, Java EE and the Ruby on Rails space, as I like to work with all three platforms and to get the best of all worlds, but our business unit has made a decision and we will stick to it. One particular "problem" that we need to solve now, is to choose a new primary ESB solution for our service portfolio, namely for "Service-oriented Business Process Management (SOA/BPM)" and "Enterprise Application and Business Component Integration (EAI/BI)". Currently, there is a large number of great Java EE products out there that would provide a lot of the features we need: Apache ServiceMix, Mule, OpenESB, Apache Synapse, and JBoss ESB, as well as several commercial products like BEA AquaLogic, SAP XI, Sonic ESB, TIBCO, Oracle ESB and some others. Unfortunately there are much fewer options in the .NET space right now. Of course there is BizTalk, but besides the fact that is is really huge, pricey and somewhat clumsy, it is also based heavily on C++ and COM, making it necessary to program against several Interop assemblies. We also took a look at ESB.NET, but for the time being, it does not seem to be the right choice. At the moment we are discussing about building our own solution based on WCF and Spring.NET and creating essentially a lightweight SOA-based ESB solution with an extensible workflow engine interface, suitable for using either our Spring.NET-based approach (which we may publish separately) but also a WF-based engine in the future. I will keep you posted about our project. October 15 What Microsoft SharePoint Can Learn from Sitecore as Web Development Platform - Part 4(Version 1.1.1 - October 19th, 2008) In this series, I'm going to compare the functionality of SharePoint and Sitecore from a developer perspective in each area and both candidates can collect "points" from 0 (has nothing to contribute) to 10 (great integration and functionality). This series will cover the following areas:
Customization and Designer ExperienceThe term "customization" is used in SharePoint to describe the work of creating solutions without actually writing code or using the API. The work can either be done using features of the SharePoint Browser Interface or the Microsoft Office SharePoint Designer application. The result of this work is stored inside the content database of a SharePoint site collection, it is not deployed in form of compiled DLLs and additional resources. SharePoint provides a lot of customization functionality out of the box. As stated earlier, both WSS 3.0 and MOSS 2007 come with a couple of ready-to-run features for endusers. Most of these features are based on Lists, one of the main building blocks of SharePoint. Nearly everything related to content in SharePoint comes in form of some kind of lists or as an extended version of this concept, be it calendars, document libraries, task lists or even webpages. Users can create lists with the SharePoint Browser Interface, define fields, attach basic workflows, versioning and use other options. Developers can go a bit further and create so called "site columns" and "content types" which are basically global definitions of fields and (partial) list types. To display contents of lists, there are several options. I will not cover all of them here but I'm going to mention some of the most common approaches. SharePoint comes with a couple of out-of-the-box Features. Most of the configuration necessary to use those Features is performed automatically when a user creates a new Site based on an appropriate Site Definition (not to confuse with a Site Template... *urks*). The Site Definition activates certain Features right after it has been provisioned in the SharePoint Content Database. These Features do not only create additional functionality, they also change the behavior of the whole SharePoint Site, add pre-defined content and structures, extend menus and perform several other tasks. Advantages
Drawbacks
In contrast to SharePoint, Sitecore does not aim to provide a handful of pre-defined "content snippets" and a relatively fixed site design for immediate user activities right after the installation has finished. From an architectural point of view, there are several good reasons for that. Sitecore's architecture is one of the best-designed software architectures in terms of Content Management Systems I've ever seen. The main concept of the architecture is an universal piece of structured information, named Item. This concept is simple, but very powerful. In fact, everything in Sitecore is based on Items - even Sitecore itself. Sitecore Items live inside a hierarchical structure named the Content Tree. In contrast to SharePoint where you can take a look at your Site Collection in a hierarchical view called the "SiteManager" (you can find it at different locations under the name "Site Content and Structure"), Sitecore's Content Tree is not only an aggregated view of database content, re-arranged to get a comprehensive view, it is really the way the whole system is structured. Browsing Sitecore's Content Tree using the Content Editor (Sitecore's "Windows Explorer") as administrator gives you the ability to see and access every piece of information within the application.
After you have designed the structure of your data and some content, the next thing to do is to present that content to your users. In Sitecore, this procedure is called "rendering". There are several options how to render content in Sitecore as it comes out-of-the-box with a bunch of technologies for that purpose. The one we are going to talk about is named "XSL Rendering" and it is by far the most common way. The rendering framework of Sitecore can be extend and at netzkern we are currently discussing a couple of ideas how to do that (e.g. providing support for Ruby on Rails-style templates, for XQuery, HAML and MVC Views). As you can already see from the way this part of the article has been written, creating Sitecore-based sites and applications is pretty straightforward and your course of action is based on a defined process with additional guidelines. Pages in Sitecore are essentially the combination of layouts as dynamic containers for information coming from the Content Tree. Page Layouts and MasterPages provide a common look and feel as well as advanced functionality, if necessary (we will cover that in a later part of this series). But let's summarize what we have learned. Advantages
Drawbacks
This article covers a lot of features in both products and should provide a pretty complete overview of the customization a developer usually performs in both platforms. Unfortunately for Microsoft, SharePoint lacks the transparency and clarity of Sitecore and makes it difficult for developers to use all the pre-defined SharePoint features productively. Sitecore also surpasses SharePoint in terms of flexibility and it is better integrated with the ASP.NET framework. Because of that, working with Sitecore feels much more natural for a developer. SharePoint provides more out-of-the-box features, but developers often stumble upon the complexity of these pre-packed components. Sitecore, on the other hand, can be easily extended with additional functionality and even complete sites. These facts lead to the following verdict from a developer perspective: Sitecore: +8 points = 24 points total Read more about developer experience in part 5. October 11 What Microsoft SharePoint Can Learn from Sitecore as Web Development Platform - Part 3(Version 1.1 - October 11th, 2008) In this series, I'm going to compare the functionality of SharePoint and Sitecore from a developer perspective in each area and both candidates can collect "points" from 0 (has nothing to contribute) to 10 (great integration and functionality). This series will cover the following areas:
ConfigurationSharePoint and Sitecore both are platforms built with extensibility in mind to allow organizations to create their own functionality and integrate them into the product. This article will cover one aspect of this process by giving an overview of the way a developer has to configure different settings during the setup of a new project within an existing SharePoint or Sitecore installation. Of course there are several other "configuration tasks" a developer has to perform within SharePoint and Sitecore to develop additional features, for example to configure individual lists (SP) or to change what Rich Text options to show in an Rich Text Editor (SC), but those topics will be covered in a later part of this series. To configure SharePoint, you usually have to take a couple of steps in different locations all over your server to setup a new project. Usually your journey starts in a special SharePoint site called "Central Administration". It is installed by the SharePoint installer and provides you with a task-oriented web interface to perform several operations: Configuring farm options, creating and configuring new "web applications" and "site collections", changing server parameters and so on. The settings that can be changed by Central Administration are either settings in one of several config files on disc (some of them in the "12 hive", some others in local config file of the selected SharePoint site collection) or in different SharePoint databases (global settings are stored in the administration database, other settings are stored in the content database of the selected SharePoint site collection). Okay, let's wrap up this summary. SharePoint is targeted towards mid-sized and large organizations. In those organization there are theoretically several levels of system administration and that is what the SharePoint team tried to consider when they created different kinds of configuration interfaces. From that point of view it makes sense to have settings for the local site in a configuration panel at the local site, so that the site collection administrator (in contrast to the server or even the farm administrator) can configure some settings for his own people. Unfortunately in reality this concept is a little edgy. First of all, in practice there are seldom "administration levels" - usually there is a group of administrators and developers responsible for operations and maintenance of a SharePoint farm (or even a single server) and they perform the majority of work in terms of configuration and customization (We know that from enterprise customers like Siemens and others). Secondly, the concept is not consistently implemented. There are still features that need to be activated manually in config files somewhere over the server or by using some "external" utilities. Thirdly, I have to ask the question: Why not make one single well-designed web interface for all configuration options and use the security subsystem to decide, what option to show to or hide from the current user? Advantages
Drawbacks
If you are a .NET Web Developer or an administrator who is familiar with IIS 7.0 on Windows Server 2008, configuring Sitecore is pretty straightforward. After you have installed Sitecore, there is basically one file where you can configure each and every aspect of the system: The Web.config file in the root folder of your Sitecore web. Advantages
Drawbacks
Again, this article demonstrates two very different approaches. SharePoint tries to play nicely with organizational hierarchies and to provide web-based user interfaces to simplify tasks that would otherwise be very complex, because the settings that are changed by various configuration pages are indeed distributed over half a dozen files and databases. Sitecore, on the other hand, is very well integrated with the way ASP.NET handles configuration and provides a familiar interface for developers and administrators in form of XML-based configuration files. It has, however, no web-based administration interface to handle certain those tasks. As this is a series that covers both products from a developer perspective (and not from an administrator or an endusers point of view), Sitecore's way seems to be more transparent and consistent. Sitecore: +7 points = 16 points total For the next part of the series covering customization just click here. October 10 What Microsoft SharePoint Can Learn from Sitecore as Web Development Platform - Part 2(Version 1.1 - October 11th, 2008) In this series, I'm going to compare the functionality of SharePoint and Sitecore from a developer perspective in each area and both candidates can collect "points" from 0 (has nothing to contribute) to 10 (great integration and functionality). This series will cover the following areas:
Installation and General ArchitectureSitecore and SharePoint both come with a lot of out-of-the-box functionality but the main reason for choosing one of them as platform is extensibility of the core features. Both products are based on .NET, SQL Server and Windows Server / IIS. They both are basically also additional layer of functionality on top of ASP.NET 2.0, but this is already the first big difference in the overall architecture. SharePoint is automatically installed by the SharePoint installation package (MSI) into the "Programs" folder of the system hard drive, some levels inside folders named "web server extensions" and so on. Because of the name of the last folder hierarchy level, developers usually refer to it as the "12 hive". All assemblies living somewhere in that directory tree are registered with the GAC (Global Assembly Cache), so every application in the system does not need to have a copy in their local /bin folder. When installing a first web application, SharePoint creates usually a new web inside IIS and places a few files in the related file folder on disc. It also registers several virtual directories linked to folders underneath the "12 hive". When the ASP.NET worker process (w3wp.exe using ASP.NET ISAPI) is starting up, it reads the contents of the Web.config in the configured IIS web folder. The Web.config refers to several assemblies available from the GAC which are loaded and initialized during startup (HTTP Modules, HTTP Handlers, some lifecycle components and so on). When a user requests a URL from SharePoint, a component named SPVirtualPathProvider is responsible for fulfilling the request as it has been registered as VirtualPathProvider. The component either ignores the request if it targets one of the virtual directories or "redirects" it to a HTTP handler that reads pages from the SharePoint content database. Advantages
Drawbacks
Sitecore can be installed in two different ways. The first way is to install it using the Sitecore Installer, a MSI package that needs to be executed on the server, similar to a SharePoint installation. The installer asks you a few questions and is doing all the work for you, including installing the database and creating a new IIS web. There is, however, a second option: You also can install Sitecore "by hand". I will not go into detail here as the documentation at SDN (Sitecore Developer Network) provides you with all necessary information. Generally speaking, you can upload and install Sitecore even with a simple FTP account and remote access to your database. Advantages
Drawbacks
Okay, let's wrap up part two. Both frameworks are essentially ASP.NET 2.0-based, but SharePoint '07 changes the way the ASP.NET WebForms framework usually handles things pretty dramatically, although it is much better integrated with IIS and ASP.NET than its predecessor (SharePoint 2.0). Sitecore is more or less a simple ASP.NET web application with advanced functionality, deeply integrated with the .NET Web Platform. Especially from a developer perspective, Sitecore definitely deserves some extra credit for transparency and architecture. Sitecore: +9 points = 9 points total The next part of this series covers the topic Configuration. TransitionScope at CodePlexI just released the netzkern.Web.TransitionScope library at CodePlex. Feel free to provide feedback and contribute to the project.
Project Home: http://www.codeplex.com/TransitionScope
Enjoy. October 09 Master ASP.NET WebForm Postbacks with TransitionManagerBecause the ASP.NET WebForms framework is an emulation layer on top of the request / response architecture of the web and the stateless HTTP protocol, its behavior is sometime a little awkward, especially when dealing with state. A lot of people seem to have trouble mastering PostBack, ViewState, Context.Items, Server.Transfer, Session, HiddenField Values, QueryString Parameters, Response.Redirect, Request.Form and PreviousPage correctly - and who could blame them? All that stuff is pretty confusing if you do not know for sure how these things work. Actually, these things are the main reasons why "ASP.NET WebForms" is in my opinion somewhat "dirty" from an architectural perspective and why I do not list it under "Really great libraries and frameworks". All those things seem to be so simple to use, but in fact everyone, especially inexperienced developers, has problems with them. The incorrect use of those features leads to very ugly solutions, error-prone applications and unmaintainable code. For example if someone stores parameters in the session that are relevant for the display of the current page only and the user opens a second web browser window, navigating in the first window also leads to server-side changes in the second window and invalidates the state of the application. To handle postbacks correctly when dealing with state, I created a helper library called netzkern.Web.TransitionScope. It contains a control called TransitionManager which can be placed on an ASP.NET WebForms page (<nk:TransitionManager />). TransitionManager is basically a best-practices implementation for storing state of the current page and (optionally) transferring it between pages during a postback. Let's assume we're building a simple webshop application. The first page we're going to create is a catalog page that lists all the items we want to sell. By clicking on one of the items on the catalog page, the server displays a details page with additional information about the item. First of all let me say, the first thing you should consider in scenarios like this is the use of QueryString parameters (e.g. http://shop.com/Details.aspx?Item=12546). The reason is that they are easy to use and you have URLs that can be opened directly without using the catalog page. There are, however, situations in which you may want to transfer additional information to the next page, you do not want the user to see the information, the information are to complex to be serialized to a QueryString parameter (or a Form) or you have to determine the next page after the user has already clicked a button without using Response.Redirect. ASP.NET provides you with a method named Server.Transfer which "switches" the execution of the current to another page. The key to using it successfully is to know how to handle Context.Items, ViewState (or ControlState) and Session, especially if you want to manipulate and access the transferred data on the next page during several postbacks. This is where TransitionManager steps in. Let's assume you have placed a TransitionManager on the catalog page and named it "TransMngr". To transfer information about the clicked item to the details page you just do the following: TransMngr.NextPageItems.Add("ItemID", clickedItemID); To access the information on the details page you just do the following: string itemID = TransMngr.CurrentPageItems["ItemID"]; The really great thing about this is that the information you just retrieved from TransMngr is available even after a postback of Details.aspx. You do not need to add anything to the ViewState or place it in a hidden field. Now, let's assume you created another page called Availability.aspx which checks the availability of the item you have currently selected. To transfer the execution from Detail.aspx to Availability.aspx after the user has clicked the "Check Availability" button and keep the information about the ID of the current item, just do the following: TransMngr.Transfer("~/Availability.aspx", TransitionItems.CurrentPageItems); Done. You do not need to re-register the information prior to the transfer if you already have them on your page. Just access the information on Availability.aspx using (again) this simple line of code: string itemID = TransMngr.CurrentPageItems["ItemID"]; One important thing about this library is that it does not store any information you added to one of the PageItems collection on the client - it only stores the identifier for the current transition. Therefor it can also be used for sensitive information without any risk. You can find the binaries and the source code at CodePlex. Please feel free to provide feedback and suggestions. Enjoy! What Microsoft SharePoint Can Learn from Sitecore as Web Development Platform - Part 1(Version 1.3 - October 19th, 2008) In this series, I'm going to compare the functionality of SharePoint and Sitecore from a developer perspective in each area and both candidates can collect "points" from 0 (has nothing to contribute) to 10 (great integration and functionality). This series will cover the following areas:
IntroductionI already mentioned it before, but I'm going to repeat this here for the sake of clarity: I'm very a pragmatic software architect and engineer and the decisions about my tools, frameworks and products are always efficiency-driven and focused on the task at hand. I would never use a product just because "it is such a great product" and I prefer tools that get the jobs done in a clean, well-designed and sustainable way. There are (from a developers viewpoint) some really beautiful, well-designed products and libraries out there (e.g. the .NET Framework in most namespaces, ASP.NET MVC, JSF, JQuery, WCF, Sitecore, IIS7, Spring (Java EE + .NET), Ruby on Rails, (N)Hibernate, LINQ, Microsoft AJAX Library, and some more), there are some products which deserve the label "okay to work with, gets the job done without causing to much confusing" (like ASP.NET WebForms, EJB3, BizTalk) but there are also some pieces of code that are responsible for a lot of confusion and inconsistency in software solutions (I have to mention WF and Outlook 2007 here, although they are based on some great ideas)... Over the last 1.5 years I developed several applications and a lot of customizations for SharePoint '07 (MOSS 2007 and WSS 3.0) and gained a deep inside into the platform. Based on that experience, I have to say: From a developer perspective, SharePoint sucks. That does not mean that SharePoint is inherently a bad product. It isn't. But there are some things about this really huge piece of information infrastructure that drives me crazy and makes it very difficult for me as Software Architect and Lead Developer to really, really like it. First of all, the overall software design of the product is at some parts really suboptimal. To really customize a SharePoint installation you need to work with pre-defined folder hierarchies in different locations on the harddrive, a huge content database, VisualStudio, SharePoint Designer, INI files, C# code, XSL, CSS, MasterPages, an inconsistent API, several XML dialects and so on... assuming that you know where to look and what to change. Beside that fact, the whole "naming thing" is really bad - some things are named differently in the API than they are in the Site Administrator documentation and the Frontend UI (because of several changes just before the release of SP '07), and even if you are aware of those traps, you are constantly struggling with the fact that SharePoint has no consistent "appearance" from a developer perspective. It seems like every "feature" (which is some kind of deployment unit in SP '07) was developed by an independent group of developers. There are numerous deployment descriptors, extended ASP.NET 2.0 features, config settings in files and databases and (of course) some things that do not work correctly if you change them. Of course, SharePoint adds value to your organisation. That is because it has some really great capabilities like strong document management features, dynamic lists, workflow integration with WF (even if you have to work with another questionable piece of software here), search, integration with line of business apps, the BDC, record management and of course it plays well with Office 2007. Everyone knows that a sophisticated Content Management System like Sitecore is the better choice for Content Delivery sites, but for the time being it is often also the better option in many Intranet scenarios, especially as gateway system for heavyweight ECM solutions like SharePoint, in those areas where a lot of structured content is produced and managed as well as in projects where individual features and application development is planned. At netzkern we are currently developing several additional modules to provide some of the SharePoint features mentioned earlier (especially document management and dynamic lists), and we are currently developing concepts to integrate both products as far as possible. This is because we want to leverage all the advanced ECM features of SharePoint without having to deal to much with the unnecessary complexity it adds to our development process. The idea for this series is based on that fact that there are several areas in which SharePoint could learn a lot of things from Sitecore, especially from a developers perspective. I am a fan of a lot of Microsoft products and the quality as well as the inventive talent is constantly growing since the start of .NET in 2001, but there are some areas where they really could improve some of their products, especially if its such an important and strategic product as SharePoint. This article series will explain why Sitecore is a really great development platform for web applications in intranet, extranet and internet and where SharePoint has (sometimes a lot of) space for improvement. For part two of the series click here. October 02 Oslo is coming...I just read some new information about the upcoming extension to IIS (codenamed "Dublin") that some people refer to as the "Oslo Application Host". As far as I know it is going to be a host for WF and WCF, integrated into IIS 7.0. |
|
|