Is there a web application layer over AdventureWorks? - asp.net

I'm wondering if anyone has implemented a web UI on top of the AdventureWorks database? IOW, I'm not looking for just a application data layer on top of the schema. Rather, I'm wondering whether anyone has created an ecommerce front end on top the AdventureWorks schema?

Sounds like a good chance to try ASP.NET Dynamic Data (point it at a database and generate a web application that supports basic CRUD procedures).

The SQL Server Samples Portal Page has an end-to-end product sample called Storefront which uses the AdventureWorks database as the backend:
Scenario
A developer wants to implement an e-commerce Web site. The Web site
should offer additional product recommendations based on the contents
of the shopping cart (product up sell).
Languages
Transact-SQL, XML, XSD, Visual C#, and Visual Basic.

You can easily generate one with Subsonic (free)
There are commercial products that can generate an entire application by pointing at a database, IronSpeed, for example. (Has a trial version)

Related

What is the main difference between Asp.Net webApplication and website?

I would like to what is the differece between the webapplication and the website.
Any suggestions will be greatly appreciated!
Yes there is difference between web-app projects and website projects.
Text from the MSDN :
In Visual Studio you can create Web application
projects or Web site projects. Each type of project has advantages and
disadvantages, and it is helpful to understand the differences between
them in order to select the best project type for your needs. You must
select the appropriate project type before you create a project,
because it is not practical to convert from one project type to the
other.
In layman language:
Web application:
If you can think of a site where you create an account, log in, and conduct some actual business, it’s probably a web application
So a web application is a web site that DOES something other than display content to the user.
It’s intended for user interactions and transactions, performing actual business functions, and not simply displaying information to users.
Some example of web application
GMail,Facebook,Ebay,Twitter,YouTube
Web site:
Web site usually use for dispaly information .They have less or no interaction with users, so we can say Websites are informational by neture.
Some example of web site
Nokia.com,Songspk
For development point of view
The Microsoft best described this on there website here here
Please take a look on following table-

How to use SharePoint only as a Content Management tool from a custom web application?

We have many custom built web applications (both external & internal) written in Classic ASP and ASP.NET 2.0 technologies. Internal users can upload files to these websites, which can then be viewed by External Users. In some cases, external users can upload documents as well.
Screenshot #1 gives a brief idea about the existing architecture.
Internal users upload documents to custom web applications. These documents are stored in a folder structure defined under the web application.
Meta data and user permissions like who can access the documents are stored in SQL Server database.
The same set of documents that are being uploaded to custom web applications also exist in SharePoint. However, the custom web applications are unaware of SharePoint. So, users have to download them from SharePoint and then Upload it to the custom web applications. We are currently using SharePoint 2010.
External users can also upload documents to the custom web applications. The meta data and user permissions of the document are saved into database based on the user who is uploading the document.
Screenshot #1:
Screenshot #2 shows the architecture that I am trying to achieve. I have done very little SharePoint development. Mostly, I have used the SharePoint web services to retrieve some list content but nothing more than that. Our future Custom Web Applications might be written using ASP.NET MVC. Please find the questions after the screenshot.
Screenshot #2:
Here are my questions:
I would like to have internal users continue to upload and maintain their documents in SharePoint. User security model is already defined in the SQL Server database. This security permissions should be available in the SharePoint document properties so users can choose who can view the document from the custom web applications. How can I achieve this? Should I have to copy the SQL Server user permissions info to SharePoint?
I believe that SharePoint Web Services or Business Connectivity Services (BCS) can help in retrieving the document and its related info from SharePoint. Which one of these would better suit this scenario?
Custom web app should display only the committed versions of the documents. If a user has checked out a document in SharePoint to make any changes, that checked out version of the document should not be visible to External users. Is that possible?
Has anyone tried this approach? Are there any pitfalls with this model? Are there any performance concerns with this design?
Will this design be of any hindrance if I rewrite our existing applications using ASP.NET MVC?
Is it possible to make use of SharePoint search feature within the custom web application (ASP.NET Web Forms / ASP.NET MVC)? In other words, can I send search criteria from custom web app and have SharePoint do the search and return the results back to custom web app?
I really appreciate your inputs.
Thanks in advance.
Question 1
Hard to say without having more details. So I'm going to assume that you currently use Active Directory for your authentication store. So this means that your SQL Server defines a list of roles and then has assigned memberships to these roles. I'm going to assume that your assigned membership is to AD users or groups. If this is true then I think your on the right path to push your permissions from SQL Server into SharePoint. SharePoint's API will accommodate what you need to do, however SharePoint has no built into mechanism for syncing your permission changes so that means you end up writing a whole lot of plumbing code. I would recommend that you research products that can handle the synchronization for you. Microsoft MIIS (I believe it is called Forefront Identity Management now) offer a set of architecture patterns that you should investigate.
Question 2
SharePoint Web Services or the SharePoint Client Access Services should work fine. I would highly recommend that use a proxy pattern to isolate your application from SharePoint calls (so you can isolate your application from SharePoint upgrades and potential content management server changes).
Question 3
Yes, that is possible. If you are using the publishing features of SharePoint Server (NOT SharePoint Foundation) you will have an easy way of identifying the current published version. Otherwise the service account you query with should be setup so it can only read published versions then SharePoint will automatically trim your query.
Question 4
I have not personally tried this design, but I really like the concept of creating a content management domain and then putting an abstract service layer on top of it. Will you have scale problems, depends on how you configure SharePoint and your applications. You can do it right or wrong. An depth answer between the two cannot be covered here. My one piece of advice is to make sure you plan for caching in your service interfaces (cache, cache, cache).
Question 5
Not if you implement it as a Service Layer. You would just use a repository pattern to call the service and return back entities for your model.
Question 6
Yes, Search is exposed via an API so it can be wrapped in a service layer too.
Good luck and feel free to contact me directly for more in depth discussion.

Does AdventureWorks ASP.Net web project exist?

I know nopCommerce and dashCommerce quite well, but I so far have never found any open source shopping cart (including HumanResources and Vendors) bigger than the nopCommerce.
I'm wondering whether AdventureWorks database comes together with a web project or other UI projects as an open source. Or it just exists as a sample database only.
Thank you for your comments!
AdventureWorks is purely database goodness. The closest you would come to to a ASP.Net web project with UI would be the samples delivered with Access 2010 like the "Assets web database". It does not compare well to dashCommerce or nopCommerce though.
There is a sample Web UI (ASP.NET Web forms) available with the database samples download (2005 and 2008). There is also a site dedicated to building out a real world example, but it doesn't look like they are sharing a code download: demo.componentone.com/ASPNET/AdventureWorks/
How about the Cycle StoreFront retail application from Microsoft SQL server multi-technology-product-samples?
From the site: *The Storefront sample for the Adventure Works Cycles sample database in SQL Server demonstrates how to build a simple Internet retail application by using SQL Server, ADO.NET, and ASP.NET. *
In fact, this is one of the many end-to-end samples they have, including:
Microsoft End-to-End Samples
Community End-to-End Samples Gallery (sponsored by DPE)

Integrating Sharepoint and MVC

We currently have a product that uses Sharepoint and a number different Web Part libraries to display realtime data to customers. The way this has been set up is that each customer has a custom login (Active Directory), a custom site with their specific data hooked up in the web parts. That means for every customer we have a completely separate site. Eg:
Customer 1 -> www.site.com/sites/customer1
Customer 2 -> www.site.com/sites/customer2
Customer X -> www.site.com/sites/customerX
As you can imagine, this is impossible to maintain as any small change that we make has to be manually propagated across all of the site, a task that has become impossible.
We are also developing separate ASP.NET MVC application that live on the same server under their own Virtual Directories Eg. www.site.com/App1/
I've been tasked with investigating how to best redesign the system to provide a more integrated and "application platform" type architecture.
Personally I would love to just ditch the Sharepoint as I think we are using it incorrectly (not as a CMS at all), but my manager wants to keep the Excel Services for customers who pay extra (a customising service).
We currently embed the MVC applications in Sharepoint using the Page Viewer Web Part, but this gives us less control over the layout of these applications
My next thought was to have a standard ASP.NET masterpage across all MVC sites and sharepoint so that they look the same, whilst still providing the functionality required, but investigation and testing seemed to be that Sharepoint master pages are horrible beasts that barely resemble a clean master page.
Basically I'm stumped, and I'm getting a little disheartened about Sharepoint and it's god awfullness.
Does anyone have any experience with this or could provide some ideas/tips?
Very much appreciated.
CodePlex - SharePointMVC
A helper project for hosting asp.mvc content inside SharePoint.

Implementing document management with an ASP.NET MVC front-end

I've implemented a website for a client that holds editable articles.
I used ASP.NET MVC and made the content manageable by storing it in a 'Content' table in the database and creating a simple Admin section of the site, where the user can add/edit/remove content and choose where on the site it will appear.
Now the client has come back wanting full document management features. They want version control, permissions, PDF export and simple workflow on all content items.
I'm debating in my head how to do this.
I found one question where a lot of people recommended WSS (Windows Sharepoint Services).
The thing is, I want to build the admin interface myself and make it really easy for the client to use.
Will WSS allow me to do this?
WSS has functionality for storing and versioning of documents, and workflow.
I don't think that PDF conversion is not part of WSS, but you could use a 3rd party tool.
You could use the WSS UI for the Admin site, placing documents in spesific document libraries. But for your ASP.NET MVC site you could access WSS via web services (WCF).

Resources