Webforms in class library in asp.net - c#

I am making a class library in asp.net , is there any possibility to add web forms in class library ( content view files with their code-behind ) so i can run , only with a simple method in the CALLER PROJECT ,a whole web app (thanks to this class library) .
I searched and i found i can't but If not , is there any near solution which can solve this problem ?
Thanks !

is there any possibility to make a class library as a web app "template" that we can use every time we call it in another project
A "class library" project, in Visual Studio terms, is strictly namespaces and classes - no web forms or controls allowed. And you're right, these projects are easily shared among sites by leaving them in a common source control repository or similar.
In an "ASP.NET Web Forms Web Application" project, you can reduce duplication by moving as much "code behind" code as possible to class libraries, which can then be shared among your team(s). You could even theoretically implement a lot of page/control functionality as "base classes" stored in class libraries and then inherited in aspx.cs and master.cs "code behind" files.
You could also move as much "code front" as possible into Custom User Controls which could be shared across projects by linking source control to a common repository.
But I don't think there's a good way to "share" .master and .aspx files. You could set up a basic website, keep it in a common place, and let people copy/paste it for new projects. But I don't know of a useful way to share that UI code among multiple web app projects.

Related

.Net Core Razor Pages - Server Side Include

I'm unable to get server side includes (*.html files) working in a .net core razor pages web application. I've made sure to have the appropriate handler in my applicationhost.config, but I'm thinking there's a different issue here. Any help is appreciated.
Why am I doing this? I have multiple web applications sharing the server side include files (for navigation bar, footer, head content, etc..). Each of these different applications may be of different Microsoft web architecture. Our goal is to move everything to .net core, but we have lingering web forms projects to deal with along the way.
I have performed a work around by taking the SSI file contents and using #Html.Raw to serve up the content. This is probably wrong also.
I went ahead and changed the file extension of the html files into cshtml which allowed me to treat these files as partial views. I'm using a prebuild event to copy these files from a shared solution folder into my project Pages/Shared/ssi folder. I also copy those partials into wwwroot/ssi for the other applications to use via SSI. Eventually all of the apps will use the partial views instead.
The problem with this solution is that it is not necessarily clear that all edits need to happen in the shared solution folder instead of directly in the project, but the documentation for the project will address this. I tried using linked files, but only one link to a specific file can be made in a project.
Not a perfect solution (to the problem), but this not a perfect website either.

ASP.NET Web Application Project only shows VB options, not C#

I'm working on a project and I'm fairly new to ASP (not to C#).
We have a solution for a whole web application consisting of several projects and I want to add a couple of ASP WebForms to one of the projects. However, when I right click on the folder of the project and select Add element, it only shows me VB options.
But if I try to add other project to the solution, then all the other options are displayed.
The project in which I'm trying to add new Web Forms is entirely written in C#, so I don't know well what's happening back there. I cannot stop thinking it might a dumb mistake I'm making.
I'm working under Visual Studio 2017 and .NET Framework 4.7.2. It is there some kind of requirement I'm missing?
Thanks in advance for your time and sorry if it's something simpler, but I really don't know what's going on here.
As noted, this looks like that one application was created as a vb.net application.
You can freely consume say c# code (assemblies) in a vb.net project. And of course you can do the reverse.
However, for a given project created? You can't at the IDE level mix vb.net and c# code modules and general writing of code between c# and vb.net.
However, as in your example, you can certainly "include" multiple mixes of vb.net and c# projects into one same project. However, each part and section will still be limited to the chosen language used to build that application. So mixing is allowed at the project level - but not below that level.
So, it looks to be that project was created and developed with vb.net. You can't really change that unless you create a new project as c#, and then pull in all the forms, code etc. and re-factor the vb.net to c#.
So your practical project language choice is really limited to the project level. Multiple projects of different languages can be included overall, but each part will remain in its given language choice. The fact that you can do this in .net is amazing enough, but that language choice is really set in stone at the project level.
While you're figuring it out, if you need to press on and get some work done just copypaste another file that is already in the solution, and is of the type you require, then change its contents. This can usually be a time saver anyway, as the "new product" form isn't so hugely different from the "new user" form, just a different bunch of labels and textboxes..
There is nothing magical about the "add new item" dialog, it just adds files with pre filled templated content. For a cs class (for example) that's a file that basically has a detected namespace and the name you specified in the add dialog. You could even add a VB file of the type you want and then change the contents and name of the file to be right for C# - it would essentially be adding a couple of curly brackets and changing the case of Namespace and Class (and maybe changing Imports to using)
You cannot mix languages in the same assembly in .Net. Create another assembly you can put your C# code in there and use it in the VB.Net project.
Or use VB.Net it's not that bad.

Re using wpf window and c# in base project for using again

I am still getting used to working with c# and wpf. I have made a number of smalls apps to do single tasks. To give the same feel to the apps my company uses I use the same logo, colours and layout.I am also developing a project settings class to save the project variables to file using a json file ( I hope ) and a slide out panel to give the user access to the project variables.
It would make sense to save this as a sort of template / base project so that every time I start a new project I can use this base project to shortcut the workload but every time I to do this I get errors. I have read about class library but am not certain if the is correct way forward or should be some sort of template.
Can someone explain if want I want to do is possible in wpf and what is the correct way forward please. Any questions on here (this site) assumed a bit too much knowledge for me and I can't get my head around the msdn references. So any good links would be helpful
Thanks
In Visual Studio, once you have the basic solution template that you want.
File->Export Tenplate.
Create a new Project Template.
Or if you just want to create a reusable theme. Create a class library and put some ResourceDictionaries inside with your styles and templates, etc. Then reference it from each new project and import the resource dictionaries. This solution would probably be easier to maintain over time as you could easily replace the referenced DLL with a new version when you make changes to the common UI theming.

How to use asp.net vb pages in asp.net c# web application

We have created our website on ASP.NET with C#. But another developer has created her code on VB.NET. Now we have to integrate her pages and code with our existing application.
You can't use VB and C# together within the same Web Application project. What I would recommend is that you convert the VB to C# (or vice-versa) using one of the many automated conversion tools that are available (Telerik has one, for example). Barring that, your next best bet would be to keep them as separate projects and deploy them together to the same site, if that's an option (for example, if each project will be able to have its own set of URLs). If that isn't an option, then you will simply have to bite the bullet and convert one language to the other.
For web application project:
asp.net web application with c# & vb.net both in codebehind
As mentioned by OP in comments, s/he is asking for Web Application projects; so the below is only for website projects:
You don't need to do anything. Just add those .aspx and .aspx.vb pages in your website project. If you are using .NET Framework 2.0 or above, they will compile and the complete website will work.
By the way, if you see, every .aspx page contains the Language attribute in #Page directive which specify the language of the code beside file.

Share webpages between multiple websites (Best Way)

I have created two websites using C# in Visual studio 2008. Both websites having common maintenance (User and Role) pages. I have also create a common class library (C#) and added reference to both website, which is working properly.
I don't want to replicate/maintain the multiple copies of the same aspx pages.
Is there any better way except user controls, to have single copy of common aspx pages and add reference to both website, just like class library?
Thanks.
In your response to Mr.Lister it sounds like you aren't using a master page, and your really should.

Categories

Resources