title: Top ten annotations and remarks about the wonderful and powerful new set of features in asp.net 2.0

text:
You’ll still write a good deal of code in ASP.NET 2.0.
Don’t completely trust those who say that ASP.NET 2.0 cuts 70% of the amount of code you’re called to write. You’ll end up writing more or less the same quantity of code, but you’ll write code of different quality. You’ll have more components and less boilerplate code to tie together pages and controls. Features like the provider model, data source controls, and master pages make coding easier and equally effective. But since there’s no magic behind, you have to learn the implications of each feature you employ. In the end, ASP.NET 2.0 comes with code behind, not magic behind.
Compared to classic ASP, ASP.NET 1.x was no more and no less than a revolution. It changed everything-the component model, the syntax, the languages used to author pages, the runtime environment, and the tools to design and create applications. And like icing on a cake, ASP.NET 1.x endeavored with good success to remain as close as possible, if not compatible, with the old code and old way of devising Web applications.
Adaptive rendering is the process by means of which server controls generate markup specifically crafted for a particular browser.
Today, most evangelists and influencers tend to present ASP.NET 2.0 as a major upgrade to ASP.NET 1.x. I mostly agree with this point of view. Overall, ASP.NET 2.0 introduces new controls, enhances the runtime environment, is richer in functionality and more customizable, but is fully backward compatible and doesn’t appear to developers as a brand new thing. Although extended, refined, and refactored, it’s the same old dog that has been taught a lot of new tricks. So far so good.
While this vision is logically correct, the amount of changes and improvements (read, the number of new tricks learned by the old dog) is astonishing. Let the numbers talk.
The core functions of ASP.NET are implemented in the system.web assembly. In ASP.NET 1.x, the system.web assembly counts 14 namespaces and 321 exported types. In ASP.NET 2.0, the number of namespaces grows up to 22. The number of exported types, instead, almost quadruples up to 1121 types. Do you still want to call it a major upgrade?
In the end, ASP.NET 2.0 doesn’t change the programming model and doesn’t modify the pillars on which developers build Web applications with Microsoft .NET technologies. Everything else is different because it is a new feature or because it is the reworked and enhanced version of an existing feature.
The goal of this article is to provide an annotated overview of ten selected ASP.NET 2.0 features. You’ll find dos and don’ts, whys and wherefores, and the rationale behind them. For obvious space constraints, I cannot provide a detailed description of the required syntax nor a step-by-step guide to the feature and its usage. If you need this kind of reference, either check out the online MSDN documentation or get a copy of Programming Microsoft ASP.NET 2.0 Applications Core Reference (Microsoft Press, 2005), which should be hot off the press by the time you read this.
#1-DataGrid vs. GridView
It’s easy to guess that a couple of quite versatile data-bound controls will be a fixed presence in most real-world ASP.NET 2.0 applications-the DataGrid and GridView controls.
Both controls render a multi-column, templated grid and provide a largely customizable user interface with read/write options. In spite of the rather advanced programming interface and the extremely rich set of attributes, DataGrid and GridView controls simply generate an HTML table with interspersed hyperlinks to provide interactive functionalities such as sorting, paging, selection, and in-place editing.
Although customizable at will, grid controls feature a relatively rigid graphical model. The data bound to a DataGrid or GridView is always rendered like a table, therefore, in terms of rows and columns. Nevertheless, the contents of the cells in a column can be customizable to some extent using system-provided as well as user-defined templates.
The DataGrid is the principal control of most data-driven ASP.NET 1.x applications. Like all ASP.NET 1.x controls, the DataGrid is fully supported in ASP.NET 2.0 but is partnered with a newer control that is meant to replace it in the long run. The new grid control, GridView, is complemented by other view controls, including DetailsView and FormView. The GridView is a major upgrade of the ASP.NET 1.x DataGrid control. It provides the same basic set of capabilities plus a long list of extensions and improvements. When should you use one vs. the other?
For brand new ASP.NET 2.0 applications, choosing the GridView over the DataGrid is a no-brainer. For ASP.NET 1.x applications being upgraded and maintained, moving to the GridView doesn’t pose any significant issues and, more importantly, it positions you well for future enhancements. In the end, the DataGrid control is over and is supported in ASP.NET 2.0 only for backward compatibility reasons so that existing applications can continue to work when simply ported and recompiled in ASP.NET 2.0.
Compared to the DataGrid control, the syntax of the GridView is largely similar but certainly not identical. The classes you use for binding columns have different names, for example BoundField and HyperLinkField instead of BoundColumn and HyperLinkColumn. In addition, the GridView supports more field types including ImageField and CheckBoxField for images and Boolean values.
The GridView control simplifies the implementation of some features such as the definition of edit and select buttons. To enable editing and selection, you simply set a couple of Boolean properties with the GridView, whereas the DataGrid requires you to add specific columns and handle related events.
Helper events that signal the creation of a new item, or the item’s binding to row data, have been renamed too and also underwent some minor syntax changes. For example, The ItemCreated event of the DataGrid corresponds to the RowCreated event of the GridView. The event’s delegate is different. In particular, the RowCreated event is a simple EventHandler delegate and doesn’t carry out any additional information about what happened. The event is a mere notification that a grid’s element has been created. You have to figure out yourself which element was created. On the other hand, new properties return an object reference to each grid’s element-header, footer, data rows, top and bottom pagers-so that you can easily check which one was created and decide how to proceed.
protected void GridView1_RowCreated(
// Check if the footer row was created
if (GridView1.FooterRow != null)
// Do something here
The GridView’s RowCommand event matches the DataGrid’s ItemCommand event and indicates when a custom column button is pressed. The DataGrid’s event passes the index of the clicked button through the ItemIndex property. The GridView’s event uses a different approach based on the CommandArgument property, as shown below:
protected void GridView1_RowCommand(
object sender, GridViewCommandEventArgs e)
// Check the command name associated with
// the button
// Get the index of the clicked button row
index = Convert.ToInt32(e.CommandArgument);
// Add the item to the shopping cart
The GridView allows you to cache the value of multiple fields for each displayed row. It is only one field-the primary key, if any-with the DataGrid. In the GridView, the DataKeyNames property (an array of strings) overtakes the DataKeyField property of the DataGrid (a string). Both controls support the DataKeys property which is an array of DataKey objects for the GridView and an array of strings for the DataGrid. Imagine you declare a GridView using this syntax:
<asp:GridView ID="GridView1" runat="server"
In the code file page, you retrieve the productname field of the clicked row with the following code:
protected void GridView1_RowCommand(
object sender, GridViewCommandEventArgs e)
// Get the index of the clicked button row
index = Convert.ToInt32(e.CommandArgument);
DataKey data = GridView1.DataKeys[index];
ShoppingItem s = new ShoppingItem();
s.ProductID = data.Values["productid"];
s.ProductName = data.Values["productname"];
So far I’ve just taken for granted that ASP.NET 2.0 comes with two distinct and different grid controls, outlined the main differences, and basically suggested when to use which. Summarizing, you should always use the GridView in new ASP.NET 2.0 code and as much as possible in migrated code. The DataGrid remains available in ASP.NET 2.0 mostly to ensure compatibility.
Could the changes and enhancements slated for the GridView have been implemented directly in the DataGrid?
The key difference between DataGrid and GridView is elsewhere. In ASP.NET 2.0, a new family of server controls makes their debut-data source controls. These controls have no user interface but supply data to data-bound controls. Data source controls reduce the quantity of code you’re called upon to write in data-driven pages. Data source controls intelligently communicate with made-to-measure data-bound controls to provide data to display and save changes back to the physical data source in a two-way data binding mechanism. Simply put, the DataGrid and all ASP.NET 1.x controls were not designed to fully support data source controls. The DataGrid, in particular, supports data source controls only for display. The DataGrid is not designed for two-way data binding. That’s why Microsoft created a new grid control. Data source controls are perhaps the most powerful new feature in ASP.NET 2.0 and I’ll cover them in more detail later.
What about paging and sorting? GridView and DataGrid work in a nearly identical way if both are bound to enumerable data sources like in ASP.NET 1.x. If bound to a data source control, the GridView control relies on the capabilities of the underlying data source control for paging and sorting. For this reason, the GridView control has no property to enable custom paging. If you need a custom algorithm to have the grid page through data, you have to code it in a stored procedure or a custom business class bound to a data source control.
#2-Cookied vs. Cookieless
In ASP.NET 1.x, the browser and ASP.NET server-side environment can exchange the session ID in either of two ways-using a cookie or mangling the requested URL to incorporate the session ID string. Neither approach is free of issues. Not all browsers support cookies and even when the browser does support cookies, the user might have disabled their use. If you opt for a cookieless approach, the session ID shows in the address bar making it potentially easy for attackers to attempt to hijack a session at least for the duration of the session ID.
To really benefit from ObjectDataSource, you must have your DAL already in place. ObjectDataSource doesn’t break n-tier systems, nor does it transform existing systems into truly n-tier systems.
In ASP.NET 2.0, the cookieless approach is also possible for form-based authentication. Obviously, using cookieless authentication is recommended in very particular cases. The canonical example is an international security-sensitive application (i.e., an international Internet banking application) running in a country where cookies are prohibited by law. When you opt for cookieless authentication, make sure you also work on a secure channel (HTTPS) and with sliding expiration to mitigate the risk of replay attacks.
As mentioned, with cookieless sessions the risk is a session hijacking attack. The attack is not necessarily harmful per se. Its effects mostly depend on what the attacker finds stored in the session state. If no sensitive data is cached in the session state, the risk of reporting damages is low.
The bottom line is that you should opt for cookied clients unless strict and precise requirements force you to set up a cookieless solution.
As a further note, consider that in ASP.NET 2.0 cookies are also used to cache role information for performance gains. When role management is enabled and a user connects, role information is retrieved, placed in a (configurable) cookie and attached to the response for next time. If cookies are disabled, role information is read from the data source on each and every request.
The Holy Grail of Web development is finding a magic combination of technologies to build applications that render and work the same whatever browser or device is used.
Some developers prefer to create two distinct applications for uplevel and downlevel browsers. Other developers tend to use CSS styles to the extent that it is possible to differentiate the rendered markup on a per-browser basis. Yet another group of Web developers have placed their hopes in a new ASP.NET 2.0 technology named adaptive rendering.
Adaptive rendering is the process by means of which server controls generate markup specifically crafted for a particular browser. An external component-the control adapter-takes care of generating the markup in lieu of the control itself. When it is about to render, each control figures out its own adapter and delegates the task to it.
The adapter for a control is resolved by looking at the browser capabilities, as configured in the .browser text files that accompany the ASP.NET 2.0 installation. You look for these files under the following path:
If the browser record specifies an adapter class for the control, that class is instantiated and used. Otherwise, the adapter for the control is an instance of a generic adapter that simply generates the markup for a control by calling the rendering methods on the control itself.
Writing an adapter component is not a trivial task because it requires that you understand the events in the lifecycle of both pages and controls to know where to apply your device-specific adaptation. In ASP.NET 2.0, a simpler form of adaptive rendering consists of declaratively assigning a browser-specific value to some control properties. Clearly, adaptive rendering and browser-sensitive rendering are two substantially different things. The former lets you adapt the behavior of the control to the browser. The latter is simply a declarative way of deciding which value to assign to individual properties based on the browser’s name. Here’s an example.
<asp:TextBox ID="TextBox1" runat="server"
The MaxLength property of the TextBox control will limit the buffer of the text box to ten characters if the page is viewed through Internet Explorer. If Firefox (or any Mozilla-powered browser) is used, the maximum length is 7. It is 8, instead, if a Netscape browser is used. If another browser is used, the value of the unprefixed MaxLength attribute is used. All properties you can insert in a tag declaration can be flagged with a browser ID. Each supported browser has a unique ID. As in preceding code, ie is for Internet Explorer whereas mozilla is for Firefox and netscape6to9 is for versions of Netscape browsers ranging from 6.x to future versions. Check out the documentation for browser capabilities to find out which is the ID of a particular browser or device.
Browser-specific filtering is also supported for master pages. Much like a PowerPoint master slide, a master page is the ASP.NET page your displayed page is based upon. If you’re employing master pages to build pages in your site, you can have the ASP.NET runtime switch the master on the fly for you as the user connects via a different browser.
You design the master to address the specific features of the browser. In doing so, you create multiple versions of the same master, each targeting a different type of browser. How do you associate masters and browsers?
In the content page, that is the page your users display, you define multiple bindings using the MasterPageFile attribute. Each binding is prefixed with the identifier of the browser. For example, suppose you want to provide ad hoc support for Internet Explorer and use a generic master for any other browsers that users employ to visit the site. You use the following syntax.
<%@ Page MasterPageFile="Base.master"
ASP.NET will use the ieBase.master file for Internet Explorer and nsBase.master for Netscape browsers from version 6.x on. In any other case, ASP.NET will use a device-independent master (Base.master). When the page runs, the ASP.NET runtime automatically determines which browser or device the user is using and selects the corresponding master page, as shown in Figure 1.
Table 1 shows the ID of the most common desktop browsers and mobile devices such as cellular phones and personal digital assistants (PDAs). It is important to note that if you use device-specific masters, you must also indicate a device-independent master to stay on the safe side and avoid anomalies in case a user uses a non-supported browser.
When you enable output caching on a given page, the page’s response will be cached for a specified time so that successive requests can be served without executing the code behind the page. This simple trick transforms the original ASP.NET page in something close to a static HTML page as far as performance is concerned.
Output caching is flexible enough to let you store distinct versions of the page per each combination of HTTP headers or query string parameters. The output of the page can be cached on the Web server, the client, or any proxy server downstream such as Microsoft ISA Server. The caching location is just one of the parameters you can set when you configure output caching for a page.
True visual inheritance à la Windows Forms is not a goal of ASP.NET 2.0 master pages. The contents of a master page are merged into the content page, and they dynamically produce a new page class. The merge process takes place at compile time and only once.
To use post-cache substitution, you place the new <asp:substitution> control at the page location where content should be substituted and set the MethodName property of the control to a callback method. Here’s a quick example.
<form id="form1" runat="server">

The output you see has been generated at:
and is valid for 30 seconds

This content is updated regularly
This is more static and cached content
<asp:Button runat="server" Text="Refresh" />
You must set the MethodName property to the name of a static method that can be encapsulated in an HttpResponseSubstitutionCallback delegate:
public static string WriteTimeStamp(
Whatever string the method returns will be rendered out and becomes the output of the Substitution control. Note also that the callback method must be thread-safe and static.
Using post-cache substitution automatically disables client caching and forces the page to use server caching. This is reasonable as the markup replacement can only happen through server-side code. The page can’t rely on IIS 6.0 kernel mode caching and its benefits. Again, this is reasonable as some server-side work is required to serve the page. In light of this, the page can’t be served by IIS without hitting ASP.NET. Finally, note that the Substitution control works even if the page doesn’t use page output caching. In the end, Substitution is a mere server-side control and is processed as usual. In a non-cached page, your callback will be called at rendering time to contribute to the response.
More important than ever, you should avoid calling the substitution control from within the callback. If you do so, the callback will hold on to the control and the page containing the control. In the end, the page instance won’t be garbage-collected until the cached content expires.
#5-The Provider Model
The provider model is one of the most important and critical aspects of ASP.NET 2.0. A comprehensive understanding of the provider model is critical for an effective design and implementation of cutting edge applications. The provider model is formalized in ASP.NET 2.0 but, at the end of the day, it is the implementation of the strategy design pattern-a software feature not strictly related to .NET and ASP.NET. Once you get hold of the basic idea, you can start using the provider model in any application. In particular, you can (and to some extent, you should) use it to architect your own ASP.NET 2.0 applications.
Defined, the strategy pattern indicates a behavior and the strategy you intend to use to implement it. As an example, consider the behavior of sorting data. You can sort data through an array of algorithms such as Quicksort, Heapsort or perhaps Mergesort. Each sort algorithm represents a different, but equally valid, strategy. Whatever strategy you choose, the observable behavior of the code remains intact-that is, the code still sorts its data.
The most notable feature of the strategy pattern is that it provides a way for a subsystem to expose its internal plumbing so that a client can unplug the default implementation and plug its own in.
This is exactly what happens in ASP.NET 2.0 for a number of services, including membership, roles, state management, personalization, and site maps. The ASP.NET provider model is nothing more than the ASP.NET implementation of the strategy pattern.
The best thing you can do in your own applications is devise each feature that needs to read data from, or write data to, a data source according to the strategy pattern. You define a public and immutable programming interface and make your top-level code interact only with that. Such a programming interface is well-represented with a static class exposing a bunch of public methods. Under the hood, each method will locate the current strategy class providing the requested behavior. How the strategy class is located and the details of the programming interface are entirely up to you.
If you’re doing this in ASP.NET 2.0, you might want to derive strategy classes (i.e., providers) from the official base provider class-ProviderBase. All provider classes in ASP.NET inherit from ProviderBase. This is not a functionally rich class so you might want to create an intermediate class named MyFeatureProviderBase or something like that, and make this class extend ProviderBase with the programming interface you need for the specified feature. Trust me, this is easier done than explained and will give you unprecedented geek pleasure.
#6-Session Data Stores
In ASP.NET, you can store session state in a variety of places that you can configure offline through the web.config file. By default, the session state is held in the Web server’s memory, precisely in the Cache object. Alternately, you can ask the ASP.NET runtime to store session state in the memory of a remote server or in a made-to-measure SQL Server database.
Most developers tend to forget the implications of storing session data out-of-process. There are two types of possible implications: data marshaling and configuration.
If session data is managed by a process different from the ASP.NET worker process, the application has to pay the extra price of marshaling data from the external process to the worker process. The ASP.NET infrastructure has to read, marshal, and process data.
The cost of reading data is merely the cost of I/O. This cost is higher if a system file, like a database file, is involved. The cost of data marshaling is the cost of serializing data using the .NET Framework formatter classes. The cost of processing data is any cost involved with copying the session state from the external source to the HTTP context of the ongoing request.
In ASP.NET 1.x, you can store data outside the worker process in either of two ways: state server and SQL Server. In the former case, data is managed by a Windows service (aspnet_state.exe) that requires manual start and runs under the ASP.NET process account. The communication between ASP.NET and this process occurs through a fixed port over TCP. The data is stored in the memory of the state process and is subject to any failure of the service. The cost of I/O is minimal just because data lives in memory. If SQL Server is used, data is stored in a persistent database with a higher I/O cost.
Data is serialized back and forth using type-specific algorithms. Simple data types such as numbers, strings, dates, characters, bytes, and arrays of these types are serialized using a tailor-made serializer that optimizes the time required to save data of those types. Other types are first checked for a type converter class-a class that can convert the contents of the class into a string. If no type converter is found, the class is serialized using the .NET Framework binary formatter class. If the class is not serializable, an exception is thrown. The binary formatter is the most efficient formatter available, but is not all that fast compared to other techniques that can be used to serialize the contents of a class. The reason lies in the fact that the binary formatter is designed to service any managed class handling complex scenarios such as circular references. A formatter specifically designed for a limited group of classes can easily outperform the binary formatter. What’s the lesson?
When remote session state is enabled, you should avoid using complex data types such as DataSet or custom classes. The more you can resort to strings and numbers, the better performance you’ll see. To give evidence to the discussion, consider a 15% overhead if you connect to a state server and a 25% overhead if you use a database table to store the session state. If binary serialization is required, expect to see these numbers raise a little more.
The trade-off here is clear: speed versus robustness. If you’re looking for extreme robustness-for example, the capability of surviving IIS crashes-consider the following, additional issues.
You need a machine (not necessarily the local Web server machine) that contains an installation of SQL Server 7.0 or any newer version. You have to buy a SQL Server license if you don’t already have one. This might be good for Microsoft, but not necessarily for you or your client. If your application, say, is based on Oracle or DB2, couldn’t you simply store your session state to a database in the DBMS of choice? The answer is a disappointing no in ASP.NET 1.x, but a resounding yes in ASP.NET 2.0!
In ASP.NET 2.0, you can create a custom session data store that, according to the provider model, plugs into a common infrastructure and API and implements data storage and retrieval on top of the file system, a custom DBMS, or a customized table in SQL Server. In ASP.NET 2.0, the session state subsystem has been refactored to allow developers to replace most of the functionality. You have the following options to customize session state management.
- You can stay with the default session state module but write a custom state provider to change the storage medium (e.g., a non-SQL Server database or a different table layout). In doing so, you can also override some of the collection classes used to bring data from the store to the Session object and back.
- You can stay with the default session state module but replace the session ID generator.
- You can unplug the default session state HTTP module and install your own. Technically this was possible in ASP.NET 1.x but this option is the last you should consider. Obviously, it provides the maximum flexibility but it is also extremely complicated and thus not recommended unless it proves strictly necessary.
Using a database as the session state data store also poses configuration issues, especially in ISP scenarios. The SQL Server environment needs to be extended to accommodate a new database and its tables, stored procedures, and related jobs. For this task, administrative privileges are required or the collaboration of the DBA.
In ASP.NET 1.x, credentials used to access session state stored in SQL Server depend on the connection string. If explicitly provided, user name and password will be used to access the database. Otherwise, if integrated security is requested, the account of the currently logged in client is used. This approach poses some administrative issues for intranet sites using client impersonation. In these cases, in fact, you have to grant access to the database to every client account that might be making calls. In ASP.NET 2.0, you can configure the session state so that the identity used to access SQL Server corresponds to the account running the ASP.NET worker process. This new optional behavior for SQL Server-based session state is consistent with the behavior of the other remote state server-the one using the Windows service.
Almost every Web developer moving to ASP.NET from classic ASP found, in the beginning, that it was quite weird to be limited to a single form. More exactly, ASP.NET requires that only one server-side form is enabled at a time. You can place multiple server forms on an ASP.NET page so long as only one is active. You can also place as many client HTML forms as needed with no sort of limitation. A client HTML form is a <form> tag devoid of the runat=server attribute.
Multiple forms are useful to implement common features such as a search or a login box. On the other hand, the single form model was chosen as one of the pillars of ASP.NET because it forces page self-posting and makes the implementation of cross-request state dramatically easier. In ASP.NET 1.x, posting to another page is possible only using client HTML forms or redirecting the browser to the desired page after storing parameters to the session state. If you post using a client HTML form you can’t use viewstate and the type-safe programming model of ASP.NET; you are forced to use the Request’s Form or QueryString collections as in classic ASP.
In ASP.NET 2.0, you’ll find a more structured approach to cross-page posting that, although different from classic form posting, allows you to pass values to another page through the ASP.NET postback mechanism.
In ASP.NET 2.0, you can instruct certain button controls to post to a different target page. Button controls that support cross-page posting are those that implement the IButtonControl interface-Button, ImageButton, and LinkButton controls.
Authoring a Web page that can post data to another page requires only a couple of steps. First, you choose the controls that can post back and set their PostBackUrl property to the desired target URL. Here’s how to proceed.
<form id="form1" runat="server">
<asp:TextBox runat="server" ID="Data" />
<asp:Button runat="server" ID="buttonPost"
What about the view state? When the page is enabled for cross-page posting, a new hidden field is also created named __PREVIOUSPAGE. The field contains the view state information to be used to serve the request to the new page. This view state information is transparently used in lieu of the original view state of the page being posted to.
You use the new PreviousPage property to reference the posting page and all of its controls.
void Page_Load(object sender, EventArgs e)
// Retrieves posted data
t = (TextBox) PreviousPage.FindControl("Data");
Access to input controls is weakly typed and occurs indirectly through the FindControl method because the target page doesn’t know anything about the type of the posting page.
If you know exactly who will be calling the page, you can flag the target page with the @PreviousPageType directive. This causes the PreviousPage property to be typed to the right source page class.
Passing values from one page to another is a task that can be accomplished in a variety of ways-using cross-page posting, server transfer, HTML forms, or query strings. Which one is the most effective for developers?
Note that in ASP.NET 2.0, cross-page posting as well as server transfers (the Server.Transfer method) offer a familiar programming model but potentially move a significant chunk of data through the __PREVIOUSPAGE field. In other words, these approaches send values for all the input fields in the source page. In many cases, the target page just needs to receive a few parameters to start working. If this is the case, HTML client forms might be more effective in terms of data being moved. HTML forms, though, require an ASP-like programming model. In my opinion, all considered this is the most effective approach-less data moved, same effect.
All Web developers dream of an environment that allows them to execute code on the server and update the page without a full refresh. This kind of feature is not natively part of the HTTP world so to get it working you must be ready to pay some price. In first place, you need a browser that can issue HTTP calls out of band. Internet Explorer 5.0 and newer versions come equipped with an ActiveX component named XmlHttpRequest. In spite of the name that evokes XML stuff, this object is nothing more than a thin object model built around the HTTP protocol. There’s nothing related to XML in what it does except perhaps the fact that it can carry XML data. Loving this object released in the spring of 1999, the Mozilla team created a clone named XmlHttpRequest and baked it in the DOM of Mozilla browsers. Recently, Opera also did the same so that today virtually all browsers have the capability of issuing HTTP command out of band.
ASP.NET 2.0 provides this feature through script callbacks, which is an interface that pages and/or controls implement to favor out-of-band calls. When enabled, the feature forces the ASP.NET runtime to inject some tailor-made script code to trigger the remote call.
Script callbacks work nicely in ASP.NET 2.0 and are not that hard to implement in ASP.NET 1.x. Check out the “Cutting Edge” column in the August 2004 issue of MSDN Magazine for an example. The rub lies in the fact that in their native form, script callbacks add yet another layer of code to your application. It’s not object-oriented code; it’s not modular code; it’s simply a tangle of function calls and methods that span the client and the server. But it works on a good number of browsers-Pocket Internet Explorer is the most popular browser for which it poses some issues. NetFront is an alternate Pocket PC browser that overcomes the limitation of Pocket Internet Explorer.
By the time you read this, Microsoft should also have disclosed a lot of details regarding Atlas-the ASP.NET 2.0 next (and more structured) version of script callbacks.
Regarding the use of script callbacks-whatever library you use-there are two considerations to bear in mind regarding security and page creation. Users navigating with Internet Explorer browsers have to lower the security level to allow at least for ActiveX control calls safe for scripting. This is not required on other browsers. In all cases, you must be able to merge the return values of server calls with the DOM of the current browser. This means that you must stay close to the methods and properties in the W3C HTML 4.0 standard.
Probably the most-hyped new feature in ASP.NET 2.0, master pages are a rather effective way to build similar-looking pages. A master page is a distinct page with a .master extension that standard .aspx pages can reference. A master page contains the layout of the page made of static parts shared by all derived pages and dynamic regions that each derived page can customize at will.
A page based on a master is radically different from any other ASP.NET page. It looks like a collection of blocks that the ASP.NET runtime will use to fill the holes in the master. As in Listing 1, the master page contains one or more <asp:contentplaceholder> tags for which derived pages (named content pages) will provide content for. Listing 2 shows a sample content page.
A content page contains <asp:content> tags each matching one of the placeholders in the master. The contents of the <asp:content> tag is used to replace the master’s placeholder when assembling the final markup for the user. This is the essence of master pages in ASP.NET 2.0. Visual Studio .NET 2005 also does a good job of providing page authors with a preview of the final page merging master and content pages. Some considerations apply to master pages.
True visual inheritance à la Windows Forms is not a goal of ASP.NET 2.0 master pages. The contents of a master page are merged into the content page, and they dynamically produce a new page class that is served to the user upon request. The merge process takes place at compile time and only once. In no way do the contents of the master serve as a base class for the content page. There’s no way for the page code file to incorporate functions defined on the master. Likewise, trace and debug options, imported namespaces, languages, and whatever settings you set in the @Master directive are not copied at the page level.
You can set the binding between the master and the content at the page level and also at the application or folder level. Application-level binding means that you link all the pages of an application to the same master. You configure this behavior by setting the Master attribute in the <pages> element of the principal web.config file.
<pages master="MyApp.master" />
If the same setting is expressed in a child web.config file-a web.config file stored in a site subdirectory-all ASP.NET pages in the folder are bound to a specified master page.
Having masters automatically associated with pages is tempting, but consider the following before you do it. A folder configured to use a given master can’t contain standard ASP.NET pages that are not bound to the master. At no time can you add a new page to the folder that is not designed to support that particular master.
Personally, I consider master pages to be a purely visual feature. If you need to derive pages that incorporate and inherit predefined behaviors, master pages are not the right feature. In this case, you’re better off building your own hierarchy of page classes through the classic OOP mechanism and code file classes.
#10-Data Source Controls
In ASP.NET 2.0, data-bound controls can receive their data in two ways: through an enumerable data source object like in ASP.NET 1.x and through a data source control. A data source control is a server control designed to interact with data-bound controls and hide the complexity of the manual data-binding pattern. A data source control saves the developer from writing binding code explicitly as too often required by ASP.NET 1.x.
Data source components not only provide data to controls, they also support data-bound controls in the execution of other common operations such as insertions, deletions, sorting, and updates. Each data source component wraps a particular data provider-relational databases, XML documents, or custom classes. The support for custom classes means that you can now directly bind your controls to existing classes in your business or data access layer.
Existing data-bound controls such as DataGrid and Repeater don’t take full advantage of data source controls. Only ASP.NET 2.0-specific controls such as GridView, FormView, and DetailsView benefit from the true power of data source controls. This is because new controls have a different internal structure specifically designed to deal with data source controls and share with them the complexity of the data-binding pattern.
A data source control represents one or more named views of data, each of which manages a collection of data. The data associated with a data source control is managed through SQL-like operations such as SELECT, INSERT, DELETE, and COUNT, and through capabilities such as sorting and paging. Data source controls come in two flavors-tabular and hierarchical, as in Table 2.
Note that the SqlDataSource class is not specific to SQL Server. It can connect to any ADO.NET provider that manages relational data. Connection string and the provider name are specified via properties.
Two data source controls are of key importance for ASP.NET 2.0 applications because of their frequent use-SqlDataSource and ObjectDataSource.
SqlDataSource works through SQL commands and stored procedures. It returns data through ADO.NET classes-DataSet or data reader. It doesn’t provide paging capabilities and relies on the stored procedure or the SQL command text for sorting. The SqlDataSource control supplies built-in capabilities for caching and conflict detection. Caching, in particular, means that the result of the query can be stored in the ASP.NET cache for the specified duration and retrieved from there instead of re-running the query.
ObjectDataSource works through method calls and returns data either through ADO.NET objects or custom collection classes. Paging and sorting are supported only if the underlying classes provide paging and sorting mechanisms. In other words, paging and sorting work if the methods provide parameters to extract only a subset of records sorted in a certain way. Caching is automatically supported only if data is returned via ADO.NET classes.
What’s the difference between SqlDataSource and ObjectDataSource and when should you use which?
Using SqlDataSource is inherently simpler and requires much less code to write. To some extent, though, it doesn’t provide for the implementation of advanced scenarios where a business layer is required. ObjectDataSource allows data retrieval and update while keeping data access and business logic separate from the user interface. On the other hand, using the ObjectDataSource class doesn’t automatically transform your system into a well-designed, effective, n-tier system.
Data source controls are mostly a counterpart to data-bound controls so that the latter can work more intelligently. To really benefit from ObjectDataSource, you must have your DAL already in place. ObjectDataSource doesn’t break n-tier systems, nor does it transform existing systems into truly n-tier systems. It greatly benefits, instead, from existing business and data layers. Between the lines, the adoption of ObjectDataSource requires the implementation of common enterprise design patterns for a DAL, such as the Table Data Gateway pattern.
Figure 2 measures the impact of SqlDataSource and ObjectDataSource controls on your code. It’s my pleasure to credit Fritz Onion for the idea of the diagram. You can read Fritz’s original comment here: http://pluralsight.com/blogs/fritz/archive/2005/08/09/13940.aspx.
Overall, I believe that switching to ObjectDataSource increases the complexity of your code and the amount of code you have to write quite significantly. Using ADO.NET classes gives you free caching and some sorting and paging facilities. All of this has to be manually coded if you opt for custom collections. It’s my opinion that the complexity gap is larger between SqlDataSource and ObjectDataSource than between two ObjectDataSource instances using ADO.NET and custom classes. On the other hand, the more you take control of the plumbing, the more you gain in flexibility and maintenance.
ASP.NET 2.0 comes with a full bag of new controls and features. All of these features have been designed and implemented to ease your approach to the new platform and to diminish the amount of code you write. Don’t be fooled by jaw-dropping demos scientifically created to leave you enthusiastic about a given feature.
ASP.NET 2.0 doesn’t lie about its capabilities; some demos, though, tend to show the best case whereas most developers working on real-world applications should perhaps be more interested in average or worst cases. My goal in this article was to take ten features and discuss them enough so that you’ll feel comfortable enough to delve deeper beyond the surface of documentation and demos.


tier: cub

shelf: health

title: Trauma Care & Emergency Care

text:
Trauma Care & Emergency Care
At Swift Star we are dedicated to providing exceptional trauma and emergency care services. Our facility, staffed by board-certified physicians and a team of experienced healthcare professionals, is equipped to handle a wide range of traumatic injuries and emergencies. We understand the critical nature of trauma care and are committed to delivering the highest standard of medical attention to each of our patients.
Emergency and Trauma Care
Immediate Response to Traumatic Injuries
Trauma-related injuries can occur from various incidents, including motor vehicle collisions, falls, sports injuries, assaults, and more. Our team is prepared to provide rapid assessment and intervention for:
Motor vehicle accident injuries
High-impact sports injuries
Slips, trips, and falls
Industrial and workplace accidents
Animal bites and burns
Electrical shock injuries
Advanced Diagnostic and Treatment Options
Our trauma care team utilizes the latest diagnostic tools, including X-rays, CT scans, and ultrasounds, to quickly assess the extent of injuries.
Our Approach to Trauma Care
At Swift Star, we follow a multidisciplinary approach to trauma care, ensuring that each patient receives comprehensive and coordinated treatment. Our services include:
Rapid stabilization of vital signs
Pain management and critical care interventions
Surgical evaluations and operations by specialized surgeons
Ongoing monitoring and support in our state-of-the-art facilities
Specialized Care for Trauma Patients
Understanding the unique needs of trauma patients, we provide specialized care for all patients. We also offer support services to aid in the recovery process.
Reasons Why You Should Choose Swift Star for Trauma and Emergency Care
Expert Medical Team: Our emergency physicians and trauma specialists are leaders in their field.
Advanced Technology: With cutting-edge diagnostic and treatment technologies, we ensure accurate diagnoses and effective treatments.
24/7 Availability: Our doors are always open, providing round-the-clock care to meet the urgent needs of our community.
Patient-Centered Care: We prioritize the comfort and well-being of our patients and their families.
Swift Star is committed to setting the standard for trauma and emergency care in. Trust us to be there for you and your loved ones in times of need.
What are the common causes of abdominal pain?Abdominal pain can arise from various factors, including indigestion, gas, infections like gastroenteritis or urinary tract infections (UTIs), and conditions such as appendicitis, irritable bowel syndrome (IBS), or gallstones. Additionally, menstrual cramps, injury or trauma to the abdominal area, kidney stones, and even serious conditions like abdominal aortic aneurysm or cancer can also lead to abdominal discomfort.
How can I differentiate between abdominal pain and symptoms of a heart attack?Abdominal pain typically manifests as discomfort or distress in the region between the chest and pelvis, often accompanied by symptoms such as cramping, bloating, or sharp pain. On the other hand, a heart attack usually presents as chest pain or discomfort, which may radiate to the arms, neck, jaw, or back, along with symptoms like shortness of breath, sweating, nausea, and a feeling of impending doom. While abdominal pain may sometimes resemble indigestion, especially in women, it’s crucial to seek immediate medical attention if there’s suspicion of a heart attack, as symptoms can vary.
What diagnostic procedures are performed for abdominal pain at Swift Star Emergency?At Swift Star Emergency, the diagnostic process for abdominal pain emergencies begins with a thorough assessment of symptoms and a detailed physical examination, including gentle palpation to pinpoint the source of discomfort. Additional evaluations such as blood tests, urinalysis, ultrasound, and potentially a CT scan may be ordered based on the initial assessment. These diagnostic tools help our team swiftly identify the underlying cause of abdominal pain and tailor treatment accordingly.
What treatment options are available for abdominal pain at Swift Star Emergency?Treatment for abdominal pain emergencies at Swift Star Emergency may include medications to alleviate pain and inflammation, manage infections, regulate bowel movements, or control stomach acid production. In cases where a serious underlying issue such as appendicitis or a hernia is identified, surgical intervention may be necessary. Our skilled team of board-certified physicians and experienced staff are dedicated to providing prompt and appropriate care for acute or chronic abdominal pain across all age groups.


shelf: finance

text:
Premium Beard Grooming with Bulk Apothecary's Brush and Comb Set
Introducing our exquisite Beard Brush and Comb Set, meticulously crafted for gentlemen who appreciate the finer things in life. This set is not merely a grooming tool; it's an experience, ensuring your beard looks as good as you feel.
A Must-Have for Retailers
This set is not merely a product; it's an easy sale. The timeless design, premium quality, and exquisite packaging make it a sought-after gift, ensuring it's a hit in your shops. A suggested retail price for this elegant set falls between $12-$18, while similar grooming sets are priced up to $29.99 in the market.
Luxurious, Ergonomic Beard Brush
Crafted with dense boar bristles and a black wooden handle, our brush not only styles but also stimulates oil production and removes impurities, ensuring a healthy, vibrant beard.
Versatile, Double-Sided Comb
Our double-sided wooden comb, with fine and wide teeth, effortlessly detangles and shapes your beard, offering a seamless grooming experience with its durable and sophisticated wooden design.
Sleek Packaging, the Perfect Gift
Encased in a black satin bag and a premium gift box for easy wrapping or labeling, this set is the epitome of thoughtful gifting, making it a splendid present for any occasion and any husband, boyfriend, brother, or bearded friend
Indulge in a grooming experience par excellence with Bulk Apothecary's Beard Brush and Comb Set - where sophistication meets functionality. Elevate your beard care routine or gift a loved one the joy of a well-kept beard.
Beard Brush Measures 4.75" x 2.5" x 1.5"
Beard Comb Measures 4" x 2.5"
Satin Bag Measures 6.2" x 3.75"
Gift Box Measures 4.7" x 1.8" x 1.5"


shelf: education

title: Essay writing app

text:
You can now find lots of online writing applications that enable you to compose essays. If you are seeking a method which could help you enhance your writing skills, there are numerous programs available on the internet that could help you in this aspect.
The students of high school should register in an essay writing plan as a portion of their study routine and take part in a school essay contest. In a college essay competition, the students submit their books and take part in discussions with specialists in various places, including psychology, politics, social sciences, and etc.. They also receive help in the writing process from the coaches that give comments along how in which the student has written.
The writing program isn’t just for high school students. Most pupils who wish to compose essays also gain from it. These programs use many online essay writing service editing tools, such as sub-section analysis, paragraph highlightingparagraph highlighting, to improve the writing process. The many tools assist in providing better arrangement and guidance to the pupil.
Various online applications and training classes in article writing are available for the pupils in all subjects. The students can also look for online courses in essay writing. These applications are offered to the students by professionals who have expertise in the field of essay writing.
Students can search for writing applications which are provided in the internet for them to excellent essay writers take part in. A few of these plans require students to publish their duties in written form. Other programs allow the pupils to modify the content of this essay as they see fit. On the other hand, the most important issue would be to compose and post it, which requires a keen and good analytical mind.
If you wish to write essays for college, you’ll also be required to create a list of subjects. This list can consist of all the topics in your path and you may pick the essay subject depending on the course syllabus. College students are expected to read a lot of essays in their class. In order to pass the examination, they also need to have a good essay performance.
The essays need to get written on various topic areas, so that students could study and grasp the concepts. Pupils should also submit their homework utilizing online applications. This is going to make the entire process a lot simpler.
The article application is available to each student in each subject. There are many courses and programs within the industry of essay writing that can help you do well in the examinations and also make a good title for yourself.


shelf: home-craft

title: Spring mixed media banner

text:
Hi Canvas Corp Brands Fans….
Lynne Forsythe here to share my latest creations.
Since the first time I encountered a Mix and Match Pad
I have been in love
and the Spring Showers Mix and Match is no exception.
Do you see all the Canvas Corp Goodness….
I am in crafty heaven……..all in one pad!
So I wanted to see how many things I could create with
this Mix and Match Pad.
My first creation was a banner….
My banner inspiration came from the
Fabric Panel ~ Spring Showers.
The fabric panels are 100% cotton fabric with screen printed art, so they can take any type of paint and are washable if the paint is. Glimmer Glaze is washable.
Glimmer Glaze is perfect for adult coloring on any surface including papers and fabrics and they look terrific. Add water and let the color spread or use the brush and paint very detailed, your choice!!
But it was soooo fabby I didn’t know what to do….
So I did the unthinkable…
I tore it into strips!
I then ran a running stitch through the strips…..
Next, I pulled out the Canvas Sheet
and cut (6) triangles …
and manhandled them to get frayed edges!
I then gently spritzed the strips with water to make
them a bit more workable as the
TA ~ Glimmer Glaze made the canvas a tad stiff!
I then adhered the strips to the triangle pieces
with Multi Medium ~ Matte.
Now….the Fabric Panel wasn’t the only thing I painted
with the Tattered Angels Glimmer Glaze.
When I painted the butterflies in the
Butterflies on Ivory paper
I wanted them to look “glazed”
so I was rather heavy handed with my application.
Canvas Corp offers a wide range of papers that are ready to be colored or painted in your way.
I loved the end result!
Also, I accented the banner with vintage buttons painted with
Tattered Angels ~ Glimmer Glaze ~ Desert Sun.
I used several different colored Cords and Rope.
to hang the banner.
love the layers of cords that looks so natural and offer a pop of color.
Slip colored burlap in between the layers for a great pop of color. Let your hair down and let the burlap fringe.
I just couldn’t stop!!!
So…what else did I make??
….and a Gift Tag!
I still have tons of pieces parts left….
oh what to make next!
Lynne inspires us with her sense of color and style and just love how she tore into this mixed and match pad to create wonderful mixed media products. To see more of Lynne’s work jump over to her blog – The Next Best Thing by Lynne.


shelf: history-culture

text:
National Board of Review Declares Mad Max: Fury Road Best Film of 2015
The National Board of Review has named Mad Max: Fury Road their best picture of the year, a not insignificant deal for a film that promised to be a fun romp and turned out to be something nearing a visceral masterpiece. While the National Board of Review doesn't have the name recognition, nor the clout, of some of the other, early award-giving bodies, like the Director's Guild or the New York Film Critic's Circle or Los Angeles Film Critics Association, it's still a decent prognosticator of what to expect at the Academy Awards. The films that the NBR has picked as their top choice have gone on to compete for a Best Picture Oscar 12 times in the past 14 years (it chose A Most Violent Year as its' best picture in 2014, a great film, but one that wasn't nominated, ditto Quills in 2000). The NBR's choice of Fury Road gives hope to everyone who feels George Miller's road warrior fever dream deserves, at minimum, to be mentioned in the same category as inevitable best picture nominees Spotlight and The Martian.
As we wrote earlier today, one of the many appeals of Miller's film is how lovingly crafted it was, with practical effects (those polecats) and performances that managed to be instantly iconic, none more so than Charlize Theron's bad-ass, axle grased covered, one armed Furiosa. Miller's film transcended mere spectacle by being so brilliantly conceived and executed, with every detail lovingly pored over by artists at every stage of production. One such filmmaker, art director Jacinta Leong, explained to us how she and her team made Miller's automotive dreams come true by fusing multiple cars together, for instance, and ensuring that every insane creation you saw on the screen could actually drive. Yet it wasn't just the Gigahorse Furiosa's War Rig that made the film so special, nor was it simply the relentless action and fantastic stunts—as Leong explained, it was also how committed Miller and the filmmakers were to creating a waterless, choked world in which even the character's many tics, abnormalities and diseases were researched over the many years of pre-production, a hold up that now look like something of a lucky break.
Mad Max: Fury Road would have a credible claim to belong in a Best Picture category with only five nominees, but now that ten films are chosen, there's no way this film doesn't get that honor (it's still a longshot to win, however). The National Board of Review is the first legitimate film organization to make the case that Fury Road belongs in contention with the types of films that usually get nominated, and win, best picture. They chose Fury Road as their best film over those very films, from Lenny Abrahamson's claustrophobic and heartrending Room, to Ridley Scott's operatic, highly enjoyable sci-fi rescue fiml The Martian, to Tom McCarthy's brilliant, brutal Spotlight, and over Steven Spielberg's Cold War-era Bridge of Spies. These are all very good films, as is Fury Road. That's why this feels like a big deal.
Here's the full list of NBR award winners.


shelf: civic-law

title: What are the duties of chief minister in indian constitution

text:
The elected head of the govt of the states in India is named because the Chief Minister of that specific state or union territory. The governor appoints the Chief Minister following elections to the state legislature . The party will elect their leader who got bulk of votes, the candidate for Chief Minister, who is invited by the governor to inaugurate as Chief Minister of State. The Chief Minister's term lasts for typically for five years, or until next General Elections. However, there is no limit for the number of terms he can serve.
The candidate must be a minimum of 25 years aged , a citizen of India, and will be a member of the state legislature will be eligible for the post of Chief Minister. He is elected by the bulk within the state assembly
Duties of Chief Minister He is the leader of the legislative assembly. The decision of the Chief Minister is final. He is only responsible to the Legislative Assembly for the acts performed by the State Council of Ministers. He will be in rescue of a minister if he faces any difficulty during the debates in the Assembly. He has to dare to getting the important bills passed. He has to keep good relations with the people and see that efforts are made to improve the condition of the state.
The Chief Adviser to the Governor: Chief Minister advise governor, so that he can perform his functions. The Chief Minister acts as a bridge between the Governor and the Council of Ministers to their communication . The Governor performs his tasks in matters up on CM advise.
The Leader of the Council of Ministers: The constitution gives supremacy to the Chief Minister by making him the leader of the ministers, thus it is his responsibility to maintain unity among the ministers. He monitors the working of all the ministers and oversees the meetings of the Council of Ministers.


shelf: science-engineering

title: MAGNESIUM MATERIAL PRODUCTS FROM YIRUI

text:
MAGNESIUM MATERIAL PRODUCTS FROM YIRUI
Founded in 2012, Nantong Yirui Metal is a professional supplier of magnesium alloy materials and a processor of magnesium and aluminum alloy die casting, which integrates the smelting, recycling, and processing of nonferrous metals. Our magnesium metal products are widely used in transportation, 3C electronics, aerospace, and other fields.
MAGNESIUM METAL PRODUCTS FOR SALE
MAGNESIUM AND MAGNESIUM ALLOYS
Magnesium Round Bar
Magnesium Metal Block
At Magnesium Metal, we offer high-quality magnesium products that meet the strictest industry standards. Our experienced team is dedicated to delivering the best possible products and service to our customers, ensuring their satisfaction and success.
Whether you're looking for magnesium metal ingots, magnesium metal turnings, magnesium metal blocks, magnesium slag, magnesium round bar, or any other magnesium products, we've got you covered. Contact us today to learn more about our magnesium metal products and services, and discover how magnesium can help take your business to the next level!
Magnesium Alloy Powder
At Magnesium Metal Alloy, we offer a wide range of alloys to meet your specific needs, including AZ91 magnesium alloy, AM60B magnesium alloy, and AM50A magnesium alloy ingot, among others. Choose Magnesium Alloy for your next project and experience the strength, durability, and versatility of this remarkable material.
Magnesium Waste & Scrap
Looking for a sustainable and cost-effective solution for your magnesium needs? Our magnesium scrap for sale is the answer! By purchasing recycled magnesium scrap, you're not only saving money, but you're also doing your part for the environment. We offer a wide range of magnesium scrap products at competitive prices, and our team is dedicated to providing exceptional customer service. Contact us today to learn more about our magnesium scrap for sale.
Magnesium Alloy Die Casting
Magnesium alloy casting is a great choice for a wide range of applications, from aerospace and automotive to consumer electronics and medical devices. So if you're looking for a material that offers strength, light weight, and versatility, magnesium alloy casting is the way to go!
YIRUI MAGNESIUM METAL PRODUCTS?
We Can Provide Multiple Magnesium Metal Products
As a professional magnesium supplier, YiRui Metal can customize the size and chemical composition of our magnesium metal products according to our customer's requirements.


shelf: software-docs

text:
What Does Entity Framework Mean in the Construction Industry?
The construction industry is constantly evolving, adopting new technologies and strategies to streamline processes, improve efficiency, and deliver high-quality projects. One such technological advancement that has made its way into construction is Entity Framework.
Understanding Entity Framework
Entity Framework is a term primarily associated with software development, particularly in the field of software engineering and database management. However, its principles and concepts have found a meaningful application in the construction industry as well.
At its core, Entity Framework is an object-relational mapping (ORM) framework. In software development, it helps bridge the gap between the object-oriented world of programming and the relational structure of databases. In the context of construction, it serves as a powerful metaphor for establishing structured connections between various components of a project.
Application in Construction
The construction process involves numerous entities such as architects, engineers, contractors, suppliers, and clients. These entities are interconnected, and their interactions impact the success of a project. Entity Framework, in the construction sense, refers to the systematic approach of establishing and managing relationships between these various stakeholders and components.
Just as in software development where Entity Framework manages the relationships between objects and their representation in databases, in construction, it manages the relationships between people, materials, equipment, and tasks. By implementing an Entity Framework-inspired approach, construction projects can benefit in several ways:
1. Enhanced Collaboration
Effective collaboration is vital for a construction project's success. By applying Entity Framework principles, stakeholders can be linked together in a structured manner. This fosters better communication, information sharing, and coordination among team members, leading to smoother workflows and reduced chances of misunderstandings.
2. Data-Driven Decision Making
Entity Framework emphasizes the importance of data integrity and consistency. In construction, this translates to accurate and up-to-date information about project progress, material availability, budget allocation, and more. Access to reliable data empowers project managers and stakeholders to make informed decisions, minimizing risks and optimizing resource allocation.
3. Streamlined Project Management
Entity Framework promotes a structured approach to organizing and managing entities. Similarly, in construction, implementing an organized framework for project management ensures that tasks, timelines, and responsibilities are clearly defined and easily accessible. This leads to better project planning, execution, and monitoring.
4. Adaptability and Scalability
Entity Framework's flexibility allows it to adapt to changing requirements and scale with growing projects. In construction, projects often evolve due to unforeseen challenges or shifting priorities. An Entity Framework-inspired approach enables teams to adjust and adapt efficiently without compromising project quality.
While the term "Entity Framework" may have its origins in the world of software development, its underlying principles offer valuable insights for the construction industry. By establishing structured relationships between various entities and components within a construction project, stakeholders can enhance collaboration, make data-driven decisions, streamline project management, and adapt to changing circumstances effectively.
As the construction industry continues to embrace technological advancements, the application of concepts like Entity Framework demonstrates its potential to revolutionize traditional approaches and lead to more successful, efficient, and innovative construction projects.


title: Surgical solutions for tonsil stones

text:
Tonsilloliths, also known as tonsil stones, are uneven and irregular in shape, yellow or white in colour, foul-smelling globules of mucus and bacteria that are usually found trapped in the back of the throat. They often have a cheesy consistency but can develop into hard stones.
The tonsil stones form in the tonsil crypts which are small pockets or crevasses that are present in everyone’s tonsils. The scientific name for these stones is Tonsilloliths.
Recommendation coming soon!
Tonsillotomy or laser tonsil cryptolysis, is a treatment for tonsil stones, bad breath and tonsillitis.
Many patients try and remove tonsil stones by using picks, cotton buds, water jets, etc but removing the occasional tonsil stone is not going to solve the problem and introducing tools into the tonsil area could cause infection. Patients usually want a long-term cure, however. This can usually be achieved by tonsillotomy or tonsillectomy. However, since most patients are adults, they tend to be well aware of the issues with traditional adult tonsillectomy – severe pain for 3 weeks, significant weight loss since eating is too painful for several days, and haemorrhage, which can be severe and require hospitalisation and emergency surgery. Hence, the technique of tonsillotomy.
Also called laser tonsillotomy, laser tonsil resurfacing, or laser tonsil cryptolysis, this is a partial removal of the tonsils under local anaesthetic (spray – no injections). This is a lunchtime treatment – go to work in the morning, have it performed at lunchtime and go back to work in the afternoon. There is usually little post-operative pain and usually no time off work is required at all. Painkillers are not prescribed, just over the counter medication is needed – Paracetamol and/or ibuprofen.


title: About

text:
COMPUPARTS SARL has been trading in Lebanon area since 1998. However from 2002, under the leadership of a new management, we steadily grew into a leading gaming solution provider in the region. During those days the gaming industry was just evolving.
The new management had to shoulder huge responsibilities of nurturing the company, sustaining growth and guiding it into the future and managed the organisation by adopting fresh new ideas and lead the company to greater heights of success.
Today COMPUPARTS sarl is a major business entity across segments in the PC Gaming hardware market, High end peripherals & Technology space.
To enhance management efficiencies the company is now segmented into RETAIL & DISTRIBUTION.
Our core business is in the PC Gaming hardware Segment. However, we also specialize in High end rendering equipments, High Quality Accessories in the Technology and Telecom space. In an ever-changing market, it's vital that customers not only get the best choice of products, but the most unique and up-to-date in terms of technology/style. By working closely with our partners, we are able to offer a portfolio of products that are the latest in terms of technology and emerging trends.
We are a Sales, Marketing, Distribution and Business Support Services Group, operating across two divisions.
Our Company Services incorporate Brand Management, Supply Chain Management, Marketing/Promotion, Sales/Customer Support, Product Launches/PR, Interactive Games Competitions/Events and Retail Management.
With over 26 years of experience across segments you can rely on our team to understand your requirements and fulfill them.
Some of the best retailers & etailers in the country have trusted us with their business, since we continuously develop and adopt best practice market solutions.
Whilst taking great pride in this trust, we are modest in our approach towards this success.
Every member understands that we are only as good as our NEXT Success, not our PREVIOUS One.
We take pride in our team of dedicated professionals who will customize solutions to match the requirements of your business.
Our team saves time by eliminating duplication of efforts/processes and consequently improves Operational Efficiencies.
Our unique focus of providing quality service to our customers and specialization in the segment gives us an advantage over our competitors.
Dedicated team : our customers are serviced by a professional sales and technical people that understand and provide customized solutions. You'll be able to get in touch with them directly via e-mail, by landline or mobile numbers.
Our Team is made up of unique individuals who have a solid background in the Hardware Related Gaming equipments, Video Games, Telecom and IT industries. Together with this team of skilled and dedicated personnel, we are constantly ‘raising the bar’ and redefining Service Excellence.


title: Susan fornoff

text:
Paired with Good Players June 11, 2025 by Aaron Dear Molly: I’m terrible! How can I make sure I don’t annoy good players?
Molly McMulligan’s FAB 5 May 15, 2025May 14, 2025 by Aaron Couples in Colorado can play golf together at any public course, but sometimes it’s fun to feel like a team, competing against other teams, and then enjoy a 19th hole with other teams of couples.
DEAR MOLLY: Why is the hole shaggy? Can I fix it? April 30, 2025 by Aaron Are the greens within a few inches of the hole being damaged by leaving the flagstick in while putting? Are golfers allowed to tamp down the edges of the hole before putting without penalty?
Molly McMulligan’s FAB 5 April 16, 2025 by Aaron D-I-S-C-O | Music manners for the course! The touchiest topic in golf these days, by far, is on-course music. Who gets to play it, and how loud?
DEAR MOLLY: why do I pay multiple membership fees? April 2, 2025April 2, 2025 by Aaron I love everything about belonging to a golf club or league. I belong to three of the CGA’s member clubs and am even thinking about joining a fourth. But I don’t get why I have to pay CGA membership dues at every club.
DEAR MOLLY: Wine, please. How can I get it on the course? March 5, 2025 by Aaron I like to sip wine when I play golf, but the drink carts almost always carry just beer and liquor. Is it OK for me to bring my own?
DEAR MOLLY: I changed tees mid-round. Can I still post? February 12, 2025 by Aaron Playing a new course, it became clear that I had teed it up a little farther back than I should have and so I moved up a set of tees. Is there any way that I can post that round?
Molly McMulliGan’s Fab 5 January 31, 2025January 22, 2025 by Aaron Mix Golf Into Your Super Bowl Sunday


title: Easy dollar tree diy fourth july art

text:
Pick up a dollar store Fourth of July flag and use an old frame to make a patriotic wall hanging for your home.
There is something so exciting about this time of year when the days seem longer and the sun is shining. The kids are just about out of school and life seems less stressful-well hopefully anyway.
This post contains affiliate links at no additional cost to you. Please see my full disclosure here.
It is time for our monthly Create With Me Challenge and this month is all about Dollar Store Projects-yay!! I love to see the creativity that is shared with items from the Dollar Store.
It really is amazing to see what people can come up with. Thank you to Samantha from Little Bits of Home for hosting this fun challenge and Amy from My Life From Home for creating our snazzy new graphic!
Don’t you just love it? There are some exciting new changes with the Create With Me Challenge. We are excited to welcome Sue from A Purdy Little House.
She just made over her daughter’s bedroom that you must see!!
And, we are so excited to announce that we will be starting an Instagram challenge for YOU. We will let you know the supply that wins the voting next week and we want to see your projects using that supply, too!
So it’s important to vote for your favorite. We hope you will join us in this fun challenge! Look for more details on Instagram.
For this challenge I am sharing a very simple DIY Fourth of July Art project that you can seriously put together in 15 minutes flat.
Dollar Store Fourth of July Art
- Dollar Store Flag
- Dollar Store Foam Board
- Staple Gun
- Old Picture Frame-no glass needed
It is as simple as just wrapping the flag around the foam board and attaching it with a staple gun both to the board and then to the inside of the frame.
Sometimes I overthink things and make the projects more difficult than they need to be.
I really wanted to have a pretty piece of art to celebrate the Fourth of July and this looks so festive hanging in my dining room. It certainly doesn’t look like it cost $3!
The frame that I picked up years ago at a yard sale gives the flag dimension and really makes it pop.
[Tweet “Easy Dollar Store DIY – Fourth of July Art – Our Crafty Mom #createwithmeprojects #dollarstore”]
Check out our survey for next month and join us for this fun Create with me Challenge! Don’t forget to visit the other bloggers below to see what great ideas they came up with using Dollar Store projects.
Supply Photos via Amazon.com
**Pin for Later**
Thanks for visiting Our Crafty Mom. Have a great day!
You may also like these dollar store ideas:


tier: polar

title: 1227321 prince williams new look triggers debate as he breaks cover after palace announcement

text:
Prince William has left fans guessing with his new look during his first appearance after coming face-to-face with his younger brother Prince Harry.
The Prince of Wales can be seen sporting a beard in the pictures from his first public appearance on Thursday since he returned from his summer trip to Balmoral.
The future King looked little bit different as he visited the Saatchi Gallery in London after issuing a statement regarding his return to royal duty.
William's outing comes amid reports of his encounter with Harry at their uncle's funeral, however, the feuding brothers did not speak even being under the same roof.
The heir to the throne's new look reminded fans of his and Prince Harry feud over the beard.
The two brothers reportedly had a rift in the build-up to the Duke of Sussex's wedding over the latter's unwillingness to shave his beard off.
Some royal fans believe William has taken a leaf out of his brother's book by also growing out his facial hair, given his recent reunion with Harry.
Prince William's Homewards programme has partnered with Eleven Eleven Foundation and Saatchi Gallery to launch a groundbreaking exhibition which seeks to utilise the power of art to enhance the UK's understanding of homelessness and ignite hope that it can be ended.
The 'Homelessness: Reframed' exhibition opened at Saatchi Gallery on Wednesday, August 7 and will run until Friday, September 20.
King Charles III's eldest son founded Homewards in June 2023 as part of his mission to end homelessness and change the narrative and stereotypes around the crisis.
Kensington Palace stated the prince wanted the project to generate new imagery around homelessness and showcase the multiple layers of the crisis including feelings of hope.
Diddy not allowed to take the stand as trial unfolds
Hailee Steinfeld shares rare glimpse on married life with Josh Allen
'Batman' director Matt Reeves to produce the forthcoming movie
Uma Thurman reveals she learned about her condition after performing one of the psychiatric tests
Doja Cat vs fan: A complex interaction sparks online debate
Taylor Swift Rhode Island home: Human remains were found on May 14


title: A lenten message from the bishop

text:
This year, 2025, the Christian church commemorates the 1,700th anniversary of the Council of Nicaea. Nicaea, a city in modern-day Turkey, is where the emperor Constantine convened a council in 325 A.D. to settle disputes in Christian theology and practices. It is significant for Christians because it was the first ecumenical council of the church and established the doctrine of the Trinity, finalized the biblical canon, and recognized a liturgical Church Year; it is also most remembered by Christians for the Nicene Creed, which is still used in our liturgies.
However, we can also note that, while the observance of a Lenten fast before Easter began years earlier, the Council of Nicaea in 325 A.D. is considered the first time a 40 day season of Lent (not counting Sundays) is acknowledged. So, it’s interesting to note that Christians have set apart this time of renewal for at least 1,700 years.
The observance of Lent has historically been a time of preparation for Easter and included fasting, prayer, spiritual reflection, and acts of self-sacrifice and benevolence toward others. It began with Ash Wednesday, when people were marked with ashes, and was traditionally a time of preparation for baptism, which took place on Easter. The 40 days are reminiscent of Jesus’ 40 days of fasting, prayer, and temptation by the devil in the wilderness.
For many Christians today, Lent remains a time of fasting, prayer, and spiritual renewal as we journey with Jesus in his passion and death, and prepare to celebrate his resurrection and the new life we have through him. Some people observe Lent by “giving up something” during Lent as a form of fasting from a favorite food or activity; others “add something” as a way of enriching their spiritual life, such as adding biblical readings, prayer practices, serving others in need in their communities, and supporting mission projects.
There are countless ways to observe Lent, as varied as the ways in which God has called you to deepen your faith in Christ and proclaim his love to others. As you journey through Lent this year, remember that you join the faithful who have journeyed through Lent for at least the past 1,700 years. In your prayers, your Lenten practices, and your Christian mission and witness, you join the faithful “of every time and place,” as we proclaim in our Eucharistic prayers.
May Jesus accompany you on your spiritual journey with him. May the Holy Spirit deepen your faith and guide you to be the hands and feet and voice of Jesus in the world. And, may our gracious and benevolent God grant you a holy and blessed Lent.
+Bishop Wilma S. Kucharek


title: Efficiency in action exploring top tier concrete crushers and screeners

text:
Crushers and screeners are integral parts of converting raw materials into final products. A large majority of construction works utilize concrete as a main material. So what is concrete processing and concrete crushing, and how does choosing the right crushers and screeners enhance operational efficiency? Let’s find out.
Unpacking Concrete Processing: An Overview
Concrete is the most commonly used material in construction. It is composed of different materials, such as cement, coarse aggregates, and fine aggregates. The concrete manufacturing process involves crushing, screening, and sorting the raw material into manageable sizes and grades using specialized equipment.
What is Concrete Processing?
Concrete processing involves breaking down concrete structures, debris, or waste into smaller, reusable components. The goal is to extract valuable aggregates and materials from the concrete for reuse in new construction projects, reducing the need for virgin resources.
The Importance of Efficient Concrete Processing
Efficient concrete processing results in an effective end product. Concrete recycling helps construction projects reduce their carbon footprint by avoiding waste concrete going to landfills.
The Role of Crushers and Screeners in Concrete Processing
Concrete is broken down into smaller pieces using a crusher, and subsequently, a screener is used to sort the crushed concrete into different sizes. This equipment efficiently delivers a high-quality end product, ensuring the usability of recycled concrete materials.
Delving into Concrete Crushers: Your Ultimate Guide
A concrete crusher is a fundamental part of processing waste concrete into usable material. So choosing the right crusher is your best bet.
How Do Concrete Crushers Work?
Concrete crushers work by exerting force on the feed material so that it can be broken down into smaller and more manageable pieces. Impact crushers, mobile crushers, and jaw crushers are the most common types of crushers used in concrete processing.
Traditional vs. Mobile Concrete Crushing: A Comparison
Traditional concrete crushing methods involve stationary crushers located at the demolition or construction site. However, mobile concrete crushers can be transported to different sites, reducing transportation costs and enhancing accessibility.
Examining Concrete Screeners: Enhancing Your Processing Operations
Concrete screeners or vibratory screens are used after crushing concrete. These screeners categorize crushed concrete into different sizes.
Understanding the Function of Concrete Screeners
The crushed concrete is passed through various mesh openings to sort it into required sizes. This sorting process ensures that each size of recycled concrete can be used for its intended purpose in new construction projects.
The Benefits of Mobile Concrete Screeners
Mobile screeners have got a lot of traction due to their high mobility and efficiency. Their mobility allows them to be transported to different sites, providing on-site screening and reducing the need for additional equipment.
Factors to Consider When Selecting a Concrete Screener
Here are some important factors to consider while choosing a concrete screener:
- Size and shape of raw material
- Desired output size
- Screen size
- Vibrating mechanism
Optimizing Your Concrete Processing: Essential Tips and Techniques
It is essential to follow the best practices to enhance the efficiency of your concrete crushing and screening processes.
- Choose the appropriate concrete crushers and screeners according to your processing needs.
- Perform regular maintenance of equipment, such as routine inspections and lubrication.
Future Trends in Concrete Processing Equipment
The global crushing and screening equipment market is flourishing, with a forecasted growth rate of 5.2% between 2021 to 2030. Looking forward, automation, improved energy efficiency, and advanced material separation techniques are the most anticipated trends in this sector.
We examined how cutting-edge machines are revolutionizing concrete recycling by maximizing efficiency and output while minimizing cost and wastage. To know about crushing equipment, click here.


text:
7 Reasons Why the Salesforce-MuleSoft Mega Deal is Rocket Fuel for All API Players
Salesforce’s big $6.5 acquisition of MuleSoft is still stirring up waves--buffeting the API sector. A month later, analysts, customers and competitors continue to digest the news. Some competitors may even feel jilted or scared. But, IDN has come up with 7 reasons why the Salesforce-MuleSoft deal will be great for all API players.
Salesforce’s big $6.5 acquisition of MuleSoft is still stirring up waves--buffeting the API sector. A month later, analysts, customers and competitors continue to digest the news. IDN has come up with 7 fallouts for API players.
Some suggest Salesforce has now “picked the winner” in the API sweepstakes. Not exactly.
Yes, it’s true that in acquiring MuleSoft, Salesforce has said the MuleSoft API-focused Anypoint Platform will power coming generations of the Salesforce Integration Cloud. But, it’s not doom-and-gloom for all other API companies.
In the big picture, the Salesforce-MuleSoft marriage should offer very rosy news for all players in the API space – vendors, consumers and even folks who now think they are now firmly on the sidelines. (Hint: In an API-driven world, no provider of apps, data or services, will be on the sidelines for long.)
So with that as preamble, let’s look at the 7 fallouts from the Salesforce-MuleSoft deal:
1. APIs have just rocketed to into a de facto standard status. Yes, APIs had already been growing in popularity – and momentum for years. But, thanks to Salesforce, APIs have overnight accomplished what 1 million connector downloads just couldn’t have done. APIs are about to become the de facto, first-movers for integrations of all kinds.
Within the year, discussions around APIs will be a featured snippet of any digital transformation project – apps, data, cloud, B2B and mobile B2C. Some member in every stakeholder group – whether developer teams, IT or even business -- will be heard asking “Hmm, does that have an API? What could we do with it?”
2. APIs are poised to be “lingua franca’ for integration – and enjoy a growth spurt never seen before. APIs are now set to quickly grow beyond their roots as ‘bottom-up’ techniques advocated by savvy developers. APIs will no longer be a technical way to describe how integration or connections work.
APIs will become the ‘short-hand’ for easy-to-deliver integration for digital transformation. Thanks for Salesforce-MuleSoft, APIs have moved from mainly a bastion of developers and IT to stronger awareness among non-techie business folks. They will know more about how APis work – and what power they hold for pushing new business results.
3. APIs will drive not only integration – but collaboration. With across-the-board API awareness going skywards, we’ll see more synergy within API stakeholder groups. Developers, IT and business should become collaborative communities (even CoEs) around APIs.
With the help of tools, templates and Best Practices, these API communities will create a seamless and engaging API lifecycle that delivers real benefits to all. With tangible results, we may even see CxOs and other company executives also paying attention to APIs.
4. API collaboration will fuel on-going API Innovation. With improving collaboration, APIs will also become a key part of what is likely to become the next decade’s interesting questions.
Some really cool mind-bending questions like: What else can we connect an API to? Can we auto-generate APIs for on-demand & secure ways to connect to data, other apps and even 100s of services? What does ‘intelligent software’ look like? Do APIs power 2-way, real-time engagements (for people, purchases, machines)? How many other ways should APIs serve AI, blockchain, DevOps and IoT?
5. API technologies can be pivotal to brand new markets. With so many more exciting questions, and such proven payoffs, the most visionary APIs players will use (and build on) their technologies to play key roles to unlock new markets.
In fact, I would argue the Salesforce-MuleSoft deal puts a rock-solid foundation of social proof for API value in place. This rock solid foundation s also a backstop, which now allows APIs to look beyond connecting SaaS and myriad cloud-based apps and data services systems. It would be no surprise that visionary API firms will attract a fresh, new round of investment and an eager crop of young talent.
6. API firms should be sure to enable microservices – For this rosy outlook to bear fruit, however, APIs need to be future-facing.
Case in point: In just the past year or so, as microservices have gained traction, we’ve heard APIs increasingly referred to as ‘legacy’ technology. Uh-oh. No one wants that label in an era where technologies are moving for fast. Let this ‘API as legacy’ conversation be a warning sign to API vendors. So, API vendors, please be on-guard against having that ‘legacy’ label stick.
Right now, APIs and microservices are still symbiotic -- and are actually helping each other act better and deliver more value. But, that could change. API professionals need to be ever watchful that they can continue to deliver relevance and value. (For those of us old enough, when was the last time you heard someone ask about WS* specs?)
7. The most important theme of all is simply this: For now, ALL API companies are winners. The API wave is truly a rising tide that should lift many (if not all) boats. Every prospective enterprise client will be asking how APIs work and what they can do – for IT and business.
So, to all those API firms not named MuleSoft, don’t lament your company wasn’t chosen by Salesforce. Instead, all API companies should feel pumped.
After years of hard work, evangelism and proof of concept, APIs have crossed the chasm. Not just in terms of numbers, but in perspective of an architecture for extensibility, imagination and future-proof integration.
So, exciting times ahead for the entire API space.
Integration Developer News intends to speak with many of the API leaders - those inventing technologies, those using them and even the masses of software and services companies who can extend their reach thanks to APIs. We’ll see just how many of our projections pan out.
In the meantime, let us know what you think at email@example.com


title: 11146

text:
A hospital floral delivery is one of the most reassuring and uplifting gifts you can offer while a loved one is in the hospital. Are you looking for the best Get Well Soon flowers Spring Hill for the hospital? Sending flower delivery to a hospital is simple with Wild Root Florist and Gift Shop, even if you're thousands of miles away. Our local florists are skilled at delivering these unique deliveries and are familiar with the protocols of each hospital in the area. When you order flowers from Spring Hill florist, you can be sure that they will be carefully crafted by a local florist and delivered with attention.
We deliver gifts and flowers directly to local hospitals in our Spring Hill, including The Lantern at Morning Pointe Alzheimer's Center of Excellence, so you can send a special gift no matter where you are. Send flower delivery to The Lantern at Morning Pointe Alzheimer's Center of Excellence.
Let Wild Root Florist and Gift Shop take care of all your flower needs - we provide hand delivery of fresh flowers to The Lantern at Morning Pointe Alzheimer's Center of Excellence from our location in Spring Hill. Working hours:( We work Monday - Friday from 08:30 AM to 04:30 PM and Saturday from 09:00 AM to 01:30 PM and Sunday from 09:00 AM to 01:30 PM) |
Wild Root Florist and Gift Shop delivers flowers to Spring Hill Tennessee and local areas including all hospitals & nursing homes. |
Wild Root Florist and Gift Shop serves in Spring Hill Tennessee and our nearby delivery areas include: , Spring Hill, South Franklin, Thompson Station, North Columbia, College Grove |


title: Nordic exposure 4220992

text:
The ESG Clearing Compass offering focusses on two services: the ESG Portfolio Assessment and the ESG Visibility Hub. These services support clearing members and their clients in their sustainability journey by enhancing transparency and awareness regarding their cleared portfolios and counterparties. In August 2024, the service was expanded to include climate metrics for eligible securities in a report available on the Eurex Clearing website.
With the further enhancements the ESG Portfolio Assessment will be extended to include assessments of Transactions at Frankfurt Stock Exchange (excluding ETFs) and Eurex Repo, provided in a new report called Daily Position Sustainability Metrics. This report will include climate metrics, where applicable, at the portfolio level. The new service will be available to all Clearing Members and individually segregated clients.
The climate and rating data in the reports are provided by ISS ESG, whose methodologies guide the aggregation of emissions and carbon data.
ABN AMRO Clearing Bank N.V., Société Générale and Commerzbank AG have been involved as partners in driving innovative industry solutions.
“We actively shape new services to be the partner of choice to our clients in their transformation. We aim to promote transparency, which is critical for decisions like portfolio decarbonization or integrating ESG factors into counterparty assessments.“
Christina Sell, Chief Sustainability Officer Trading & Clearing
“ABN AMRO Clearing believes strongly in making impact transparent, so clients can make decisions based on information. The ESG Clearing Compass is a service which will allow clients to obtain an overview of their actions, without value judgement, with the aim to educate and inform. We look forward to working together with EUREX in the search for innovative solutions to make Sustainability part of our decision making processes.“
Pauline Engelberts, Global COO / Chief Sustainability Officer ABN AMRO Clearing Bank N.V.
“With this enhanced ‘ESG Compass’, Eurex Clearing fosters the accessibility of climate metrics, which aims to contribute to greater transparency for market participants.”
Kristell Herbault, Head of Sustainability for Global Markets, Société Générale
„Eurex Clearing’s expansion of its ESG Compass to Cash-Market and Repo transactions marks a crucial step in integrating sustainability into all areas of financial markets.”
Wolfgang Graf Vitzthum, Managing Director ESG and Transformation Finance Advisory, Commerzbank AG