Search Results

Search found 60981 results on 2440 pages for 'net micro framework'.

Page 30/2440 | < Previous Page | 26 27 28 29 30 31 32 33 34 35 36 37  | Next Page >

  • Using ExtJS with ASP.NET, Webforms or MVC?

    - by TigrouMeow
    Hello, For a scenario using 0 ASP.NET controls at all but rather an 100% extJS interface, what would be the advantages of using ASP.NET MVC or ASP.NET WebForms? And the disadvantages? Is there a OBVIOUS way to do it properly? I would love to have feedback's on your experiences. Thank you!

    Read the article

  • Recommend ASP.NET 3.5 SP1 Hosting Providers

    - by tyndall
    Would like to see a list of affordable ASP.NET 3.5 SP1 Hosting providers build up. Along with your review of the service, lacking features, special features, etc... Discount ASP.NET MochaHost At last update MochaHost does not offer SP1  they now offer SP1 CrystalTech Gearhost HostMySite please add more update: Anybody see a better deal for shared hosting ASP.NET than ASP.NETpro From GearHost? I would like to see more SQL storage, but I need keep the multiple domain capabilities. For about the same price.

    Read the article

  • Linq To Sql or classic ADO.net?

    - by Spyros
    I am asking my self many times before start writting a new app or data access library , should I use LinqToSql or classic ADO.net , I have used both and the development time I spend on building an app with Linq To sql is like the 1/3 compared to ADO.net. The only think I like using Linq to sql is that I dont have to design the domain objects Linq does that for me and saves me from spend my time on boring things :P But is Linq to sql suitable for large scale projects , is there an overhead that we can avoid when using ADO.net ?

    Read the article

  • asp.net application install folder

    - by Maximilian Csuk
    Disclaimer: this is not a question about how to install asp.net or an application using it! Hi! I am pretty sure many of you have once installed some kind of forum, blog or CMS (mostly PHP powered applications). All of these contain a folder mostly named "install" where (after you copied the files to the webserver) point your browser to to complete the installation by entering for example database information (servername, username, password, ...). After that, most applications suggest that you delete this folder or at least change the permissions so nobody from the outside can access it anymore. Now to my question: how would you go about that in the asp.net world? I don't really like the "install folder"-approach and I thought there might be a different mechanism for .net/IIS. The person installing my application should be able to enter his database information as painless as possible, which should ultimatively be stored in the web.config file. If it makes a difference, I am using asp.net MVC. Thanks for your help!

    Read the article

  • Membership with Mysql, EF 1 and ASP.NET 3.5

    - by sanfra1983
    Hi, I created a web application with asp.net 3.5 and ado.net entity framework WebForms 1, but have not yet succeeded in creating a memebrship and roles. When I go on ASP.NET Configuration and click the Security Tab I get the following error: Keyword not supported. Parameter name: metadata Someone has already created an application with these same features to help me understand where is the problem? P.S.: I'm going crazy Thanks to all

    Read the article

  • In Entity framework, we can use Model first, DB first, Code first but how can we create table programmatically

    - by AukI
    In entity framework we can use 3 approaches model first , code first , database first but each one of them needs manual hand touch(means creating database or create model or write the POCO class codes or entity class codes) before proceeding to the next step ( using EF in context ). What if I want to create database and tables and table relationships programatically and still want to have to features of EntityFramework 4.3. To be more specific , from this example http://support.microsoft.com/kb/307283 we can create database , tables and everything using SQL command but we can't have the advantages of entity framework. So if we want to have that what should we do?

    Read the article

  • Entity Framework and differences between Contains between SQL and objects using ToLower

    - by John Ptacek
    I have run into an "issue" I am not quite sure I understand with Entity Framework. I am using Entity Framework 4 and have tried to utilize a TDD approach. As a result, I recently implemented a search feature using a Repository pattern. For my test project, I am implementing my repository interface and have a set of "fake" object data I am using for test purposes. I ran into an issue trying to get the Contains clause to work for case invariant search. My code snippet for both my test and the repository class used against the database is as follows: if (!string.IsNullOrEmpty(Description)) { items = items.Where(r => r.Description.ToLower().Contains(Description.ToLower())); } However, when I ran my test cases the results where not populated if my case did not match the underlying data. I tried looking into what I thought was an issue for a while. To clear my mind, I went for a run and wondered if the same code with EF would work against a SQL back end database, since SQL will explicitly support the like command and it executed as I expected, using the same logic. I understand why EF against the database back end supports the Contains clause. However, I was surprised that my unit tests did not. Any ideas why other than the SQL server support of the like clause when I use objects I populate in a collection instead of against the database server? Thanks! John

    Read the article

  • Parallelism in .NET – Part 17, Think Continuations, not Callbacks

    - by Reed
    In traditional asynchronous programming, we’d often use a callback to handle notification of a background task’s completion.  The Task class in the Task Parallel Library introduces a cleaner alternative to the traditional callback: continuation tasks. Asynchronous programming methods typically required callback functions.  For example, MSDN’s Asynchronous Delegates Programming Sample shows a class that factorizes a number.  The original method in the example has the following signature: public static bool Factorize(int number, ref int primefactor1, ref int primefactor2) { //... .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } However, calling this is quite “tricky”, even if we modernize the sample to use lambda expressions via C# 3.0.  Normally, we could call this method like so: int primeFactor1 = 0; int primeFactor2 = 0; bool answer = Factorize(10298312, ref primeFactor1, ref primeFactor2); Console.WriteLine("{0}/{1} [Succeeded {2}]", primeFactor1, primeFactor2, answer); If we want to make this operation run in the background, and report to the console via a callback, things get tricker.  First, we need a delegate definition: public delegate bool AsyncFactorCaller( int number, ref int primefactor1, ref int primefactor2); Then we need to use BeginInvoke to run this method asynchronously: int primeFactor1 = 0; int primeFactor2 = 0; AsyncFactorCaller caller = new AsyncFactorCaller(Factorize); caller.BeginInvoke(10298312, ref primeFactor1, ref primeFactor2, result => { int factor1 = 0; int factor2 = 0; bool answer = caller.EndInvoke(ref factor1, ref factor2, result); Console.WriteLine("{0}/{1} [Succeeded {2}]", factor1, factor2, answer); }, null); This works, but is quite difficult to understand from a conceptual standpoint.  To combat this, the framework added the Event-based Asynchronous Pattern, but it isn’t much easier to understand or author. Using .NET 4’s new Task<T> class and a continuation, we can dramatically simplify the implementation of the above code, as well as make it much more understandable.  We do this via the Task.ContinueWith method.  This method will schedule a new Task upon completion of the original task, and provide the original Task (including its Result if it’s a Task<T>) as an argument.  Using Task, we can eliminate the delegate, and rewrite this code like so: var background = Task.Factory.StartNew( () => { int primeFactor1 = 0; int primeFactor2 = 0; bool result = Factorize(10298312, ref primeFactor1, ref primeFactor2); return new { Result = result, Factor1 = primeFactor1, Factor2 = primeFactor2 }; }); background.ContinueWith(task => Console.WriteLine("{0}/{1} [Succeeded {2}]", task.Result.Factor1, task.Result.Factor2, task.Result.Result)); This is much simpler to understand, in my opinion.  Here, we’re explicitly asking to start a new task, then continue the task with a resulting task.  In our case, our method used ref parameters (this was from the MSDN Sample), so there is a little bit of extra boiler plate involved, but the code is at least easy to understand. That being said, this isn’t dramatically shorter when compared with our C# 3 port of the MSDN code above.  However, if we were to extend our requirements a bit, we can start to see more advantages to the Task based approach.  For example, supposed we need to report the results in a user interface control instead of reporting it to the Console.  This would be a common operation, but now, we have to think about marshaling our calls back to the user interface.  This is probably going to require calling Control.Invoke or Dispatcher.Invoke within our callback, forcing us to specify a delegate within the delegate.  The maintainability and ease of understanding drops.  However, just as a standard Task can be created with a TaskScheduler that uses the UI synchronization context, so too can we continue a task with a specific context.  There are Task.ContinueWith method overloads which allow you to provide a TaskScheduler.  This means you can schedule the continuation to run on the UI thread, by simply doing: Task.Factory.StartNew( () => { int primeFactor1 = 0; int primeFactor2 = 0; bool result = Factorize(10298312, ref primeFactor1, ref primeFactor2); return new { Result = result, Factor1 = primeFactor1, Factor2 = primeFactor2 }; }).ContinueWith(task => textBox1.Text = string.Format("{0}/{1} [Succeeded {2}]", task.Result.Factor1, task.Result.Factor2, task.Result.Result), TaskScheduler.FromCurrentSynchronizationContext()); This is far more understandable than the alternative.  By using Task.ContinueWith in conjunction with TaskScheduler.FromCurrentSynchronizationContext(), we get a simple way to push any work onto a background thread, and update the user interface on the proper UI thread.  This technique works with Windows Presentation Foundation as well as Windows Forms, with no change in methodology.

    Read the article

  • Using ASP.NET C# and Javascript

    - by ctck
    I'm looking for the most efficient / standardized way of passing data between client javascript code and C# code behind in an ASP.NET application. Currently ive been using the following methods to achieve this but they all feel a bit like a fudge. The way i pass data from javascript to the C# code behind is by setting hidden asp variables and triggering a postback <asp:HiddenField ID="RandomList" runat="server" /> function SetDataField(data) { document.getElementById('<%=RandomList.ClientID%>').value = data; } Then in C# code i collect the list protected void GetData(object sender, EventArgs e) { var _list = RandomList.value; } Going back the other way i often use either scriptmanager to register a function and pass it data during Page_Load: ScriptManager.RegisterStartupScript(this.GetType(), "Set","get("Test();",true); or i add attributes to controls before a post back or during Initialization / pre rendering stages: Btn.Attributes.Add("onclick", "DisplayMessage("Hello");"); These methods have served me well and do the job. However they just dont feel complete. Is there a more standardized way of passing data between client side markup / javascript and backend code. Ive seen some posts like this one: Injecting JavaScrip : StackOverflow that describe HtmlElement class. Is this something is should look into? Thanks everyone for your time.

    Read the article

  • ASP.NET application using old connection string.

    - by Doug S.
    I am trying to publish a website using ASP.NET MVC3 EF and CODEFIRST with a SQL Server 2008 backend. On my local machine I was using a sql express db for development, but now that I am pushing live, I want to use my hosted production database. The problem is that when I try to run the application, it is still using my local db connection string. I have completely removed the old connection string from my web.config file and am using the <clear /> tag before creating the new connection string. I have also cleaned the solution and rebuilt, but somehow it is still connecting to the old db. What am I missing? This is the new connection string: <connectionStrings> <clear /> <add name="CellularAutomataDBContext" connectionString=" Server=XXX; Database=CellularAutomata; User ID=XXX; Password=XXX; Trusted_Connection=False" providerName="System.Data.SqlClient" /> </connectionStrings>

    Read the article

  • [VB.Net] TreeView update bug in the .net framework

    - by CFP
    Consider the following code: Dim Working As Boolean = False Private Sub TreeView1_AfterCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterCheck If Working Then Exit Sub Working = True e.Node.Checked = Not e.Node.Checked Working = False End Sub Private Sub TreeView1_MouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TreeView1.MouseClick If e.Button = Windows.Forms.MouseButtons.Right Then MsgBox("Checked = " & TreeView1.SelectedNode.Checked) End Sub Where TreeView1 is a TreeView added to the form, with CheckBoxes set to true and one node added. The code basically cancel any node checking occuring on the form. Single-clicking the top node to check it works well : your click is immediately canceled. Yet if you double-click the checkbox, it will display a tick. But verifying the check state through a right click will yield a Checked = False dialog. How come? Is it a bug (I'm using the latest .Net Framework 4.0, and he same occurs in 2.0), or am I doing something wrong here? Is there a work around? Thanks! EDIT: Additionally, the MouseDoubleClick event is not raised before you click once again.

    Read the article

  • ASP.NET ViewState Tips and Tricks #2

    - by João Angelo
    If you need to store complex types in ViewState DO implement IStateManager to control view state persistence and reduce its size. By default a serializable object will be fully stored in view state using BinaryFormatter. A quick comparison for a complex type with two integers and one string property produces the following results measured using ASP.NET tracing: BinaryFormatter: 328 bytes in view state IStateManager: 28 bytes in view state BinaryFormatter sample code: // DO NOT [Serializable] public class Info { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } public class ExampleControl : WebControl { protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!this.Page.IsPostBack) { this.User = new Info { Id = 1, Name = "John Doe", Age = 27 }; } } public Info User { get { object o = this.ViewState["Example_User"]; if (o == null) return null; return (Info)o; } set { this.ViewState["Example_User"] = value; } } } IStateManager sample code: // DO public class Info : IStateManager { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } private bool isTrackingViewState; bool IStateManager.IsTrackingViewState { get { return this.isTrackingViewState; } } void IStateManager.LoadViewState(object state) { var triplet = (Triplet)state; this.Id = (int)triplet.First; this.Name = (string)triplet.Second; this.Age = (int)triplet.Third; } object IStateManager.SaveViewState() { return new Triplet(this.Id, this.Name, this.Age); } void IStateManager.TrackViewState() { this.isTrackingViewState = true; } } public class ExampleControl : WebControl { protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (!this.Page.IsPostBack) { this.User = new Info { Id = 1, Name = "John Doe", Age = 27 }; } } public Info User { get; set; } protected override object SaveViewState() { return new Pair( ((IStateManager)this.User).SaveViewState(), base.SaveViewState()); } protected override void LoadViewState(object savedState) { if (savedState != null) { var pair = (Pair)savedState; this.User = new Info(); ((IStateManager)this.User).LoadViewState(pair.First); base.LoadViewState(pair.Second); } } }

    Read the article

  • ASP.NET 2.0 files work in one folder, but NOT in another

    - by Steve
    I am about to leap of a building. I have created an app for a client and all the files are in a folder on their D drive. Now it is time to go production, so I copied all my files and folders to their excisting classic asp folder on the same drive. BUT NOTHING WORKS. The only difference I can see is that DEV does not require HTTPS like the production site. I also made sure all the permissions are the same on both folder. I made sure that the GAC has read rights using the aspnet_regiis tool. I am at the end of my debug knowlegde, could someone please help me out. Here are the error messages I get from the application event log. Failed to initialize the AppDomain:/LM/W3SVC/3/Root Exception: System.Configuration.ConfigurationErrorsException Message: Exception of type 'System.Configuration.ConfigurationErrorsException' was thrown. StackTrace: at System.Web.Configuration.ErrorRuntimeConfig.ErrorConfigRecord.System.Configuration.Internal.IInternalConfigRecord.GetLkgSection(String configKey) at System.Web.Configuration.RuntimeConfigLKG.GetSectionObject(String sectionName) at System.Web.Configuration.RuntimeConfig.GetSection(String sectionName, Type type, ResultsIndex index) at System.Web.Configuration.RuntimeConfig.get_HostingEnvironment() at System.Web.Hosting.HostingEnvironment.StartMonitoringForIdleTimeout() at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironment(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters) at System.Web.Hosting.ApplicationManager.CreateAppDomainWithHostingEnvironmentAndReportErrors(String appId, IApplicationHost appHost, HostingEnvironmentParameters hostingParameters) For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. ------------------------ Failed to execute the request because the ASP.NET process identity does not have read permissions to the global assembly cache. Error: 0x80131902 For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. ------------------------- aspnet_wp.exe (PID: 4568) stopped unexpectedly. For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp. Here is the web error message: Server Application Unavailable The web application you are attempting to access on this web server is currently unavailable. Please hit the "Refresh" button in your web browser to retry your request. Administrator Note: An error message detailing the cause of this specific request failure can be found in the application event log of the web server. Please review this log entry to discover what caused this error to occur. Thank you for your help, Steve

    Read the article

  • Employee Info Starter Kit - Visual Studio 2010 and .NET 4.0 Version (4.0.0) Available

    - by Mohammad Ashraful Alam
    Employee Info Starter Kit is a ASP.NET based web application, which includes very simple user requirements, where we can create, read, update and delete (crud) the employee info of a company. Based on just a database table, it explores and solves most of the major problems in web development architectural space.  This open source starter kit extensively uses major features available in latest Visual Studio, ASP.NET and Sql Server to make robust, scalable, secured and maintanable web applications quickly and easily. Since it's first release, this starter kit achieved a huge popularity in web developer community and includes 1,40,000+ download from project web site. Visual Studio 2010 and .NET 4.0 came up with lots of exciting features to make software developers life easier.  A new version (v4.0.0) of Employee Info Starter Kit is now available in both MSDN Code Gallery and CodePlex. Chckout the latest version of this starter kit to enjoy cool features available in Visual Studio 2010 and .NET 4.0. [ Release Notes ] Architectural Overview Simple 2 layer architecture (user interface and data access layer) with 1 optional cache layer ASP.NET Web Form based user interface Custom Entity Data Container implemented (with primitive C# types for data fields) Active Record Design Pattern based Data Access Layer, implemented in C# and Entity Framework 4.0 Sql Server Stored Procedure to perform actual CRUD operation Standard infrastructure (architecture, helper utility) for automated integration (bottom up manner) and unit testing Technology UtilizedProgramming Languages/Scripts Browser side: JavaScript Web server side: C# 4.0 Database server side: T-SQL .NET Framework Components .NET 4.0 Entity Framework .NET 4.0 Optional/Named Parameters .NET 4.0 Tuple .NET 3.0+ Extension Method .NET 3.0+ Lambda Expressions .NET 3.0+ Aanonymous Type .NET 3.0+ Query Expressions .NET 3.0+ Automatically Implemented Properties .NET 3.0+ LINQ .NET 2.0 + Partial Classes .NET 2.0 + Generic Type .NET 2.0 + Nullable Type   ASP.NET 3.5+ List View (TBD) ASP.NET 3.5+ Data Pager (TBD) ASP.NET 2.0+ Grid View ASP.NET 2.0+ Form View ASP.NET 2.0+ Skin ASP.NET 2.0+ Theme ASP.NET 2.0+ Master Page ASP.NET 2.0+ Object Data Source ASP.NET 1.0+ Role Based Security Visual Studio Features Visual Studio 2010 CodedUI Test Visual Studio 2010 Layer Diagram Visual Studio 2010 Sequence Diagram Visual Studio 2010 Directed Graph Visual Studio 2005+ Database Unit Test Visual Studio 2005+ Unit Test Visual Studio 2005+ Web Test Visual Studio 2005+ Load Test Sql Server Features Sql Server 2005 Stored Procedure Sql Server 2005 Xml type Sql Server 2005 Paging support

    Read the article

  • AngularJS on top of ASP.NET: Moving the MVC framework out to the browser

    - by Varun Chatterji
    Heavily drawing inspiration from Ruby on Rails, MVC4’s convention over configuration model of development soon became the Holy Grail of .NET web development. The MVC model brought with it the goodness of proper separation of concerns between business logic, data, and the presentation logic. However, the MVC paradigm, was still one in which server side .NET code could be mixed with presentation code. The Razor templating engine, though cleaner than its predecessors, still encouraged and allowed you to mix .NET server side code with presentation logic. Thus, for example, if the developer required a certain <div> tag to be shown if a particular variable ShowDiv was true in the View’s model, the code could look like the following: Fig 1: To show a div or not. Server side .NET code is used in the View Mixing .NET code with HTML in views can soon get very messy. Wouldn’t it be nice if the presentation layer (HTML) could be pure HTML? Also, in the ASP.NET MVC model, some of the business logic invariably resides in the controller. It is tempting to use an anti­pattern like the one shown above to control whether a div should be shown or not. However, best practice would indicate that the Controller should not be aware of the div. The ShowDiv variable in the model should not exist. A controller should ideally, only be used to do the plumbing of getting the data populated in the model and nothing else. The view (ideally pure HTML) should render the presentation layer based on the model. In this article we will see how Angular JS, a new JavaScript framework by Google can be used effectively to build web applications where: 1. Views are pure HTML 2. Controllers (in the server sense) are pure REST based API calls 3. The presentation layer is loaded as needed from partial HTML only files. What is MVVM? MVVM short for Model View View Model is a new paradigm in web development. In this paradigm, the Model and View stuff exists on the client side through javascript instead of being processed on the server through postbacks. These frameworks are JavaScript frameworks that facilitate the clear separation of the “frontend” or the data rendering logic from the “backend” which is typically just a REST based API that loads and processes data through a resource model. The frameworks are called MVVM as a change to the Model (through javascript) gets reflected in the view immediately i.e. Model > View. Also, a change on the view (through manual input) gets reflected in the model immediately i.e. View > Model. The following figure shows this conceptually (comments are shown in red): Fig 2: Demonstration of MVVM in action In Fig 2, two text boxes are bound to the same variable model.myInt. Thus, changing the view manually (changing one text box through keyboard input) also changes the other textbox in real time demonstrating V > M property of a MVVM framework. Furthermore, clicking the button adds 1 to the value of model.myInt thus changing the model through JavaScript. This immediately updates the view (the value in the two textboxes) thus demonstrating the M > V property of a MVVM framework. Thus we see that the model in a MVVM JavaScript framework can be regarded as “the single source of truth“. This is an important concept. Angular is one such MVVM framework. We shall use it to build a simple app that sends SMS messages to a particular number. Application, Routes, Views, Controllers, Scope and Models Angular can be used in many ways to construct web applications. For this article, we shall only focus on building Single Page Applications (SPAs). Many of the approaches we will follow in this article have alternatives. It is beyond the scope of this article to explain every nuance in detail but we shall try to touch upon the basic concepts and end up with a working application that can be used to send SMS messages using Sent.ly Plus (a service that is itself built using Angular). Before you read on, we would like to urge you to forget what you know about Models, Views, Controllers and Routes in the ASP.NET MVC4 framework. All these words have different meanings in the Angular world. Whenever these words are used in this article, they will refer to Angular concepts and not ASP.NET MVC4 concepts. The following figure shows the skeleton of the root page of an SPA: Fig 3: The skeleton of a SPA The skeleton of the application is based on the Bootstrap starter template which can be found at: http://getbootstrap.com/examples/starter­template/ Apart from loading the Angular, jQuery and Bootstrap JavaScript libraries, it also loads our custom scripts /app/js/controllers.js /app/js/app.js These scripts define the routes, views and controllers which we shall come to in a moment. Application Notice that the body tag (Fig. 3) has an extra attribute: ng­app=”smsApp” Providing this tag “bootstraps” our single page application. It tells Angular to load a “module” called smsApp. This “module” is defined /app/js/app.js angular.module('smsApp', ['smsApp.controllers', function () {}]) Fig 4: The definition of our application module The line shows above, declares a module called smsApp. It also declares that this module “depends” on another module called “smsApp.controllers”. The smsApp.controllers module will contain all the controllers for our SPA. Routing and Views Notice that in the Navbar (in Fig 3) we have included two hyperlinks to: “#/app” “#/help” This is how Angular handles routing. Since the URLs start with “#”, they are actually just bookmarks (and not server side resources). However, our route definition (in /app/js/app.js) gives these URLs a special meaning within the Angular framework. angular.module('smsApp', ['smsApp.controllers', function () { }]) //Configure the routes .config(['$routeProvider', function ($routeProvider) { $routeProvider.when('/binding', { templateUrl: '/app/partials/bindingexample.html', controller: 'BindingController' }); }]); Fig 5: The definition of a route with an associated partial view and controller As we can see from the previous code sample, we are using the $routeProvider object in the configuration of our smsApp module. Notice how the code “asks for” the $routeProvider object by specifying it as a dependency in the [] braces and then defining a function that accepts it as a parameter. This is known as dependency injection. Please refer to the following link if you want to delve into this topic: http://docs.angularjs.org/guide/di What the above code snippet is doing is that it is telling Angular that when the URL is “#/binding”, then it should load the HTML snippet (“partial view”) found at /app/partials/bindingexample.html. Also, for this URL, Angular should load the controller called “BindingController”. We have also marked the div with the class “container” (in Fig 3) with the ng­view attribute. This attribute tells Angular that views (partial HTML pages) defined in the routes will be loaded within this div. You can see that the Angular JavaScript framework, unlike many other frameworks, works purely by extending HTML tags and attributes. It also allows you to extend HTML with your own tags and attributes (through directives) if you so desire, you can find out more about directives at the following URL: http://www.codeproject.com/Articles/607873/Extending­HTML­with­AngularJS­Directives Controllers and Models We have seen how we define what views and controllers should be loaded for a particular route. Let us now consider how controllers are defined. Our controllers are defined in the file /app/js/controllers.js. The following snippet shows the definition of the “BindingController” which is loaded when we hit the URL http://localhost:port/index.html#/binding (as we have defined in the route earlier as shown in Fig 5). Remember that we had defined that our application module “smsApp” depends on the “smsApp.controllers” module (see Fig 4). The code snippet below shows how the “BindingController” defined in the route shown in Fig 5 is defined in the module smsApp.controllers: angular.module('smsApp.controllers', [function () { }]) .controller('BindingController', ['$scope', function ($scope) { $scope.model = {}; $scope.model.myInt = 6; $scope.addOne = function () { $scope.model.myInt++; } }]); Fig 6: The definition of a controller in the “smsApp.controllers” module. The pieces are falling in place! Remember Fig.2? That was the code of a partial view that was loaded within the container div of the skeleton SPA shown in Fig 3. The route definition shown in Fig 5 also defined that the controller called “BindingController” (shown in Fig 6.) was loaded when we loaded the URL: http://localhost:22544/index.html#/binding The button in Fig 2 was marked with the attribute ng­click=”addOne()” which added 1 to the value of model.myInt. In Fig 6, we can see that this function is actually defined in the “BindingController”. Scope We can see from Fig 6, that in the definition of “BindingController”, we defined a dependency on $scope and then, as usual, defined a function which “asks for” $scope as per the dependency injection pattern. So what is $scope? Any guesses? As you might have guessed a scope is a particular “address space” where variables and functions may be defined. This has a similar meaning to scope in a programming language like C#. Model: The Scope is not the Model It is tempting to assign variables in the scope directly. For example, we could have defined myInt as $scope.myInt = 6 in Fig 6 instead of $scope.model.myInt = 6. The reason why this is a bad idea is that scope in hierarchical in Angular. Thus if we were to define a controller which was defined within the another controller (nested controllers), then the inner controller would inherit the scope of the parent controller. This inheritance would follow JavaScript prototypal inheritance. Let’s say the parent controller defined a variable through $scope.myInt = 6. The child controller would inherit the scope through java prototypical inheritance. This basically means that the child scope has a variable myInt that points to the parent scopes myInt variable. Now if we assigned the value of myInt in the parent, the child scope would be updated with the same value as the child scope’s myInt variable points to the parent scope’s myInt variable. However, if we were to assign the value of the myInt variable in the child scope, then the link of that variable to the parent scope would be broken as the variable myInt in the child scope now points to the value 6 and not to the parent scope’s myInt variable. But, if we defined a variable model in the parent scope, then the child scope will also have a variable model that points to the model variable in the parent scope. Updating the value of $scope.model.myInt in the parent scope would change the model variable in the child scope too as the variable is pointed to the model variable in the parent scope. Now changing the value of $scope.model.myInt in the child scope would ALSO change the value in the parent scope. This is because the model reference in the child scope is pointed to the scope variable in the parent. We did no new assignment to the model variable in the child scope. We only changed an attribute of the model variable. Since the model variable (in the child scope) points to the model variable in the parent scope, we have successfully changed the value of myInt in the parent scope. Thus the value of $scope.model.myInt in the parent scope becomes the “single source of truth“. This is a tricky concept, thus it is considered good practice to NOT use scope inheritance. More info on prototypal inheritance in Angular can be found in the “JavaScript Prototypal Inheritance” section at the following URL: https://github.com/angular/angular.js/wiki/Understanding­Scopes. Building It: An Angular JS application using a .NET Web API Backend Now that we have a perspective on the basic components of an MVVM application built using Angular, let’s build something useful. We will build an application that can be used to send out SMS messages to a given phone number. The following diagram describes the architecture of the application we are going to build: Fig 7: Broad application architecture We are going to add an HTML Partial to our project. This partial will contain the form fields that will accept the phone number and message that needs to be sent as an SMS. It will also display all the messages that have previously been sent. All the executable code that is run on the occurrence of events (button clicks etc.) in the view resides in the controller. The controller interacts with the ASP.NET WebAPI to get a history of SMS messages, add a message etc. through a REST based API. For the purposes of simplicity, we will use an in memory data structure for the purposes of creating this application. Thus, the tasks ahead of us are: Creating the REST WebApi with GET, PUT, POST, DELETE methods. Creating the SmsView.html partial Creating the SmsController controller with methods that are called from the SmsView.html partial Add a new route that loads the controller and the partial. 1. Creating the REST WebAPI This is a simple task that should be quite straightforward to any .NET developer. The following listing shows our ApiController: public class SmsMessage { public string to { get; set; } public string message { get; set; } } public class SmsResource : SmsMessage { public int smsId { get; set; } } public class SmsResourceController : ApiController { public static Dictionary<int, SmsResource> messages = new Dictionary<int, SmsResource>(); public static int currentId = 0; // GET api/<controller> public List<SmsResource> Get() { List<SmsResource> result = new List<SmsResource>(); foreach (int key in messages.Keys) { result.Add(messages[key]); } return result; } // GET api/<controller>/5 public SmsResource Get(int id) { if (messages.ContainsKey(id)) return messages[id]; return null; } // POST api/<controller> public List<SmsResource> Post([FromBody] SmsMessage value) { //Synchronize on messages so we don't have id collisions lock (messages) { SmsResource res = (SmsResource) value; res.smsId = currentId++; messages.Add(res.smsId, res); //SentlyPlusSmsSender.SendMessage(value.to, value.message); return Get(); } } // PUT api/<controller>/5 public List<SmsResource> Put(int id, [FromBody] SmsMessage value) { //Synchronize on messages so we don't have id collisions lock (messages) { if (messages.ContainsKey(id)) { //Update the message messages[id].message = value.message; messages[id].to = value.message; } return Get(); } } // DELETE api/<controller>/5 public List<SmsResource> Delete(int id) { if (messages.ContainsKey(id)) { messages.Remove(id); } return Get(); } } Once this class is defined, we should be able to access the WebAPI by a simple GET request using the browser: http://localhost:port/api/SmsResource Notice the commented line: //SentlyPlusSmsSender.SendMessage The SentlyPlusSmsSender class is defined in the attached solution. We have shown this line as commented as we want to explain the core Angular concepts. If you load the attached solution, this line is uncommented in the source and an actual SMS will be sent! By default, the API returns XML. For consumption of the API in Angular, we would like it to return JSON. To change the default to JSON, we make the following change to WebApiConfig.cs file located in the App_Start folder. public static class WebApiConfig { public static void Register(HttpConfiguration config) { config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); var appXmlType = config.Formatters.XmlFormatter. SupportedMediaTypes. FirstOrDefault( t => t.MediaType == "application/xml"); config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType); } } We now have our backend REST Api which we can consume from Angular! 2. Creating the SmsView.html partial This simple partial will define two fields: the destination phone number (international format starting with a +) and the message. These fields will be bound to model.phoneNumber and model.message. We will also add a button that we shall hook up to sendMessage() in the controller. A list of all previously sent messages (bound to model.allMessages) will also be displayed below the form input. The following code shows the code for the partial: <!--­­ If model.errorMessage is defined, then render the error div -­­> <div class="alert alert-­danger alert-­dismissable" style="margin­-top: 30px;" ng­-show="model.errorMessage != undefined"> <button type="button" class="close" data­dismiss="alert" aria­hidden="true">&times;</button> <strong>Error!</strong> <br /> {{ model.errorMessage }} </div> <!--­­ The input fields bound to the model --­­> <div class="well" style="margin-­top: 30px;"> <table style="width: 100%;"> <tr> <td style="width: 45%; text-­align: center;"> <input type="text" placeholder="Phone number (eg; +44 7778 609466)" ng­-model="model.phoneNumber" class="form-­control" style="width: 90%" onkeypress="return checkPhoneInput();" /> </td> <td style="width: 45%; text-­align: center;"> <input type="text" placeholder="Message" ng­-model="model.message" class="form-­control" style="width: 90%" /> </td> <td style="text-­align: center;"> <button class="btn btn-­danger" ng-­click="sendMessage();" ng-­disabled="model.isAjaxInProgress" style="margin­right: 5px;">Send</button> <img src="/Content/ajax-­loader.gif" ng­-show="model.isAjaxInProgress" /> </td> </tr> </table> </div> <!--­­ The past messages ­­--> <div style="margin-­top: 30px;"> <!­­-- The following div is shown if there are no past messages --­­> <div ng­-show="model.allMessages.length == 0"> No messages have been sent yet! </div> <!--­­ The following div is shown if there are some past messages --­­> <div ng-­show="model.allMessages.length == 0"> <table style="width: 100%;" class="table table-­striped"> <tr> <td>Phone Number</td> <td>Message</td> <td></td> </tr> <!--­­ The ng-­repeat directive is line the repeater control in .NET, but as you can see this partial is pure HTML which is much cleaner --> <tr ng-­repeat="message in model.allMessages"> <td>{{ message.to }}</td> <td>{{ message.message }}</td> <td> <button class="btn btn-­danger" ng-­click="delete(message.smsId);" ng­-disabled="model.isAjaxInProgress">Delete</button> </td> </tr> </table> </div> </div> The above code is commented and should be self explanatory. Conditional rendering is achieved through using the ng-­show=”condition” attribute on various div tags. Input fields are bound to the model and the send button is bound to the sendMessage() function in the controller as through the ng­click=”sendMessage()” attribute defined on the button tag. While AJAX calls are taking place, the controller sets model.isAjaxInProgress to true. Based on this variable, buttons are disabled through the ng-­disabled directive which is added as an attribute to the buttons. The ng-­repeat directive added as an attribute to the tr tag causes the table row to be rendered multiple times much like an ASP.NET repeater. 3. Creating the SmsController controller The penultimate piece of our application is the controller which responds to events from our view and interacts with our MVC4 REST WebAPI. The following listing shows the code we need to add to /app/js/controllers.js. Note that controller definitions can be chained. Also note that this controller “asks for” the $http service. The $http service is a simple way in Angular to do AJAX. So far we have only encountered modules, controllers, views and directives in Angular. The $http is new entity in Angular called a service. More information on Angular services can be found at the following URL: http://docs.angularjs.org/guide/dev_guide.services.understanding_services. .controller('SmsController', ['$scope', '$http', function ($scope, $http) { //We define the model $scope.model = {}; //We define the allMessages array in the model //that will contain all the messages sent so far $scope.model.allMessages = []; //The error if any $scope.model.errorMessage = undefined; //We initially load data so set the isAjaxInProgress = true; $scope.model.isAjaxInProgress = true; //Load all the messages $http({ url: '/api/smsresource', method: "GET" }). success(function (data, status, headers, config) { this callback will be called asynchronously //when the response is available $scope.model.allMessages = data; //We are done with AJAX loading $scope.model.isAjaxInProgress = false; }). error(function (data, status, headers, config) { //called asynchronously if an error occurs //or server returns response with an error status. $scope.model.errorMessage = "Error occurred status:" + status; //We are done with AJAX loading $scope.model.isAjaxInProgress = false; }); $scope.delete = function (id) { //We are making an ajax call so we set this to true $scope.model.isAjaxInProgress = true; $http({ url: '/api/smsresource/' + id, method: "DELETE" }). success(function (data, status, headers, config) { // this callback will be called asynchronously // when the response is available $scope.model.allMessages = data; //We are done with AJAX loading $scope.model.isAjaxInProgress = false; }); error(function (data, status, headers, config) { // called asynchronously if an error occurs // or server returns response with an error status. $scope.model.errorMessage = "Error occurred status:" + status; //We are done with AJAX loading $scope.model.isAjaxInProgress = false; }); } $scope.sendMessage = function () { $scope.model.errorMessage = undefined; var message = ''; if($scope.model.message != undefined) message = $scope.model.message.trim(); if ($scope.model.phoneNumber == undefined || $scope.model.phoneNumber == '' || $scope.model.phoneNumber.length < 10 || $scope.model.phoneNumber[0] != '+') { $scope.model.errorMessage = "You must enter a valid phone number in international format. Eg: +44 7778 609466"; return; } if (message.length == 0) { $scope.model.errorMessage = "You must specify a message!"; return; } //We are making an ajax call so we set this to true $scope.model.isAjaxInProgress = true; $http({ url: '/api/smsresource', method: "POST", data: { to: $scope.model.phoneNumber, message: $scope.model.message } }). success(function (data, status, headers, config) { // this callback will be called asynchronously // when the response is available $scope.model.allMessages = data; //We are done with AJAX loading $scope.model.isAjaxInProgress = false; }). error(function (data, status, headers, config) { // called asynchronously if an error occurs // or server returns response with an error status. $scope.model.errorMessage = "Error occurred status:" + status // We are done with AJAX loading $scope.model.isAjaxInProgress = false; }); } }]); We can see from the previous listing how the functions that are called from the view are defined in the controller. It should also be evident how easy it is to make AJAX calls to consume our MVC4 REST WebAPI. Now we are left with the final piece. We need to define a route that associates a particular path with the view we have defined and the controller we have defined. 4. Add a new route that loads the controller and the partial This is the easiest part of the puzzle. We simply define another route in the /app/js/app.js file: $routeProvider.when('/sms', { templateUrl: '/app/partials/smsview.html', controller: 'SmsController' }); Conclusion In this article we have seen how much of the server side functionality in the MVC4 framework can be moved to the browser thus delivering a snappy and fast user interface. We have seen how we can build client side HTML only views that avoid the messy syntax offered by server side Razor views. We have built a functioning app from the ground up. The significant advantage of this approach to building web apps is that the front end can be completely platform independent. Even though we used ASP.NET to create our REST API, we could just easily have used any other language such as Node.js, Ruby etc without changing a single line of our front end code. Angular is a rich framework and we have only touched on basic functionality required to create a SPA. For readers who wish to delve further into the Angular framework, we would recommend the following URL as a starting point: http://docs.angularjs.org/misc/started. To get started with the code for this project: Sign up for an account at http://plus.sent.ly (free) Add your phone number Go to the “My Identies Page” Note Down your Sender ID, Consumer Key and Consumer Secret Download the code for this article at: https://docs.google.com/file/d/0BzjEWqSE31yoZjZlV0d0R2Y3eW8/edit?usp=sharing Change the values of Sender Id, Consumer Key and Consumer Secret in the web.config file Run the project through Visual Studio!

    Read the article

  • Adding page title to each page while creating a PDF file using itextsharp in VB.NET

    - by Snowy
    I have recently started using itextsharp and gradually learning it. So far I created a PDF file and it seems great. I have added a table and some subtables as the first table cells to hold data. It is done using two for loops. The first one loops through all data and the second one is each individual data displayed in columns. The html outcome looks like the following: <table> <tr> <td>Page title in center</td> </tr> <tr> <td> <table> <tr> <td>FirstPersonName</td> <td>Rank1</td> <td>info1a</td> <td>infob</td> <td>infoc</td> </tr> </table> </td> <td> <table> <tr> <td>SecondPersonName</td> <td>Rank2</td> <td>info1a</td> <td>infob</td> <td>infoc</td> <td>infod</td> <td>infoe</td> </tr> </table> </td> <td> <table> <tr> <td>ThirdPersonName</td> <td>Rank2</td> <td>info1a</td> <td>infob</td> <td>infoc</td> <td>infod</td> <td>infoe</td> <td>infof</td> <td>infog</td> </tr> </table> </td> </tr> </table> For page headings, I added a cell at the top before any other cells. I need to add this heading to all pages. Depending on the size of data, some pages have two rows and some pages have three rows of data. So I can not tell exactly when the new page starts to add the heading/title. My question is how to add the heading/title to all pages. I use VB.net. I searched for answer online and had no success. Your help would be greatly appreciated.

    Read the article

  • Issues integrating NCover with CC.NET, .NET framework 4.0 and MsTest

    - by Nikhil
    I'm implementing continuous integration with CruiseControl.NET, .NET 4.0, NCover and MsTest. On the build server I'm unable to run code coverage from the Ncover explorer or NCover console. When I run where vstesthost.exe from the Ncover console it returns the Visual Studio 9.0 path and does not seem to pick up .net framework 4.0. I've followed instructions from this MSTest: Measuring Test Quality With NCover post with slight modifications for .net framework 4.0, without any success. My CC.NET script looks like this <exec> <executable>C:\Program Files (x86)\NCover\NCover.Console.exe</executable> <baseDirectory>$(project_root)\</baseDirectory> <buildArgs>"C:\Program Files (x86)\**Microsoft Visual Studio 10.0**\Common7\IDE\MSTest.exe" /testcontainer:...\...\UnitTests.dll /resultsfile:TestResults.trx //xml D:\_Projects\....\Temp_Coverage.xml //pm vstesthost.exe</buildArgs> <buildTimeoutSeconds>$(ncover.timeout)</buildTimeoutSeconds> </exec> Has anyone come across similar issue. Any help would be much appreciated.

    Read the article

  • iphone app crash, crash log posted, help please

    - by terry jones
    hi, we recenty had a programmer to develop a program for us but seems to have left us in the lurch with a part functioning application. my boss isnt happy at moment as we have spent a few hundred and have nothing to show for it at the moment. can anyone see any information in the crash log below as its gibberish to me. Incident Identifier: D4F482FE-167A-44BB-A642-7E8EF7B568BF CrashReporter Key: 2d8e2d17415c55e48ec20dae7cbe6c36b33bcce1 Process: Logistics [328] Path: /var/mobile/Applications/32A03443-ADE3-4AAE-AB32-05DB7BEB15D8/Logistics.app/Logistics Identifier: Logistics Version: ??? (???) Code Type: ARM (Native) Parent Process: launchd [1] Date/Time: 2010-03-29 17:07:06.474 +0200 OS Version: iPhone OS 3.1.2 (7D11) Report Version: 104 Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x00000000, 0x00000000 Crashed Thread: 0 Thread 0 Crashed: 0 libSystem.B.dylib 0x31a279ac 0x319a9000 + 518572 1 libSystem.B.dylib 0x31a2799c 0x319a9000 + 518556 2 libSystem.B.dylib 0x31a2798e 0x319a9000 + 518542 3 libSystem.B.dylib 0x31a3c63a 0x319a9000 + 603706 4 libstdc++.6.dylib 0x3361d3b0 0x335d8000 + 283568 5 libobjc.A.dylib 0x32401858 0x323fc000 + 22616 6 libstdc++.6.dylib 0x3361b776 0x335d8000 + 276342 7 libstdc++.6.dylib 0x3361b7ca 0x335d8000 + 276426 8 libstdc++.6.dylib 0x3361b896 0x335d8000 + 276630 9 libobjc.A.dylib 0x32400714 0x323fc000 + 18196 10 CoreFoundation 0x32537b86 0x32511000 + 158598 11 CoreFoundation 0x32537b24 0x32511000 + 158500 12 Foundation 0x3145ddaa 0x313ed000 + 462250 13 Foundation 0x31454ee2 0x313ed000 + 425698 14 Logistics 0x00002df8 0x1000 + 7672 15 CoreFoundation 0x32569ede 0x32511000 + 364254 16 UIKit 0x32ba205e 0x32b60000 + 270430 17 UIKit 0x32bf4d4e 0x32b60000 + 609614 18 CoreFoundation 0x32569ede 0x32511000 + 364254 19 UIKit 0x32ba205e 0x32b60000 + 270430 20 UIKit 0x32ba1ffe 0x32b60000 + 270334 21 UIKit 0x32ba1fd0 0x32b60000 + 270288 22 UIKit 0x32ba1d2a 0x32b60000 + 269610 23 UIKit 0x32ba263e 0x32b60000 + 271934 24 UIKit 0x32ba1656 0x32b60000 + 267862 25 UIKit 0x32ba1032 0x32b60000 + 266290 26 UIKit 0x32b9d928 0x32b60000 + 252200 27 UIKit 0x32b9d3a0 0x32b60000 + 250784 28 GraphicsServices 0x32913b72 0x3290f000 + 19314 29 CoreFoundation 0x32567c26 0x32511000 + 355366 30 CoreFoundation 0x32567356 0x32511000 + 353110 31 GraphicsServices 0x32912cb8 0x3290f000 + 15544 32 GraphicsServices 0x32912d64 0x3290f000 + 15716 33 UIKit 0x32b62768 0x32b60000 + 10088 34 UIKit 0x32b6146c 0x32b60000 + 5228 35 Logistics 0x000023c4 0x1000 + 5060 36 Logistics 0x00002380 0x1000 + 4992 Thread 1: 0 libSystem.B.dylib 0x319a9818 0x319a9000 + 2072 1 libSystem.B.dylib 0x319abff8 0x319a9000 + 12280 2 CoreFoundation 0x325677f6 0x32511000 + 354294 3 CoreFoundation 0x32567356 0x32511000 + 353110 4 WebCore 0x305d59de 0x30578000 + 383454 5 libSystem.B.dylib 0x319cd92a 0x319a9000 + 149802 Thread 2: 0 libSystem.B.dylib 0x31a28228 0x319a9000 + 520744 1 libSystem.B.dylib 0x319d3244 0x319a9000 + 172612 2 libSystem.B.dylib 0x319d2d0e 0x319a9000 + 171278 3 CoreMedia 0x33552b04 0x3354f000 + 15108 4 CoreMedia 0x33552a3a 0x3354f000 + 14906 5 MediaToolbox 0x31e1b50c 0x31e18000 + 13580 6 libSystem.B.dylib 0x319cd92a 0x319a9000 + 149802 Thread 0 crashed with ARM Thread State: r0: 0x00000000 r1: 0x00000000 r2: 0x00000001 r3: 0x383c43cc r4: 0x00000006 r5: 0x3361b30d r6: 0x00172f5c r7: 0x2fffe97c r8: 0x2fffe968 r9: 0x00000065 r10: 0x00007150 r11: 0x334bd104 ip: 0x00000025 sp: 0x2fffe97c lr: 0x31a279a3 pc: 0x31a279ac cpsr: 0x00000010 Binary Images: 0x1000 - 0x6fff +Logistics armv6 <350fc970d77b4d8d67bf43f4d7f2a68c> /var/mobile/Applications/32A03443-ADE3-4AAE-AB32-05DB7BEB15D8/Logistics.app/Logistics 0x2c000 - 0x2dfff dns.so armv7 <35ac487c38e38ed5810d5ed0d5c67546> /usr/lib/info/dns.so 0x2fe00000 - 0x2fe24fff dyld armv7 <5db9f5d0275997de58efff111816706e> /usr/lib/dyld 0x30028000 - 0x3004ffff ContentIndex armv7 <67165d749b79ad4b14c8a24f14dab29d> /System/Library/PrivateFrameworks/ContentIndex.framework/ContentIndex 0x30050000 - 0x30054fff ITSync armv7 <a0bf9af6f4ebc7e5977d3da853671162> /System/Library/PrivateFrameworks/ITSync.framework/ITSync 0x30149000 - 0x3016efff AppSupport armv7 <ca2e9a4f0475af20028968840ab94ecf> /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport 0x30175000 - 0x3017ffff MobileCoreServices armv7 <36d71cd8dd49f5d5addb356f449b562a> /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices 0x30184000 - 0x30184fff Accelerate armv7 <939f94df6c7e6e7a090ddee1ec09c844> /System/Library/PrivateFrameworks/Accelerate.framework/Accelerate 0x30185000 - 0x301b7fff iCalendar armv7 <235e05f7e167e6dbbd75528a4a37f3a3> /System/Library/PrivateFrameworks/iCalendar.framework/iCalendar 0x301b8000 - 0x301c3fff libz.1.dylib armv7 <8faba7ded9b3527ccf54c2f224f9a12f> /usr/lib/libz.1.dylib 0x301c4000 - 0x301eefff CoreText armv7 <821e9c7c935b6a8d735e2d2d9ebcee04> /System/Library/PrivateFrameworks/CoreText.framework/CoreText 0x301f6000 - 0x301fffff IAP armv7 <36e57cf20df9fcea10ebd0d1c3526a9a> /System/Library/PrivateFrameworks/IAP.framework/IAP 0x30247000 - 0x30279fff MessageUI armv7 <51d0498fb3dba758dae660754f1afb9c> /System/Library/Frameworks/MessageUI.framework/MessageUI 0x3027a000 - 0x3027efff MobileMusicPlayer armv7 <f0e7d2d2d69e9cc2a84e20bced0e1d07> /System/Library/PrivateFrameworks/MobileMusicPlayer.framework/MobileMusicPlayer 0x302c6000 - 0x302cefff CoreVideo armv7 <9259f5ae2a74b53e4f13b27fa3d511e8> /System/Library/PrivateFrameworks/CoreVideo.framework/CoreVideo 0x30348000 - 0x3034afff CrashReporterSupport armv7 <a0a25c381e45f8a3f4ec63bcb17a5a39> /System/Library/PrivateFrameworks/CrashReporterSupport.framework/CrashReporterSupport 0x304a3000 - 0x304cefff MIME armv7 <55a4de1d243273ee7ef4e86a85d591f5> /System/Library/PrivateFrameworks/MIME.framework/MIME 0x304cf000 - 0x3050ffff libsqlite3.dylib armv7 <c2b5985d8307d73b39140e76adfd2eb7> /usr/lib/libsqlite3.dylib 0x3054a000 - 0x30569fff Bom armv7 <37e498957087af50894156808e0a486b> /System/Library/PrivateFrameworks/Bom.framework/Bom 0x30578000 - 0x30a4efff WebCore armv7 <4e2bac4e01a15979c9ac096f78280db0> /System/Library/PrivateFrameworks/WebCore.framework/WebCore 0x30a58000 - 0x30b12fff Message armv7 <a5a7de97c57a6965f27547bf8ff8810c> /System/Library/PrivateFrameworks/Message.framework/Message 0x30b13000 - 0x30b13fff vecLib armv7 <4eb91bf56603dc0db6784d8d3240bfa8> /System/Library/PrivateFrameworks/Accelerate.framework/Frameworks/vecLib.framework/vecLib 0x30c1e000 - 0x30c23fff ProtocolBuffer armv7 <91af9ee5b2f271cbd8c138b3c61e508d> /System/Library/PrivateFrameworks/ProtocolBuffer.framework/ProtocolBuffer 0x30d05000 - 0x30d29fff SystemConfiguration armv7 <c57df668b510f025ee5a173ad30fb48e> /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration 0x30d6c000 - 0x30decfff QuartzCore armv7 <af0722911ffc74fc08075e9831a6222e> /System/Library/Frameworks/QuartzCore.framework/QuartzCore 0x30e5d000 - 0x30e72fff libresolv.9.dylib armv7 <2b6a9404652dd2b5abd1c6a5583e8533> /usr/lib/libresolv.9.dylib 0x30e73000 - 0x30ebdfff GMM armv7 <72c87b3b08ab4359802b6efed472bf46> /System/Library/PrivateFrameworks/GMM.framework/GMM 0x30ec7000 - 0x30ed0fff SpringBoardServices armv7 <17ca8b5262cd6484d41efdc72c6fd057> /System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices 0x30ed1000 - 0x30f43fff LDAP armv7 <a5f6d51ebcab28eeabe0f2bbbdeb8cc7> /System/Library/PrivateFrameworks/LDAP.framework/LDAP 0x30fe6000 - 0x30ffbfff OpenGLES armv7 <be80a5e4c55c2920be2c31f740bb9dba> /System/Library/Frameworks/OpenGLES.framework/OpenGLES 0x31003000 - 0x31009fff libkxld.dylib armv7 <04ab19af95239c12a98539478eebc560> /usr/lib/system/libkxld.dylib 0x3114f000 - 0x311acfff MediaPlayer armv7 <1021fc5da1419ba297464f71049ad084> /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer 0x311ad000 - 0x311cefff CoreLocation armv7 <a3857b8324f90ae48994df15fdfbcda6> /System/Library/Frameworks/CoreLocation.framework/CoreLocation 0x311d5000 - 0x31214fff Celestial armv7 <f8bde8e040e6aac9e36e0aa8b43ee8cc> /System/Library/PrivateFrameworks/Celestial.framework/Celestial 0x312f6000 - 0x312fcfff libgcc_s.1.dylib armv7 <263b2691cd12171b31fa600716104e4a> /usr/lib/libgcc_s.1.dylib 0x31338000 - 0x31367fff libCGFreetype.A.dylib armv7 <2ec5ad6812f5ea3859cb4189d62b7265> /System/Library/Frameworks/CoreGraphics.framework/Resources/libCGFreetype.A.dylib 0x31393000 - 0x313cafff IOKit armv7 <0afabe8bf08fc163ba8e4ed614092cd3> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit 0x313e9000 - 0x313eafff IOMobileFramebuffer armv7 <9d9f0254b5b64ced3d58191748f3027b> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/IOMobileFramebuffer 0x313ed000 - 0x314e2fff Foundation armv7 <ede5b943f529ce1b862c15dc876992c1> /System/Library/Frameworks/Foundation.framework/Foundation 0x314ed000 - 0x31599fff libxml2.2.dylib armv7 <a491bfc5f062f33185a3f98969bae3c2> /usr/lib/libxml2.2.dylib 0x315fc000 - 0x315fefff MobileInstallation armv7 <b8ebf64838bdfe5315dab5745482e30c> /System/Library/PrivateFrameworks/MobileInstallation.framework/MobileInstallation 0x31919000 - 0x31923fff MobileBluetooth armv7 <bc6cf9563c3a14a86cde6ddf6cc3ed45> /System/Library/PrivateFrameworks/MobileBluetooth.framework/MobileBluetooth 0x31926000 - 0x319a8fff WebKit armv7 <b9b7246a09f5db68e44497d318cb3ab6> /System/Library/PrivateFrameworks/WebKit.framework/WebKit 0x319a9000 - 0x31aa0fff libSystem.B.dylib armv7 <3f94d4b13815a93cbdfc6c7dc2afe5b4> /usr/lib/libSystem.B.dylib 0x31aa2000 - 0x31b8bfff AudioToolbox armv7 <393fa1e155bb0523c2a90555bb394498> /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox 0x31b8d000 - 0x31bfcfff CFNetwork armv7 <b55671f2472fdae3f811ae6f636b4e2e> /System/Library/Frameworks/CFNetwork.framework/CFNetwork 0x31cb2000 - 0x31d12fff AddressBookUI armv7 <5e5b83d3c9e2c0676671feebfb8d37c9> /System/Library/Frameworks/AddressBookUI.framework/AddressBookUI 0x31d19000 - 0x31d21fff AccountSettings armv7 <37a8916d02c399bfccc56e92ad68e84b> /System/Library/PrivateFrameworks/AccountSettings.framework/AccountSettings 0x31d28000 - 0x31d34fff MobileDeviceLink armv7 <d757be3521f8ed71709728790c29bdb2> /System/Library/PrivateFrameworks/MobileDeviceLink.framework/MobileDeviceLink 0x31d3a000 - 0x31d3cfff Notes armv7 <f7c579348cb58b5f2218c042cf46f422> /System/Library/PrivateFrameworks/Notes.framework/Notes 0x31d59000 - 0x31d5cfff IOSurface armv7 <81661b8e151a9af6ce5704a728e12dc7> /System/Library/PrivateFrameworks/IOSurface.framework/IOSurface 0x31e18000 - 0x31ed8fff MediaToolbox armv7 <b9023dc22073ab28f6fb8ecbe00951c2> /System/Library/PrivateFrameworks/MediaToolbox.framework/MediaToolbox 0x31ed9000 - 0x31f8dfff JavaScriptCore armv7 <d3434c868a9a0f4016ed32ba90a35c4d> /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore 0x31f91000 - 0x320e6fff CoreGraphics armv7 <5852bd39fd1ef304da7b017949755cab> /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics 0x32150000 - 0x3217cfff DAVKit armv7 <80cf41b34d377d21d406fcb6835fbf77> /System/Library/PrivateFrameworks/DAVKit.framework/DAVKit 0x321d4000 - 0x322d5fff libicucore.A.dylib armv7 <1081389fef915d9b8858d0dfff04568e> /usr/lib/libicucore.A.dylib 0x322d6000 - 0x322d9fff ActorKit armv7 <c81b8278a35c6e8293aaf7c55811ba2d> /System/Library/PrivateFrameworks/ActorKit.framework/ActorKit 0x322da000 - 0x32388fff DataAccess armv7 <e9225a8b94fe76047095ebecd6fd58c5> /System/Library/PrivateFrameworks/DataAccess.framework/DataAccess 0x32389000 - 0x32390fff libbz2.1.0.dylib armv7 <6675987a84fc3d127305c175085914aa> /usr/lib/libbz2.1.0.dylib 0x323fc000 - 0x32499fff libobjc.A.dylib armv7 <1a57ecb9f5c0f274a274b3eb53df48ed> /usr/lib/libobjc.A.dylib 0x324b5000 - 0x324cbfff AddressBook armv7 <c21d7ab21d7e67f84c487bc278568bbe> /System/Library/Frameworks/AddressBook.framework/AddressBook 0x324d6000 - 0x32510fff CoreTelephony armv7 <5b68ed8ffac45237acc948e9d5bb5e83> /System/Library/PrivateFrameworks/CoreTelephony.framework/CoreTelephony 0x32511000 - 0x325bbfff CoreFoundation armv7 <51c03f1f8755868781e3e719d8df7b6f> /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation 0x325ca000 - 0x3268bfff MusicLibrary armv7 <ce4922bef1cc1d6706da32480c2272bd> /System/Library/PrivateFrameworks/MusicLibrary.framework/MusicLibrary 0x3268c000 - 0x3268efff AppleJPEG armv7 <af51b716dce446178b366a8d5af48ebb> /System/Library/PrivateFrameworks/AppleJPEG.framework/AppleJPEG 0x3268f000 - 0x326adfff MobileSync armv7 <1eecaede37e5d042180473311efccda3> /System/Library/PrivateFrameworks/MobileSync.framework/MobileSync 0x32860000 - 0x3286bfff PersistentConnection armv7 <73c2bec8b5f870ea528f359c2374f19c> /System/Library/PrivateFrameworks/PersistentConnection.framework/PersistentConnection 0x3286c000 - 0x328f2fff ImageIO armv7 <ea76d0fd3ca8c1a6104bc0f013255e2d> /System/Library/PrivateFrameworks/ImageIO.framework/ImageIO 0x3290f000 - 0x32918fff GraphicsServices armv7 <5387c7197570ac7df97759c0402d453d> /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices 0x32933000 - 0x3299bfff PhotoLibrary armv7 <0535fc553452b7b6cc25ac990cff4a40> /System/Library/PrivateFrameworks/PhotoLibrary.framework/PhotoLibrary 0x3299f000 - 0x329ccfff Calendar armv7 <52446b9087d707210cb515b0894afee5> /System/Library/PrivateFrameworks/Calendar.framework/Calendar 0x329d6000 - 0x329fffff TextInput armv7 <2e983bf3876bfeaf7151aa8a0e68dabc> /System/Library/PrivateFrameworks/TextInput.framework/TextInput 0x32a01000 - 0x32a02fff CoreSurface armv7 <f3aae0195e4510657029b19161138593> /System/Library/PrivateFrameworks/CoreSurface.framework/CoreSurface 0x32a09000 - 0x32a0bfff Camera armv7 <81c49c0f094225be8a6ad129a8641c86> /System/Library/PrivateFrameworks/Camera.framework/Camera 0x32a56000 - 0x32a7efff libvDSP.dylib armv7 <d846b621ce13b16241ac2d32ddd28615> /System/Library/PrivateFrameworks/Accelerate.framework/Frameworks/vecLib.framework/libvDSP.dylib 0x32a81000 - 0x32a86fff liblockdown.dylib armv7 <5b665cd59d9884ceecec6441fc42bc14> /usr/lib/liblockdown.dylib 0x32a8a000 - 0x32a96fff DataAccessExpress armv7 <ad1aeb0c6df9b0b917c1c99405e36cc4> /System/Library/PrivateFrameworks/DataAccessExpress.framework/DataAccessExpress 0x32ab5000 - 0x32ac3fff TelephonyUI armv7 <b34206a34dfb1cc4183274cc6c0a3f36> /System/Library/PrivateFrameworks/TelephonyUI.framework/TelephonyUI 0x32ac4000 - 0x32ae5fff MobileQuickLook armv7 <06cb03b3f1bd2c5bfa27ba2aef0849b2> /System/Library/PrivateFrameworks/MobileQuickLook.framework/MobileQuickLook 0x32aed000 - 0x32b07fff libRIP.A.dylib armv7 <0dc4e83b63c1350517949e24204817fb> /System/Library/Frameworks/CoreGraphics.framework/Resources/libRIP.A.dylib 0x32b09000 - 0x32b2dfff Security armv7 <3a3406fe12445942f4d767c7fa4c24ce> /System/Library/Frameworks/Security.framework/Security 0x32b2e000 - 0x32b5bfff VideoToolbox armv7 <08b68b92f987faff46a127f6f78708a0> /System/Library/PrivateFrameworks/VideoToolbox.framework/VideoToolbox 0x32b60000 - 0x33524fff UIKit armv7 <47c9d61f9cbe72938d1bfb1588306b97> /System/Library/Frameworks/UIKit.framework/UIKit 0x3354f000 - 0x33580fff CoreMedia armv7 <584770f5de9c599a2d420eb8666921ac> /System/Library/PrivateFrameworks/CoreMedia.framework/CoreMedia 0x33586000 - 0x33588fff ArtworkCache armv7 <66057eb40ba62cb544fe00ac4f2b498e> /System/Library/PrivateFrameworks/ArtworkCache.framework/ArtworkCache 0x33594000 - 0x33599fff MBX2D armv7 <ae091892e4419221d25f8db9307cedf0> /System/Library/PrivateFrameworks/MBX2D.framework/MBX2D 0x3359a000 - 0x335d7fff CoreAudio armv7 <1eb427066a911d979a024e445464a067> /System/Library/Frameworks/CoreAudio.framework/CoreAudio 0x335d8000 - 0x33621fff libstdc++.6.dylib armv7 <99401ed10ec4d5608ce23ec33dd757c6> /usr/lib/libstdc++.6.dylib 0x33627000 - 0x33632fff libbsm.0.dylib armv7 <03f3879bad1802636dadeb457ee74cb2> /usr/lib/libbsm.0.dylib

    Read the article

  • Parallelism in .NET – Part 16, Creating Tasks via a TaskFactory

    - by Reed
    The Task class in the Task Parallel Library supplies a large set of features.  However, when creating the task, and assigning it to a TaskScheduler, and starting the Task, there are quite a few steps involved.  This gets even more cumbersome when multiple tasks are involved.  Each task must be constructed, duplicating any options required, then started individually, potentially on a specific scheduler.  At first glance, this makes the new Task class seem like more work than ThreadPool.QueueUserWorkItem in .NET 3.5. In order to simplify this process, and make Tasks simple to use in simple cases, without sacrificing their power and flexibility, the Task Parallel Library added a new class: TaskFactory. The TaskFactory class is intended to “Provide support for creating and scheduling Task objects.”  Its entire purpose is to simplify development when working with Task instances.  The Task class provides access to the default TaskFactory via the Task.Factory static property.  By default, TaskFactory uses the default TaskScheduler to schedule tasks on a ThreadPool thread.  By using Task.Factory, we can automatically create and start a task in a single “fire and forget” manner, similar to how we did with ThreadPool.QueueUserWorkItem: Task.Factory.StartNew(() => this.ExecuteBackgroundWork(myData) ); .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } This provides us with the same level of simplicity we had with ThreadPool.QueueUserWorkItem, but even more power.  For example, we can now easily wait on the task: // Start our task on a background thread var task = Task.Factory.StartNew(() => this.ExecuteBackgroundWork(myData) ); // Do other work on the main thread, // while the task above executes in the background this.ExecuteWorkSynchronously(); // Wait for the background task to finish task.Wait(); TaskFactory simplifies creation and startup of simple background tasks dramatically. In addition to using the default TaskFactory, it’s often useful to construct a custom TaskFactory.  The TaskFactory class includes an entire set of constructors which allow you to specify the default configuration for every Task instance created by that factory.  This is particularly useful when using a custom TaskScheduler.  For example, look at the sample code for starting a task on the UI thread in Part 15: // Given the following, constructed on the UI thread // TaskScheduler uiScheduler = TaskScheduler.FromCurrentSynchronizationContext(); // When inside a background task, we can do string status = GetUpdatedStatus(); (new Task(() => { statusLabel.Text = status; })) .Start(uiScheduler); This is actually quite a bit more complicated than necessary.  When we create the uiScheduler instance, we can use that to construct a TaskFactory that will automatically schedule tasks on the UI thread.  To do that, we’d create the following on our main thread, prior to constructing our background tasks: // Construct a task scheduler from the current SynchronizationContext (UI thread) var uiScheduler = TaskScheduler.FromCurrentSynchronizationContext(); // Construct a new TaskFactory using our UI scheduler var uiTaskFactory = new TaskFactory(uiScheduler); If we do this, when we’re on a background thread, we can use this new TaskFactory to marshal a Task back onto the UI thread.  Our previous code simplifies to: // When inside a background task, we can do string status = GetUpdatedStatus(); // Update our UI uiTaskFactory.StartNew( () => statusLabel.Text = status); Notice how much simpler this becomes!  By taking advantage of the convenience provided by a custom TaskFactory, we can now marshal to set data on the UI thread in a single, clear line of code!

    Read the article

  • Visual Studio 2010 Service Pack 1 And .NET Framework 4.0 Update

    - by Paulo Morgado
    As announced by Jason Zender in his blog post, Visual Studio 2010 Service Pack 1 is available for download for MSDN subscribers since March 8 and is available to the general public since March 10. Brian Harry provides information related to TFS and S. "Soma" Somasegar provides information on the latest Visual Studio 2010 enhancements. With this service pack for Visual Studio an update to the .NET Framework 4.0 is also released. For detailed information about these releases, please refer to the corresponding KB articles: Update for Microsoft .NET Framework 4 Description of Visual Studio 2010 Service Pack 1 Update: When I was upgrading from the Beta to the final release on Windows 7 Enterprise 64bit, the instalation hanged with Returning IDCANCEL. INSTALLMESSAGE_WARNING [Warning 1946.Property 'System.AppUserModel.ExcludeFromShowInNewInstall' for shortcut 'Manage Help Settings - ENU.lnk' could not be set.]. Canceling the installation didn’t work and I had to kill the setup.exe process. When reapplying it again, rollbacks were reported, so I reapplied it again – this time with succes.

    Read the article

  • Reattaching an object graph to an EntityContext: "cannot track multiple objects with the same key"

    - by dkr88
    Can EF really be this bad? Maybe... Let's say I have a fully loaded, disconnected object graph that looks like this: myReport = {Report} {ReportEdit {User: "JohnDoe"}} {ReportEdit {User: "JohnDoe"}} Basically a report with 2 edits that were done by the same user. And then I do this: EntityContext.Attach(myReport); InvalidOperationException: An object with the same key already exists in the ObjectStateManager. The ObjectStateManager cannot track multiple objects with the same key. Why? Because the EF is trying to attach the {User: "JohnDoe"} entity TWICE. This will work: myReport = {Report} {ReportEdit {User: "JohnDoe"}} EntityContext.Attach(myReport); No problems here because the {User: "JohnDoe"} entity only appears in the object graph once. What's more, since you can't control how the EF attaches an entity, there is no way to stop it from attaching the entire object graph. So really if you want to reattach a complex entity that contains more than one reference to the same entity... well, good luck. At least that's how it looks to me. Any comments? UPDATE: Added sample code: // Load the report Report theReport; using (var context1 = new TestEntities()) { context1.Reports.MergeOption = MergeOption.NoTracking; theReport = (from r in context1.Reports.Include("ReportEdits.User") where r.Id == reportId select r).First(); } // theReport looks like this: // {Report[Id=1]} // {ReportEdit[Id=1] {User[Id=1,Name="John Doe"]} // {ReportEdit[Id=2] {User[Id=1,Name="John Doe"]} // Try to re-attach the report object graph using (var context2 = new TestEntities()) { context2.Attach(theReport); // InvalidOperationException }

    Read the article

  • Parallelism in .NET – Part 8, PLINQ’s ForAll Method

    - by Reed
    Parallel LINQ extends LINQ to Objects, and is typically very similar.  However, as I previously discussed, there are some differences.  Although the standard way to handle simple Data Parellelism is via Parallel.ForEach, it’s possible to do the same thing via PLINQ. PLINQ adds a new method unavailable in standard LINQ which provides new functionality… LINQ is designed to provide a much simpler way of handling querying, including filtering, ordering, grouping, and many other benefits.  Reading the description in LINQ to Objects on MSDN, it becomes clear that the thinking behind LINQ deals with retrieval of data.  LINQ works by adding a functional programming style on top of .NET, allowing us to express filters in terms of predicate functions, for example. PLINQ is, generally, very similar.  Typically, when using PLINQ, we write declarative statements to filter a dataset or perform an aggregation.  However, PLINQ adds one new method, which provides a very different purpose: ForAll. The ForAll method is defined on ParallelEnumerable, and will work upon any ParallelQuery<T>.  Unlike the sequence operators in LINQ and PLINQ, ForAll is intended to cause side effects.  It does not filter a collection, but rather invokes an action on each element of the collection. At first glance, this seems like a bad idea.  For example, Eric Lippert clearly explained two philosophical objections to providing an IEnumerable<T>.ForEach extension method, one of which still applies when parallelized.  The sole purpose of this method is to cause side effects, and as such, I agree that the ForAll method “violates the functional programming principles that all the other sequence operators are based upon”, in exactly the same manner an IEnumerable<T>.ForEach extension method would violate these principles.  Eric Lippert’s second reason for disliking a ForEach extension method does not necessarily apply to ForAll – replacing ForAll with a call to Parallel.ForEach has the same closure semantics, so there is no loss there. Although ForAll may have philosophical issues, there is a pragmatic reason to include this method.  Without ForAll, we would take a fairly serious performance hit in many situations.  Often, we need to perform some filtering or grouping, then perform an action using the results of our filter.  Using a standard foreach statement to perform our action would avoid this philosophical issue: // Filter our collection var filteredItems = collection.AsParallel().Where( i => i.SomePredicate() ); // Now perform an action foreach (var item in filteredItems) { // These will now run serially item.DoSomething(); } .csharpcode, .csharpcode pre { font-size: small; color: black; font-family: consolas, "Courier New", courier, monospace; background-color: #ffffff; /*white-space: pre;*/ } .csharpcode pre { margin: 0em; } .csharpcode .rem { color: #008000; } .csharpcode .kwrd { color: #0000ff; } .csharpcode .str { color: #006080; } .csharpcode .op { color: #0000c0; } .csharpcode .preproc { color: #cc6633; } .csharpcode .asp { background-color: #ffff00; } .csharpcode .html { color: #800000; } .csharpcode .attr { color: #ff0000; } .csharpcode .alt { background-color: #f4f4f4; width: 100%; margin: 0em; } .csharpcode .lnum { color: #606060; } This would cause a loss in performance, since we lose any parallelism in place, and cause all of our actions to be run serially. We could easily use a Parallel.ForEach instead, which adds parallelism to the actions: // Filter our collection var filteredItems = collection.AsParallel().Where( i => i.SomePredicate() ); // Now perform an action once the filter completes Parallel.ForEach(filteredItems, item => { // These will now run in parallel item.DoSomething(); }); This is a noticeable improvement, since both our filtering and our actions run parallelized.  However, there is still a large bottleneck in place here.  The problem lies with my comment “perform an action once the filter completes”.  Here, we’re parallelizing the filter, then collecting all of the results, blocking until the filter completes.  Once the filtering of every element is completed, we then repartition the results of the filter, reschedule into multiple threads, and perform the action on each element.  By moving this into two separate statements, we potentially double our parallelization overhead, since we’re forcing the work to be partitioned and scheduled twice as many times. This is where the pragmatism comes into play.  By violating our functional principles, we gain the ability to avoid the overhead and cost of rescheduling the work: // Perform an action on the results of our filter collection .AsParallel() .Where( i => i.SomePredicate() ) .ForAll( i => i.DoSomething() ); The ability to avoid the scheduling overhead is a compelling reason to use ForAll.  This really goes back to one of the key points I discussed in data parallelism: Partition your problem in a way to place the most work possible into each task.  Here, this means leaving the statement attached to the expression, even though it causes side effects and is not standard usage for LINQ. This leads to my one guideline for using ForAll: The ForAll extension method should only be used to process the results of a parallel query, as returned by a PLINQ expression. Any other usage scenario should use Parallel.ForEach, instead.

    Read the article

  • Add Or Condition to Entity in Entity Framework

    - by Blakewell
    Can you add an "Or" condition to an entity in the entity framework? For example something like: Property1 == (1 or 2 or 3) The message I get when putting the value of "1 || 2 || 3" or "1,2,3" or "1 or 2 or 3" returns this message: condition is not compatible with the type of the member

    Read the article

< Previous Page | 26 27 28 29 30 31 32 33 34 35 36 37  | Next Page >