List of Reusable Components - Ideas C# and ASP.NET - components

We are planning to build a library of ReUsable Components so that we can reuse them and improve the productivity across all projects of the company.
We have prepared a list of components, but I couldn't share the complete list here as it is not my personal but official.
Examples of few of such components in our minds are Excel Export / Import etc.
I would need your help in expanding the list of such components.

Exception handling can be an example of a re-usable component.

User Audit Log,
Notification Services (Email / SMS / Popup),
FileService - (like AWS S3),
IdentityProvider,
ExcelExport,
EDI Components,
Grid,
File Selection Popup Control,
Excel Import & etc.,

Related

Rewriting a NodeJS Website using Oracle APEX

My company is upgrading our database hardware to facilitate a data process that potentially may not work (... long story) and in order to somewhat justify the purchase in case the data process does not work, the idea has been floated around of rewriting the site using Oracle APEX. I am wondering about the limitations of APEX and have been unable to find a solution to a few questions.
I currently have a fairly complex, dynamic ecommerce website written in NodeJS and ExpressJS using EJS for templating. There is a lot of logic done inside the .ejs files and the partial templates themselves are re-used in various places throughout the site. We are using ORDS calls from the Node server to retreive data from the database.
I am mainly curious about how one would go about implementing something similar to EJS partial views in APEX. I am pretty new to APEX (2-3 months working on another application) so I haven't gotten too in depth into the way templates are used, past the normal #REGION_01# substitution of simple elements.
I am assuming that most of the logic (deciding whether to show element A or element B based on a value from the database record of the product) would be done in PL/SQL or in a separate JS file.
Is something like the following possible?
A template containing a "Add To Cart" Button, MSRP, Sale Price, and a (HTML) table displaying possible discounts based on the quantity purchased
A template containing product information, like the product ID, name, manufacturer, and a small description of the product
A template combining the previous 2 options and a picture of the product into a row that can be re-used across the site
If someone has experience with this sort of thing, or could point me towards some good reference material on a similar topic, I would appreciate it.
I've been working with Oracle APEX for a while, specially in the front-end department because it does lack a bit in regards templates.
To answer your question. It depends on what you mean by template
If templates are the apex template objects
You can create and customize templates on Shared Components -> Templates. I'm almost sure you need to create new stuff or duplicate because the vanilla ones are locked.
Another option is to create plugins for you app which will function similarly and can be exported/shared with other projects and people.
If Template is just a page that you will keep changing the record displayed
Sure, you can create many things using the a blank page and adding the components. I've on teams developing ERPs, Mobile Apps, Stock Integration with Marketplaces (needed some Java, though) and several custom made Application that are not available out-of-the-box.

What is the difference between Backoffice and Cockpit frameworks?

Recently i've started learning hybris and come across these two terms.I feel both are same because they both are related to User Interface.
somebody please help me understand how backoffice and cockpit are different.
Since Hybris 6, Backoffice is the new more generic UI for managing your Hybris Store. This is the successor of HMC. (Hybris Management Console) Cockpits will become deprecated in a few versions. Using them, you have to handle several different extensions (Product Cockpit, Customer Service Cockpit, CMS Cockpit etc..), which use different frameworks and styles.
The main idea of having different cockpits is to separate different dedicated teams and concerns. Also they have some customizations, which are much more usable, than HMC. With Backoffice, you can create the same functionality with different modules.
In general, if you start a new shop, i would recommend using the Backoffice. This is the new way to administrate you shop.
backoffice is a new framework which is a replacement for old cockpits.
backoffice advantages:
the new architecture allows developer to focus and spend more time on important things (application logic) instead of all secondary tasks (e.g. security - authentication and authorization, notifications etc.)
it offers a lot of standard reusable components so you can create new applications faster (from ready blocks):
actions: create, delete, search etc.
editors: decimal editor, text editor, reference editor etc.
widgets: collection browser, border layout, explorer tree etc.
your applications will be more consistent and intuitive, because they use the same components
it groups applications in one place, so the client does not need to know many URLs (he can open one application and everything will be in one place)

Using SSRS instead of Crystal reports to generate admin forms

I'm looking into upgrading a .net 2.0 app. The app is used by the public authorities of a certain city to keep track of expenses and generate reports and forms.
The reports and forms were generated in VS2005 using Crystal report. They follow a well defined layout, like official documents usually do.
I am looking at options to upgrade the application and the main problem I have is in determining how to deal with the crystal report files.
I have successfully upgraded to VS2008, but any version after that doesn't have CR anymore, so my company would have to pruchase CR separately and because the client and my company are both tight, I'm looking at alternatives...
The obvious one is using SSRS. I have never touched it before in my life, but after playing around with it for a bit, I get the impression that it is not very well suited to generating forms with lots of non-tabular content and lots of formatting. Or am I wrong?
It seems that every line has to be drawn separately. There is no (that I can see) accurate way of positioning lines for formatting...
But I'm just a beginner, so I might be getting this all wrong?
If that is the case, are there any other alternatives to CR and SSRS?
I was thinking of maybe having a separate MVC web site project in the solution. Have that generate the layout in html and css with data from my entity model, then view the result in a (built-in or not) web browser. Am I overcomplicating on this?
I really need advice from somebody who's done that kind of thing before.
What SSRS is good for:
Talking to SQL Server, much faster than other products as it in many cases retains the database better when in other programs IMHO they repeat query at times.
Designing collapsable grids and chart objects from datasets. You can have 'groups' that can nest aggregates of collapsed values and can be un collapsed or collapsed on demand based on expressions, parameters, or a recusive parent set.
A web service for deployment ease where you can deploy one or many objects. You can also write add ons for this service with C# and the ReportingService.asmx web service.
You can talk to the web service directly in a 'form' object in HTML and manipulate it's output.
You can schedule reports to send out via email and file saves automatically to clients or internal users.
What SSRS IS NOT GOOD FOR:
It is not event driven hardly at all except for parameters. You cannot click on many things and get other parts on the form itself to update. You may do an 'action' that goes to another location, report, or site. But in essence you are calling a seperate object, not the same instance again.
Multiple layers of reporting. Beyond tweaking tool tips you cannot do 'hover over' reporting without hacking SSRS. You can make javascript windows show other reports but it is not baked in to SSRS. So you are either clicking into new reports or tab stops in a report but not getting hover over quick objects beyond text and expressions that are in tool tips.
What do you want before considering what you need to impement?
I want to input and export things while talking to my database - ASP.NET with potentially HTML 5 or MVC4 if you want to be very new. ASP.NET is made for actively talking to a server and taking commands IN as well as OUT.
I want a form to auto update periodically on a page as a landing site and dashboard - AJAX and Javascript on top of HTML, Java or ASP.NET.
I want to create reports that exist on a Server and can be hosted on a wide variety of platforms in .NET via web service calls - SSRS.
SSRS's biggest selling point to me is it's reusability once you dial a report in. They are pretty easy to create, easy to configure, easy to deploy, and if you get a little advanced in calling the webservice you can get SSRS report objects in other technologies if you want.
There is Crystal reports for VS2010 and VS2012. It is just not shipped with them. You can download the installation from here: http://scn.sap.com/docs/DOC-7824
I am running through the same decision process at this time. There is a .NET product from a company called "Windward" that will allow you to design your reports in Microsoft Office. If you are in the MS ecosystem already or want your users to design reports instead of always calling on you, this might help.
Their template design tool is called AutoTag and you can deploy these template to their .NET based engine in a few lines of code.
I know the question is regarding SSRS vs. Crystal comparison but thought you should know there are other alternatives and some can make life easier
Ryan

How do I implement user theme switching in SharePoint?

My customer wants to provide 2 themes for a SharePoint application. Is there a strategy to accomplish this in MOSS 2007?
We want to apply user profile-based theme selection, and maybe even a drop-down to switch modes.
I don't know how extensive you want your re-theming to be. However if it could be CSS-only you could use this approach:
Store the CSS files for the different themes in the Style Library.
Create a list that stores the user and their chosen theme.
Write a feature and custom application page to allow the user to change their theme.
Write a control that does a lookup on the list against the current user and obtains the a reference to the corresponding CSS file in the Style Library. The control would then output the CssRegistration and CssLink controls to the page for this file.
Add this control to the master page so it executes on every page (caching should be added).
I can't see why this wouldn't be supportable by Microsoft as you're only changing CSS.
If you need to do more than that then another option is to write an HTTP module that changes the HTML output. Or of course JavaScript. With these two options you may have supportability issues (it depends on how extensive your changes are).
There is also SPThemes now available on Codeplex from Bjørn Furuknap. Users can choose their own themes and they can be applied at different scopes.
Here are the options that I’ve come up with from research and feedback. Both of which seem mostly infeasible.
Implement major UI layout changes in JavaScript. This would lead to client slowdowns, would be difficult to code, and would be completely unsupported by Microsoft due to the need to reference SharePoint objects that may change with subsequent SharePoint patches.
Provide two parallel themed sites based on the same data, and provide a way to switch between them. This would require that we deploy each site to multiple locations, and would require retooling of any site creation mechanisms in code (since they'd need to target two sites instead of one).
One another thing you can try is to use the Theme Changer and ThemeChangerStaple from codeplex , That is implemented as feature you can use the same code logic to archive what you want with bit of modification, give it as an option for the user using CustomAction.

Sharepoint Web Part Management

I have a rather large project developed on Sharepoint and Project Server, designed as a multi-tier application. I programmatically manage web parts on certain web part pages. According to the choices of the user in one of the web pages, appropriate web parts are added to the web part collection of another web part page. My problem is that I simply do no know where to manage the web parts, should I do it in the BLL and then have the assembly containing the business logic reference the UI assembly where the web parts are? (I need to instantiate the web parts when adding them to the collection, since I do not want to use hard coded strings representing the web part dwp.)
It really depends on what pattern you're using for your BLL and UI layers, and how strictly you want to follow it.
If you're doing a MVP pattern then I'd suggest that you have the Page implementing an interface which has one (or more) of the following options:
A stack which the Presenters to load are added to
A Load_WebPartName event for each web part which then should be called to indicate which webpart(s) need loading
To be strictly MVP you should not reference the following assemblies in your BLL project:
System.Web
Microsoft.SharePoint
Microsoft.SharePoint.*
(All SharePoint assemblies would be in either the Model or UI projects, the BLL is just connecting to the appropriate hocks)
Can you package the web parts as a feature or set of features and then simply manage the feature(s) activation/deactivation through the web part manager class?
Any programmatic massaging of the web part that needs to happen on the appropriate web part page can be handled in the feature receiver, so your manager doesn't need to be so aware of the web part UI.
HTH,
jt
Web parts are generally best managed using the feature/solution framework. You may treat the webpart classes you write as any other web control, and thus a part of the ui layer. I generally keep the information in the xml files (the .webpart or .aspx files) to a minimum. If you are managing them exclusively, you don't really need to use declarative code files at all.
The short answer: webparts are sharepoint specific ui, and should have no knowledge of the business layer.
The short answer is probably "no, you should not do this in the BLL." A purist might argue that while the BLL may rightfully determine what a user can or can't do, it is up to the UI tier to determine the appropriate web parts to be displayed as a result.
For example, the BLL might determine a user's capabilities and expose them as roles, or permissions or something else with domain-related meaning (e.g. timesheet approver role, approve timesheet permission, etc.). These might then be mapped to a set of web parts by the UI tier (e.g. timesheet approval web part). In this way, the BLL effectively determines the users capabilities and the UI tier determines the UI for those capabilities.

Resources