What is the accepted "portlet" framework for .Net these days? By this, I mean the whole "add little widgets to a page and move them around" type of thing.
I know that Web Parts were big at one time, but is this architecture still the "accepted" method in the .Net world? Is this still what Sharepoint uses? (And should that matter?)
I need to use portlet-type things for a client project, and I don't want to re-invent the wheel. I'd like to use the tool that have the most momentum and community support behind it?
Yes, SharePoint still uses web parts. That being said, there are many ways of creating SharePoint web parts.
You can't really go wrong with ASP.NET User Controls. User Controls give you a lot of freedom, are still very "accepted" and supported (and that won't stop anytime soon). What's more, you will be able to re-use the control everywhere (SharePoint or not) with little refactoring which is a big plus in my book.
You can read this article by Scott Gu for more details : http://weblogs.asp.net/scottgu/archive/2006/09/02/Writing-Custom-Web-Parts-for-SharePoint-2007.aspx
Related
A basic question on Endeca I suppose. The scenario is we have a commerce website that running on say, ATG Search (or any other search) & we need to move to Endeca. Is it possible to just use the guided selling aspect of Endeca or is it mandatory to use the experience manager also?
A second question, if we have to use experience manager then does it mean that the page layouts of the current site would have to change or can they be retained?
The easiest way to answer this would be to speak to your Oracle Account Manager as they will be able to confirm whether you have/should license Experience Manager. Considering that, even in the most recent release of Endeca (now called Oracle Guided Navigation) you can download the Tools And Frameworks module without including Experience Manager, you do not have to use Experience Manager.
As far as your second question is concerned, if you did use Experience Manager, you don't have to push all of your page layouts through this. The biggest benefit in using Experience Manager is that it gives you more control over how you merchandise the different levels in your taxonomy but you can also do that manually.
Is it possible to just use the guided selling aspect of Endeca
Yes. (Tools And Frameworks comes in two flavors. One, with Experience Manager, and another one without Experience Manager, which is also called as Guided Search). Use of Experience Manager is NOT mandatory.
If we have to use experience manager then does it mean that the page
layouts of the current site would have to change or can they be
retained?
Yes, the page layouts of the current site should be adjusted.
I want to create an enterprise intranet , that provides authentication of employees and management profiles, messaging, calendar, document management...
I think I can use php or java CMS , for the moment after some research I decided to use Liferay or Alfresco. The problem is that I don't really know the difference between them , and what I have to choose .
They're quite different products, solving different business needs.
Liferay
It's a Java Portal. It focuses on creating web sites that are able to integrate data coming from different sources and applications in the same page. Using portlets, you compose a page to enrich it with such mini applications. It's mostly used to create web sites that aggregate information and contain interactive features such as online chat, blogs and the like. It also provides document management as part of its features, with the possibility of integrating Alfresco as a backend.
Alfresco
It's an Enterprise Content Management system. It revolves around documents, their lifecycle and collaboration capabilities over such documents. With the advent of Share, Alfresco now offers a lightweight portal-like application that lets you place "dashlets" in both an User Dashboard and a Site Dashboard (sites are shared workspaces).
While you can have non-document centric dashlets, blogs and wikis, they're not extremely sophisticated, and most of Alfresco features focus on document management and online collaboration.
I have not worked with portals for quite a while, but I guess the answer is : It really depends. :)
Seriously, in your requirements context I would compare Alfresco Share with Liferay. Both compose pages in a similiar fashion with Webscripts/Portlets components and have security baked in.
I think the most important factor to consider is your skill set.
If you feel at home with Java, the Portlet spec and server side logic : Lean towards Liferay. Alfresco Share/Spring Surf should serve you better if you prefer Javascript in the browser and JSON/REST style programming.
Besides, validate how strong your document management requirements are.
Do you really need super sophisticated search, workflow, versioning, security and the like ?
Sophistication increases complexity. That is also why I would be careful before introducing them both at the same time.
Another point to have in mind may be documentation - guess this point goes to Liferay.
Liferay's primary strength is as a portal where you use existing "applications" to fit your need, or create your own using the Portlet spec. Alfresco is a CMS, so it focuses on content management.
Why not use both?
Does anyone have tips or an ebook that can give me a good foundation on how to create applications in lotus notes using web browsers instead of clients. Links or tips are much appreciated.
Thanks!
Books are a good starter. But you'll find there is alot more to it than you see in books. So, here is a quick list of places to look.
Books
You've got these options for books (all downloadable as eBooks to)
Classic Web development prior to Notes 8.5 -- Reviews here and here
Latest Web stuff with Xpages if you have Notes 8.5+ (kindle/paper)
There are IBM wiki's (html). But have found the IBM wiki experience underwhelming. (The adjectives "half-ar$ed" and "piece-meal" comes to mind alot when reading these.)
IBM's redbook site (pdf/html) has better produced content than the wiki's.
Sites
One of the best web development tip/technique sites for the trickier problems is codestore.net and nsftools.com
OpenNtf a well used site for free code and solutions written by alot of smart people.
Quite a few good bloggers have "coagulated" on planetLotus
Try Searching for XPages in Google. Or start here
If you enable http on the server, you should be able to see your domino applications from the web. You then need to modify them to make them a bit more web friendly. The basic technique for this is to have 2 design elements with the same alias, hide one from notes and the other from the web. This will make it a bit easier to make it functional from both the client and the web browser.
Other functionality which makes this a bit easier would be 'Pass through HTML', the Domino CGI Variables and the 'WebQueryOpen' and 'WebQuerySave' events. As Jasper points out, XPages is the new sparkling way to do this, but it might not be an option for existing systems (It requires the latest version of Domino server). Good Luck!
What version of Domino are you running? If it's an 8.5 variant, I would suggest you use XPages to bring your old client apps to the web (XPages are not an option in releases prior to 8.5).
As to how you go about this, that's well beyond the scope of an answer on Stack Overflow: it's a book in and of itself! To learn about web development with XPages, I suggest visiting some of the well-known sites out there, and perhaps picking up a course or two. Here are some links:
http://xpages101.net
http://www.qtzar.com/blogs/qtzar.nsf/htdocs/LearningXPages.htm
http://notesin9.com/
(Also, IBM publish a book on XPages development, although I've not read it).
With regards "classic" Domino development, your best bet is to view your existing Notes app in a web browser and then start hacking on the default HTML generated (which is nasty). The best single resource out there for classic Domino web development tips and hacks is Jake Howlett's Codestore
Start small, build yourself a small database with a subset of data and explore what you can do. I've been a notes client developer for 10+ years and doing domino web work for last three or four years and still on steep learning curve. Its a very powerful platform but you also need to know html as on many occasions the html that you see in the browser helped me pin down the faults in my application code.
I have a development team specialized in ASP.NET. So the solutions we provide are web based, running on IIS and using MS SQL server. Everything within the intranet of the company. The team has this expertise, and they are excellent in C#, and .Net in general.
The company is deploying SharePoint MOSS 2007. This deployment is part of a project that I am not involved in, and for which I have very little information. However I know that they have established the "thinkers" layer (those who will say what to do), the integrations layer (the who will configure, deploy and manage the production), and that they need to establish the so called development layer (those who will do things the other two can't).
I am asked to evaluate the possibility to increase my team's expertise by adding SharePoint development. This is the easy part, I just have to find the required training and send my people.
However these days the word development could mean a lot of things and sometimes I discover that configuration is used in place of development.
I don't have any objections to evolve the team by developing new expertise, but I want to be sure to keep things stimulating for my developers.
Secondly I don't want to say that we have SharePoint development expertise, and actually what we do is just modifying css or xml files. Also, I don't think that using wizards to produce a solution is the best path to push a C# developer to follow.
The questions I am asking myself first is : what is the background of a SharePoint developer? how could .Net developers feel if asked to become SharePoint developers?
Any thoughts will be greatly appreciated.
I started in Sharepoint development over a year ago when I inherited a WSS 3.0 solution at my company.
Personally I think it was a great step for me getting to know Sharepoint development a little, there are a lot of problems (e.g. security, load – balance, ghosting) that was good to see how was solved by the WSS team and helps me solve problems in other solutions I‘m working on. But I don‘t work on WSS solutions full time, so others have to anwer how it is working with WSS every day.
WSS and Sharepoint are an extension on the ASP.NET platform, so any experience in ASP.NET and .NET in general should be a good foundation for a developer that is starting creating Sharepoint solutions. I read the Inside Microsoft Windows Sharepoint Services 3.0 book in order to get the basic concepts and wss solution architecuture before I started working on WSS projects.
I quickly found out that you have to have a Virtual Machine environment for Sharepoint development, this is because it‘s a pain working on a client and attaching to a remote process on the server to get in debug mode. Therefore I recommend creating a MOSS virtual machine that has Visual Studio installed that has access to your source control system. Develop solutions on that machine and when finished then check into source control.
I also recommend looking at development tools, such as stsdev and wspbuilder to help you building your solution, these will ease you development process quite a bit. There are also quite a lot of tools available on the web, e.g. codeplex to help you out.
Sometimes it can be a pain developing these solutions, changes can require recycling the IIS pool or a brute-force IISReset, error messages can sometimes by a little cryptic and so on. But you quickly catch on and know where to look. Sharepoint also helps you out a lot, I‘ve had millions of questions from clients that can be solved with standard out-of the box web parts, so that I don‘t have to code anhything to keep my clients happy :)
Sharepoint also expects solutions to be coded in certain way, e.g. 12 hive filestructure so it helps you standardizing your solutions.
There is a serious lack of documentation, so that you have to rely on Reflector and such tools a lot, just to know what is happening within the framework, hopefully this gets better with 2010.
The initial learning curve is high, and a lot of new concepts an technologies to learn ,e.g. Workflows within sharepoint, featuers, ghosting and code access security
There is a lot of Xml configuration that sharepoint uses that developers have to learn, this includes the site definition, list templates and more. There are sometimes days when I‘m stuck in Xml edit mode and can‘t figure out why things don‘t work as they should do
These are just few of my thought, I‘ve been working mainly in WSS development and it would be great if someone could comment regarding web part configuration in Sharepoint, e.g. configuring the search. Which is something I haven‘t been doing a lot of.
From what I have heard around, the SharePoint is a popular technology from the customer point of view, but an object of hatred among developers.
Nice to see you noted Dev and Admin being used "incorrectly".
Although Developing for SharePoint could be purely that, development, like creating webparts etc., I strongly encourage you and your team to get to grips with SharePoint deployment, installation and configuration as well. I am fully SharePoint Certified (WSS Config/Dev and MOSS Config/Dev) and having knowledge of both ends has been invaluable for me.
Knowing what is configured where will help in debugging and troubleshooting along the way. I suggest taking an MCTS WSS 3.0 COnfiguration training / and or a MOSS Config training for at least 1 or 2 of your team. The rest of the team will pick up the essentials as they go along, having those 2 certified colleagues as go to guys concerning config and admin.
IMHO, being a sharepoint consultant entails knowing how to create a piece of functionality as a dev and then being able to deploy, configure and maintain that piece of functionality as an admin (or at least an informed end/power user).
Albert, take a look at this other thread titled Is a sharepoint developer technically “equipped” to do custom app dev and vise-versa. There's quite a bit of info in there about what's involved in making the leap from pure .NET to SharePoint.
My co-worker is studying SharePoint at the moment. Making fun of him all the time. Frequently he gabbles something like "wtf is that??!!". And then i feel a bit sad, because i know - there's a probability that i'll have to learn that stuff too (i guess it's not so easy to get projects nowadays).
I see it more as configuration and customization than software development (something like hunting down fing checkbox for 3 days in a row). You pick up some clay through those crazy sharepoint designers and then endlessly customize it.
For everything i know already - there's a new name (i.e. - spGridView) and unexpected behavior underneath.
Html that gets rendered is bizzare (tables and bunch of serialized viewstate everywhere).
But those configuration xml`s... o_0
Now that's a hurdle i can't get over. Even hardcore SQL stuff starts to seem like a childish game.
Maybe i'm wrong, but as i have heard - Microsoft developed 'spatial columns' (let's you expand count of columns for tables over thousandsomething) for sql mainly because of Sharepoint. That terrifies me.
Of course - my opinion is HIGHLY subjective and a bit offensive. But i hope that helps to better reveal what i think & feel about Sharepoint.
Hopefully developers you are working with sees this different.
In short:
No. I wouldn't like to become a sharepoint developer.
Edit:
I could handle that initial complexity. But the main reason i don't want to - i don't think that development in Sharepoint is the right way to go. I mean - lately people discuss that webforms provides too much abstraction. Then what to say about Sharepoint?
To be a successful SharePoint developer you must have a high threshold for pain and the patience of a Buddha.
thank you all for the answers, they are all really helpful.
from what I read here, I see two things to consider.
First is the context of utilization which I think is an important factor. In some places SharePoint "development" could go very far, and could involve developing really exciting things, in order to satisfy new customers' needs. it could involve writing code and so on. And in some other places it could be just administration and configuration, in order to maintain already established solutions.
Secondly is the personal motivation. It really depends on the person. Some .Net developers with good experience, will prefer not to go in a direction, where they will not code the "SharePoint way", and will like to write code in C# or some other languages. However there will be others that will choose this path and will be happy to have such careers. They will be motivated and thus propose really nice solutions.
For example, from my personal perspective and if I had stayed in development and programming, I would not choose SharePoint development using high level wizards and menus,as a progress path for my career. Even though I am not doing it these days, I still enjoy coding, compiling, debugging etc, but this is just me.
A client wants us to develop a Picture Library system for them. The requirements are pretty typical - need to add pictures, tag them with metadata, store different sized versions and so on.
The client is keen on it being developed as a component which plugs into their existing SharePoint system. However, my feeling is that we would be better served building a standalone app - that way we don't have to shoehorn it into a SharePoint page and muck about integrating with SharePoint's APIs.
I am trying to look at this objectively and would welcome any arguments either way that people have.
Using an existing framework like Sharepoint imposes a lot of constraints on the design which makes the software architecture more uniform.
It does require some work on the part of the developer, because the developer does have to understand the API architecture and API's, etc.
However, developing a standalone application is the way that business's software architecture becomes a mix of 200 applications, using 20 different languages/architectures/platforms, half of which were developed by people no longer there - in short, a mess.
Sharepoint is documented, and will be supported probably long after you leave the company. Can you guarantee support for the application that you develop for as long as Microsoft will support Sharepoint?
You should do a cost/benefit analysis of integrating with SharePoint. You have listed some cons for integrating with SharePoint. Here are some pros.
Widely adopted platform.
Existing functionality to store/retreive/update images to data store.
Existing functionality to tag images.
Existing functionality to group several images together and treat as one virtual document (if using SharePoint 2010).
Keep in mind that you can integrate any custom ASP.NET page/application in Sharepoint so you can approach development like a standalone app. Your client wishes might include synchronization with Sharepoint's own picture library functionality and in that case you'll have to work with it's API.
It seems with SharePoint you are already done because it can more or less do what you describe already. What requirements do you have that cannot be met by OOB SharePoint?
I've used picture libraries for something similar before. While they have their quirks you do get a lot 'for free' like a UI, bulk uploading, metadata and 2 alternate sizes rendered.. My biggest gripe is they don't support the datagrid view so I cannot edit list metadata en masse like you can with other list types.