Dynamic Data Be Made To Work With Custom Business Objects Rather Than Data Objects?
Feb 24, 2010
I'm working on a project in which we have a database, data layer (entity framework), business layer and web/UI layer.I want to use ASP.NET Dynamic Data for the web layer, but don't want it to access the data layer or database, as I want it to be purely running off business logic, and not directly accessing the data.However, it appears that Dynamic Data only allows Linq-to-SQL or entity framework data sources to be used.Has anyone used it with business-layer objects instead?
UI markup to create the table shown below, which I have mocked up quickly to visualise what I need to do. The data is in the form of custom objects; a SelectedSession object which has a List (Of Students) sorted by AcademicYear, TeachingSet, then name.
So the question is how do I create that table from my custom object?
I created a class library: PRTreatmentReviews. I created a reference for the class library on the website. I checked the property pages and the reference to the class is there. I put objectdatasource on a page and tried to pick up the PRTreatmentReviews class but it's not there? The Class
have some Objects, lets say Employee and Role defined as below and I have defined relationships in my database that gives me a list of objects say employees and thanks to my framework each employee object also has a Role object linked via the RoleIDID, UserName, Password, Email, RoleIDRoleID, RoleNameSo in code I can do something like this
I know how to bind a simple objects to a dropdown list. However I am having problems binding my objects which contains sub objects to the control.i.e. with simple object i just do ddl.DataValueField = "myproperty" with my objects they contains sub objects which i want to bind. I have tried ddl.DataValueField = "sub-object.myproperty" which doesnt work.
I am using ASP.net to retrieve data from a Lotus notes DB using OLEDB connection. I use a ADOrecordset to read the values. When I open the ADo connection, I would like to store each record being read in a custom object and thereby create a collection of custom objects as ADO connection times out when kept open for long.
I then need to iterate throught the collection of custom objects to retrieve the values.
I have been reading alot about this and for some reason I am just not able to grasp the concept. Hopefully someone here can enlighten me.As an example situation I have a collection of strongly typed User objects that represent a database table, and some properties that represent its columns: UserID(PK), Username,FirstName,LastName, etc..Here are some of my requirements/goals:1. Users/Objects needs to be bound to the gridview programatically.2. I do not want to update the database right away, I only want the underlying collection to be updated. I would like to call the database update method myself when I am ready. 3. I do not want the primary key stored on the client side.Summary:So I bind a List<Users> to a gridview with the appropriate bound fields set up, I exlude bound fields such as primary key because I don't want it being changed/hacked by the client side. When I edit and update a row it is saved back to the collection of objects. I will iterate through the objects manually at a later time and commit them to database.
Questions:1. Can I cast a gridview row directly back to my object, in the RowUpdating or RowUpdated events? I am assuming I can't... So....2. How can I reference back my original collection if the gridview does not contain a primary key?3. Where do I store my collection, should it be in Session or should I recreate it on each postback?Sorry if any of this is confusing, let me know if you need clarification.
designing Business Objects. What a business object class can contain ?
I have looked many sample codes and articles. Some only use properties in them. Some use private members, properties and constructoers. As more I am reading becoming more confuse.
Some sample codes that I checked were making functions in BO classes as well. what a BO class should contain and what is its purpose. Should there be functions in them as well ? If yes how they can be differentiated from Business Logic class functions.
I am new to OOP. Kindly guide me why making business objects is good ? how and what benefit they bring in development. As I am new to OOP if please you decidable with example in simple way will be great help to me.
I think using this kind of creational pattern makes the application not scalable as the same instance will be shared among all the concurrent users.Is it correct?
Is there any better way to abstract the creation and maintaining instance of business objects
Class code:namespace Microsoft.IT.RelationshipManagement.Internal.CISF.Infrastructure { using System; using System.Linq; using System.Text;[code].....
I am playing with Asp.net MVC 3, I was wondering how do you acheive a collection rendering in the view when the collection is made of 'real world' objects. Let's say I have a collection of client, each client may have an address and an adress may have a country.
When I write the following code it crashs if one of the client has a null address (or a null country). Object reference not set to an instance of an object.
I'm currently writing an N-Tier architected ASP.NET system with a relatively normalised SQL database backend, but I'm struggling to get my head around how lookup values should be represented in my business objects (I don't get the priviledge of using EF or ORMs). My table (as an example) could be structured like this:
CoreDataTable:
ID | Name | Favourite_Colour ---|-------|----------------- 01 | Peter | 01 02 | John | 03 03 | Mary | 05
ColoursLookup:
ID | Colour | is_active ---|--------|---------- 01 | Red | 1 02 | Green | 1 03 | Blue | 1 04 | Pink | 1 05 | Black | 1
Now initially, I had created my business object to look like this:
[code]....
I'm 100% convinced that I'm (a) overthinking this, and (b) making it more complicated than it needs to be. So, is there a preferred way of doing this? Or is there an option that I've overlooked?
As I began writing web applications with asp.net I started with small projects that used a Linq-To-SQL mapper for database access to a MSSQL Server. After gaining some expierence I switched into a classic 3 tier with Graphic Layer, Business Layer, Data Layer. The only function of the Data Layer was to provide methods insert/update/delete without any logic and logic the form of selection methods.
Over the time I realized that it would be better not to provide the database classes up to the GUI (took some time unfortunately). I switched into using Business classes in the BL that are used for all operations performed by the BL and display by the GUI in the form of getting List from the BL. A great advantage is that I can provide additional properties that are not represented by the database itself. However, I did that mapping inside the BL myself with methods that mapped the corresponding BL class to the database class.
I guess thats where O/R mapper come in handy? Until now I haven't realized their purpose, but I think I just found it. I've recently tried out using the new Entity Framework with .net framework 4, but I'm only using it like the Linq-To-SQL DataContext.
Is there a way to achieve the mapping automatically? If yes, is that something the new Entity Framework provides or do I need to look for a O/R Mapper like NHibernate?
I have two business objects mapped via LINQ to tables. One of the objects contains an instance of the other object and share a key as an identifier.I want to retrieve Class A and within class A all of Class B's values as well. What I am doing is this:
[Code]....
[Code]....
This seems a little clunky, as in slow. Is there a better way to get the Class B (User) information without making a query every time?
firstly a static class only ever exists once and is not an instance. Any static members (ie static int NoOfPeople;) is stored in one place and is shared between all sessions (like the old global variables). Now static methods is where i'm not 100% sure. If I have a static method that doesn't use any other static members could this cause inconstant results, example (this is a fairly pointless method but just a quick example of the top of my head)
[Code]....
So in this example if two sessions (or threads) were to call this at the same time - would they both get back the expected results, because the method only uses private data (a, b and totalToReturn).Im sure this sounds a little simple but I will be using static methods to build user objects and various other objects that there will have to be a 100% garentee that the objects will not get mixed up between sessions and the wrong things return to the user.
What I'm trying to do is rather basic, but I might have my facts mixed up. I have a details page that has a custom class as it's Model. The custom class uses 2 custom objects with yet another custom object a property of one of the 2. The details page outputs a fair amount of information, but allows the user to post a comment. When the user clicks the post button, the page gets posted to a Details action that looks something like this:
[AcceptVerbs(HttpVerbs.Post)] public ActionResult Details(VideoDetailModel vidAndComment) { ....} [Code]....
The only fields on the form that is posted are CommentText and VideoId. Here is what the VideoDetailModel looks like.
public class VideoDetailModel { public VideoDetailModel() { [Code].... I suppose if I added more form fields for the properties I need, they would get posted, but I only need 1 form entry field for the CommentText. If I could get the same Model objects value that were sent to the page to post with the page, it looks like the solution is rather simple. I think using the RenderPartial in the middle of a form is problematic somehow to how the form gets written in html. I can't really put my finger on why things went bonkers, but if I do my RenderPartials before my form and then begin my form with the text entry field and the hidden VideoId, the default ModelBinder works just fine. I was beginning the form, writing the hidden VideoId, rendering several partial views, create my CommentText field, and then closed the form out. The CommentText field would get bound just fine. The hidden VideoId would not. Maybe I missed a rule somewhere about using RenderPartial.
For completeness, the partial view I was rendering took a Comment object and just wrote out it's CommentText data. Several of these objects would exist for a single Video object. All of this data was in a custom type and passed into the View (the main view) as it's Model. This partial view did not have a form and did not have any data entry fields.
I am currently designing a master detail gridview. I have two separate objects defined for them. The parent gridview is binded to the first object and in row databind event I bind the second gridview with the detail object using parent ID.A lot of examples I see on the internet initialize the details object inside the parent class,
public class Author { private string name;[code]...
What is the purpose of initializing child class inside the parent class? Currently, I just bind the parent to a separate object & child to a separate object manually in my presentation layer & never initialize child objects inside parent class. Is that the wrong way for OOP ? What is the recommended way to achieve this task for my gridview?
I have an existing web application that uses EF and POCO objects. I want to improve the client experience by exposing some of my objects through WCF(JSON). I have this working fine but where I am unsure is how to handle derived objects(not sure if that is the correct term) or IEnumerable anonymous objects if you will.
Let's say I have 3 tables structured like so:
Templates
ID Template
Groups
ID Group
Instances
ID TemplateID GroupID
This is obviously a one-to-many type relationship. I have my navigation properties setup correctly and getting strongly typed object properties works great. However, how do I send serialized anonymous type object(s) over the wire. Like an object that sends all instances that are equal to groupid=1 and include the names of the template and the object.Am I missing something or do I have to create another class object for WCF that would look like this:
I guess I could alter my tables to account for this but that seems wrong too. I know that IEnumerable objects can't be serialized and I know that throw away objects are probably not the way to go either. I want to do this the right way but I am not sure how to go about it.
Lets say I am doing a shoping cart. I authenticate the user with a session variable.For example:
If(Request.IsAuthenticated) // Here I want to add to the shoping cart. // Can I do the following Session["Cart"] = "Washing Machine"; Now will this Session["Cart"] value which is washing machine here be unique to diff customers?
How to use $.ajax(..) JSON to invoke asmx webmethods that have 'by ref arguments' for custom classes/objects? Is it possible?
My c# code - public class MyCustomClass{ public int MyProperty; MyCustomClass(){}} [WebMethod] [ScriptMethod(ResponseFormat = ResponseFormat.Json)] public Method1(ref MyCustomClass MyCustomObj)
[code]...
This all works fine if the webmethod's argument is NOT by ref.With the above mentioned signature of the webmethod, i.e. with a by ref argument, I get a server error (in server response seen using firebub ) -
What is the proper way to check for null or empty strings on dynamic objects? This is the only solution I've found so far:
if (admin.PasswordHash.GetType() == typeof(DBNull) || admin.PasswordHash == string.Empty)
If the field is null, the object returned is DBNull.Value, but if the field is empty string, it's return as a System.String object. This makes it impossible to do regular "admin.PasswordHash == DBNull.Value" check, as that will fail whenever the field has been set to empty string. Is my example the right (and only) way to go?
I'm kinda new to web services and want to make sure I am doing things correctly.
I have a custom object which has sub objects as well. (let's say Company object, sub object is collection of Employee objects)
I want the web service to return a collection of Company objects. Do I make the service return a Dataset and custom generate a dataset with datatables representing the different objects?
What is the best way to do this? I tried to just serialize it, but that doesn't seem to work either.
I tried this dll
[URL]
But the output XML doesn't seem to include the sub object.