MVC :: Using NHibernate For Dealing With The DB Interactions?
Jan 21, 2010
Im currently starting on a project where im using NHibernate for dealing with the DB interactions, and MVC2 (RC) for the front end... and im just wondering if there are any decent tutorials on how to minimize the amount of duplicated validation that needs to be entered to validate thigns in NHibernate and try to mirror those constraints client side.. Ive looked at xVal which looks great, but i cant seem to get it to work and there dont seem to be that many articles about it. Also alot of people are mentioning that its going to become redundant at the MVC level in MVC2 due to the data annotation validation. So im really just after some more information/advice and links on the subject really...
May me my question is silly, but i wonder what's the best way to do this, what's the best impplementation use in reald world applications.
I want to log all interactions of an ASP web application. Say that a user login to the system, and do serveral things, like adding items deleteing items, and so on. So what've done is simplely cdefine a method to log information.
I have a block of XML in a database which is easy enough to pull out using ASP.NET MVC, however I would like to access and modify the XML in an way more consistent with class instances. Is there a way to get the MVC (or any other model) to generate a data access (or perhaps Entity) class set from the DB-stored XML?If the above is rather obtuse, the question could be summarised as; What method would you use to best access and modify XML stored in a database from an ASP.NET MVC application?
I got a bot and screen scrapper problem. I have successfully redirected them somewhere else, but they still show up in my stats. I run my redirection code in the pre init section of the master page. I use discountasp for my hosting provider. Is there a way to run my code before the preinit page section?
I have the following scheme: a View (comming from an action method) called EventSearch that contains a DropDownList of PowerPlants, a ListBox with GeneratingUnits, a DropDownList and two TextFields to set the timespan (you can choose a predefined timespan in the DropDownList or set your own in the TextFields). The model for this page is a DataQuery (an object to be tested against the Database to search the matching values). Clicking in a button in this View will cause a POST.
Then, in another View, called EventList, with the Model being List, I render the above Action, so the user can trigger a search in the same page he visualizes the results.Usually, the number of itens in the list to be displayed in EventList is massive, so I wanted to give paging a try:
[Code]....
when I try sorting or even change page, the results don't get displayed. Here is my ActionMethods for EventList:
[Code]....
I don't know if it doesn't work by the way I created the pages (using this DataQuery object) and if there is another way out of this problem.
.net has all these build in GUI elements. The purpose is that we build a .net web application and for the coding itselve I'm very familiar with jQuery in PHP but I noticed that in .Net everybody starts using it too.Is jQuery the best way these days to deal with this in .NET (c#)? or are there others you might recommend?
I'm using the standard asp:Login control, and we have a user who recently changed her password to include an angular bracket. When she tries to login, she gets an error message, and I get the standard 'dangerous request' exception.
I know I can set ValidateRequest="false" on the page to negate this, but I was hoping someone knew of a better way.
In my new ASP.NET EF4 project, I find myself having to do a lot of maneuvering around null entities. For example, I may have a Project Entity with a related User Entity exposed through an Assignee property. Suppose I need to send an email to someone indicating who the Assignee is, I need to say:string x = "The Assignee is: " + TheProject.Assignee.Name;but I'll get an exception if there is no Assignee as the property is null (I want nulls by design) and I can't fetch the .Name property on that null.
We are using cutesoft AJAX uploader. The uplodaer is implemented using HTTP Modules. Everything works well. The problem is that if the user clicks the upload button after being idle for long (means after session time out) the control throws and error.
I just want to know the work around to bypass this issue.
Note:- We are just using one web.config and two master pages (one for login and error pages and one for all other pages which are accessed after authentication). We have written the code to check the session timeout in oninit of the master page which is used by all the pages except (Login and Error pages).
I am planning to convert desktop application which has to deal with lots of client resources like printer, Id scanner(driver license,passport & business card etc.), webcam etc.Now accessing client resources like files, scanners and webcam everything has to be done through client side scripting which is really pain. Due to nature of this product, I have to create image on client PC and extract information from it. (This is also pain in Vista and Windows 7 due to security permissions and all that stuff).
My ideal design would be making managed dll which takes care of dealing with images, printers, webcam (I have to apply pan, tilt and zoom), id-scanners. This is kind of component. And GUI would be web based Asp.net which simply calls the functions of managed dll. If the end-user is opening application on new computer, then it will ask just like flash or silverlight that you have to install component locally for the first time.Points which I worry: 1. If it logically correct or sounds stupid? 2. How to install managed dll at end-user's PC (C:/program files) and use it from asp.net code behind page.
My application is intranet application.so avoid stupid assumptions about privacy and ohhooo you want to access files from my PC and all those stuff. (end-user would never mind in giving credit card to restaurnt waiter who could do anything with it behind counter but allowing web application to access file which is created by application is privacy issue)
I'm building an asp.net mvc app, I want to build up an hierarchical structure, is IHierarchicalEnumerable and IHierarchyData the best way to implement a hierarchical structure?
I used SQLMetal to generate a DBML file, which worked fine. The problem is that since this DBML file is so big (185,000 lines at 840Kb) it takes literally hours to load in VS2008. What is the recommended way to resolve this? I tried using a third party tool call SqlMetalInclude to break the DBML up into multiple data contexts, but that tool generates only designer.cs files, not dbml files.
Looking at the blogs on using the Register.ClientScript for a javascript file, it wasn't obvious where the best place is to put it. Do you put it in the HTML file , do you put it in codebehind in the Page_Load subroutine
I am not really sure if this post should go in the Security section or the Active Directory / LDAP section....with that being said I am looking for advice on how to best accomplish my goal(s), I am working with FORMS authentication, using active directory (across 2 domains). I have got authenticating working correctly based upon the article at: [URL] now - my questions:
1. What is the best way to deal with roles? What I would like to do is restrict access to my application so that only the users that are authorized to use the application can login - not everyone in the AD. My gut feeling tells me I would use an AD group for this. Furthermore, a subset of these users in this group will be allowed to access the data maintenance forms
2. Ideally, in a perfect world, I would like to write this authentication piece as a separate project - this way it could be used for multiple projects - the only thing different would be the AD groups it would be checking. Is there a way that I could set which AD groups or roles in each projects web.config?
Am I approaching this the correct way? What is typically done?
I am executing a stored procedure that takes about 75 seconds to execute. My page times out while it tries to wait for the resultset. I tried adding Connect Timeout=200; pooling='true'; Max Pool Size=200" but it still times out.
I guess I do not necessarily need to wait for the result set. Is it possible to just send the SQL command with something like (making it up:) command.ExecuteOnServerAndDoNotWait?
It seems liken no matter what logic I put in my code, this runs every single time, and because of this, unless I am viewing this particular content page, I get an error.
I want to use NHibernate with Asp.net 3.5 but i don't know how to use it.I search on Google but couldn't find the complete explanation about why to use NHibernate,Advantages of using it and integration with Asp.net projects.
I am about to give up on this pos...unless somebody here simply gives me the right code to fix my problem. I'm tired of running in circles, and scouring the internet with no progress at all.
Problem: not updating collections with FK's.
Example:
Forum forum = new Forum("Sample"); category.AddForum(forum); categoryRepository.Update(category); <- fails with transient object error for forum with no CategoryId. Mapped right using References<Category> and HasMany<Forum>. Conventions are as follows.
Now, I've tried every possible setting for inverse, all the different cascades, on both sides. Nothing works. It just flat fails, telling me it can't insert NULL for Forum.CategoryId (field, not entity prop).
I've been reading up on DDD a little bit, and I am confused how this would fit in when using an ORM like NHibernate. Right now I have a .NET MVC application with fairly "fat" controllers, and I'm trying to figure out how best to fix that. Moving this business logic into the model layer would be the best way to do this, but I am unsure how one would do that.
My application is set up so that NHibernate's session is managed by an HttpModule (gets session / transaction out of my way), which is used by repositories that return the entity objects (Think S#arp arch... turns out a really duplicated a lot of their functionality in this). These repositories are used by DataServices, which right now are just wrappers around the Repositories (one-to-one mapping between them, e.g. UserDataService takes a UserRepository, or actually a Repository). These DataServices right now only ensure that data annotations decorating the entity classes are checked when saving / updating.
In this way, my entities are really just data objects, but do not contain any real logic. While I could put some things in the entity classes (e.g. an "Approve" method), when that action needs to do something like sending an e-mail, or touching other non-related objects, or, for instance, checking to see if there are any users that have the same e-mail before approving, etc., then the entity would need access to other repositories, etc. Injecting these with an IoC wouldn't work with NHibernate, so you'd have to use a factory pattern I'm assuming to get these. I don't see how you would mock those in tests though......................
I am working on NHibernate with oracle in ASP.Net. Now i am trying TDD(Test Driven Development). Can you tell me the best way to develop the TDD for NHibernate with oracle?I am using MbUnit with microdesk but it is not better approach for oracle but SQL server.
I have had no issues retrieving objects, but I've just got to a point with nested objects that I can't figure out.
I am using lazy=true and when accessing a lazy-load collection I get the message:
Initializing[type#3]-failed to lazily initialize a collection of role: [type], no session or session was closed
Even if I call SessionFactory.OpenSession() immediately prior to the object being accessed, it makes no difference. I have also tried accessing the collection in a using ISession block to no luck.
Edit to add - I do have current_session_context_class = web set in web.config, and I am using CurrentSessionContext.Bind on BeginRequest.
Not an MVC app
I read this - don't know how accurate it is, and it is Hibernate:
I am a newcomer to NHibernate and know a bit about WCF. I would like to know how they best play together.Should I make the session per request? Or is there some different tactic that I should be using? What about the lifetime?Where do I set up my sessionfactory? In the global.asax?Can I best create a custom httpmodule or a new servicehostfactory to plug all the goods in?