I have two projects in the same solution:
My.Solution.name.with.dots
BLL
Web
in the BLL project, I create a class that need to get a global resx value from RESX file that is placed in the Web project. Is it possible ?
BLL can't have a reference to Web project because of the project dependency
The resource, as an accessible class, is part of your web dll. I would be better to move your resource to a separate project that both libraries can access.
Alternatively have a play with the ResXReader to read a resource file from a specific location.
Related
I'm working with Silverlight. In it, I've created a web project.
I always have created desktop application where I divide my projects in three modules:
Domain
Application
Presentation
But now, I'm working to the server side and I really have no much idea about how to build my architecture. In it, I plan to have a entity model for my database.
So, can you give some ideas about the modules how to structure?
I structure my Silverlight server-side libraries as follows:
MyApp.Host: The main hosting project for the silverlight application. Brings in fact nothing more than the aspx file housing the XAP and the ClientBin folder containing the XAP files. Additionally you can use a global.asax file to run a bootstrapper or any other components needed to startup your server-side application.
MyApp.Server.Services: This project contains all my domain services. The client side libraries have a RIA-Services link set to this project
MyApp.Server.Data: This project contains my Entities, and my data-access-layer, such as database contexts or repositories encapsulating the database access.
Note: This structure is for RIA-Services applications. When using other service types you might want to have a portable library called MyApp.Interfaces for accessing services and entities.
I have a web application that contains a bunch of classes in the App_Code folder. I compile the project and publish it to the IIS server.
I want to share some of the code in the app_code folder with another application on the server and therefore I think I need to register an assembly in the GAC.
What is the best way to do this? I have read this article: http://msdn.microsoft.com/en-us/library/Aa479044, which suggests a number of options?
Put the code in a class library, and add the library as a project reference to both applications.
Side Note:
If you need to access the request or response, etc. import the Sysyem.Web library and use the HttpContext object. This will give you most, if not all the information available to the page.
You'll have to move the code into a separate project, which will output a library.
If you have any references to dlls related to the ASP .Net or web in general, you can reference them from that library.
The code might not compile in the first, but you can refactor it, it really depends on how tight is with what is in App_Code.
You can then reference that library on the Web Site (you'll have to refactor here too some things). The library, once is signed, can be added to GAC also.
The solution for me was to expose the shared functionality in a web service.
I have added a resource file in App_GlobalResources called FileList.resx.
Now I access the contents within the code by using
My.Resources.FileList.astro1 etc.
It works fine if I set the Build Action of resource file to Embedded. However in this case the resource file is not available after compile and I can't change it later.
If I set the Build Action to Content I get an error : Could not find any resources appropriate for the specified culture or the neutral culture. Make sure "WAP.FileList.resources" was correctly embedded or linked into assembly "WAP" at compile time, or that all the satellite assemblies required are loadable and fully signed.
Please advice me.
Are you using a Visual Studio Web Application? Or a Web Site?
In the latter case, you should be able to change the Resource file after deploying the site, and it should get automatically recompiled on the server. In the former case, it's a built-in that can't be changed after the site is compiled before deployment.
If that's a problem for you, there are of course alternatives to Resource files....
In any way of compiling and deploying your application all resource files will compiled in related to each resource file assemblies. In all cases, resource assemblies are ultimately created for each directory in the site, and satellite assemblies are generated beneath their respective culture-specific directories. Even when the site is JIT-compiled, the outcome is equivalent.
So, you must use Build Action of resource file to Embedded, but as possible solution for dynamic resource definition you can place you resources in a database. And even provide a Resource provider. In that case your database solution would have all the benefits that suggested by resource management aka dynamic culture definition, using resource binding to control, etc.
Here you can find some tutorials how to implement Resource-Provider Model in your application:
Extending the ASP.NET 2.0 Resource-Provider Model
Creating a Data Driven ASP.NET Localization
Resource Provider and Editor
I am migrating my web site to web application and not sure where to put app_code files? I have moved the whole app_code folder to web application but while compiling web app I get error that classes are not found.
I think once an Web Application, the App_Code folder is relatively useless...as in, it doesn't have its special meaning that it has within a WebSite project. So there's nothing stopping you still having a folder called App_Code and putting your classes (and whatever other files) in there.
It may make more sense to put the files within folders and namespace the classes with relevance logical groupings (helper classes, business rules, data access, whatever) or perhaps move the classes into a separate Windows Class Library project (DLL) which your web application references...
I just found that I must mark files inside app_code as compile and everything will work.
A couple of questions:
Is App_WebReferences for WCF schema files? Should this not be App_ServiceReferences?
Also, what is dynamic compilation in ASP.NET?
Thanks
From MSDN:
App_WebReferences folder Contains
files used to create a reference to a
Web service (in the same project or
external to the project), including
.disco and .wsdl files
There's no special folder in ASP.NET called App_ServiceReferences.
As far as dynamic compilation is concerned you may take a look at this article which explains it very good.